diff --git a/Package.resolved b/Package.resolved index 4c541df3..c012a0fc 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,16 +1,32 @@ { - "object": { - "pins": [ - { - "package": "RxSwift", - "repositoryURL": "https://github.com/ReactiveX/RxSwift.git", - "state": { - "branch": null, - "revision": "7c17a6ccca06b5c107cfa4284e634562ddaf5951", - "version": "6.2.0" - } + "pins" : [ + { + "identity" : "rxswift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ReactiveX/RxSwift.git", + "state" : { + "revision" : "7c17a6ccca06b5c107cfa4284e634562ddaf5951", + "version" : "6.2.0" } - ] - }, - "version": 1 + }, + { + "identity" : "swift-docc-plugin", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-docc-plugin", + "state" : { + "revision" : "9b1258905c21fc1b97bf03d1b4ca12c4ec4e5fda", + "version" : "1.2.0" + } + }, + { + "identity" : "swift-docc-symbolkit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-docc-symbolkit", + "state" : { + "revision" : "b45d1f2ed151d057b54504d653e0da5552844e34", + "version" : "1.0.0" + } + } + ], + "version" : 2 } diff --git a/Package.swift b/Package.swift index 9457fbd5..24b79883 100644 --- a/Package.swift +++ b/Package.swift @@ -1,13 +1,11 @@ -// swift-tools-version:5.1 -// The swift-tools-version declares the minimum version of Swift required to build this package. +// swift-tools-version:5.8 import PackageDescription let package = Package( name: "XCoordinator", - platforms: [.iOS(.v9), .tvOS(.v9)], + platforms: [.iOS(.v11), .tvOS(.v11)], products: [ - // Products define the executables and libraries produced by a package, and make them visible to other packages. .library( name: "XCoordinator", targets: ["XCoordinator"]), @@ -19,13 +17,10 @@ let package = Package( targets: ["XCoordinatorCombine"]), ], dependencies: [ - // Dependencies declare other packages that this package depends on. - // .package(url: /* package url */, from: "1.0.0"), + .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "6.0.0"), ], targets: [ - // Targets are the basic building blocks of a package. A target can define a module or a test suite. - // Targets can depend on other targets in this package, and on products in packages which this package depends on. .target( name: "XCoordinator", dependencies: []), diff --git a/scripts/build.sh b/Scripts/build.sh similarity index 100% rename from scripts/build.sh rename to Scripts/build.sh diff --git a/scripts/check_docs.sh b/Scripts/check_docs.sh similarity index 100% rename from scripts/check_docs.sh rename to Scripts/check_docs.sh diff --git a/Scripts/docs.sh b/Scripts/docs.sh new file mode 100755 index 00000000..f4004eee --- /dev/null +++ b/Scripts/docs.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# Preparation + +set -o pipefail + +# Constants + +TARGET_PLATFORM="iphoneos" +TARGET_SDK="arm64-apple-ios16.4" + +# Execution + +swift package \ + -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk $TARGET_PLATFORM --show-sdk-path`" \ + -Xswiftc "-target" -Xswiftc $TARGET_SDK \ + --allow-writing-to-directory Documentation \ + generate-documentation \ + --output-path Documentation \ + --transform-for-static-hosting \ + --target "XCoordinator" diff --git a/Scripts/docs_preview.sh b/Scripts/docs_preview.sh new file mode 100755 index 00000000..b9a58fbc --- /dev/null +++ b/Scripts/docs_preview.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# Preparation + +set -o pipefail + +# Constants + +TARGET_PLATFORM="iphoneos" +TARGET_SDK="arm64-apple-ios16.4" + +# Execution + +swift package \ + -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk $TARGET_PLATFORM --show-sdk-path`" \ + -Xswiftc "-target" -Xswiftc $TARGET_SDK \ + --disable-sandbox \ + preview-documentation \ + --product XCoordinator diff --git a/Sources/XCoordinator/Animation.swift b/Sources/XCoordinator/Animations/Animation.swift similarity index 100% rename from Sources/XCoordinator/Animation.swift rename to Sources/XCoordinator/Animations/Animation.swift diff --git a/Sources/XCoordinator/CoordinatorPreviewingDelegateObject.swift b/Sources/XCoordinator/Animations/CoordinatorPreviewingDelegateObject.swift similarity index 100% rename from Sources/XCoordinator/CoordinatorPreviewingDelegateObject.swift rename to Sources/XCoordinator/Animations/CoordinatorPreviewingDelegateObject.swift diff --git a/Sources/XCoordinator/GestureRecognizerTarget.swift b/Sources/XCoordinator/Animations/GestureRecognizerTarget.swift similarity index 84% rename from Sources/XCoordinator/GestureRecognizerTarget.swift rename to Sources/XCoordinator/Animations/GestureRecognizerTarget.swift index 69907be7..b1f92c29 100755 --- a/Sources/XCoordinator/GestureRecognizerTarget.swift +++ b/Sources/XCoordinator/Animations/GestureRecognizerTarget.swift @@ -23,8 +23,7 @@ internal class Target: GestureRecognizer init(recognizer gestureRecognizer: GestureRecognizer, handler: @escaping (GestureRecognizer) -> Void) { self.handler = handler self.gestureRecognizer = gestureRecognizer - // The method signature "handle(_ gestureRecognizer: UIGestureRecognizer)" is in conflict with validation Apple, use another name : "handleMyGesture" - gestureRecognizer.addTarget(self, action: #selector(handleGesture(of: ))) + gestureRecognizer.addTarget(self, action: #selector(handleGesture)) } // MARK: Target actions @@ -34,4 +33,5 @@ internal class Target: GestureRecognizer guard let recognizer = gestureRecognizer as? GestureRecognizer else { return } handler(recognizer) } + } diff --git a/Sources/XCoordinator/InteractiveTransitionAnimation.swift b/Sources/XCoordinator/Animations/InteractiveTransitionAnimation.swift similarity index 100% rename from Sources/XCoordinator/InteractiveTransitionAnimation.swift rename to Sources/XCoordinator/Animations/InteractiveTransitionAnimation.swift diff --git a/Sources/XCoordinator/InterruptibleTransitionAnimation.swift b/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift similarity index 100% rename from Sources/XCoordinator/InterruptibleTransitionAnimation.swift rename to Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift diff --git a/Sources/XCoordinator/StaticTransitionAnimation.swift b/Sources/XCoordinator/Animations/StaticTransitionAnimation.swift similarity index 100% rename from Sources/XCoordinator/StaticTransitionAnimation.swift rename to Sources/XCoordinator/Animations/StaticTransitionAnimation.swift diff --git a/Sources/XCoordinator/TransitionAnimation.swift b/Sources/XCoordinator/Animations/TransitionAnimation.swift similarity index 100% rename from Sources/XCoordinator/TransitionAnimation.swift rename to Sources/XCoordinator/Animations/TransitionAnimation.swift diff --git a/Sources/XCoordinator/UIView+Store.swift b/Sources/XCoordinator/Animations/UIView+Store.swift similarity index 100% rename from Sources/XCoordinator/UIView+Store.swift rename to Sources/XCoordinator/Animations/UIView+Store.swift diff --git a/Sources/XCoordinator/AnyCoordinator.swift b/Sources/XCoordinator/AnyCoordinator.swift deleted file mode 100755 index 905ac917..00000000 --- a/Sources/XCoordinator/AnyCoordinator.swift +++ /dev/null @@ -1,115 +0,0 @@ -// -// AnyCoordinator.swift -// XCoordinator -// -// Created by Paul Kraft on 25.10.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -/// A type-erased Coordinator (`AnyCoordinator`) with a `UINavigationController` as rootViewController. -public typealias AnyNavigationCoordinator = AnyCoordinator - -/// A type-erased Coordinator (`AnyCoordinator`) with a `UITabBarController` as rootViewController. -public typealias AnyTabBarCoordinator = AnyCoordinator - -/// A type-erased Coordinator (`AnyCoordinator`) with a `UIViewController` as rootViewController. -public typealias AnyViewCoordinator = AnyCoordinator - -/// -/// `AnyCoordinator` is a type-erased `Coordinator` (`RouteType` & `TransitionType`) and -/// can be used as an abstraction from a specific coordinator class while still specifying -/// TransitionType and RouteType. -/// -/// - Note: -/// If you do not want/need to specify TransitionType, you might want to look into the -/// different router abstractions `StrongRouter`, `UnownedRouter` and `WeakRouter`. -/// See `AnyTransitionPerformer` to further abstract from RouteType. -/// -public class AnyCoordinator: Coordinator { - - // MARK: Stored properties - - private let _prepareTransition: (RouteType) -> TransitionType - private let _viewController: () -> UIViewController? - private let _rootViewController: () -> TransitionType.RootViewController - private let _presented: (Presentable?) -> Void - private let _setRoot: (UIWindow) -> Void - private let _addChild: (Presentable) -> Void - private let _removeChild: (Presentable) -> Void - private let _removeChildrenIfNeeded: () -> Void - private let _registerParent: (Presentable & AnyObject) -> Void - - // MARK: Initialization - - /// - /// Creates a type-erased Coordinator for a specific coordinator. - /// - /// A strong reference to the source coordinator is kept. - /// - /// - Parameter coordinator: - /// The source coordinator. - /// - public init(_ coordinator: C) where C.RouteType == RouteType, C.TransitionType == TransitionType { - self._prepareTransition = coordinator.prepareTransition - self._viewController = { coordinator.viewController } - self._rootViewController = { coordinator.rootViewController } - self._presented = coordinator.presented - self._setRoot = coordinator.setRoot - self._addChild = coordinator.addChild - self._removeChild = coordinator.removeChild - self._removeChildrenIfNeeded = coordinator.removeChildrenIfNeeded - self._registerParent = coordinator.registerParent - } - - // MARK: Computed properties - - public var rootViewController: TransitionType.RootViewController { - _rootViewController() - } - - public var viewController: UIViewController! { - _viewController() - } - - // MARK: Methods - - /// - /// Prepare and return transitions for a given route. - /// - /// - Parameter route: - /// The triggered route for which a transition is to be prepared. - /// - /// - Returns: - /// The prepared transition. - /// - public func prepareTransition(for route: RouteType) -> TransitionType { - _prepareTransition(route) - } - - public func presented(from presentable: Presentable?) { - _presented(presentable) - } - - public func registerParent(_ presentable: Presentable & AnyObject) { - _registerParent(presentable) - } - - public func setRoot(for window: UIWindow) { - _setRoot(window) - } - - public func addChild(_ presentable: Presentable) { - _addChild(presentable) - } - - public func removeChild(_ presentable: Presentable) { - _removeChild(presentable) - } - - public func removeChildrenIfNeeded() { - _removeChildrenIfNeeded() - } - -} diff --git a/Sources/XCoordinator/AnyTransitionPerformer.swift b/Sources/XCoordinator/AnyTransitionPerformer.swift deleted file mode 100755 index 9a677a12..00000000 --- a/Sources/XCoordinator/AnyTransitionPerformer.swift +++ /dev/null @@ -1,58 +0,0 @@ -// -// AnyTransitionPerformer.swift -// XCoordinator -// -// Created by Paul Kraft on 13.09.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -/// -/// AnyTransitionPerformer can be used as an abstraction from a specific TransitionPerformer implementation -/// without losing type information about its TransitionType. -/// -/// This type abstraction can be especially helpful when performing transitions. -/// AnyTransitionPerformer abstracts away any implementation specific details and reduces coordinators to the capabilities -/// of the `TransitionPerformer` protocol. -/// -public class AnyTransitionPerformer: TransitionPerformer { - - // MARK: Stored properties - - private var _viewController: () -> UIViewController? - private var _rootViewController: () -> TransitionType.RootViewController - private var _presented: (Presentable?) -> Void - private var _perform: (TransitionType, TransitionOptions, PresentationHandler?) -> Void - - // MARK: Computed properties - - public var viewController: UIViewController! { - _viewController() - } - - public var rootViewController: TransitionType.RootViewController { - _rootViewController() - } - - // MARK: Methods - - public func presented(from presentable: Presentable?) { - _presented(presentable) - } - - public func performTransition(_ transition: TransitionType, - with options: TransitionOptions, - completion: PresentationHandler? = nil) { - _perform(transition, options, completion) - } - - // MARK: Initialization - - init(_ coordinator: T) where TransitionType == T.TransitionType { - self._viewController = { coordinator.viewController } - self._presented = coordinator.presented - self._rootViewController = { coordinator.rootViewController } - self._perform = coordinator.performTransition - } -} diff --git a/Sources/XCoordinator/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift similarity index 94% rename from Sources/XCoordinator/BaseCoordinator.swift rename to Sources/XCoordinator/Coordinators/BaseCoordinator.swift index 1ecacdc3..c117894e 100755 --- a/Sources/XCoordinator/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -32,7 +32,7 @@ open class BaseCoordinator /// When performing a transition, children are automatically added and removed from this array /// depending on whether they are in the view hierarchy. /// - public private(set) var children = [Presentable]() + public private(set) var children = [any Presentable]() // MARK: Computed properties @@ -68,19 +68,23 @@ open class BaseCoordinator // MARK: Open methods - open func presented(from presentable: Presentable?) {} + public func router(for route: R) -> (any Router)? { + self as? BaseCoordinator + } + + open func presented(from presentable: (any Presentable)?) {} public func removeChildrenIfNeeded() { children.removeAll { $0.canBeRemovedAsChild() } removeParentChildren() } - public func addChild(_ presentable: Presentable) { + public func addChild(_ presentable: any Presentable) { children.append(presentable) presentable.registerParent(self) } - public func removeChild(_ presentable: Presentable) { + public func removeChild(_ presentable: any Presentable) { children.removeAll { $0.viewController === presentable.viewController } removeChildrenIfNeeded() } @@ -99,18 +103,13 @@ open class BaseCoordinator fatalError("Please override the \(#function) method.") } - public func registerParent(_ presentable: Presentable & AnyObject) { + public func registerParent(_ presentable: any Presentable & AnyObject) { let previous = removeParentChildren removeParentChildren = { [weak presentable] in previous() presentable?.childTransitionCompleted() } } - - @available(iOS, unavailable, message: "Please specify the rootViewController in the initializer of your coordinator instead.") - open func generateRootViewController() -> RootViewController { - .init() - } // MARK: Private methods @@ -136,7 +135,7 @@ extension Presentable { fileprivate func canBeRemovedAsChild() -> Bool { guard !(self is UIViewController) else { return true } - guard let viewController = viewController else { return true } + guard let viewController else { return true } return !viewController.isInViewHierarchy && viewController.children.allSatisfy { $0.canBeRemovedAsChild() } } @@ -150,7 +149,7 @@ extension UIViewController { || presentingViewController != nil || presentedViewController != nil || parent != nil - || view.window != nil + || viewIfLoaded?.window != nil || navigationController != nil || tabBarController != nil || splitViewController != nil diff --git a/Sources/XCoordinator/BasicCoordinator.swift b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift similarity index 98% rename from Sources/XCoordinator/BasicCoordinator.swift rename to Sources/XCoordinator/Coordinators/BasicCoordinator.swift index 8c94cabc..75e7b37d 100755 --- a/Sources/XCoordinator/BasicCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift @@ -87,7 +87,7 @@ open class BasicCoordinator Void /// The completion handler for transitions, which also provides the context information about the transition. -public typealias ContextPresentationHandler = (TransitionContext) -> Void +public typealias ContextPresentationHandler = (any TransitionProtocol) -> Void /// /// Coordinator is the protocol every coordinator conforms to. @@ -40,7 +40,7 @@ public protocol Coordinator: Router, TransitionPerformer { /// - Parameter presentable: /// The child to be added. /// - func addChild(_ presentable: Presentable) + func addChild(_ presentable: any Presentable) /// /// This method removes a child to a coordinator's children. @@ -48,7 +48,7 @@ public protocol Coordinator: Router, TransitionPerformer { /// - Parameter presentable: /// The child to be removed. /// - func removeChild(_ presentable: Presentable) + func removeChild(_ presentable: any Presentable) /// This method removes all children that are no longer in the view hierarchy. func removeChildrenIfNeeded() @@ -72,39 +72,11 @@ extension Coordinator { } } -extension Coordinator where Self: AnyObject { - - /// - /// Creates a WeakRouter object from the given router to abstract from concrete implementations - /// while maintaining information necessary to fulfill the Router protocol. - /// The original router will be held weakly. - /// - public var weakRouter: WeakRouter { - WeakRouter(self) { $0.strongRouter } - } - - /// - /// Creates an UnownedRouter object from the given router to abstract from concrete implementations - /// while maintaining information necessary to fulfill the Router protocol. - /// The original router will be held unowned. - /// - - public var unownedRouter: UnownedRouter { - UnownedRouter(self) { $0.strongRouter } - } - -} - // MARK: - Default implementations extension Coordinator where Self: AnyObject { - /// Creates an AnyCoordinator based on the current coordinator. - public var anyCoordinator: AnyCoordinator { - AnyCoordinator(self) - } - - public func presented(from presentable: Presentable?) {} + public func presented(from presentable: (any Presentable)?) {} public func childTransitionCompleted() { removeChildrenIfNeeded() @@ -133,10 +105,10 @@ extension Coordinator where Self: AnyObject { public func performTransition(_ transition: TransitionType, with options: TransitionOptions, completion: PresentationHandler? = nil) { - transition.presentables.forEach(addChild) - transition.perform(on: rootViewController, with: options) { + transition.perform(on: rootViewController, with: options) { [self] in + transition.presentables.forEach(addChild) + removeChildrenIfNeeded() completion?() - self.removeChildrenIfNeeded() } } } diff --git a/Sources/XCoordinator/RedirectionRouter.swift b/Sources/XCoordinator/Coordinators/RedirectionRouter.swift similarity index 93% rename from Sources/XCoordinator/RedirectionRouter.swift rename to Sources/XCoordinator/Coordinators/RedirectionRouter.swift index 88cbf472..c7311681 100755 --- a/Sources/XCoordinator/RedirectionRouter.swift +++ b/Sources/XCoordinator/Coordinators/RedirectionRouter.swift @@ -24,7 +24,7 @@ open class RedirectionRouter: Router { // MARK: Stored properties /// A type-erased Router object of the parent router. - public let parent: UnownedRouter + public unowned let parent: any Router private let _map: ((RouteType) -> ParentRoute)? @@ -55,7 +55,7 @@ open class RedirectionRouter: Router { /// A mapping from this RedirectionRouter's routes to the parent's routes. /// public init(viewController: UIViewController, - parent: UnownedRouter, + parent: any Router, map: ((RouteType) -> ParentRoute)?) { self.parent = parent self._map = map @@ -64,6 +64,10 @@ open class RedirectionRouter: Router { // MARK: Methods + public func router(for route: R) -> (any Router)? { + self as? RedirectionRouter + } + open func contextTrigger(_ route: RouteType, with options: TransitionOptions, completion: ContextPresentationHandler?) { diff --git a/Sources/XCoordinator/Router.swift b/Sources/XCoordinator/Coordinators/Router.swift similarity index 84% rename from Sources/XCoordinator/Router.swift rename to Sources/XCoordinator/Coordinators/Router.swift index c29929d2..2b48b238 100755 --- a/Sources/XCoordinator/Router.swift +++ b/Sources/XCoordinator/Coordinators/Router.swift @@ -17,7 +17,7 @@ import Foundation /// the triggering of routes. /// This may especially be useful in viewModels when using them in different contexts. /// -public protocol Router: Presentable { +public protocol Router: Presentable, AnyObject { /// RouteType defines which routes can be triggered in a certain Router implementation. associatedtype RouteType: Route @@ -86,36 +86,6 @@ extension Router { } -extension Router { - - // MARK: Computed properties - - /// - /// Creates a StrongRouter object from the given router to abstract from concrete implementations - /// while maintaining information necessary to fulfill the Router protocol. - /// The original router will be held strongly. - /// - public var strongRouter: StrongRouter { - StrongRouter(self) - } - - /// - /// Returns a router for the specified route, if possible. - /// - /// - Parameter route: - /// The route type to return a router for. - /// - /// - Returns: - /// It returns the router's strongRouter, - /// if it is compatible with the given route type, - /// otherwise `nil`. - /// - public func router(for route: R) -> StrongRouter? { - strongRouter as? StrongRouter - } - -} - #if swift(>=5.5.2) @available(iOS 13.0, tvOS 13.0, *) @@ -159,7 +129,7 @@ extension Router { /// The transition context of the performed transition(s). /// If the context is not needed, use `trigger` instead. /// - @MainActor public func contextTrigger(_ route: RouteType, with options: TransitionOptions) async -> TransitionContext { + @MainActor public func contextTrigger(_ route: RouteType, with options: TransitionOptions) async -> any TransitionProtocol { await withCheckedContinuation { continuation in contextTrigger(route, with: options) { context in continuation.resume(returning: context) diff --git a/Sources/XCoordinator/Container.swift b/Sources/XCoordinator/General/Container.swift similarity index 100% rename from Sources/XCoordinator/Container.swift rename to Sources/XCoordinator/General/Container.swift diff --git a/Sources/XCoordinator/DeepLinking.swift b/Sources/XCoordinator/General/DeepLinking.swift similarity index 85% rename from Sources/XCoordinator/DeepLinking.swift rename to Sources/XCoordinator/General/DeepLinking.swift index 5c356ffa..b7c339aa 100755 --- a/Sources/XCoordinator/DeepLinking.swift +++ b/Sources/XCoordinator/General/DeepLinking.swift @@ -6,27 +6,6 @@ // Copyright © 2018 QuickBird Studios. All rights reserved. // -/// -/// `TransitionContext` provides context information about transitions. -/// -/// It is especially useful for deep linking as XCoordinator can internally gather information about -/// the presentables being pushed onto the view hierarchy. -/// -public protocol TransitionContext { - - /// The presentables being shown to the user by the transition. - var presentables: [Presentable] { get } - - /// - /// The transition animation directly used in the transition, if applicable. - /// - /// - Note: - /// Make sure to not return `nil`, if you want to use `BaseCoordinator.registerInteractiveTransition` - /// to realize an interactive transition. - /// - var animation: TransitionAnimation? { get } -} - // MARK: - Coordinator + DeepLinking extension Coordinator where Self: AnyObject { @@ -93,7 +72,7 @@ extension Transition { // MARK: - Route + DeepLink extension Route { - private func router(fromStack stack: inout [Presentable]) -> StrongRouter? { + private func router(fromStack stack: inout [Presentable]) -> (any Router)? { while !stack.isEmpty { if let router = stack.last?.router(for: self) { return router diff --git a/Sources/XCoordinator/Presentable.swift b/Sources/XCoordinator/General/Presentable.swift similarity index 69% rename from Sources/XCoordinator/Presentable.swift rename to Sources/XCoordinator/General/Presentable.swift index 88012106..11bfd275 100755 --- a/Sources/XCoordinator/Presentable.swift +++ b/Sources/XCoordinator/General/Presentable.swift @@ -33,7 +33,7 @@ public protocol Presentable { /// - Parameter route: /// The route to determine a router for. /// - func router(for route: R) -> StrongRouter? + func router(for route: R) -> (any Router)? /// /// This method is called whenever a Presentable is shown to the user. @@ -44,7 +44,7 @@ public protocol Presentable { /// This could be a window, another viewController, a coordinator, etc. /// `nil` is specified whenever a context cannot be easily determined. /// - func presented(from presentable: Presentable?) + func presented(from presentable: (any Presentable)?) /// /// This method is used to register a parent coordinator to a child coordinator. @@ -52,7 +52,7 @@ public protocol Presentable { /// - Note: /// This method is used internally and should never be called directly. /// - func registerParent(_ presentable: Presentable & AnyObject) + func registerParent(_ presentable: any Presentable & AnyObject) /// /// This method gets called when the transition of a child coordinator is being reported to its parent. @@ -76,22 +76,42 @@ public protocol Presentable { extension Presentable { - public func registerParent(_ presentable: Presentable & AnyObject) {} + public func registerParent(_ presentable: any Presentable & AnyObject) {} public func childTransitionCompleted() {} public func setRoot(for window: UIWindow) { + let previousRoot = window.rootViewController window.rootViewController = viewController window.makeKeyAndVisible() presented(from: window) - } - public func router(for route: R) -> StrongRouter? { - self as? StrongRouter + if let previousRoot { + previousRoot.removeFromParent() + previousRoot.dismiss(animated: false) { + previousRoot.viewIfLoaded?.removeFromSuperview() + } + } } - public func presented(from presentable: Presentable?) {} + public func presented(from presentable: (any Presentable)?) {} + + /// + /// Returns the value as an `any Presentable`. + /// + /// This might be useful when getting an error "Runtime support for parameterized protocol types is only available in iOS 16.0.0 or newer" to still use these objects in transitions. + /// + public var asPresentable: any Presentable { self } + } -extension UIViewController: Presentable {} -extension UIWindow: Presentable {} +extension UIViewController: Presentable { + public func router(for route: R) -> (any Router)? { + nil + } +} +extension UIWindow: Presentable { + public func router(for route: R) -> (any Router)? { + nil + } +} diff --git a/Sources/XCoordinator/Route.swift b/Sources/XCoordinator/General/Route.swift similarity index 100% rename from Sources/XCoordinator/Route.swift rename to Sources/XCoordinator/General/Route.swift diff --git a/Sources/XCoordinator/NavigationAnimationDelegate.swift b/Sources/XCoordinator/Navigation/NavigationAnimationDelegate.swift similarity index 100% rename from Sources/XCoordinator/NavigationAnimationDelegate.swift rename to Sources/XCoordinator/Navigation/NavigationAnimationDelegate.swift diff --git a/Sources/XCoordinator/NavigationCoordinator.swift b/Sources/XCoordinator/Navigation/NavigationCoordinator.swift similarity index 99% rename from Sources/XCoordinator/NavigationCoordinator.swift rename to Sources/XCoordinator/Navigation/NavigationCoordinator.swift index f9c8b1f1..15abbd74 100755 --- a/Sources/XCoordinator/NavigationCoordinator.swift +++ b/Sources/XCoordinator/Navigation/NavigationCoordinator.swift @@ -66,7 +66,7 @@ open class NavigationCoordinator: BaseCoordinator Transition { + public static func push(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation ) { rootViewController, options, completion in @@ -74,7 +74,7 @@ extension Transition where RootViewController: UINavigationController { /// presentable before. You can use `Animation.default` to reset the previously set animations /// on this presentable. /// - public static func pop(to presentable: Presentable, animation: Animation? = nil) -> Transition { + public static func pop(to presentable: any Presentable, animation: Animation? = nil) -> Transition { Transition(presentables: [presentable], animationInUse: animation?.dismissalAnimation ) { rootViewController, options, completion in @@ -118,7 +118,7 @@ extension Transition where RootViewController: UINavigationController { /// here to leave animations as they were set for the presentables before. You can use /// `Animation.default` to reset the previously set animations on all presentables. /// - public static func set(_ presentables: [Presentable], animation: Animation? = nil) -> Transition { + public static func set(_ presentables: [any Presentable], animation: Animation? = nil) -> Transition { Transition(presentables: presentables, animationInUse: animation?.presentationAnimation ) { rootViewController, options, completion in diff --git a/Sources/XCoordinator/UINavigationController+Transition.swift b/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift similarity index 93% rename from Sources/XCoordinator/UINavigationController+Transition.swift rename to Sources/XCoordinator/Navigation/UINavigationController+Transition.swift index 83814232..d9a68c0b 100755 --- a/Sources/XCoordinator/UINavigationController+Transition.swift +++ b/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift @@ -26,7 +26,15 @@ extension UINavigationController { """) CATransaction.begin() - CATransaction.setCompletionBlock(completion) + CATransaction.setCompletionBlock { [self] in + if let transitionCoordinator { + transitionCoordinator.animate(alongsideTransition: nil) { _ in + completion?() + } + } else { + completion?() + } + } autoreleasepool { pushViewController(viewController, animated: options.animated) diff --git a/Sources/XCoordinator/PageCoordinator.swift b/Sources/XCoordinator/Page/PageCoordinator.swift similarity index 69% rename from Sources/XCoordinator/PageCoordinator.swift rename to Sources/XCoordinator/Page/PageCoordinator.swift index 4999f70a..2ae199d6 100755 --- a/Sources/XCoordinator/PageCoordinator.swift +++ b/Sources/XCoordinator/Page/PageCoordinator.swift @@ -55,19 +55,22 @@ open class PageCoordinator: BaseCoordinator.self))") super.init(rootViewController: rootViewController, initialTransition: .initial(pages: pages)) return } super.init(rootViewController: rootViewController, - initialTransition: .multiple(.initial(pages: pages), .set(firstPage, direction: direction))) + initialTransition: .multiple(.initial(pages: pages), .set(firstPage, initialPages.count > 1 ? initialPages[1] : nil, direction: direction))) } /// @@ -91,11 +94,46 @@ open class PageCoordinator: BaseCoordinator Transition { let presentables = [first, second].compactMap { $0 } return Transition(presentables: presentables, @@ -44,7 +44,7 @@ extension Transition where RootViewController: UIPageViewController { } } - static func initial(pages: [Presentable]) -> Transition { + static func initial(pages: [any Presentable]) -> Transition { Transition(presentables: pages, animationInUse: nil) { rootViewController, _, completion in CATransaction.begin() CATransaction.setCompletionBlock { diff --git a/Sources/XCoordinator/UIPageViewController+Transition.swift b/Sources/XCoordinator/Page/UIPageViewController+Transition.swift similarity index 92% rename from Sources/XCoordinator/UIPageViewController+Transition.swift rename to Sources/XCoordinator/Page/UIPageViewController+Transition.swift index 11b27969..7f13161f 100755 --- a/Sources/XCoordinator/UIPageViewController+Transition.swift +++ b/Sources/XCoordinator/Page/UIPageViewController+Transition.swift @@ -13,6 +13,7 @@ extension UIPageViewController { direction: UIPageViewController.NavigationDirection, with options: TransitionOptions, completion: PresentationHandler?) { + isDoubleSided = viewControllers.count > 1 setViewControllers( viewControllers, direction: direction, diff --git a/Sources/XCoordinator/SplitCoordinator.swift b/Sources/XCoordinator/Split/SplitCoordinator.swift similarity index 71% rename from Sources/XCoordinator/SplitCoordinator.swift rename to Sources/XCoordinator/Split/SplitCoordinator.swift index dfe050c6..caec6a02 100755 --- a/Sources/XCoordinator/SplitCoordinator.swift +++ b/Sources/XCoordinator/Split/SplitCoordinator.swift @@ -6,6 +6,8 @@ // Copyright © 2018 QuickBird Studios. All rights reserved. // +import UIKit + /// /// SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type /// `UISplitViewController`. @@ -26,14 +28,15 @@ open class SplitCoordinator: BaseCoordinator extension Transition where RootViewController: UISplitViewController { - public static func set(_ presentables: [Presentable]) -> Transition { + public static func set(_ presentables: [any Presentable]) -> Transition { Transition(presentables: presentables, animationInUse: nil) { rootViewController, _, completion in CATransaction.begin() CATransaction.setCompletionBlock { @@ -29,4 +29,19 @@ extension Transition where RootViewController: UISplitViewController { } } + @available(iOS 14, *) + public static func set(_ presentable: (any Presentable)?, for column: UISplitViewController.Column) -> Transition { + Transition(presentables: [presentable].compactMap { $0 }, animationInUse: nil) { rootViewController, _, completion in + CATransaction.begin() + CATransaction.setCompletionBlock { + presentable?.presented(from: rootViewController) + completion?() + } + autoreleasepool { + rootViewController.setViewController(presentable?.viewController, for: column) + } + CATransaction.commit() + } + } + } diff --git a/Sources/XCoordinator/StrongRouter.swift b/Sources/XCoordinator/StrongRouter.swift deleted file mode 100755 index b26cfa39..00000000 --- a/Sources/XCoordinator/StrongRouter.swift +++ /dev/null @@ -1,119 +0,0 @@ -// -// StrongRouter.swift -// XCoordinator -// -// Created by Paul Kraft on 28.07.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -/// -/// StrongRouter is a type-erasure of a given Router object and, therefore, can be used as an abstraction from a specific Router -/// implementation without losing type information about its RouteType. -/// -/// StrongRouter abstracts away any implementation specific details and -/// essentially reduces them to properties specified in the `Router` protocol. -/// -/// - Note: -/// Do not hold a reference to any router from the view hierarchy. -/// Use `UnownedRouter` or `WeakRouter` in your view controllers or view models instead. -/// You can create them using the `Coordinator.unownedRouter` and `Coordinator.weakRouter` properties. -/// -public final class StrongRouter: Router { - - // MARK: Stored properties - - private let _contextTrigger: (RouteType, TransitionOptions, ContextPresentationHandler?) -> Void - private let _trigger: (RouteType, TransitionOptions, PresentationHandler?) -> Void - private let _presented: (Presentable?) -> Void - private let _viewController: () -> UIViewController? - private let _setRoot: (UIWindow) -> Void - private let _registerParent: (Presentable & AnyObject) -> Void - private let _childTransitionCompleted: () -> Void - - // MARK: Initialization - - /// - /// Creates a StrongRouter object from a given router. - /// - /// - Parameter router: - /// The source router. - /// - public init(_ router: T) where T.RouteType == RouteType { - _trigger = router.trigger - _presented = router.presented - _viewController = { router.viewController } - _setRoot = router.setRoot - _contextTrigger = router.contextTrigger - _registerParent = router.registerParent - _childTransitionCompleted = router.childTransitionCompleted - } - - // MARK: Public methods - - /// - /// Triggers routes and provides the transition context in the completion-handler. - /// - /// Useful for deep linking. It is encouraged to use `trigger` instead, if the context is not needed. - /// - /// - Parameters: - /// - route: The route to be triggered. - /// - options: Transition options configuring the execution of transitions, e.g. whether it should be animated. - /// - completion: - /// If present, this completion handler is executed once the transition is completed - /// (including animations). - /// If the context is not needed, use `trigger` instead. - /// - public func contextTrigger(_ route: RouteType, - with options: TransitionOptions, - completion: ContextPresentationHandler?) { - _contextTrigger(route, options, completion) - } - - /// - /// Triggers the specified route by performing a transition. - /// - /// - Parameters: - /// - route: The route to be triggered. - /// - options: Transition options for performing the transition, e.g. whether it should be animated. - /// - completion: - /// If present, this completion handler is executed once the transition is completed - /// (including animations). - /// - public func trigger(_ route: RouteType, with options: TransitionOptions, completion: PresentationHandler?) { - _trigger(route, options, completion) - } - - /// - /// This method is called whenever a Presentable is shown to the user. - /// It further provides information about the presentable responsible for the presenting. - /// - /// - Parameter presentable: - /// The context in which the presentable is shown. - /// This could be a window, another viewController, a coordinator, etc. - /// `nil` is specified whenever a context cannot be easily determined. - /// - public func presented(from presentable: Presentable?) { - _presented(presentable) - } - - /// - /// The viewController of the Presentable. - /// - /// In the case of a `UIViewController`, it returns itself. - /// A coordinator returns its rootViewController. - /// - public var viewController: UIViewController! { - _viewController() - } - - public func registerParent(_ presentable: Presentable & AnyObject) { - _registerParent(presentable) - } - - public func childTransitionCompleted() { - _childTransitionCompleted() - } - -} diff --git a/Sources/XCoordinator/TabBarAnimationDelegate.swift b/Sources/XCoordinator/Tab/TabBarAnimationDelegate.swift similarity index 100% rename from Sources/XCoordinator/TabBarAnimationDelegate.swift rename to Sources/XCoordinator/Tab/TabBarAnimationDelegate.swift diff --git a/Sources/XCoordinator/TabBarCoordinator.swift b/Sources/XCoordinator/Tab/TabBarCoordinator.swift similarity index 100% rename from Sources/XCoordinator/TabBarCoordinator.swift rename to Sources/XCoordinator/Tab/TabBarCoordinator.swift diff --git a/Sources/XCoordinator/TabBarTransition.swift b/Sources/XCoordinator/Tab/TabBarTransition.swift similarity index 94% rename from Sources/XCoordinator/TabBarTransition.swift rename to Sources/XCoordinator/Tab/TabBarTransition.swift index deea83b0..4972f39c 100755 --- a/Sources/XCoordinator/TabBarTransition.swift +++ b/Sources/XCoordinator/Tab/TabBarTransition.swift @@ -26,7 +26,7 @@ extension Transition where RootViewController: UITabBarController { /// - animation: /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// - public static func set(_ presentables: [Presentable], animation: Animation? = nil) -> Transition { + public static func set(_ presentables: [any Presentable], animation: Animation? = nil) -> Transition { Transition(presentables: presentables, animationInUse: animation?.presentationAnimation ) { rootViewController, options, completion in @@ -53,7 +53,7 @@ extension Transition where RootViewController: UITabBarController { /// - animation: /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// - public static func select(_ presentable: Presentable, animation: Animation? = nil) -> Transition { + public static func select(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation ) { rootViewController, options, completion in diff --git a/Sources/XCoordinator/UITabBarController+Transition.swift b/Sources/XCoordinator/Tab/UITabBarController+Transition.swift similarity index 100% rename from Sources/XCoordinator/UITabBarController+Transition.swift rename to Sources/XCoordinator/Tab/UITabBarController+Transition.swift diff --git a/Sources/XCoordinator/Transition.swift b/Sources/XCoordinator/Transitions/Transition.swift similarity index 95% rename from Sources/XCoordinator/Transition.swift rename to Sources/XCoordinator/Transitions/Transition.swift index ec85b90f..4fccae8f 100755 --- a/Sources/XCoordinator/Transition.swift +++ b/Sources/XCoordinator/Transitions/Transition.swift @@ -45,7 +45,7 @@ public struct Transition: TransitionProtoc // MARK: Stored properties - private var _presentables: [Presentable] + private var _presentables: [any Presentable] private var _animation: TransitionAnimation? private var _perform: PerformClosure @@ -55,7 +55,7 @@ public struct Transition: TransitionProtoc /// The presentables this transition is putting into the view hierarchy. This is especially useful for /// deep-linking. /// - public var presentables: [Presentable] { + public var presentables: [any Presentable] { _presentables } @@ -91,7 +91,7 @@ public struct Transition: TransitionProtoc /// To create custom transitions, make sure to call the completion handler after all animations are done. /// If applicable, make sure to use the TransitionOptions to, e.g., decide whether a transition should be animated or not. /// - public init(presentables: [Presentable], animationInUse: TransitionAnimation?, perform: @escaping PerformClosure) { + public init(presentables: [any Presentable], animationInUse: TransitionAnimation?, perform: @escaping PerformClosure) { self._presentables = presentables self._animation = animationInUse self._perform = perform diff --git a/Sources/XCoordinator/TransitionOptions.swift b/Sources/XCoordinator/Transitions/TransitionOptions.swift similarity index 100% rename from Sources/XCoordinator/TransitionOptions.swift rename to Sources/XCoordinator/Transitions/TransitionOptions.swift diff --git a/Sources/XCoordinator/TransitionPerformer.swift b/Sources/XCoordinator/Transitions/TransitionPerformer.swift similarity index 95% rename from Sources/XCoordinator/TransitionPerformer.swift rename to Sources/XCoordinator/Transitions/TransitionPerformer.swift index 262bbbf0..58882164 100755 --- a/Sources/XCoordinator/TransitionPerformer.swift +++ b/Sources/XCoordinator/Transitions/TransitionPerformer.swift @@ -10,7 +10,7 @@ /// The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator. /// It keeps type information about its transition performing capabilities. /// -public protocol TransitionPerformer: Presentable { +public protocol TransitionPerformer: Presentable { /// The type of transitions that can be executed on the rootViewController. associatedtype TransitionType: TransitionProtocol diff --git a/Sources/XCoordinator/TransitionProtocol.swift b/Sources/XCoordinator/Transitions/TransitionProtocol.swift similarity index 76% rename from Sources/XCoordinator/TransitionProtocol.swift rename to Sources/XCoordinator/Transitions/TransitionProtocol.swift index ce58d722..c61a3c08 100755 --- a/Sources/XCoordinator/TransitionProtocol.swift +++ b/Sources/XCoordinator/Transitions/TransitionProtocol.swift @@ -13,11 +13,24 @@ import UIKit /// /// `Transition` is provided as an easily-extensible default transition type implementation. /// -public protocol TransitionProtocol: TransitionContext { +public protocol TransitionProtocol { /// The type of the rootViewController that can execute the transition. associatedtype RootViewController: UIViewController + + /// The presentables being shown to the user by the transition. + var presentables: [Presentable] { get } + + /// + /// The transition animation directly used in the transition, if applicable. + /// + /// - Note: + /// Make sure to not return `nil`, if you want to use `BaseCoordinator.registerInteractiveTransition` + /// to realize an interactive transition. + /// + var animation: TransitionAnimation? { get } + /// /// Performs a transition on the given viewController. /// diff --git a/Sources/XCoordinator/UnownedErased+Router.swift b/Sources/XCoordinator/UnownedErased+Router.swift deleted file mode 100644 index f819d5e6..00000000 --- a/Sources/XCoordinator/UnownedErased+Router.swift +++ /dev/null @@ -1,62 +0,0 @@ -// -// UnownedErased+Router.swift -// XCoordinator -// -// Created by Paul Kraft on 02.09.19. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -/// -/// Please use `StrongRouter`, `WeakRouter` or `UnownedRouter` instead. -/// -/// - Note: -/// Use a `StrongRouter`, if you need to hold a router even -/// when it is not in the view hierarchy. -/// Use a `WeakRouter` or `UnownedRouter` when you are accessing -/// any router from the view hierarchy. -/// -@available(iOS, deprecated) -public typealias AnyRouter = UnownedRouter - -/// -/// An `UnownedRouter` is an unowned version of a router object to be used in view controllers or view models. -/// -/// - Note: -/// Do not create an `UnownedRouter` from a `StrongRouter` since `StrongRouter` is only another wrapper -/// and does not represent the might instantly -/// -public typealias UnownedRouter = UnownedErased> - -extension UnownedErased: Presentable where Value: Presentable { - - public var viewController: UIViewController! { - wrappedValue.viewController - } - - public func childTransitionCompleted() { - wrappedValue.childTransitionCompleted() - } - - public func registerParent(_ presentable: Presentable & AnyObject) { - wrappedValue.registerParent(presentable) - } - - public func presented(from presentable: Presentable?) { - wrappedValue.presented(from: presentable) - } - - public func setRoot(for window: UIWindow) { - wrappedValue.setRoot(for: window) - } - -} - -extension UnownedErased: Router where Value: Router { - - public func contextTrigger(_ route: Value.RouteType, with options: TransitionOptions, completion: ContextPresentationHandler?) { - wrappedValue.contextTrigger(route, with: options, completion: completion) - } - -} diff --git a/Sources/XCoordinator/UnownedErased.swift b/Sources/XCoordinator/UnownedErased.swift deleted file mode 100644 index 1eb5216a..00000000 --- a/Sources/XCoordinator/UnownedErased.swift +++ /dev/null @@ -1,72 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 21.06.19. -// - -import Foundation - -#if swift(>=5.1) - -/// -/// `UnownedErased` is a property wrapper to hold objects with an unowned reference when using type-erasure. -/// -/// Create this wrapper using an initial value and a closure to create the type-erased object. -/// Make sure to not create an `UnownedErased` wrapper for already type-erased objects, -/// since their reference is most likely instantly lost. -/// -@propertyWrapper -public struct UnownedErased { - private var _value: () -> Value - - /// The type-erased or otherwise mapped version of the value being held unowned. - public var wrappedValue: Value { - _value() - } -} - -#else - -/// -/// `UnownedErased` is a property wrapper to hold objects with an unowned reference when using type-erasure. -/// -/// Create this wrapper using an initial value and a closure to create the type-erased object. -/// Make sure to not create an `UnownedErased` wrapper for already type-erased objects, -/// since their reference is most likely instantly lost. -/// -public struct UnownedErased { - private var _value: () -> Value - - /// The type-erased or otherwise mapped version of the value being held unowned. - public var wrappedValue: Value { - _value() - } -} - -#endif - -extension UnownedErased { - - /// - /// Create an `UnownedErased` wrapper using an initial value and a closure to create the type-erased object. - /// Make sure to not create an `UnownedErased` wrapper for already type-erased objects, - /// since their reference is most likely instantly lost. - /// - public init(_ value: Erasable, erase: @escaping (Erasable) -> Value) { - self._value = UnownedErased.createValueClosure(for: value, erase: erase) - } - - /// - /// Set a new value by providing a non-type-erased value and a closure to create the type-erased object. - /// - public mutating func set(_ value: Erasable, erase: @escaping (Erasable) -> Value) { - self._value = UnownedErased.createValueClosure(for: value, erase: erase) - } - - private static func createValueClosure( - for value: Erasable, - erase: @escaping (Erasable) -> Value) -> () -> Value { - { [unowned value] in erase(value) } - } -} diff --git a/Sources/XCoordinator/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift similarity index 94% rename from Sources/XCoordinator/Transition+Init.swift rename to Sources/XCoordinator/View/Transition+Init.swift index d73ae128..ac09c289 100755 --- a/Sources/XCoordinator/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -20,7 +20,7 @@ extension Transition { /// - Parameter presentable: /// The presentable to be shown as a primary view controller. /// - public static func show(_ presentable: Presentable) -> Transition { + public static func show(_ presentable: any Presentable) -> Transition { Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in rootViewController.show( presentable.viewController, @@ -42,7 +42,7 @@ extension Transition { /// - Parameter presentable: /// The presentable to be shown as a detail view controller. /// - public static func showDetail(_ presentable: Presentable) -> Transition { + public static func showDetail(_ presentable: any Presentable) -> Transition { Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in rootViewController.showDetail( presentable.viewController, @@ -67,7 +67,7 @@ extension Transition { /// the current transitioningDelegate and `Animation.default` to reset the transitioningDelegate to use /// the default UIKit animations. /// - public static func presentOnRoot(_ presentable: Presentable, animation: Animation? = nil) -> Transition { + public static func presentOnRoot(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation ) { rootViewController, options, completion in @@ -93,7 +93,7 @@ extension Transition { /// the current transitioningDelegate and `Animation.default` to reset the transitioningDelegate to use /// the default UIKit animations. /// - public static func present(_ presentable: Presentable, animation: Animation? = nil) -> Transition { + public static func present(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation ) { rootViewController, options, completion in @@ -115,7 +115,7 @@ extension Transition { /// - presentable: The presentable to be embedded. /// - container: The container to embed the presentable in. /// - public static func embed(_ presentable: Presentable, in container: Container) -> Transition { + public static func embed(_ presentable: any Presentable, in container: any Container) -> Transition { Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in rootViewController.embed(presentable.viewController, in: container, @@ -227,7 +227,7 @@ extension Transition { /// - route: The route to be triggered on the coordinator. /// - router: The router to trigger the route on. /// - public static func trigger(_ route: R.RouteType, on router: R) -> Transition { + public static func trigger(_ route: RouteType, on router: any Router) -> Transition { Transition(presentables: [], animationInUse: nil) { _, options, completion in router.trigger(route, with: options, completion: completion) } diff --git a/Sources/XCoordinator/UIViewController+Transition.swift b/Sources/XCoordinator/View/UIViewController+Transition.swift similarity index 100% rename from Sources/XCoordinator/UIViewController+Transition.swift rename to Sources/XCoordinator/View/UIViewController+Transition.swift diff --git a/Sources/XCoordinator/ViewCoordinator.swift b/Sources/XCoordinator/View/ViewCoordinator.swift similarity index 100% rename from Sources/XCoordinator/ViewCoordinator.swift rename to Sources/XCoordinator/View/ViewCoordinator.swift diff --git a/Sources/XCoordinator/WeakErased+Router.swift b/Sources/XCoordinator/WeakErased+Router.swift deleted file mode 100644 index c221f506..00000000 --- a/Sources/XCoordinator/WeakErased+Router.swift +++ /dev/null @@ -1,52 +0,0 @@ -// -// WeakErased+Router.swift -// XCoordinator -// -// Created by Paul Kraft on 02.09.19. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -/// -/// A `WeakRouter` is a weak version of a router object to be used in view controllers or view models. -/// -/// - Note: -/// Do not create a `WeakRouter` from a `StrongRouter` since `StrongRouter` is only another wrapper -/// and does not represent the might instantly. -/// Also keep in mind that once the original router object has been deallocated, -/// calling `trigger` on this wrapper will have no effect. -/// -public typealias WeakRouter = WeakErased> - -extension WeakErased: Presentable where Value: Presentable { - - public var viewController: UIViewController! { - wrappedValue?.viewController - } - - public func childTransitionCompleted() { - wrappedValue?.childTransitionCompleted() - } - - public func registerParent(_ presentable: Presentable & AnyObject) { - wrappedValue?.registerParent(presentable) - } - - public func presented(from presentable: Presentable?) { - wrappedValue?.presented(from: presentable) - } - - public func setRoot(for window: UIWindow) { - wrappedValue?.setRoot(for: window) - } - -} - -extension WeakErased: Router where Value: Router { - - public func contextTrigger(_ route: Value.RouteType, with options: TransitionOptions, completion: ContextPresentationHandler?) { - wrappedValue?.contextTrigger(route, with: options, completion: completion) - } - -} diff --git a/Sources/XCoordinator/WeakErased.swift b/Sources/XCoordinator/WeakErased.swift deleted file mode 100755 index 51daf8b8..00000000 --- a/Sources/XCoordinator/WeakErased.swift +++ /dev/null @@ -1,74 +0,0 @@ -// -// WeakErased.swift -// XCoordinator -// -// Created by Paul Kraft on 30.10.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import Foundation - -#if swift(>=5.1) - -/// -/// `WeakErased` is a property wrapper to hold objects with a weak reference when using type-erasure. -/// -/// Create this wrapper using an initial value and a closure to create the type-erased object. -/// Make sure to not create a `WeakErased` wrapper for already type-erased objects, -/// since their reference is most likely instantly lost. -/// -@propertyWrapper -public struct WeakErased { - private var _value: () -> Value? - - /// The type-erased or otherwise mapped version of the value being held weakly. - public var wrappedValue: Value? { - _value() - } -} - -#else - -/// -/// `WeakErased` is a property wrapper to hold objects with a weak reference when using type-erasure. -/// -/// Create this wrapper using an initial value and a closure to create the type-erased object. -/// Make sure to not create a `WeakErased` wrapper for already type-erased objects, -/// since their reference is most likely instantly lost. -/// -public struct WeakErased { - private var _value: () -> Value? - - /// The type-erased or otherwise mapped version of the value being held weakly. - public var wrappedValue: Value? { - _value() - } -} - -#endif - -extension WeakErased { - - /// - /// Create a `WeakErased` wrapper using an initial value and a closure to create the type-erased object. - /// Make sure to not create a `WeakErased` wrapper for already type-erased objects, - /// since their reference is most likely instantly lost. - /// - public init(_ value: Erasable, erase: @escaping (Erasable) -> Value) { - self._value = WeakErased.createValueClosure(for: value, erase: erase) - } - - /// - /// Set a new value by providing a non-type-erased value and a closure to create the type-erased object. - /// - public mutating func set(_ value: Erasable, erase: @escaping (Erasable) -> Value) { - self._value = WeakErased.createValueClosure(for: value, erase: erase) - } - - private static func createValueClosure( - for value: Erasable, - erase: @escaping (Erasable) -> Value) -> () -> Value? { - { [weak value] in value.map(erase) } - } - -} diff --git a/Sources/XCoordinator/XCoordinator.docc/Documentation.md b/Sources/XCoordinator/XCoordinator.docc/Documentation.md new file mode 100644 index 00000000..52d2241e --- /dev/null +++ b/Sources/XCoordinator/XCoordinator.docc/Documentation.md @@ -0,0 +1,378 @@ +# XCoordinator + +“How does an app transition from one view controller to another?”. +This question is common and puzzling regarding iOS development. There are many answers, as every architecture has different implementation variations. Some do it from within the implementation of a view controller, while some use a router/coordinator, an object connecting view models. + +To better answer the question, we are building **XCoordinator**, a navigation framework based on the **Coordinator** pattern. +It's especially useful for implementing MVVM-C, Model-View-ViewModel-Coordinator: + +## 🏃‍♂️Getting started + +Create an enum with all of the navigation paths for a particular flow, i.e. a group of closely connected scenes. (It is up to you when to create a `Route/Coordinator`. As **our rule of thumb**, create a new `Route/Coordinator` whenever a new root view controller, e.g. a new `navigation controller` or a `tab bar controller`, is needed.). + +Whereas the `Route` describes which routes can be triggered in a flow, the `Coordinator` is responsible for the preparation of transitions based on routes being triggered. We could, therefore, prepare multiple coordinators for the same route, which differ in which transitions are executed for each route. + +In the following example, we create the `UserListRoute` enum to define triggers of a flow of our application. `UserListRoute` offers routes to open the home screen, display a list of users, to open a specific user and to log out. The `UserListCoordinator` is implemented to prepare transitions for the triggered routes. When a `UserListCoordinator` is shown, it triggers the `.home` route to display a `HomeViewController`. + +```swift +enum UserListRoute: Route { + case home + case users + case user(String) + case registerUsersPeek(from: Container) + case logout +} + +class UserListCoordinator: NavigationCoordinator { + init() { + super.init(initialRoute: .home) + } + + override func prepareTransition(for route: UserListRoute) -> NavigationTransition { + switch route { + case .home: + let viewController = HomeViewController.instantiateFromNib() + let viewModel = HomeViewModelImpl(router: unownedRouter) + viewController.bind(to: viewModel) + return .push(viewController) + case .users: + let viewController = UsersViewController.instantiateFromNib() + let viewModel = UsersViewModelImpl(router: unownedRouter) + viewController.bind(to: viewModel) + return .push(viewController, animation: .interactiveFade) + case .user(let username): + let coordinator = UserCoordinator(user: username) + return .present(coordinator, animation: .default) + case .registerUsersPeek(let source): + return registerPeek(for: source, route: .users) + case .logout: + return .dismiss() + } + } +} +``` + +Routes are triggered from within Coordinators or ViewModels. In the following, we describe how to trigger routes from within a ViewModel. The router of the current flow is injected into the ViewModel. + +```swift +class HomeViewModel { + unowned let router: any Router + + init(router: any Router) { + self.router = router + } + + /* ... */ + + func usersButtonPressed() { + router.trigger(.users) + } +} +``` + +### 🏗 Organizing an app's structure with XCoordinator + +In general, an app's structure is defined by nesting coordinators and view controllers. You can transition (i.e. `push`, `present`, `pop`, `dismiss`) to a different coordinator whenever your app changes to a different flow. Within a flow, we transition between viewControllers. + +Example: In `UserListCoordinator.prepareTransition(for:)` we change from the `UserListRoute` to the `UserRoute` whenever the `UserListRoute.user` route is triggered. By dismissing a viewController in `UserListRoute.logout`, we additionally switch back to the previous flow - in this case the `HomeRoute`. + +To achieve this behavior, every Coordinator has its own `rootViewController`. This would be a `UINavigationController` in the case of a `NavigationCoordinator`, a `UITabBarController` in the case of a `TabBarCoordinator`, etc. When transitioning to a Coordinator/Router, this `rootViewController` is used as the destination view controller. + +### 🏁 Using XCoordinator from App Launch + +To use coordinators from the launch of the app, make sure to create the app's `window` programmatically in `AppDelegate.swift` (Don't forget to remove `Main Storyboard file base name` from `Info.plist`). Then, set the coordinator as the root of the `window`'s view hierarchy in the `AppDelegate.didFinishLaunching`. Make sure to hold a strong reference to your app's initial coordinator or a `strongRouter` reference. + +```swift +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + let window: UIWindow! = UIWindow() + let router: any Router = AppCoordinator() + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + router.setRoot(for: window) + return true + } +} +``` + +## 🤸‍♂️ Extras + +For more advanced use, XCoordinator offers many more customization options. We introduce custom animated transitions and deep linking. Furthermore, extensions for use in reactive programming with RxSwift/Combine and options to split up huge routes are described. + +### 🌗 Custom Transitions + +Custom animated transitions define presentation and dismissal animations. You can specify `Animation` objects in `prepareTransition(for:)` in your coordinator for several common transitions, such as `present`, `dismiss`, `push` and `pop`. Specifying no animation (`nil`) results in not overriding previously set animations. Use `Animation.default` to reset previously set animation to the default animations UIKit offers. + +```swift +class UsersCoordinator: NavigationCoordinator { + + /* ... */ + + override func prepareTransition(for route: UserRoute) -> NavigationTransition { + switch route { + case .user(let name): + let animation = Animation( + presentationAnimation: YourAwesomePresentationTransitionAnimation(), + dismissalAnimation: YourAwesomeDismissalTransitionAnimation() + ) + let viewController = UserViewController.instantiateFromNib() + let viewModel = UserViewModelImpl(name: name, router: self) + viewController.bind(to: viewModel) + return .push(viewController, animation: animation) + /* ... */ + } + } +} +``` + +### 🛤 Deep Linking + +Deep Linking can be used to chain different routes together. In contrast to the `.multiple` transition, deep linking can identify routers based on previous transitions (e.g. when pushing or presenting a router), which enables chaining of routes of different types. Keep in mind, that you cannot access higher-level routers anymore once you trigger a route on a lower level of the router hierarchy. + +```swift +class AppCoordinator: NavigationCoordinator { + + /* ... */ + + override func prepareTransition(for route: AppRoute) -> NavigationTransition { + switch route { + /* ... */ + case .deep: + return deepLink(AppRoute.login, AppRoute.home, HomeRoute.news, HomeRoute.dismiss) + } + } +} +``` + +⚠️ XCoordinator does not check at compile-time, whether a deep link can be executed. Rather it uses assertionFailures to inform about incorrect chaining at runtime, when it cannot find an appropriate router for a given route. Keep this in mind when changing the structure of your app. + +### 🚏 RedirectionRouter + +Let's assume, there is a route type called `HugeRoute` with more than 10 routes. To decrease coupling, `HugeRoute` needs to be split up into multiple route types. As you will discover, many routes in `HugeRoute` use transitions dependent on a specific rootViewController, such as `push`, `show`, `pop`, etc. If splitting up routes by introducing a new router/coordinator is not an option, XCoordinator has two solutions for you to solve such a case: `RedirectionRouter` or using multiple coordinators with the same rootViewController ([see this section for more information](#using-multiple-coordinators-with-the-same-rootviewcontroller)). + +A `RedirectionRouter` can be used to map a new route type onto a generalized `ParentRoute`. A `RedirectionRouter` is independent of the `TransitionType` of its parent router. You can use `RedirectionRouter.init(viewController:parent:map:)` or subclassing by overriding `mapToParentRoute(_:)` to create a `RedirectionRouter`. + +The following code example illustrates how a `RedirectionRouter` is initialized and used. + +```swift +class ParentCoordinator: NavigationCoordinator { + /* ... */ + + override func prepareTransition(for route: ParentRoute) -> NavigationTransition { + switch route { + /* ... */ + case .child: + let childCoordinator = ChildCoordinator(parent: unownedRouter) + return .push(childCoordinator) + } + } +} + +class ChildCoordinator: RedirectionRouter { + init(parent: UnownedRouter) { + let viewController = UIViewController() + // this viewController is used when performing transitions with the Subcoordinator directly. + super.init(viewController: viewController, parent: parent, map: nil) + } + + /* ... */ + + override func mapToParentRoute(for route: ChildRoute) -> ParentRoute { + // you can map your ChildRoute enum to ParentRoute cases here that will get triggered on the parent router. + } +} +``` + +### 🚏Using multiple coordinators with the same rootViewController + +With XCoordinator 2.0, we introduce the option to use different coordinators with the same rootViewController. +Since you can specify the rootViewController in the initializer of a new coordinator, you can specify an existing coordinator's rootViewController as in the following: + +```swift +class FirstCoordinator: NavigationCoordinator { + /* ... */ + + override func prepareTransition(for route: FirstRoute) -> NavigationTransition { + switch route { + case .secondCoordinator: + let secondCoordinator = SecondCoordinator(rootViewController: self.rootViewController) + addChild(secondCoordinator) + return .none() + // you could also trigger a specific initial route at this point, + // such as `.trigger(SecondRoute.initial, on: secondCoordinator)` + } + } +} +``` + +We suggest to not use initial routes in the initializers of sibling coordinators, but instead using the transition option in the `FirstCoordinator` instead. + +⚠️ If you perform transitions involving a sibling coordinator directly (e.g. pushing a sibling coordinator without overriding its `viewController` property), your app will most likely crash. + +### 🚀 RxSwift/Combine extensions + +Reactive programming can be very useful to keep the state of view and model consistent in a MVVM architecture. Instead of relying on the completion handler of the `trigger` method available in any `Router`, you can also use our RxSwift-extension. In the example application, we use Actions (from the [Action](https://github.com/RxSwiftCommunity/Action) framework) to trigger routes on certain UI events - e.g. to trigger `LoginRoute.home` in `LoginViewModel`, when the login button is tapped. + +```swift +class LoginViewModelImpl: LoginViewModel, LoginViewModelInput, LoginViewModelOutput { + + private let router: UnownedRouter + + private lazy var loginAction = CocoaAction { [unowned self] in + return self.router.rx.trigger(.home) + } + + /* ... */ +} + +``` + +In addition to the above-mentioned approach, the reactive `trigger` extension can also be used to sequence different transitions by using the `flatMap` operator, as can be seen in the following: + +```swift +let doneWithBothTransitions = + router.rx.trigger(.home) + .flatMap { [unowned self] in self.router.rx.trigger(.news) } + .map { true } + .startWith(false) +``` + +When using `XCoordinator` with the `Combine` extensions, you can use `router.publishers.trigger` instead of `router.rx.trigger`. + +## 📚 Documentation & Example app + +To get more information about XCoordinator, check out the [documentation](https://quickbirdeng.github.io/XCoordinator/). +Additionally, this [repository](https://github.com/quickbirdstudios/XCoordinator-Example) serves as an example project using a MVVM architecture with XCoordinator. + +For a MVC example app, have a look at [some presentations](https://github.com/quickbirdstudios/XCoordinator-Talks) we did about the Coordinator pattern and XCoordinator. + +## 👨‍✈️ Why coordinators + +* **Separation of responsibilities** with the coordinator being the only component knowing anything related to the flow of your application. +* **Reusable Views and ViewModels** because they do not contain any navigation logic. +* **Less coupling between components** + +* **Changeable navigation**: Each coordinator is only responsible for one component and does not need to make assumptions about its parent. It can therefore be placed wherever we want to. + +> [The Coordinator](http://khanlou.com/2015/01/the-coordinator/) by **Soroush Khanlou** + + +## ⁉️ Why XCoordinator + +* Actual **navigation code is already written** and abstracted away. +* Clear **separation of concerns**: + - Coordinator: Coordinates routing of a set of routes. + - Route: Describes navigation path. + - Transition: Describe transition type and animation to new view. +* **Reuse** coordinators, routers and transitions in different combinations. +* Full support for **custom transitions/animations**. +* Support for **embedding child views** / container views. +* Generic `BasicCoordinator` classes suitable for many use cases and therefore **less** need to write your **own coordinators**. +* Full **support** for your **own coordinator classes** conforming to our Coordinator protocol + - You can also start with one of the following types to get a head start: `NavigationCoordinator`, `ViewCoordinator`, `TabBarCoordinator` and more. +* Generic AnyRouter type erasure class encapsulates all types of coordinators and routers supporting the same set of routes. Therefore you can **easily replace coordinators**. +* Use of enum for routes gives you **autocompletion** and **type safety** to perform only transition to routes supported by the coordinator. + +## 🔩 Components + +### 🎢 Route + +Describes possible navigation paths within a flow, a collection of closely related scenes. + +### 👨‍✈️ Coordinator / Router + +An object loading views and creating viewModels based on triggered routes. A Coordinator creates and performs transitions to these scenes based on the data transferred via the route. In contrast to the coordinator, a router can be seen as an abstraction from that concept limited to triggering routes. Often, a Router is used to abstract from a specific coordinator in ViewModels. + +#### When to use which Router abstraction + +Since XCoordinator 3.0, we make heavy use of the `any` keyword (e.g. `any Router`) when it comes to the use of a coordinator. You will still need to make sure to reference coordinators the right way to not create memory cycles. + +- Use a **strong reference** to hold child coordinators or to specify a certain router in the `AppDelegate`. +- Use a **weak reference** to hold a coordinator in a viewController or viewModel. It can also be used to keep a reference to a sibling or parent coordinator. +- Use an **unowned reference** to hold a coordinator in a viewController or viewModel. It can also be used to keep a reference to a sibling or parent coordinator. + +Example: + +```swift +let strongRouter: any Router = ... +weak var weakRouter: (any Router)? = ... +unowned let unownedRouter: any Router = ... +``` + +If you want to know more about the differences on how references can be held, have a look [here](https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html). + +### 🌗 Transition + +Transitions describe the navigation from one view to another. Transitions are available based on the type of the root view controller in use. Example: Whereas `ViewTransition` only supports basic transitions that every root view controller supports, `NavigationTransition` adds navigation controller specific transitions. + +The available transition types include: + - **present** presents a view controller on top of the view hierarchy - use **presentOnRoot** in case you want to present from the root view controller + - **embed** embeds a view controller into a container view + - **dismiss** dismisses the top most presented view controller - use **dismissToRoot** to call dismiss on the root view controller + - **none** does nothing, may be used to ignore routes or for testing purposes + - **push** pushes a view controller to the navigation stack (only in `NavigationTransition`) + - **pop** pops the top view controller from the navigation stack (only in `NavigationTransition`) + - **popToRoot** pops all the view controllers on the navigation stack except the root view controller (only in `NavigationTransition`) + + XCoordinator additionally supports common transitions for `UITabBarController`, `UISplitViewController` and `UIPageViewController` root view controllers. + +## 🛠 Installation + +#### CocoaPods + +To integrate XCoordinator into your Xcode project using CocoaPods, add this to your `Podfile`: + +```ruby +pod 'XCoordinator', '~> 2.0' +``` + +To use the RxSwift extensions, add this to your `Podfile`: + +```ruby +pod 'XCoordinator/RxSwift', '~> 2.0' +``` + +To use the Combine extensions, add this to your `Podfile`: + +```ruby +pod 'XCoordinator/Combine', '~> 2.0' +``` + +#### Carthage + +To integrate XCoordinator into your Xcode project using Carthage, add this to your `Cartfile`: + +``` +github "quickbirdstudios/XCoordinator" ~> 2.0 +``` + +Then run `carthage update`. + +If this is your first time using Carthage in the project, you'll need to go through some additional steps as explained [over at Carthage](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application). + +#### Swift Package Manager + +See [this WWDC presentation](https://developer.apple.com/videos/play/wwdc2019/408/) about more information how to adopt Swift packages in your app. + +Specify `https://github.com/quickbirdstudios/XCoordinator.git` as the `XCoordinator` package link. +You can then decide between three different frameworks, i.e. `XCoordinator`, `XCoordinatorRx` and `XCoordinatorCombine`. +While `XCoordinator` contains the main framework, you can choose `XCoordinatorRx` or `XCoordinatorCombine` to get `RxSwift` or `Combine` extensions as well. + +#### Manually + +If you prefer not to use any of the dependency managers, you can integrate XCoordinator into your project manually, by downloading the source code and placing the files on your project directory. + +## 👤 Author +This framework is created with ❤️ by [QuickBird Studios](https://quickbirdstudios.com). + +To get more information on XCoordinator check out [our blog post](https://quickbirdstudios.com/blog/ios-navigation-library-based-on-the-coordinator-pattern/). + +## ❤️ Contributing + +Open an issue if you need help, if you found a bug, or if you want to discuss a feature request. If you feel like having a chat about XCoordinator with the developers and other users, join our [Slack Workspace](https://join.slack.com/t/xcoordinator/shared_invite/enQtNDg4NDAxNTk1ODQ1LTkxYzE3MDM5ZGY1MTVmY2NhNjI0Y2JiYmQ5NTdjZDczZDRjZTg1ZmJlOTZmODYyYzMyYWQ0NzhlNGNkMGIzYjQ). + +Open a PR if you want to make changes to XCoordinator. + +## 📃 License + +XCoordinator is released under an MIT license. See [License.md](https://github.com/quickbirdstudios/XCoordinator/blob/master/LICENSE) for more information. diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index 43760301..f5299814 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -11,30 +11,46 @@ import XCoordinator import RxSwift +public struct ReactiveRouter { + + // MARK: Stored Properties + + fileprivate let base: any Router + + // MARK: Initialization + + fileprivate init(_ base: any Router) { + self.base = base + } + +} + extension Router { /// Use this to access the reactive extensions of `Router` objects. - public var rx: Reactive { + public var rx: ReactiveRouter { // swiftlint:disable:previous identifier_name - Reactive(self) + ReactiveRouter(self) } + } -extension Reactive where Base: Router { +extension ReactiveRouter { + + // MARK: Convenience methods /// /// This method transforms the completion block of a router's trigger method into an observable. /// + /// It uses the default transition options as specified in `Router.trigger`. + /// /// - Parameter route: /// The route to be triggered. /// - /// - Parameter options: - /// Transition options, e.g. defining whether or not the transition should be animated. - /// /// - Returns: /// An observable informing about the completion of the transition. /// - public func trigger(_ route: Base.RouteType, with options: TransitionOptions) -> Observable { + public func trigger(_ route: RouteType, with options: TransitionOptions = .init(animated: true)) -> Observable { Observable.create { [base] observer -> Disposable in base.trigger(route, with: options) { observer.onNext(()) @@ -44,22 +60,7 @@ extension Reactive where Base: Router { } } - // MARK: Convenience methods - - /// - /// This method transforms the completion block of a router's trigger method into an observable. - /// - /// It uses the default transition options as specified in `Router.trigger`. - /// - /// - Parameter route: - /// The route to be triggered. - /// - /// - Returns: - /// An observable informing about the completion of the transition. - /// - public func trigger(_ route: Base.RouteType) -> Observable { - trigger(route, with: TransitionOptions(animated: true)) - } } + #endif diff --git a/Sources/ios.xcconfig b/Sources/ios.xcconfig deleted file mode 100644 index 3a928f37..00000000 --- a/Sources/ios.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -SDKROOT = iphoneos -SUPPORTED_PLATFORMS = iphonesimulator iphoneos -IPHONEOS_DEPLOYMENT_TARGET = 12.0 - -ARCHS = $(ARCHS_STANDARD) -VALID_ARCHS = $(ARCHS_STANDARD) - -VALIDATE_PRODUCT = YES -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks -TARGETED_DEVICE_FAMILY = 1, 2 diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift deleted file mode 100644 index ea3607a1..00000000 --- a/Tests/LinuxMain.swift +++ /dev/null @@ -1,7 +0,0 @@ -import XCTest - -import XCoordinatorTests - -var tests = [XCTestCaseEntry]() -tests += XCoordinatorTests.allTests() -XCTMain(tests) diff --git a/Tests/XCoordinatorTests/AnimationTests.swift b/Tests/XCoordinatorTests/AnimationTests.swift index cfbef18a..7733c1bb 100644 --- a/Tests/XCoordinatorTests/AnimationTests.swift +++ b/Tests/XCoordinatorTests/AnimationTests.swift @@ -35,7 +35,7 @@ class AnimationTests: XCTestCase { } func testSplitCoordinator() { - let coordinator = SplitCoordinator(master: UIViewController(), detail: UIViewController()) + let coordinator = SplitCoordinator(primary: UIViewController(), secondary: UIViewController()) coordinator.setRoot(for: window) testStandardAnimationsCalled(on: coordinator) } diff --git a/Tests/XCoordinatorTests/TransitionTests.swift b/Tests/XCoordinatorTests/TransitionTests.swift index c60e6498..b0456572 100644 --- a/Tests/XCoordinatorTests/TransitionTests.swift +++ b/Tests/XCoordinatorTests/TransitionTests.swift @@ -10,6 +10,8 @@ import UIKit import XCoordinator import XCTest +/* + class TransitionTests: XCTestCase { // MARK: Static properties @@ -106,3 +108,4 @@ class TransitionTests: XCTestCase { } } +*/ diff --git a/Tests/XCoordinatorTests/XCoordinatorTests.xctestplan b/Tests/XCoordinatorTests/XCoordinatorTests.xctestplan deleted file mode 100644 index b8125f08..00000000 --- a/Tests/XCoordinatorTests/XCoordinatorTests.xctestplan +++ /dev/null @@ -1,24 +0,0 @@ -{ - "configurations" : [ - { - "id" : "15E74A77-4992-49D7-9071-88779978ED68", - "name" : "Configuration 1", - "options" : { - - } - } - ], - "defaultOptions" : { - - }, - "testTargets" : [ - { - "target" : { - "containerPath" : "container:XCoordinator.xcodeproj", - "identifier" : "XCoordinator::XCoordinatorTests", - "name" : "XCoordinatorTests" - } - } - ], - "version" : 1 -} diff --git a/XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css b/XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css new file mode 100644 index 00000000..f489ad74 --- /dev/null +++ b/XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */.badge[data-v-b3052e12]{--badge-color:var(--color-badge-default);--badge-dark-color:var(--color-badge-dark-default);font-size:.70588rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:inline-block;padding:2px 10px;white-space:nowrap;background:none;border-radius:var(--badge-border-radius,calc(var(--border-radius, 4px) - 1px));border-style:var(--badge-border-style,solid);border-width:var(--badge-border-width,1px);margin-left:10px;color:var(--badge-color)}.theme-dark .badge[data-v-b3052e12]{--badge-color:var(--badge-dark-color)}.badge-deprecated[data-v-b3052e12]{--badge-color:var(--color-badge-deprecated);--badge-dark-color:var(--color-badge-dark-deprecated)}.badge-beta[data-v-b3052e12]{--badge-color:var(--color-badge-beta);--badge-dark-color:var(--color-badge-dark-beta)}[data-v-7f03310b] .code-listing{background:var(--background,var(--color-code-background));color:var(--text,var(--color-code-plain));border-color:var(--colors-grid,var(--color-grid));border-width:var(--code-border-width,1px);border-style:var(--code-border-style,solid)}[data-v-7f03310b] .code-listing pre{padding:8px 14px;padding-right:0}[data-v-7f03310b] .code-listing pre>code{font-size:.88235rem;line-height:1.66667;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace)}[data-v-7f03310b] *+.code-listing,[data-v-7f03310b] *+.endpoint-example,[data-v-7f03310b] *+.inline-image-container,[data-v-7f03310b] *+aside,[data-v-7f03310b] *+figure,[data-v-7f03310b] .code-listing+*,[data-v-7f03310b] .endpoint-example+*,[data-v-7f03310b] .inline-image-container+*,[data-v-7f03310b] aside+*,[data-v-7f03310b] figure+*{margin-top:1.6em}[data-v-7f03310b] *+dl,[data-v-7f03310b] dl+*{margin-top:.8em}[data-v-7f03310b] img{display:block;margin:auto;max-width:100%}[data-v-7f03310b] ol,[data-v-7f03310b] ol li:not(:first-child),[data-v-7f03310b] ul,[data-v-7f03310b] ul li:not(:first-child){margin-top:.8em}@media only screen and (max-width:735px){[data-v-7f03310b] ol,[data-v-7f03310b] ul{margin-left:1.25rem}}[data-v-7f03310b] dt:not(:first-child){margin-top:.8em}[data-v-7f03310b] dd{margin-left:2em}.topic-icon-wrapper[data-v-384630c1]{display:flex;align-items:center;justify-content:center;height:1.47059rem;flex:0 0 1.294rem;width:1.294rem;margin-right:1rem}.topic-icon[data-v-384630c1]{height:.88235rem;transform:scale(1);-webkit-transform:scale(1);overflow:visible}.topic-icon[data-v-384630c1] img{margin:0;display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.topic-icon.curly-brackets-icon[data-v-384630c1]{height:1rem}.token-method[data-v-5caf1b5b]{font-weight:700}.token-keyword[data-v-5caf1b5b]{color:var(--syntax-keyword,var(--color-syntax-keywords))}.token-number[data-v-5caf1b5b]{color:var(--syntax-number,var(--color-syntax-numbers))}.token-string[data-v-5caf1b5b]{color:var(--syntax-string,var(--color-syntax-strings))}.token-attribute[data-v-5caf1b5b]{color:var(--syntax-attribute,var(--color-syntax-keywords))}.token-internalParam[data-v-5caf1b5b]{color:var(--color-syntax-param-internal-name)}.type-identifier-link[data-v-5caf1b5b]{color:var(--syntax-type,var(--color-syntax-other-type-names))}.token-removed[data-v-5caf1b5b]{background-color:var(--color-highlight-red)}.token-added[data-v-5caf1b5b]{background-color:var(--color-highlight-green)}.decorator[data-v-06ec7395],.label[data-v-06ec7395]{color:var(--colors-secondary-label,var(--color-secondary-label))}.label[data-v-06ec7395]{font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.empty-token[data-v-06ec7395]{font-size:0}.empty-token[data-v-06ec7395]:after{content:"\00a0";font-size:1rem}.conditional-constraints[data-v-1548fd90] code{color:var(--colors-secondary-label,var(--color-secondary-label))}.abstract[data-v-750aa7a8],.link-block[data-v-750aa7a8] .badge{margin-left:2.294rem}.link-block .badge+.badge[data-v-750aa7a8]{margin-left:1rem}.link[data-v-750aa7a8]{display:flex}.link-block .badge[data-v-750aa7a8]{margin-top:.5rem}.link-block.has-inline-element[data-v-750aa7a8]{display:flex;align-items:flex-start;flex-flow:row wrap}.link-block.has-inline-element .badge[data-v-750aa7a8]{margin-left:1rem;margin-top:0}.link-block .has-adjacent-elements[data-v-750aa7a8]{padding-top:5px;padding-bottom:5px;display:inline-flex}.link-block[data-v-750aa7a8],.link[data-v-750aa7a8]{box-sizing:inherit}.link-block.changed[data-v-750aa7a8],.link.changed[data-v-750aa7a8]{padding-right:1rem;padding-left:2.17647rem;padding-top:8px;padding-bottom:8px;display:inline-flex;width:100%;box-sizing:border-box}.link-block.changed.changed[data-v-750aa7a8],.link.changed.changed[data-v-750aa7a8]{padding-right:1rem}@media only screen and (max-width:735px){.link-block.changed[data-v-750aa7a8],.link.changed[data-v-750aa7a8]{padding-left:0;padding-right:0}.link-block.changed.changed[data-v-750aa7a8],.link.changed.changed[data-v-750aa7a8]{padding-right:17px;padding-left:2.17647rem}}@media only screen and (max-width:735px){.link-block.changed[data-v-750aa7a8],.link.changed[data-v-750aa7a8]{padding-left:0;padding-right:0}}.abstract .topic-required[data-v-750aa7a8]:not(:first-child){margin-top:4px}.topic-required[data-v-750aa7a8]{font-size:.8em}.deprecated[data-v-750aa7a8]{text-decoration:line-through}.conditional-constraints[data-v-750aa7a8]{font-size:.82353rem;margin-top:4px} \ No newline at end of file diff --git a/XCoordinator.doccarchive/css/documentation-topic.29351f99.css b/XCoordinator.doccarchive/css/documentation-topic.29351f99.css new file mode 100644 index 00000000..5807bf13 --- /dev/null +++ b/XCoordinator.doccarchive/css/documentation-topic.29351f99.css @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */.betainfo[data-v-0f5e5efb]{font-size:.94118rem;padding:3rem 0;background-color:var(--color-fill-secondary)}.full-width-container .betainfo-container[data-v-0f5e5efb]{max-width:820px;margin-left:auto;margin-right:auto;padding-left:80px;padding-right:80px;box-sizing:border-box}@media print{.full-width-container .betainfo-container[data-v-0f5e5efb]{padding-left:20px;padding-right:20px;max-width:none}}@media only screen and (min-width:1251px){.full-width-container .betainfo-container[data-v-0f5e5efb]{max-width:980px}}@media only screen and (min-width:1500px){.full-width-container .betainfo-container[data-v-0f5e5efb]{max-width:1080px}}@media only screen and (max-width:735px){.full-width-container .betainfo-container[data-v-0f5e5efb]{width:auto;padding-left:20px;padding-right:20px}}.static-width-container .betainfo-container[data-v-0f5e5efb]{margin-left:auto;margin-right:auto;width:980px}@media only screen and (max-width:1250px){.static-width-container .betainfo-container[data-v-0f5e5efb]{width:692px}}@media only screen and (max-width:735px){.static-width-container .betainfo-container[data-v-0f5e5efb]{width:87.5%}}.betainfo-label[data-v-0f5e5efb]{font-weight:600;font-size:.94118rem}.betainfo-content[data-v-0f5e5efb] p{margin-bottom:10px}.summary-section[data-v-3aa6f694]:last-of-type{margin-right:0}@media only screen and (max-width:735px){.summary-section[data-v-3aa6f694]{margin-right:0}}.title[data-v-6796f6ea]{color:#fff;font-size:.82353rem;margin-right:.5rem;text-rendering:optimizeLegibility}.documentation-hero--disabled .title[data-v-6796f6ea]{color:var(--colors-text,var(--color-text))}.language[data-v-0de98d61]{padding-bottom:10px;justify-content:flex-end}.language-list[data-v-0de98d61],.language[data-v-0de98d61]{font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-top:0;display:flex;align-items:center}.language-option.swift[data-v-0de98d61]{padding-right:10px;border-right:1px solid var(--color-fill-gray-tertiary)}.language-option.objc[data-v-0de98d61]{padding-left:10px}.language-option.active[data-v-0de98d61],.language-option.router-link-exact-active[data-v-0de98d61]{color:#ccc}.documentation-hero--disabled .language-option.active[data-v-0de98d61],.documentation-hero--disabled .language-option.router-link-exact-active[data-v-0de98d61]{color:var(--colors-secondary-label,var(--color-secondary-label))}.documentation-hero[data-v-3ec838d1]{background:#000;color:var(--color-documentation-intro-figure,#fff);overflow:hidden;text-align:left;position:relative;padding-right:var(--doc-hero-right-offset)}.documentation-hero[data-v-3ec838d1]:before{content:"";background:var(--color-documentation-intro-fill,#2a2a2a);position:absolute;width:100%;left:0;top:-50%;height:150%;right:0}.documentation-hero[data-v-3ec838d1]:after{background:transparent;opacity:.7;width:100%;position:absolute;content:"";height:100%;left:0;top:0}.documentation-hero .icon[data-v-3ec838d1]{position:absolute;margin-top:10px;margin-right:25px;right:0;width:250px;height:calc(100% - 20px);box-sizing:border-box}@media only screen and (max-width:735px){.documentation-hero .icon[data-v-3ec838d1]{display:none}}.documentation-hero .background-icon[data-v-3ec838d1]{color:var(--color-documentation-intro-accent,#161616);display:block;width:250px;height:auto;opacity:1;position:absolute;top:50%;left:0;transform:translateY(-50%);max-height:100%}.documentation-hero .background-icon[data-v-3ec838d1] img,.documentation-hero .background-icon[data-v-3ec838d1] svg{width:100%;height:100%}.documentation-hero__content[data-v-3ec838d1]{padding-top:2.35294rem;padding-bottom:40px;position:relative;z-index:1}.full-width-container .documentation-hero__content[data-v-3ec838d1]{max-width:820px;margin-left:auto;margin-right:auto;padding-left:80px;padding-right:80px;box-sizing:border-box}@media print{.full-width-container .documentation-hero__content[data-v-3ec838d1]{padding-left:20px;padding-right:20px;max-width:none}}@media only screen and (min-width:1251px){.full-width-container .documentation-hero__content[data-v-3ec838d1]{max-width:980px}}@media only screen and (min-width:1500px){.full-width-container .documentation-hero__content[data-v-3ec838d1]{max-width:1080px}}@media only screen and (max-width:735px){.full-width-container .documentation-hero__content[data-v-3ec838d1]{width:auto;padding-left:20px;padding-right:20px}}.static-width-container .documentation-hero__content[data-v-3ec838d1]{margin-left:auto;margin-right:auto;width:980px}@media only screen and (max-width:1250px){.static-width-container .documentation-hero__content[data-v-3ec838d1]{width:692px}}@media only screen and (max-width:735px){.static-width-container .documentation-hero__content[data-v-3ec838d1]{width:87.5%}}.documentation-hero__above-content[data-v-3ec838d1]{position:relative;z-index:1}.documentation-hero--disabled[data-v-3ec838d1]{background:none;color:var(--colors-text,var(--color-text))}.documentation-hero--disabled[data-v-3ec838d1]:after,.documentation-hero--disabled[data-v-3ec838d1]:before{content:none}.short-hero[data-v-3ec838d1]{padding-top:3.52941rem;padding-bottom:3.52941rem}.extra-bottom-padding[data-v-3ec838d1]{padding-bottom:3.82353rem}.theme-dark[data-v-3ec838d1] a:not(.button-cta){color:#09f}ul[data-v-f919e820]{list-style-type:none;margin:0}.parent-item .base-link[data-v-f919e820]{font-weight:700}.base-link[data-v-f919e820]{color:var(--color-figure-gray-secondary);font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:inline-block;margin-bottom:5px;transition:color .15s ease-in;max-width:100%}.active .base-link[data-v-f919e820]{color:var(--color-text)}.abstract[data-v-702ec04e]{font-size:1.23529rem;line-height:1.38095;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:735px){.abstract[data-v-702ec04e]{font-size:1.11765rem;line-height:1.42105;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}[data-v-702ec04e] p:last-child{margin-bottom:0}.container[data-v-6e075935]{padding-bottom:40px}.full-width-container .container[data-v-6e075935]{max-width:820px;margin-left:auto;margin-right:auto;padding-left:80px;padding-right:80px;box-sizing:border-box}@media print{.full-width-container .container[data-v-6e075935]{padding-left:20px;padding-right:20px;max-width:none}}@media only screen and (min-width:1251px){.full-width-container .container[data-v-6e075935]{max-width:980px}}@media only screen and (min-width:1500px){.full-width-container .container[data-v-6e075935]{max-width:1080px}}@media only screen and (max-width:735px){.full-width-container .container[data-v-6e075935]{width:auto;padding-left:20px;padding-right:20px}}.static-width-container .container[data-v-6e075935]{margin-left:auto;margin-right:auto;width:980px}@media only screen and (max-width:1250px){.static-width-container .container[data-v-6e075935]{width:692px}}@media only screen and (max-width:735px){.static-width-container .container[data-v-6e075935]{width:87.5%}}.title[data-v-6e075935]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);padding-top:40px;border-top-color:var(--color-grid);border-top-style:solid;border-top-width:var(--content-table-title-border-width,1px)}@media only screen and (max-width:1250px){.title[data-v-6e075935]{font-size:1.64706rem;line-height:1.14286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.title[data-v-6e075935]{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.title+.contenttable-section[data-v-4aae1079]{margin-top:0}.contenttable-section[data-v-4aae1079]{align-items:baseline;padding-top:2.353rem}.contenttable-section[data-v-4aae1079]:last-child{margin-bottom:0}[data-v-4aae1079] .contenttable-title{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-4aae1079] .contenttable-title{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.contenttable-section[data-v-4aae1079]{align-items:unset;border-top:none;display:inherit;margin:0}.section-content[data-v-4aae1079],.section-title[data-v-4aae1079]{padding:0}[data-v-4aae1079] .contenttable-title{margin:0 0 2.353rem 0;padding-bottom:.5rem}}.section-content>.content[data-v-6cec8012],.topic[data-v-6cec8012]{margin-top:15px}.no-title .section-content>.content[data-v-6cec8012]:first-child,.no-title .topic[data-v-6cec8012]:first-child{margin-top:0}.datalist dd{padding-left:2rem}.datalist dt{font-weight:600;padding-left:1rem;padding-top:1.64706rem}.datalist dt:first-of-type{padding-top:0}.source[data-v-5a91c7c4]{background:var(--background,var(--color-code-background));border-color:var(--color-grid);color:var(--text,var(--color-code-plain));border-style:solid;border-width:1px;padding:8px 14px;speak:literal-punctuation;line-height:25px;-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.source.has-multiple-lines[data-v-5a91c7c4],.source[data-v-5a91c7c4]{border-radius:var(--border-radius,4px)}.source>code[data-v-5a91c7c4]{font-size:.88235rem;line-height:1.66667;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace);display:block}.platforms[data-v-c5ecdd3e]{font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-bottom:.45rem;margin-top:1.6em}.changed .platforms[data-v-c5ecdd3e]{padding-left:.588rem}.platforms[data-v-c5ecdd3e]:first-of-type{margin-top:1rem}.source[data-v-c5ecdd3e]{margin:14px 0}.platforms+.source[data-v-c5ecdd3e]{margin:0}.changed.declaration-group[data-v-c5ecdd3e]{background:var(--background,var(--color-code-background))}.changed .source[data-v-c5ecdd3e]{background:none;border:none;margin-top:0;margin-bottom:0;margin-left:2.17647rem;padding-left:0}.declaration-diff[data-v-b3e21c4a]{background:var(--background,var(--color-code-background))}.declaration-diff-version[data-v-b3e21c4a]{padding-left:.588rem;padding-left:2.17647rem;font-size:1rem;line-height:1.52941;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-figure-gray-secondary);margin:0}.declaration-diff-current[data-v-b3e21c4a]{padding-top:8px;padding-bottom:5px}.declaration-diff-previous[data-v-b3e21c4a]{padding-top:5px;padding-bottom:8px;background-color:var(--color-changes-modified-previous-background);border-radius:0 0 var(--border-radius,4px) var(--border-radius,4px);position:relative}.declaration-source-link[data-v-ad6ea67c]{font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:flex;align-items:center;margin-top:-4px}.declaration-icon[data-v-ad6ea67c]{width:1em;margin-right:5px}.conditional-constraints[data-v-586930aa]{margin:1.17647rem 0 3rem 0}.type[data-v-791bac44]:first-letter{text-transform:capitalize}.detail-type[data-v-55ba4aa2]{font-weight:600;padding-left:1rem;padding-top:1.64706rem}.detail-type[data-v-55ba4aa2]:first-child{padding-top:0}@media only screen and (max-width:735px){.detail-type[data-v-55ba4aa2]{padding-left:0}}.detail-content[data-v-55ba4aa2]{padding-left:2rem}@media only screen and (max-width:735px){.detail-content[data-v-55ba4aa2]{padding-left:0}}.param-name[data-v-ac6bef9a]{font-weight:600;padding-left:1rem;padding-top:1.64706rem}.param-name[data-v-ac6bef9a]:first-child{padding-top:0}@media only screen and (max-width:735px){.param-name[data-v-ac6bef9a]{padding-left:0}}.param-content[data-v-ac6bef9a]{padding-left:2rem}@media only screen and (max-width:735px){.param-content[data-v-ac6bef9a]{padding-left:0}}.param-content[data-v-ac6bef9a] dt{font-weight:600}.param-content[data-v-ac6bef9a] dd{margin-left:1em}.parameters-table[data-v-31e03854] .change-added,.parameters-table[data-v-31e03854] .change-removed{display:inline-block;max-width:100%}.parameters-table[data-v-31e03854] .change-removed,.parameters-table[data-v-31e03854] .token-removed{text-decoration:line-through}.param[data-v-31e03854]{font-size:.88235rem;box-sizing:border-box}.param.changed[data-v-31e03854]{display:flex;flex-flow:row wrap;padding-right:1rem;padding-left:2.17647rem;padding-top:8px;padding-bottom:8px;display:inline-flex;width:100%;box-sizing:border-box;padding-left:0}.param.changed.changed[data-v-31e03854]{padding-right:1rem}@media only screen and (max-width:735px){.param.changed[data-v-31e03854]{padding-left:0;padding-right:0}.param.changed.changed[data-v-31e03854]{padding-right:17px;padding-left:2.17647rem}}@media only screen and (max-width:735px){.param.changed[data-v-31e03854]{padding-left:0;padding-right:0}}.param.changed+.param.changed[data-v-31e03854]{margin-top:.82353rem}.changed .param-content[data-v-31e03854],.changed .param-symbol[data-v-31e03854]{padding-top:2px;padding-bottom:2px}@media only screen and (max-width:735px){.changed .param-content[data-v-31e03854]{padding-top:0}.changed .param-symbol[data-v-31e03854]{padding-bottom:0}}.param-symbol[data-v-31e03854]{text-align:right}.changed .param-symbol[data-v-31e03854]{padding-left:2.17647rem}@media only screen and (max-width:735px){.param-symbol[data-v-31e03854]{text-align:left}.changed .param-symbol[data-v-31e03854]{padding-left:0}}.param-symbol[data-v-31e03854] .type-identifier-link{color:var(--color-link)}.param+.param[data-v-31e03854]{margin-top:1.64706rem}.param+.param[data-v-31e03854]:first-child{margin-top:0}.param-content[data-v-31e03854]{padding-left:1rem;padding-left:2.17647rem}@media only screen and (max-width:735px){.param-content[data-v-31e03854]{padding-left:0;padding-right:0}}.property-metadata[data-v-8590589e]{color:var(--color-figure-gray-secondary)}.property-text{font-weight:700}.property-metadata[data-v-0a648a1e]{color:var(--color-figure-gray-secondary)}.property-name[data-v-25cd22fa]{font-weight:700}.property-name.deprecated[data-v-25cd22fa]{text-decoration:line-through}.property-deprecated[data-v-25cd22fa]{margin-left:0}.content[data-v-25cd22fa],.content[data-v-25cd22fa] p:first-child{display:inline}.response-mimetype[data-v-2faa6020]{color:var(--color-figure-gray-secondary)}.part-name[data-v-37777476]{font-weight:700}.content[data-v-37777476],.content[data-v-37777476] p:first-child{display:inline}.param-name[data-v-05f57530]{font-weight:700}.param-name.deprecated[data-v-05f57530]{text-decoration:line-through}.param-deprecated[data-v-05f57530]{margin-left:0}.content[data-v-05f57530],.content[data-v-05f57530] p:first-child{display:inline}.response-name[data-v-881189f4],.response-reason[data-v-881189f4]{font-weight:700}@media only screen and (max-width:735px){.response-reason[data-v-881189f4]{display:none}}.response-name>code>.reason[data-v-881189f4]{display:none}@media only screen and (max-width:735px){.response-name>code>.reason[data-v-881189f4]{display:initial}}[data-v-2aa0f0dc] h2{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-2aa0f0dc] h2{font-size:1.64706rem;line-height:1.14286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){[data-v-2aa0f0dc] h2{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.primary-content.with-border[data-v-2aa0f0dc]:before{border-top-color:var(--colors-grid,var(--color-grid));border-top-style:solid;border-top-width:1px;content:"";display:block}.primary-content[data-v-2aa0f0dc]>*{margin-bottom:40px;margin-top:40px}.primary-content[data-v-2aa0f0dc]>:first-child{margin-top:2.353rem}.relationships-list[data-v-6497632e]{list-style:none}.relationships-list.column[data-v-6497632e]{margin-left:0;margin-top:15px}.relationships-list.inline[data-v-6497632e]{display:flex;flex-direction:row;flex-wrap:wrap;margin-top:15px;margin-left:0}.relationships-list.inline li[data-v-6497632e]:not(:last-child):after{content:",\00a0"}.relationships-list.changed[data-v-6497632e]{padding-right:1rem;padding-left:2.17647rem;padding-top:8px;padding-bottom:8px;display:inline-flex;width:100%;box-sizing:border-box}.relationships-list.changed.changed[data-v-6497632e]{padding-right:1rem}@media only screen and (max-width:735px){.relationships-list.changed[data-v-6497632e]{padding-left:0;padding-right:0}.relationships-list.changed.changed[data-v-6497632e]{padding-right:17px;padding-left:2.17647rem}}@media only screen and (max-width:735px){.relationships-list.changed[data-v-6497632e]{padding-left:0;padding-right:0}}.relationships-list.changed[data-v-6497632e]:after{margin-top:.61765rem}.relationships-list.changed.column[data-v-6497632e]{display:block;box-sizing:border-box}.relationships-item[data-v-6497632e],.relationships-list[data-v-6497632e]{box-sizing:inherit}.conditional-constraints[data-v-6497632e]{font-size:.82353rem;margin:.17647rem 0 .58824rem 1.17647rem}.availability[data-v-3b784eb3]{display:flex;flex-flow:row wrap;gap:10px;margin-top:20px}.badge[data-v-3b784eb3]{margin:0}.technology[data-v-3b784eb3]{display:inline-flex;align-items:center}.tech-icon[data-v-3b784eb3]{height:12px;padding-right:5px;fill:var(--badge-color)}.theme-dark .tech-icon[data-v-3b784eb3]{fill:var(--badge-color)}.beta[data-v-3b784eb3]{color:var(--color-badge-beta)}.theme-dark .beta[data-v-3b784eb3]{color:var(--color-badge-dark-beta)}.deprecated[data-v-3b784eb3]{color:var(--color-badge-deprecated)}.theme-dark .deprecated[data-v-3b784eb3]{color:var(--color-badge-dark-deprecated)}.changed[data-v-3b784eb3]{padding-left:26px}.changed[data-v-3b784eb3]:after{content:none}.changed[data-v-3b784eb3]:before{background-image:url(../img/modified-icon.f496e73d.svg);background-repeat:no-repeat;bottom:0;content:" ";margin:auto;margin-right:8px;position:absolute;top:0;width:16px;height:16px;left:5px}@media screen{[data-color-scheme=dark] .changed[data-v-3b784eb3]:before{background-image:url(../img/modified-icon.f496e73d.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .changed[data-v-3b784eb3]:before{background-image:url(../img/modified-icon.f496e73d.svg)}}.theme-dark .changed[data-v-3b784eb3]:before{background-image:url(../img/modified-icon.f496e73d.svg)}.changed-added[data-v-3b784eb3]{border-color:var(--color-changes-added)}.changed-added[data-v-3b784eb3]:before{background-image:url(../img/added-icon.d6f7e47d.svg)}@media screen{[data-color-scheme=dark] .changed-added[data-v-3b784eb3]:before{background-image:url(../img/added-icon.d6f7e47d.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .changed-added[data-v-3b784eb3]:before{background-image:url(../img/added-icon.d6f7e47d.svg)}}.theme-dark .changed-added[data-v-3b784eb3]:before{background-image:url(../img/added-icon.d6f7e47d.svg)}.changed-deprecated[data-v-3b784eb3]{border-color:var(--color-changes-deprecated)}.changed-deprecated[data-v-3b784eb3]:before{background-image:url(../img/deprecated-icon.015b4f17.svg)}@media screen{[data-color-scheme=dark] .changed-deprecated[data-v-3b784eb3]:before{background-image:url(../img/deprecated-icon.015b4f17.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .changed-deprecated[data-v-3b784eb3]:before{background-image:url(../img/deprecated-icon.015b4f17.svg)}}.theme-dark .changed-deprecated[data-v-3b784eb3]:before{background-image:url(../img/deprecated-icon.015b4f17.svg)}.changed-modified[data-v-3b784eb3]{border-color:var(--color-changes-modified)}.eyebrow[data-v-4492c658]{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-documentation-intro-eyebrow,#ccc);display:block;margin-bottom:1.17647rem}@media only screen and (max-width:735px){.eyebrow[data-v-4492c658]{font-size:1.11765rem;line-height:1.21053;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.documentation-hero--disabled .eyebrow[data-v-4492c658]{color:var(--colors-secondary-label,var(--color-secondary-label))}.title[data-v-4492c658]{font-size:2.35294rem;line-height:1.1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-documentation-intro-title,#fff);margin-bottom:.70588rem}@media only screen and (max-width:1250px){.title[data-v-4492c658]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.title[data-v-4492c658]{font-size:1.64706rem;line-height:1.14286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.documentation-hero--disabled .title[data-v-4492c658]{color:var(--colors-header-text,var(--color-header-text))}small[data-v-4492c658]{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);padding-left:10px}@media only screen and (max-width:1250px){small[data-v-4492c658]{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}small[data-v-4492c658]:before{content:attr(data-tag-name)}small.Beta[data-v-4492c658]{color:var(--color-badge-beta)}.theme-dark small.Beta[data-v-4492c658]{color:var(--color-badge-dark-beta)}small.Deprecated[data-v-4492c658]{color:var(--color-badge-deprecated)}.theme-dark small.Deprecated[data-v-4492c658]{color:var(--color-badge-dark-deprecated)}.OnThisPageStickyContainer[data-v-08d4053b]{margin-top:2.353rem;position:sticky;top:3.64706rem;align-self:flex-start;flex:0 0 auto;width:192px;padding-right:1.29412rem;box-sizing:border-box;padding-bottom:.4em;max-height:calc(100vh - 3.64706rem);overflow:auto}@media print{.OnThisPageStickyContainer[data-v-08d4053b]{display:none}}@media only screen and (max-width:735px){.OnThisPageStickyContainer[data-v-08d4053b]{display:none}}.doc-topic[data-v-666eaa31]{display:flex;flex-direction:column;height:100%}.doc-topic.with-on-this-page[data-v-666eaa31]{--doc-hero-right-offset:192px}#main[data-v-666eaa31]{outline-style:none;height:100%}.container[data-v-666eaa31]{outline-style:none}.full-width-container .container[data-v-666eaa31]{max-width:820px;margin-left:auto;margin-right:auto;padding-left:80px;padding-right:80px;box-sizing:border-box}@media print{.full-width-container .container[data-v-666eaa31]{padding-left:20px;padding-right:20px;max-width:none}}@media only screen and (min-width:1251px){.full-width-container .container[data-v-666eaa31]{max-width:980px}}@media only screen and (min-width:1500px){.full-width-container .container[data-v-666eaa31]{max-width:1080px}}@media only screen and (max-width:735px){.full-width-container .container[data-v-666eaa31]{width:auto;padding-left:20px;padding-right:20px}}.static-width-container .container[data-v-666eaa31]{margin-left:auto;margin-right:auto;width:980px}@media only screen and (max-width:1250px){.static-width-container .container[data-v-666eaa31]{width:692px}}@media only screen and (max-width:735px){.static-width-container .container[data-v-666eaa31]{width:87.5%}}.description[data-v-666eaa31]{margin-bottom:2.353rem}.description[data-v-666eaa31]:empty{display:none}.description.after-enhanced-hero[data-v-666eaa31]{margin-top:2.353rem}.description[data-v-666eaa31] .content+*{margin-top:.8em}[data-v-666eaa31] .no-primary-content{--content-table-title-border-width:0px}.sample-download[data-v-666eaa31]{margin-top:20px}[data-v-666eaa31] h3{font-size:1.64706rem;line-height:1.14286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-666eaa31] h3{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){[data-v-666eaa31] h3{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}[data-v-666eaa31] h4{font-size:1.41176rem;line-height:1.16667;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-666eaa31] h4{font-size:1.23529rem;line-height:1.19048;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}[data-v-666eaa31] h5{font-size:1.29412rem;line-height:1.18182;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-666eaa31] h5{font-size:1.17647rem;line-height:1.2;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){[data-v-666eaa31] h5{font-size:1.05882rem;line-height:1.44444;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}[data-v-666eaa31] h6{font-size:1rem;line-height:1.47059;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.doc-content-wrapper[data-v-666eaa31]{display:flex;justify-content:center}.doc-content-wrapper .doc-content[data-v-666eaa31]{min-width:0;width:100%}.with-on-this-page .doc-content-wrapper .doc-content[data-v-666eaa31]{max-width:820px}@media only screen and (min-width:1251px){.with-on-this-page .doc-content-wrapper .doc-content[data-v-666eaa31]{max-width:980px}}@media only screen and (min-width:1500px){.with-on-this-page .doc-content-wrapper .doc-content[data-v-666eaa31]{max-width:1080px}}.tag[data-v-3b809bfa]{display:inline-block;padding-right:.58824rem}.tag[data-v-3b809bfa]:focus{outline:none}.tag button[data-v-3b809bfa]{color:var(--color-figure-gray);background-color:var(--color-fill-tertiary);font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);border-radius:.82353rem;padding:.23529rem .58824rem;white-space:nowrap;border:1px solid transparent}@media (hover:hover){.tag button[data-v-3b809bfa]:hover{transition:background-color .2s,color .2s;background-color:var(--color-fill-blue);color:#fff}}.tag button[data-v-3b809bfa]:focus:active{background-color:var(--color-fill-blue);color:#fff}.fromkeyboard .tag button[data-v-3b809bfa]:focus,.tag button.focus[data-v-3b809bfa],.tag button[data-v-3b809bfa]:focus{box-shadow:0 0 0 4px var(--color-focus-color);outline:none;border-color:var(--color-focus-border-color)}.tags[data-v-4b231516]{position:relative;margin:0;list-style:none;box-sizing:border-box;transition:padding-right .8s,padding-bottom .8s,max-height 1s,opacity 1s;padding:0}.tags .scroll-wrapper[data-v-4b231516]{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-color:var(--color-figure-gray-tertiary) transparent;scrollbar-width:thin}.tags .scroll-wrapper[data-v-4b231516]::-webkit-scrollbar{height:0}@supports not ((-webkit-touch-callout:none) or (scrollbar-width:none) or (-ms-overflow-style:none)){.tags .scroll-wrapper.scrolling[data-v-4b231516]{--scrollbar-height:11px;padding-top:var(--scrollbar-height);height:calc(var(--scroll-target-height) - var(--scrollbar-height));display:flex;align-items:center}}.tags .scroll-wrapper.scrolling[data-v-4b231516]::-webkit-scrollbar{height:11px}.tags .scroll-wrapper.scrolling[data-v-4b231516]::-webkit-scrollbar-thumb{border-radius:10px;background-color:var(--color-figure-gray-tertiary);border:2px solid transparent;background-clip:padding-box}.tags .scroll-wrapper.scrolling[data-v-4b231516]::-webkit-scrollbar-track-piece:end{margin-right:8px}.tags .scroll-wrapper.scrolling[data-v-4b231516]::-webkit-scrollbar-track-piece:start{margin-left:8px}.tags ul[data-v-4b231516]{margin:0;padding:0;display:flex}.filter[data-v-449fced2]{--input-vertical-padding:.76471rem;--input-height:1.64706rem;--input-border-color:var(--color-fill-gray-secondary);--input-text:var(--color-fill-gray-secondary);position:relative;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:calc(var(--border-radius, 4px) + 1px)}.fromkeyboard .filter[data-v-449fced2]:focus{outline:none}.filter__top-wrapper[data-v-449fced2]{display:flex}.filter__filter-button[data-v-449fced2]{position:relative;z-index:1;cursor:text;margin-left:.58824rem;margin-right:.17647rem}@media only screen and (max-width:735px){.filter__filter-button[data-v-449fced2]{margin-right:.41176rem}}.filter__filter-button .svg-icon[data-v-449fced2]{fill:var(--input-text);display:block;height:21px}.filter__filter-button.blue[data-v-449fced2]>*{fill:var(--color-figure-blue);color:var(--color-figure-blue)}.filter.focus .filter__wrapper[data-v-449fced2]{box-shadow:0 0 0 3pt var(--color-focus-color);--input-border-color:var(--color-fill-blue)}.filter__wrapper[data-v-449fced2]{border:1px solid var(--input-border-color);background:var(--color-fill);border-radius:var(--border-radius,4px)}.filter__wrapper--reversed[data-v-449fced2]{display:flex;flex-direction:column-reverse}.filter__suggested-tags[data-v-449fced2]{border-top:1px solid var(--color-fill-gray-tertiary);z-index:1;overflow:hidden}.filter__suggested-tags[data-v-449fced2] ul{padding:var(--input-vertical-padding) .52941rem;border:1px solid transparent;border-bottom-left-radius:calc(var(--border-radius, 4px) - 1px);border-bottom-right-radius:calc(var(--border-radius, 4px) - 1px)}.fromkeyboard .filter__suggested-tags[data-v-449fced2] ul:focus{outline:none;box-shadow:0 0 0 5px var(--color-focus-color)}.filter__wrapper--reversed .filter__suggested-tags[data-v-449fced2]{border-bottom:1px solid var(--color-fill-gray-tertiary);border-top:none}.filter__selected-tags[data-v-449fced2]{z-index:1;padding-left:4px;margin:-4px 0}@media only screen and (max-width:735px){.filter__selected-tags[data-v-449fced2]{padding-left:0}}.filter__selected-tags[data-v-449fced2] ul{padding:4px}@media only screen and (max-width:735px){.filter__selected-tags[data-v-449fced2] ul{padding-right:.41176rem}}.filter__selected-tags[data-v-449fced2] ul .tag:last-child{padding-right:0}.filter__delete-button[data-v-449fced2]{position:relative;margin:0;z-index:1;border-radius:100%}.fromkeyboard .filter__delete-button[data-v-449fced2]:focus{box-shadow:0 0 0 4px var(--color-focus-color);outline:none}.filter__delete-button .clear-rounded-icon[data-v-449fced2]{height:.70588rem;width:.70588rem;fill:var(--input-text);display:block}.filter__delete-button-wrapper[data-v-449fced2]{display:flex;align-items:center;padding-right:.58824rem;padding-left:.17647rem;border-top-right-radius:var(--border-radius,4px);border-bottom-right-radius:var(--border-radius,4px)}.filter__input-label[data-v-449fced2]{position:relative;flex-grow:1;height:var(--input-height);padding:var(--input-vertical-padding) 0}.filter__input-label[data-v-449fced2]:after{content:attr(data-value);visibility:hidden;width:auto;white-space:nowrap;min-width:130px;display:block;text-indent:.41176rem}@media only screen and (max-width:735px){.filter__input-label[data-v-449fced2]:after{text-indent:.17647rem}}.filter__input-box-wrapper[data-v-449fced2]{overflow-y:hidden;-ms-overflow-style:none;scrollbar-color:var(--color-figure-gray-tertiary) transparent;scrollbar-width:thin;display:flex;overflow-x:auto;align-items:center;cursor:text;flex:1}.filter__input-box-wrapper[data-v-449fced2]::-webkit-scrollbar{height:0}@supports not ((-webkit-touch-callout:none) or (scrollbar-width:none) or (-ms-overflow-style:none)){.filter__input-box-wrapper.scrolling[data-v-449fced2]{--scrollbar-height:11px;padding-top:var(--scrollbar-height);height:calc(var(--scroll-target-height) - var(--scrollbar-height));display:flex;align-items:center}}.filter__input-box-wrapper.scrolling[data-v-449fced2]::-webkit-scrollbar{height:11px}.filter__input-box-wrapper.scrolling[data-v-449fced2]::-webkit-scrollbar-thumb{border-radius:10px;background-color:var(--color-figure-gray-tertiary);border:2px solid transparent;background-clip:padding-box}.filter__input-box-wrapper.scrolling[data-v-449fced2]::-webkit-scrollbar-track-piece:end{margin-right:8px}.filter__input-box-wrapper.scrolling[data-v-449fced2]::-webkit-scrollbar-track-piece:start{margin-left:8px}.filter__input[data-v-449fced2]{font-size:1.23529rem;line-height:1.38095;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-text);height:var(--input-height);border:none;width:100%;position:absolute;background:transparent;z-index:1;text-indent:.41176rem}@media only screen and (max-width:735px){.filter__input[data-v-449fced2]{font-size:1.11765rem;line-height:1.42105;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);text-indent:.17647rem}}.filter__input[data-v-449fced2]:focus{outline:none}.filter__input[placeholder][data-v-449fced2]::-moz-placeholder{color:var(--input-text);opacity:1}.filter__input[placeholder][data-v-449fced2]::placeholder{color:var(--input-text);opacity:1}.filter__input[placeholder][data-v-449fced2]:-ms-input-placeholder{color:var(--input-text)}.filter__input[placeholder][data-v-449fced2]::-ms-input-placeholder{color:var(--input-text)}.highlight[data-v-1c4190f0]{display:inline}.highlight[data-v-1c4190f0] .match{font-weight:600;background:var(--color-fill-light-blue-secondary)}.quick-navigation input[type=text][data-v-483fdfd0]{font-size:1.23529rem;line-height:1.38095;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:735px){.quick-navigation input[type=text][data-v-483fdfd0]{font-size:1.11765rem;line-height:1.42105;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.quick-navigation__container[data-v-483fdfd0]{background-color:var(--color-fill);border:solid 1px var(--color-fill-gray);border-radius:var(--border-radius,4px);margin:0 .94118rem}.quick-navigation__container>[data-v-483fdfd0]{--input-text:var(--color-figure-gray-secondary)}.quick-navigation__filter[data-v-483fdfd0]{--input-border-color:var(--color-fill)}.quick-navigation__filter.focus+.quick-navigation__match-list[data-v-483fdfd0]{border-top:0}.quick-navigation__magnifier-icon-container[data-v-483fdfd0]{width:1.05882rem}.quick-navigation__magnifier-icon-container>[data-v-483fdfd0]{width:100%}.quick-navigation__magnifier-icon-container.blue .magnifier-icon[data-v-483fdfd0]{fill:var(--color-figure-blue);color:var(--color-figure-blue)}.quick-navigation__match-list[data-v-483fdfd0]{overflow:scroll;max-height:26.47059rem;height:0}.quick-navigation__match-list.active[data-v-483fdfd0]{height:auto;border-top:1px solid var(--color-fill-gray)}.quick-navigation__match-list .no-results[data-v-483fdfd0]{margin:.88235rem auto;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.quick-navigation__match-list .selected[data-v-483fdfd0]{background-color:var(--color-navigator-item-hover)}.quick-navigation__reference[data-v-483fdfd0]:hover{text-decoration:none}.quick-navigation__symbol-match[data-v-483fdfd0]{display:flex;height:2.35294rem;padding:.58824rem .88235rem;color:var(--color-figure-gray)}.quick-navigation__symbol-match[data-v-483fdfd0]:hover{background-color:var(--color-navigator-item-hover)}.quick-navigation__symbol-match .symbol-info[data-v-483fdfd0]{margin:auto;width:100%}.quick-navigation__symbol-match .symbol-info .navigator-icon[data-v-483fdfd0]{margin-right:.58824rem}.quick-navigation__symbol-match .symbol-info .symbol-name[data-v-483fdfd0]{display:flex}.quick-navigation__symbol-match .symbol-info .symbol-name .symbol-title[data-v-483fdfd0]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-navigation__symbol-match .symbol-info .symbol-path[data-v-483fdfd0]{font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-figure-gray-secondary);display:flex;margin-left:1.58824rem;overflow:hidden;white-space:nowrap}.quick-navigation__symbol-match .symbol-info .symbol-path .parent-path[data-v-483fdfd0]{padding-right:.29412rem}@media print{.sidebar[data-v-8b4eac40]{display:none}}.adjustable-sidebar-width[data-v-8b4eac40]{display:flex}@media only screen and (max-width:1023px){.adjustable-sidebar-width[data-v-8b4eac40]{display:block;position:relative}}.adjustable-sidebar-width.dragging[data-v-8b4eac40] *{cursor:col-resize!important}.adjustable-sidebar-width.sidebar-hidden.dragging[data-v-8b4eac40] *{cursor:e-resize!important}.sidebar[data-v-8b4eac40]{position:relative}@media only screen and (max-width:1023px){.sidebar[data-v-8b4eac40]{position:static}}.aside[data-v-8b4eac40]{width:250px;position:relative;height:100%;max-width:100vw}.aside.no-transition[data-v-8b4eac40]{transition:none!important}@media only screen and (min-width:1024px){.aside[data-v-8b4eac40]{transition:width .3s ease-in,visibility 0s linear var(--visibility-transition-time,0s)}.aside.dragging[data-v-8b4eac40]:not(.is-opening-on-large):not(.hide-on-large){transition:none}.aside.hide-on-large[data-v-8b4eac40]{width:0!important;visibility:hidden;pointer-events:none;--visibility-transition-time:.3s}}@media only screen and (max-width:1023px){.aside[data-v-8b4eac40]{width:100%!important;overflow:hidden;min-width:0;max-width:100%;height:calc(var(--app-height) - var(--top-offset-mobile));position:fixed;top:var(--top-offset-mobile);bottom:0;z-index:9998;transform:translateX(-100%);transition:transform .15s ease-in;left:0}.aside[data-v-8b4eac40] .aside-animated-child{opacity:0}.aside.show-on-mobile[data-v-8b4eac40]{transform:translateX(0)}.aside.show-on-mobile[data-v-8b4eac40] .aside-animated-child{--index:0;opacity:1;transition:opacity .15s linear;transition-delay:calc(var(--index)*0.15s + .15s)}.aside.has-mobile-top-offset[data-v-8b4eac40]{border-top:1px solid var(--color-fill-gray-tertiary)}}.content[data-v-8b4eac40]{display:flex;flex-flow:column;min-width:0;flex:1 1 auto;height:100%}.resize-handle[data-v-8b4eac40]{position:absolute;cursor:col-resize;top:0;bottom:0;right:0;width:5px;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1;transition:background-color .15s;transform:translateX(50%)}@media only screen and (max-width:1023px){.resize-handle[data-v-8b4eac40]{display:none}}.resize-handle[data-v-8b4eac40]:hover{background:var(--color-fill-gray-tertiary)}.navigator-card-item[data-v-0b9fe514]{--nav-head-wrapper-left-space:10px;--nav-head-wrapper-right-space:20px;--head-wrapper-vertical-space:5px;--nav-depth-spacer:25px;--nesting-index:0;display:flex;align-items:stretch;min-height:32px;box-sizing:border-box}.fromkeyboard .navigator-card-item[data-v-0b9fe514]:focus-within{outline:4px solid var(--color-focus-color);outline-offset:-4px}.navigator-card-item.active[data-v-0b9fe514]{background:var(--color-fill-gray-quaternary)}.hover .navigator-card-item[data-v-0b9fe514]:not(.is-group){background:var(--color-navigator-item-hover)}.depth-spacer[data-v-0b9fe514]{width:calc(var(--nesting-index)*15px + var(--nav-depth-spacer));height:100%;position:relative;flex:0 0 auto}.title-container[data-v-0b9fe514]{width:100%;min-width:0;display:flex;align-items:center}.navigator-icon-wrapper[data-v-0b9fe514]{margin-right:7px}.head-wrapper[data-v-0b9fe514]{padding:var(--head-wrapper-vertical-space) var(--nav-head-wrapper-right-space) var(--head-wrapper-vertical-space) var(--nav-head-wrapper-left-space);position:relative;display:flex;align-items:center;flex:1;min-width:0}@supports (padding:max(0px)){.head-wrapper[data-v-0b9fe514]{padding-left:max(var(--nav-head-wrapper-left-space),env(safe-area-inset-left));padding-right:max(var(--nav-head-wrapper-right-space),env(safe-area-inset-right))}}.highlight[data-v-d75876e2]{display:inline}.highlight[data-v-d75876e2] .match{font-weight:600;background:var(--color-fill-light-blue-secondary)}.is-group .leaf-link[data-v-08a89c9e]{color:var(--color-figure-gray-secondary);font-weight:600}.is-group .leaf-link[data-v-08a89c9e]:after{display:none}.navigator-icon[data-v-08a89c9e]{display:flex;flex:0 0 auto}.navigator-icon.changed[data-v-08a89c9e]{border:none;width:1em;height:1em;z-index:0}.navigator-icon.changed[data-v-08a89c9e]:after{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);background-image:url(../img/modified-icon.f496e73d.svg);margin:0}@media screen{[data-color-scheme=dark] .navigator-icon.changed[data-v-08a89c9e]:after{background-image:url(../img/modified-icon.f496e73d.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .navigator-icon.changed[data-v-08a89c9e]:after{background-image:url(../img/modified-icon.f496e73d.svg)}}.navigator-icon.changed-added[data-v-08a89c9e]:after{background-image:url(../img/added-icon.d6f7e47d.svg)}@media screen{[data-color-scheme=dark] .navigator-icon.changed-added[data-v-08a89c9e]:after{background-image:url(../img/added-icon.d6f7e47d.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .navigator-icon.changed-added[data-v-08a89c9e]:after{background-image:url(../img/added-icon.d6f7e47d.svg)}}.navigator-icon.changed-deprecated[data-v-08a89c9e]:after{background-image:url(../img/deprecated-icon.015b4f17.svg)}@media screen{[data-color-scheme=dark] .navigator-icon.changed-deprecated[data-v-08a89c9e]:after{background-image:url(../img/deprecated-icon.015b4f17.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .navigator-icon.changed-deprecated[data-v-08a89c9e]:after{background-image:url(../img/deprecated-icon.015b4f17.svg)}}.leaf-link[data-v-08a89c9e]{color:var(--color-figure-gray);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline;vertical-align:middle;font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.fromkeyboard .leaf-link[data-v-08a89c9e]:focus{outline:none}.leaf-link[data-v-08a89c9e]:hover{text-decoration:none}.leaf-link.bolded[data-v-08a89c9e]{font-weight:600}.leaf-link[data-v-08a89c9e]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0}.extended-content[data-v-08a89c9e]{font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-figure-gray-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-toggle[data-v-08a89c9e]{overflow:hidden;position:absolute;width:100%;height:100%;padding-right:5px;box-sizing:border-box;z-index:1;display:flex;align-items:center;justify-content:flex-end}.chevron[data-v-08a89c9e]{width:10px}.chevron.animating[data-v-08a89c9e]{transition:transform .15s ease-in}.chevron.rotate[data-v-08a89c9e]{transform:rotate(90deg)}.navigator-card[data-v-4a898368]{--card-vertical-spacing:8px;--card-horizontal-spacing:20px;--nav-filter-horizontal-padding:30px;--visibility-delay:1s;display:flex;flex-direction:column;min-height:0;height:calc(var(--app-height) - var(--nav-height, 0px));position:sticky;top:var(--nav-height,0)}@media only screen and (max-width:1023px){.navigator-card[data-v-4a898368]{height:100%;position:static;background:var(--color-fill)}}.navigator-card .navigator-card-full-height[data-v-4a898368]{min-height:0;flex:1 1 auto}.navigator-card .head-inner[data-v-4a898368]{overflow:hidden}.navigator-card .head-wrapper[data-v-4a898368]{position:relative;flex:1 0 auto}.navigator-card .navigator-head[data-v-4a898368]{--navigator-head-padding-right:calc(var(--card-horizontal-spacing)*2 + 19px);padding:0 var(--navigator-head-padding-right) 0 var(--card-horizontal-spacing);background:var(--color-fill);border-bottom:1px solid var(--color-grid);display:flex;align-items:center;height:3.05882rem;white-space:nowrap}.navigator-card .navigator-head .card-link[data-v-4a898368]{color:var(--color-text);font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);font-weight:600;overflow:hidden;text-overflow:ellipsis}.navigator-card .navigator-head .badge[data-v-4a898368]{margin-top:0}.navigator-card .navigator-head.router-link-exact-active[data-v-4a898368]{background:var(--color-fill)}.navigator-card .navigator-head.router-link-exact-active .card-link[data-v-4a898368]{font-weight:700}.navigator-card .navigator-head[data-v-4a898368]:hover{background:var(--color-navigator-item-hover);text-decoration:none}@supports (padding:max(0px)){.navigator-card .navigator-head[data-v-4a898368]{padding-left:max(var(--card-horizontal-spacing),env(safe-area-inset-left));padding-right:max(var(--navigator-head-padding-right),env(safe-area-inset-right))}}@media only screen and (max-width:1023px){.navigator-card .navigator-head[data-v-4a898368]{justify-content:center;--navigator-head-padding-right:var(--card-horizontal-spacing)}}@media only screen and (max-width:767px){.navigator-card .navigator-head[data-v-4a898368]{height:2.82353rem;padding:0 20px}}.close-card[data-v-4a898368]{display:flex;position:absolute;z-index:1;align-items:center;justify-content:center;right:1rem;padding:5px;margin-left:-5px;top:calc(50% - 14px);transition:transform .3s ease-in 0s,visibility 0s}@media only screen and (max-width:1023px){.close-card[data-v-4a898368]{right:unset;top:0;left:0;margin:0;padding:0 1.29412rem 0 20px;height:100%}@supports (padding:max(0px)){.close-card[data-v-4a898368]{padding-left:max(1.29412rem,env(safe-area-inset-left))}}}@media only screen and (max-width:767px){.close-card[data-v-4a898368]{padding-left:.94118rem;padding-right:.94118rem}@supports (padding:max(0px)){.close-card[data-v-4a898368]{padding-left:max(.94118rem,env(safe-area-inset-left))}}}.close-card .close-icon[data-v-4a898368]{width:19px;height:19px}@media only screen and (min-width:1024px){.close-card.hide-on-large[data-v-4a898368]{display:none}.close-card[data-v-4a898368]:hover{border-radius:var(--border-radius,4px);background:var(--color-fill-gray-quaternary)}.sidebar-hidden .close-card[data-v-4a898368]{transition:transform .3s ease-in 0s,visibility 0s linear .3s;visibility:hidden;transform:translateX(3.76471rem)}}[data-v-4a898368] .card-body{padding-right:0;flex:1 1 auto;min-height:0;height:100%}@media only screen and (max-width:1023px){[data-v-4a898368] .card-body{--card-vertical-spacing:0px}}.navigator-card-inner[data-v-4a898368]{display:flex;flex-flow:column;height:100%}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{border:none;background-color:transparent;opacity:0}.resize-observer[data-v-b329ee4c],.resize-observer[data-v-b329ee4c] object{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;pointer-events:none;display:block;overflow:hidden}.navigator-card.filter-on-top .filter-wrapper[data-v-a440d59c]{order:1;position:static}.navigator-card.filter-on-top .card-body[data-v-a440d59c]{order:2}.no-items-wrapper[data-v-a440d59c]{overflow:hidden;color:var(--color-figure-gray-tertiary)}.no-items-wrapper .no-items[data-v-a440d59c]{font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);padding:var(--card-vertical-spacing) var(--card-horizontal-spacing);min-width:200px;box-sizing:border-box}.navigator-filter[data-v-a440d59c]{box-sizing:border-box;padding:15px var(--nav-filter-horizontal-padding);border-top:1px solid var(--color-grid);height:73px;display:flex;align-items:flex-end}.filter-on-top .navigator-filter[data-v-a440d59c]{border-top:none;align-items:flex-start}@supports (padding:max(0px)){.navigator-filter[data-v-a440d59c]{padding-left:max(var(--nav-filter-horizontal-padding),env(safe-area-inset-left));padding-right:max(var(--nav-filter-horizontal-padding),env(safe-area-inset-right))}}@media only screen and (max-width:1023px){.navigator-filter[data-v-a440d59c]{--nav-filter-horizontal-padding:20px;border:none;padding-top:10px;padding-bottom:10px;height:62px}}.navigator-filter .input-wrapper[data-v-a440d59c]{position:relative;flex:1;min-width:0}.navigator-filter .filter-component[data-v-a440d59c]{--input-vertical-padding:10px;--input-height:20px;--input-border-color:var(--color-grid);--input-text:var(--color-figure-gray-secondary)}.navigator-filter .filter-component[data-v-a440d59c] .filter__input{font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.scroller[data-v-a440d59c]{height:100%;box-sizing:border-box;padding:var(--card-vertical-spacing) 0;padding-bottom:calc(var(--top-offset, 0px) + var(--card-vertical-spacing));transition:padding-bottom .15s ease-in}@media only screen and (max-width:1023px){.scroller[data-v-a440d59c]{padding-bottom:10em}}.scroller[data-v-a440d59c] .vue-recycle-scroller__item-wrapper{transform:translateZ(0)}.filter-wrapper[data-v-a440d59c]{position:sticky;bottom:0;background:var(--color-fill)}.sidebar-transitioning .filter-wrapper[data-v-a440d59c]{flex:1 0 73px;overflow:hidden}@media only screen and (max-width:1023px){.sidebar-transitioning .filter-wrapper[data-v-a440d59c]{flex-basis:62px}}.loader[data-v-0de29914]{height:.70588rem;background-color:var(--color-fill-gray-tertiary);border-radius:4px}.navigator-icon[data-v-0de29914]{width:16px;height:16px;border-radius:2px;background-color:var(--color-fill-gray-tertiary)}.loading-navigator-item[data-v-0de29914]{-webkit-animation:pulse 2.5s ease;animation:pulse 2.5s ease;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;opacity:0;-webkit-animation-delay:calc(var(--visibility-delay) + 0.3s*var(--index));animation-delay:calc(var(--visibility-delay) + 0.3s*var(--index))}.delay-visibility-enter-active[data-v-4b6d345f]{transition:visibility var(--visibility-delay);visibility:hidden}.loading-navigator[data-v-4b6d345f]{padding-top:var(--card-vertical-spacing)}.navigator[data-v-048fdefe]{height:100%;display:flex;flex-flow:column}@media only screen and (max-width:1023px){.navigator[data-v-048fdefe]{position:static;transition:none}}.hierarchy-collapsed-items[data-v-74906830]{position:relative;display:inline-flex;align-items:center;margin-left:.17647rem}.hierarchy-collapsed-items .hierarchy-item-icon[data-v-74906830]{width:9px;height:15px;margin-right:.17647rem;display:flex;justify-content:center;font-size:1em;align-self:baseline}.nav--in-breakpoint-range .hierarchy-collapsed-items[data-v-74906830]{display:none}.hierarchy-collapsed-items .toggle[data-v-74906830]{background:var(--color-nav-hierarchy-collapse-background);border-color:var(--color-nav-hierarchy-collapse-borders);border-radius:var(--border-radius,4px);border-style:solid;border-width:0;font-weight:600;height:1.11765rem;text-align:center;width:2.11765rem;display:flex;align-items:center;justify-content:center}.theme-dark .hierarchy-collapsed-items .toggle[data-v-74906830]{background:var(--color-nav-dark-hierarchy-collapse-background)}.hierarchy-collapsed-items .toggle.focused[data-v-74906830],.hierarchy-collapsed-items .toggle[data-v-74906830]:active,.hierarchy-collapsed-items .toggle[data-v-74906830]:focus{box-shadow:0 0 0 4px var(--color-focus-color);outline:none}.indicator[data-v-74906830]{width:1em;height:1em;display:flex;align-items:center}.indicator .toggle-icon[data-v-74906830]{width:100%}.dropdown[data-v-74906830]{background:var(--color-nav-hierarchy-collapse-background);border-color:var(--color-nav-hierarchy-collapse-borders);border-radius:var(--border-radius,4px);border-style:solid;box-shadow:0 1px 4px -1px var(--color-figure-gray-secondary);border-width:0;padding:0 .5rem;position:absolute;z-index:42;top:calc(100% + .41176rem)}.theme-dark .dropdown[data-v-74906830]{background:var(--color-nav-dark-hierarchy-collapse-background);border-color:var(--color-nav-dark-hierarchy-collapse-borders)}.dropdown.collapsed[data-v-74906830]{opacity:0;transform:translate3d(0,-.41176rem,0);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s;visibility:hidden}.dropdown[data-v-74906830]:not(.collapsed){opacity:1;transform:none;transition:opacity .25s ease,transform .25s ease,visibility 0s linear 0s;visibility:visible}.nav--in-breakpoint-range .dropdown[data-v-74906830]:not(.collapsed){display:none}.dropdown[data-v-74906830]:before{border-bottom-color:var(--color-nav-hierarchy-collapse-background);border-bottom-style:solid;border-bottom-width:.5rem;border-left-color:transparent;border-left-style:solid;border-left-width:.5rem;border-right-color:transparent;border-right-style:solid;border-right-width:.5rem;content:"";left:1.26471rem;position:absolute;top:-.44118rem}.theme-dark .dropdown[data-v-74906830]:before{border-bottom-color:var(--color-nav-dark-hierarchy-collapse-background)}.dropdown-item[data-v-74906830]{border-top-color:var(--color-nav-hierarchy-collapse-borders);border-top-style:solid;border-top-width:1px}.theme-dark .dropdown-item[data-v-74906830]{border-top-color:var(--color-nav-dark-hierarchy-collapse-borders)}.dropdown-item[data-v-74906830]:first-child{border-top:none}.nav-menu-link[data-v-74906830]{max-width:57.64706rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;padding:.75rem 1rem}.hierarchy-item[data-v-382bf39e]{display:flex;align-items:center;margin-left:.17647rem}.hierarchy-item[data-v-382bf39e] .hierarchy-item-icon{width:9px;height:15px;margin-right:.17647rem;display:flex;justify-content:center;font-size:1em;align-self:baseline}.nav--in-breakpoint-range .hierarchy-item[data-v-382bf39e] .hierarchy-item-icon{display:none}.nav--in-breakpoint-range .hierarchy-item[data-v-382bf39e]{border-top:1px solid var(--color-nav-hierarchy-item-borders);display:flex;align-items:center}.theme-dark.nav--in-breakpoint-range .hierarchy-item[data-v-382bf39e]{border-top-color:var(--color-nav-dark-hierarchy-item-borders)}.nav--in-breakpoint-range .hierarchy-item[data-v-382bf39e]:first-of-type{border-top:none}.hierarchy-item.collapsed[data-v-382bf39e]{display:none}.nav--in-breakpoint-range .hierarchy-item.collapsed[data-v-382bf39e]{display:inline-block}.item[data-v-382bf39e]{display:inline-block;vertical-align:middle}.nav--in-breakpoint-range .item[data-v-382bf39e]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:100%;line-height:2.47059rem}@media only screen and (min-width:768px){.hierarchy-item:first-child:last-child .item[data-v-382bf39e],.hierarchy-item:first-child:last-child~.hierarchy-item .item[data-v-382bf39e]{max-width:45rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-badge .hierarchy-item:first-child:last-child .item[data-v-382bf39e],.has-badge .hierarchy-item:first-child:last-child~.hierarchy-item .item[data-v-382bf39e],.hierarchy-item:first-child:nth-last-child(2) .item[data-v-382bf39e],.hierarchy-item:first-child:nth-last-child(2)~.hierarchy-item .item[data-v-382bf39e]{max-width:36rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-badge .hierarchy-item:first-child:nth-last-child(2) .item[data-v-382bf39e],.has-badge .hierarchy-item:first-child:nth-last-child(2)~.hierarchy-item .item[data-v-382bf39e]{max-width:28.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-item:first-child:nth-last-child(3) .item[data-v-382bf39e],.hierarchy-item:first-child:nth-last-child(3)~.hierarchy-item .item[data-v-382bf39e]{max-width:27rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-badge .hierarchy-item:first-child:nth-last-child(3) .item[data-v-382bf39e],.has-badge .hierarchy-item:first-child:nth-last-child(3)~.hierarchy-item .item[data-v-382bf39e]{max-width:21.6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-item:first-child:nth-last-child(4) .item[data-v-382bf39e],.hierarchy-item:first-child:nth-last-child(4)~.hierarchy-item .item[data-v-382bf39e]{max-width:18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-badge .hierarchy-item:first-child:nth-last-child(4) .item[data-v-382bf39e],.has-badge .hierarchy-item:first-child:nth-last-child(4)~.hierarchy-item .item[data-v-382bf39e]{max-width:14.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-item:first-child:nth-last-child(5) .item[data-v-382bf39e],.hierarchy-item:first-child:nth-last-child(5)~.hierarchy-item .item[data-v-382bf39e]{max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-badge .hierarchy-item:first-child:nth-last-child(5) .item[data-v-382bf39e],.has-badge .hierarchy-item:first-child:nth-last-child(5)~.hierarchy-item .item[data-v-382bf39e]{max-width:7.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-collapsed-items~.hierarchy-item .item[data-v-382bf39e]{max-width:10.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-collapsed-items~.hierarchy-item:last-child .item[data-v-382bf39e]{max-width:none}.has-badge .hierarchy-collapsed-items~.hierarchy-item .item[data-v-382bf39e]{max-width:8.64rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.hierarchy[data-v-42bf934a]{justify-content:flex-start;min-width:0;margin-right:80px}.nav--in-breakpoint-range .hierarchy[data-v-42bf934a]{margin-right:0}.hierarchy .root-hierarchy .item[data-v-42bf934a]{max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-menu-setting-label[data-v-005af823]{margin-right:.35294rem;white-space:nowrap}.language-dropdown[data-v-005af823]{-webkit-text-size-adjust:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background-color:transparent;box-sizing:inherit;padding:0 11px 0 4px;margin-left:-4px;font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);cursor:pointer;position:relative;z-index:1}@media only screen and (max-width:1023px){.language-dropdown[data-v-005af823]{font-size:.82353rem;line-height:1.5;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.language-dropdown[data-v-005af823]:focus{outline:none}.fromkeyboard .language-dropdown[data-v-005af823]:focus{outline:4px solid var(--color-focus-color);outline-offset:1px}.language-sizer[data-v-005af823]{position:absolute;opacity:0;pointer-events:none;padding:0}.language-toggle-container[data-v-005af823]{display:flex;align-items:center;padding-right:.17647rem;position:relative}.nav--in-breakpoint-range .language-toggle-container[data-v-005af823]{display:none}.language-toggle-container .toggle-icon[data-v-005af823]{width:.6em;height:.6em;position:absolute;right:7px}.language-toggle-label[data-v-005af823]{margin-right:2px}.language-toggle.nav-menu-toggle-label[data-v-005af823]{margin-right:6px}.language-list[data-v-005af823]{display:inline-block;margin-top:0}.language-list-container[data-v-005af823]{display:none}.language-list-item[data-v-005af823],.nav--in-breakpoint-range .language-list-container[data-v-005af823]{display:inline-block}.language-list-item[data-v-005af823]:not(:first-child){border-left:1px solid #424242;margin-left:6px;padding-left:6px}[data-v-136c3ca6] .nav-menu{line-height:1.5;padding-top:0}[data-v-136c3ca6] .nav-menu,[data-v-136c3ca6] .nav-menu-settings{font-size:.82353rem;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}[data-v-136c3ca6] .nav-menu-settings{line-height:1.28571}@media only screen and (max-width:1023px){[data-v-136c3ca6] .nav-menu-settings{font-size:.82353rem;line-height:1.5;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (min-width:1024px){[data-v-136c3ca6] .nav-menu-settings{margin-left:.58824rem}}.nav--in-breakpoint-range[data-v-136c3ca6] .nav-menu-settings:not([data-previous-menu-children-count="0"]) .nav-menu-setting:first-child{border-top:1px solid #b0b0b0;display:flex;align-items:center}[data-v-136c3ca6] .nav-menu-settings .nav-menu-setting{display:flex;align-items:center;color:var(--color-nav-current-link);margin-left:0}[data-v-136c3ca6] .nav-menu-settings .nav-menu-setting:first-child:not(:only-child){margin-right:.58824rem}.nav--in-breakpoint-range[data-v-136c3ca6] .nav-menu-settings .nav-menu-setting:first-child:not(:only-child){margin-right:0}.theme-dark[data-v-136c3ca6] .nav-menu-settings .nav-menu-setting{color:var(--color-nav-dark-current-link)}.nav--in-breakpoint-range[data-v-136c3ca6] .nav-menu-settings .nav-menu-setting:not(:first-child){border-top:1px solid #424242}.documentation-nav[data-v-136c3ca6] .nav-title{font-size:.82353rem;line-height:1.5;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1023px){.documentation-nav[data-v-136c3ca6] .nav-title{padding-top:0}}.documentation-nav[data-v-136c3ca6] .nav-title .nav-title-link.inactive{height:auto;color:var(--color-figure-gray-secondary-alt)}.theme-dark.documentation-nav .nav-title .nav-title-link.inactive[data-v-136c3ca6]{color:#b0b0b0}.sidenav-toggle-wrapper[data-v-136c3ca6]{display:flex;margin-top:1px}.nav--in-breakpoint-range .sidenav-toggle-wrapper[data-v-136c3ca6]{display:flex!important}@media only screen and (min-width:1024px){.sidenav-toggle-enter-active[data-v-136c3ca6],.sidenav-toggle-leave-active[data-v-136c3ca6]{transition:margin .3s ease-in 0s}.sidenav-toggle-enter[data-v-136c3ca6],.sidenav-toggle-leave-to[data-v-136c3ca6]{margin-left:-3.76471rem}}.sidenav-toggle[data-v-136c3ca6]{align-self:center;color:var(--color-nav-link-color);position:relative;margin:-5px}.theme-dark .sidenav-toggle[data-v-136c3ca6]{color:var(--color-nav-dark-link-color)}.sidenav-toggle:hover .sidenav-icon-wrapper[data-v-136c3ca6]{background:var(--color-fill-gray-quaternary)}.theme-dark .sidenav-toggle:hover .sidenav-icon-wrapper[data-v-136c3ca6]{background:#424242}.sidenav-toggle__separator[data-v-136c3ca6]{height:.8em;width:1px;background:var(--color-nav-color);align-self:center;margin:0 1.29412rem}.nav--in-breakpoint-range .sidenav-toggle[data-v-136c3ca6]{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px;align-self:stretch}.nav--in-breakpoint-range .sidenav-toggle__separator[data-v-136c3ca6]{display:none}.sidenav-icon-wrapper[data-v-136c3ca6]{padding:5px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius,4px)}.sidenav-icon[data-v-136c3ca6]{display:flex;width:19px;height:19px}[data-v-3f2e5486] .generic-modal{overflow-y:overlay}[data-v-3f2e5486] .modal-fullscreen .container{background-color:transparent;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;flex:auto;margin:9.41176rem 0;max-width:47.05882rem;overflow:visible}.doc-topic-view[data-v-3f2e5486]{--delay:1s;display:flex;flex-flow:column;background:var(--colors-text-background,var(--color-text-background))}.doc-topic-view .delay-hiding-leave-active[data-v-3f2e5486]{transition:display var(--delay)}.doc-topic-aside[data-v-3f2e5486]{height:100%;box-sizing:border-box;border-right:1px solid var(--color-grid)}@media only screen and (max-width:1023px){.doc-topic-aside[data-v-3f2e5486]{background:var(--color-fill);border-right:none}.sidebar-transitioning .doc-topic-aside[data-v-3f2e5486]{border-right:1px solid var(--color-grid)}}.quick-navigation-open-container[data-v-3f2e5486]{height:.88235rem;width:.88235rem;margin-left:.58824rem}.nav--in-breakpoint-range .quick-navigation-open-container[data-v-3f2e5486]{display:none}.quick-navigation-open-container [data-v-3f2e5486]{fill:var(--color-text)}.topic-wrapper[data-v-3f2e5486]{flex:1 1 auto;width:100%}.full-width-container[data-v-3f2e5486]{max-width:1920px;margin-left:auto;margin-right:auto}@media only screen and (min-width:1920px){.full-width-container[data-v-3f2e5486]{border-left:1px solid var(--color-grid);border-right:1px solid var(--color-grid);box-sizing:border-box}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/css/documentation-topic~topic.fccbd76c.css b/XCoordinator.doccarchive/css/documentation-topic~topic.fccbd76c.css new file mode 100644 index 00000000..7df762b0 --- /dev/null +++ b/XCoordinator.doccarchive/css/documentation-topic~topic.fccbd76c.css @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */.generic-modal[data-v-f5b28690]{position:fixed;top:0;left:0;right:0;bottom:0;margin:0;z-index:11000;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;background:none;overflow:auto}.modal-fullscreen[data-v-f5b28690]{align-items:stretch}.modal-fullscreen .container[data-v-f5b28690]{margin:0;flex:1;width:100%;height:100%;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.modal-standard[data-v-f5b28690]{padding:20px}.modal-standard .container[data-v-f5b28690]{padding:60px;border-radius:var(--border-radius,4px)}@media screen{[data-color-scheme=dark] .modal-standard .container[data-v-f5b28690]{background:#1d1d1f}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .modal-standard .container[data-v-f5b28690]{background:#1d1d1f}}@media only screen and (max-width:735px){.modal-standard[data-v-f5b28690]{padding:0;align-items:stretch}.modal-standard .container[data-v-f5b28690]{margin:20px 0 0;padding:50px 30px;flex:1;width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0}}.backdrop[data-v-f5b28690]{overflow:auto;background:rgba(0,0,0,.4);-webkit-overflow-scrolling:touch;width:100%;height:100%;position:fixed}.container[data-v-f5b28690]{margin-left:auto;margin-right:auto;width:980px;background:var(--colors-generic-modal-background,var(--color-generic-modal-background));z-index:1;position:relative;overflow:auto;max-width:100%}@media only screen and (max-width:1250px){.container[data-v-f5b28690]{width:692px}}@media only screen and (max-width:735px){.container[data-v-f5b28690]{width:87.5%}}.close[data-v-f5b28690]{position:absolute;z-index:9999;top:22px;left:22px;width:30px;height:30px;color:#666;cursor:pointer;background:none;border:0;display:flex;align-items:center}.close .close-icon[data-v-f5b28690]{fill:currentColor;width:100%;height:100%}.theme-dark .container[data-v-f5b28690]{background:#000}.theme-dark .container .close[data-v-f5b28690]{color:#b0b0b0}.theme-code .container[data-v-f5b28690]{background-color:var(--background,var(--color-code-background))} \ No newline at end of file diff --git a/XCoordinator.doccarchive/css/documentation-topic~topic~tutorials-overview.1099452b.css b/XCoordinator.doccarchive/css/documentation-topic~topic~tutorials-overview.1099452b.css new file mode 100644 index 00000000..37d9f45d --- /dev/null +++ b/XCoordinator.doccarchive/css/documentation-topic~topic~tutorials-overview.1099452b.css @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */.svg-icon[data-v-33d3200a]{fill:var(--colors-svg-icon-fill-light,var(--color-svg-icon));transform:scale(1);-webkit-transform:scale(1);overflow:visible}.theme-dark .svg-icon[data-v-33d3200a]{fill:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}.svg-icon.icon-inline[data-v-33d3200a]{display:inline-block;vertical-align:middle;fill:currentColor}.svg-icon.icon-inline[data-v-33d3200a] .svg-icon-stroke{stroke:currentColor}[data-v-33d3200a] .svg-icon-stroke{stroke:var(--colors-svg-icon-fill-light,var(--color-svg-icon))}.theme-dark[data-v-33d3200a] .svg-icon-stroke{stroke:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}.label[data-v-7696d857]{font-size:.70588rem;line-height:1.33333;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.label+[data-v-7696d857]{margin-top:.4em}.deprecated .label[data-v-7696d857]{color:var(--color-aside-deprecated)}.experiment .label[data-v-7696d857]{color:var(--color-aside-experiment)}.important .label[data-v-7696d857]{color:var(--color-aside-important)}.note .label[data-v-7696d857]{color:var(--color-aside-note)}.tip .label[data-v-7696d857]{color:var(--color-aside-tip)}.warning .label[data-v-7696d857]{color:var(--color-aside-warning)}.doc-topic aside[data-v-7696d857]{-moz-column-break-inside:avoid;break-inside:avoid;border-radius:var(--aside-border-radius,var(--border-radius,4px));border-style:var(--aside-border-style,solid);border-width:var(--aside-border-width,0 0 0 6px);padding:.94118rem}.doc-topic aside.deprecated[data-v-7696d857]{background-color:var(--color-aside-deprecated-background);border-color:var(--color-aside-deprecated-border);box-shadow:0 0 0 0 var(--color-aside-deprecated-border) inset,0 0 0 0 var(--color-aside-deprecated-border)}.doc-topic aside.experiment[data-v-7696d857]{background-color:var(--color-aside-experiment-background);border-color:var(--color-aside-experiment-border);box-shadow:0 0 0 0 var(--color-aside-experiment-border) inset,0 0 0 0 var(--color-aside-experiment-border)}.doc-topic aside.important[data-v-7696d857]{background-color:var(--color-aside-important-background);border-color:var(--color-aside-important-border);box-shadow:0 0 0 0 var(--color-aside-important-border) inset,0 0 0 0 var(--color-aside-important-border)}.doc-topic aside.note[data-v-7696d857]{background-color:var(--color-aside-note-background);border-color:var(--color-aside-note-border);box-shadow:0 0 0 0 var(--color-aside-note-border) inset,0 0 0 0 var(--color-aside-note-border)}.doc-topic aside.tip[data-v-7696d857]{background-color:var(--color-aside-tip-background);border-color:var(--color-aside-tip-border);box-shadow:0 0 0 0 var(--color-aside-tip-border) inset,0 0 0 0 var(--color-aside-tip-border)}.doc-topic aside.warning[data-v-7696d857]{background-color:var(--color-aside-warning-background);border-color:var(--color-aside-warning-border);box-shadow:0 0 0 0 var(--color-aside-warning-border) inset,0 0 0 0 var(--color-aside-warning-border)}.doc-topic aside .label[data-v-7696d857]{font-size:1rem;line-height:1.52941;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.swift-file-icon.file-icon[data-v-c01a6890]{height:1rem}.file-icon[data-v-7c381064]{position:relative;align-items:flex-end;height:24px;margin:0 .5rem 0 1rem}.filename[data-v-c8c40662]{color:var(--text,var(--colors-secondary-label,var(--color-secondary-label)));font-size:.94118rem;line-height:1.1875;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-top:1rem}@media only screen and (max-width:735px){.filename[data-v-c8c40662]{font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-top:0}}.filename>a[data-v-c8c40662],.filename>span[data-v-c8c40662]{display:flex;align-items:center;line-height:normal}a[data-v-c8c40662]{color:var(--url,var(--color-link))}.code-line-container[data-v-12727242]{display:flex}.code-number[data-v-12727242]{padding:0 1rem 0 8px;text-align:right;min-width:2em;color:#666;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-number[data-v-12727242]:before{content:attr(data-line-number)}.highlighted[data-v-12727242]{background:var(--line-highlight,var(--color-code-line-highlight));border-left:4px solid var(--color-code-line-highlight-border)}.highlighted .code-number[data-v-12727242]{padding-left:4px}pre[data-v-12727242]{padding:14px 0;display:flex;overflow:unset;-webkit-overflow-scrolling:touch;white-space:pre;word-wrap:normal;height:100%}@media only screen and (max-width:735px){pre[data-v-12727242]{padding-top:.82353rem}}code[data-v-12727242]{display:flex;flex-direction:column;white-space:pre;word-wrap:normal;flex-grow:9999}.code-line-container[data-v-12727242]{flex-shrink:0;padding-right:14px}.code-listing[data-v-12727242],.container-general[data-v-12727242]{display:flex}.code-listing[data-v-12727242]{flex-direction:column;min-height:100%;border-radius:var(--code-border-radius,var(--border-radius,4px));overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.code-listing.single-line[data-v-12727242]{border-radius:var(--border-radius,4px)}.container-general[data-v-12727242]{overflow:auto}.container-general[data-v-12727242],pre[data-v-12727242]{flex-grow:1}.header-anchor[data-v-635e28c1]{color:inherit;text-decoration:none;position:relative;padding-right:23px;display:inline-block}.header-anchor .icon[data-v-635e28c1]{position:absolute;right:0;bottom:.2em;display:none;height:16px;margin-left:7px}.header-anchor:hover .icon[data-v-635e28c1]{display:inline}code[data-v-05f4a5b7]{speak-punctuation:code}code[data-v-d68ae420]{width:100%}.container-general[data-v-d68ae420]{display:flex;flex-flow:row wrap}.container-general .code-line[data-v-d68ae420]{flex:1 0 auto}.code-line-container[data-v-d68ae420]{align-items:center;display:flex;border-left:4px solid transparent;counter-increment:linenumbers;padding-right:14px}.code-number[data-v-d68ae420]{font-size:.70588rem;line-height:1.5;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace);padding:0 1rem 0 8px;text-align:right;min-width:2.01em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-number[data-v-d68ae420]:before{content:counter(linenumbers)}.code-line[data-v-d68ae420]{display:flex}pre[data-v-d68ae420]{padding:14px 0;display:flex;flex-flow:row wrap;overflow:auto;-webkit-overflow-scrolling:touch;white-space:pre;word-wrap:normal}@media only screen and (max-width:735px){pre[data-v-d68ae420]{padding-top:.82353rem}}.collapsible-code-listing[data-v-d68ae420]{background:var(--background,var(--color-code-background));border-color:var(--colors-grid,var(--color-grid));color:var(--text,var(--color-code-plain));border-radius:var(--border-radius,4px);border-style:solid;border-width:1px;counter-reset:linenumbers;font-size:15px}.collapsible-code-listing.single-line[data-v-d68ae420]{border-radius:var(--border-radius,4px)}.collapsible[data-v-d68ae420]{background:var(--color-code-collapsible-background);color:var(--color-code-collapsible-text)}.collapsed[data-v-d68ae420]:before{content:"⋯";display:inline-block;font-family:monospace;font-weight:700;height:100%;line-height:1;text-align:right;width:2.3rem}.collapsed .code-line-container[data-v-d68ae420]{height:0;visibility:hidden}.row[data-v-be73599c]{box-sizing:border-box;display:flex;flex-flow:row wrap}.col[data-v-2ee3ad8b]{box-sizing:border-box;flex:none}.xlarge-1[data-v-2ee3ad8b]{flex-basis:8.33333%;max-width:8.33333%}.xlarge-2[data-v-2ee3ad8b]{flex-basis:16.66667%;max-width:16.66667%}.xlarge-3[data-v-2ee3ad8b]{flex-basis:25%;max-width:25%}.xlarge-4[data-v-2ee3ad8b]{flex-basis:33.33333%;max-width:33.33333%}.xlarge-5[data-v-2ee3ad8b]{flex-basis:41.66667%;max-width:41.66667%}.xlarge-6[data-v-2ee3ad8b]{flex-basis:50%;max-width:50%}.xlarge-7[data-v-2ee3ad8b]{flex-basis:58.33333%;max-width:58.33333%}.xlarge-8[data-v-2ee3ad8b]{flex-basis:66.66667%;max-width:66.66667%}.xlarge-9[data-v-2ee3ad8b]{flex-basis:75%;max-width:75%}.xlarge-10[data-v-2ee3ad8b]{flex-basis:83.33333%;max-width:83.33333%}.xlarge-11[data-v-2ee3ad8b]{flex-basis:91.66667%;max-width:91.66667%}.xlarge-12[data-v-2ee3ad8b]{flex-basis:100%;max-width:100%}.xlarge-centered[data-v-2ee3ad8b]{margin-left:auto;margin-right:auto}.xlarge-uncentered[data-v-2ee3ad8b]{margin-left:0;margin-right:0}.large-1[data-v-2ee3ad8b]{flex-basis:8.33333%;max-width:8.33333%}.large-2[data-v-2ee3ad8b]{flex-basis:16.66667%;max-width:16.66667%}.large-3[data-v-2ee3ad8b]{flex-basis:25%;max-width:25%}.large-4[data-v-2ee3ad8b]{flex-basis:33.33333%;max-width:33.33333%}.large-5[data-v-2ee3ad8b]{flex-basis:41.66667%;max-width:41.66667%}.large-6[data-v-2ee3ad8b]{flex-basis:50%;max-width:50%}.large-7[data-v-2ee3ad8b]{flex-basis:58.33333%;max-width:58.33333%}.large-8[data-v-2ee3ad8b]{flex-basis:66.66667%;max-width:66.66667%}.large-9[data-v-2ee3ad8b]{flex-basis:75%;max-width:75%}.large-10[data-v-2ee3ad8b]{flex-basis:83.33333%;max-width:83.33333%}.large-11[data-v-2ee3ad8b]{flex-basis:91.66667%;max-width:91.66667%}.large-12[data-v-2ee3ad8b]{flex-basis:100%;max-width:100%}.large-centered[data-v-2ee3ad8b]{margin-left:auto;margin-right:auto}.large-uncentered[data-v-2ee3ad8b]{margin-left:0;margin-right:0}@media only screen and (max-width:1250px){.medium-1[data-v-2ee3ad8b]{flex-basis:8.33333%;max-width:8.33333%}.medium-2[data-v-2ee3ad8b]{flex-basis:16.66667%;max-width:16.66667%}.medium-3[data-v-2ee3ad8b]{flex-basis:25%;max-width:25%}.medium-4[data-v-2ee3ad8b]{flex-basis:33.33333%;max-width:33.33333%}.medium-5[data-v-2ee3ad8b]{flex-basis:41.66667%;max-width:41.66667%}.medium-6[data-v-2ee3ad8b]{flex-basis:50%;max-width:50%}.medium-7[data-v-2ee3ad8b]{flex-basis:58.33333%;max-width:58.33333%}.medium-8[data-v-2ee3ad8b]{flex-basis:66.66667%;max-width:66.66667%}.medium-9[data-v-2ee3ad8b]{flex-basis:75%;max-width:75%}.medium-10[data-v-2ee3ad8b]{flex-basis:83.33333%;max-width:83.33333%}.medium-11[data-v-2ee3ad8b]{flex-basis:91.66667%;max-width:91.66667%}.medium-12[data-v-2ee3ad8b]{flex-basis:100%;max-width:100%}.medium-centered[data-v-2ee3ad8b]{margin-left:auto;margin-right:auto}.medium-uncentered[data-v-2ee3ad8b]{margin-left:0;margin-right:0}}@media only screen and (max-width:735px){.small-1[data-v-2ee3ad8b]{flex-basis:8.33333%;max-width:8.33333%}.small-2[data-v-2ee3ad8b]{flex-basis:16.66667%;max-width:16.66667%}.small-3[data-v-2ee3ad8b]{flex-basis:25%;max-width:25%}.small-4[data-v-2ee3ad8b]{flex-basis:33.33333%;max-width:33.33333%}.small-5[data-v-2ee3ad8b]{flex-basis:41.66667%;max-width:41.66667%}.small-6[data-v-2ee3ad8b]{flex-basis:50%;max-width:50%}.small-7[data-v-2ee3ad8b]{flex-basis:58.33333%;max-width:58.33333%}.small-8[data-v-2ee3ad8b]{flex-basis:66.66667%;max-width:66.66667%}.small-9[data-v-2ee3ad8b]{flex-basis:75%;max-width:75%}.small-10[data-v-2ee3ad8b]{flex-basis:83.33333%;max-width:83.33333%}.small-11[data-v-2ee3ad8b]{flex-basis:91.66667%;max-width:91.66667%}.small-12[data-v-2ee3ad8b]{flex-basis:100%;max-width:100%}.small-centered[data-v-2ee3ad8b]{margin-left:auto;margin-right:auto}.small-uncentered[data-v-2ee3ad8b]{margin-left:0;margin-right:0}}.tabnav[data-v-5283512a]{margin:0 0 1.47059rem 0;display:flex}.tabnav--center[data-v-5283512a]{justify-content:center}.tabnav--end[data-v-5283512a]{justify-content:flex-end}.tabnav--vertical[data-v-5283512a]{flex-flow:column wrap}.tabnav--vertical .tabnav-items[data-v-5283512a]{flex-flow:column;overflow:hidden}.tabnav--vertical[data-v-5283512a] .tabnav-item{padding-left:0}.tabnav--vertical[data-v-5283512a] .tabnav-item .tabnav-link{padding-top:8px}.tabnav-items[data-v-5283512a]{display:flex;margin:0;text-align:center}.tabnav-item[data-v-6aa9882a]{border-bottom:1px solid;border-color:var(--colors-tabnav-item-border-color,var(--color-tabnav-item-border-color));display:flex;list-style:none;padding-left:1.76471rem;margin:0;outline:none}.tabnav-item[data-v-6aa9882a]:first-child{padding-left:0}.tabnav-item[data-v-6aa9882a]:nth-child(n+1){margin:0}.tabnav-link[data-v-6aa9882a]{color:var(--colors-secondary-label,var(--color-secondary-label));font-size:.82353rem;line-height:1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);padding:6px 0;margin-top:4px;margin-bottom:4px;text-align:left;text-decoration:none;display:block;position:relative;z-index:0;width:100%}.tabnav-link[data-v-6aa9882a]:hover{text-decoration:none}.tabnav-link[data-v-6aa9882a]:focus{outline-offset:-1px}.tabnav-link[data-v-6aa9882a]:after{content:"";position:absolute;bottom:-5px;left:0;width:100%;border:1px solid transparent}.tabnav-link.active[data-v-6aa9882a]{color:var(--colors-text,var(--color-text));cursor:default;z-index:10}.tabnav-link.active[data-v-6aa9882a]:after{border-bottom-color:var(--colors-text,var(--color-text))}.controls[data-v-6197ce3f]{margin-top:5px;font-size:14px;display:flex;justify-content:flex-end}.controls a[data-v-6197ce3f]{color:var(--colors-text,var(--color-text));display:flex;align-items:center}.controls .control-icon[data-v-6197ce3f]{width:1.05em;margin-right:.3em}[data-v-4baaf006] figcaption+*{margin-top:1rem}.caption[data-v-969dceb4]{font-size:.82353rem;line-height:1.5;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.caption[data-v-969dceb4]:last-child{margin-top:.8em}.caption.centered[data-v-969dceb4]{text-align:center}[data-v-969dceb4] p{display:inline-block}[data-v-3a939631] img{max-width:100%}.table-wrapper[data-v-9a297d5c]{overflow:auto;-webkit-overflow-scrolling:touch}*+.table-wrapper[data-v-9a297d5c],.table-wrapper[data-v-9a297d5c]+*{margin-top:1.6em}table[data-v-9a297d5c]{border-style:hidden}[data-v-9a297d5c] th{font-weight:600}[data-v-9a297d5c] td,[data-v-9a297d5c] th{border-color:var(--color-fill-gray-tertiary);border-style:solid;border-width:var(--table-border-width,1px 1px);padding:.58824rem}[data-v-9a297d5c] td.left-cell,[data-v-9a297d5c] th.left-cell{text-align:left}[data-v-9a297d5c] td.right-cell,[data-v-9a297d5c] th.right-cell{text-align:right}[data-v-9a297d5c] td.center-cell,[data-v-9a297d5c] th.center-cell{text-align:center}s[data-v-eb91ce54]:after,s[data-v-eb91ce54]:before{position:absolute;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(0 0 99.9% 99.9%);clip-path:inset(0 0 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0}s[data-v-eb91ce54]:before{content:" [start of stricken text] "}s[data-v-eb91ce54]:after{content:" [end of stricken text] "}small[data-v-77035f61]{font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-figure-gray)}.replay-button[data-v-5ff7ec6e]{display:flex;align-items:center;justify-content:center;cursor:pointer;visibility:hidden;margin-top:.5rem;-webkit-tap-highlight-color:transparent}.replay-button.visible[data-v-5ff7ec6e]{visibility:visible}.replay-button svg.replay-icon[data-v-5ff7ec6e]{height:12px;width:12px;margin-left:.3em}[data-v-72c01652] img,[data-v-72c01652] video{display:block;margin-left:auto;margin-right:auto;-o-object-fit:contain;object-fit:contain;max-width:100%}.asset[data-v-40d6d180]{margin-left:auto;margin-right:auto}*+.asset[data-v-40d6d180],.asset[data-v-40d6d180]+*{margin-top:1.6em}[data-v-40d6d180] video{display:block;margin-left:auto;margin-right:auto;-o-object-fit:contain;object-fit:contain;max-width:100%}.column[data-v-0f654188]{grid-column:span var(--col-span);min-width:0}@media only screen and (max-width:735px){.column[data-v-0f654188]{grid-column:span 1}}.row[data-v-7d2946e9]{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-gap:var(--col-gap,20px)}@media only screen and (max-width:735px){.row[data-v-7d2946e9]{grid-template-columns:1fr;grid-auto-flow:row}}.row.with-columns[data-v-7d2946e9]{--col-count:var(--col-count-large);grid-template-columns:repeat(var(--col-count),1fr);grid-auto-flow:row}@media only screen and (max-width:1250px){.row.with-columns[data-v-7d2946e9]{--col-count:var(--col-count-medium,var(--col-count-large))}}@media only screen and (max-width:735px){.row.with-columns[data-v-7d2946e9]{--col-count:var(--col-count-small)}}.row[data-v-7d2946e9]+*{margin-top:.8em}*+.TabNavigator[data-v-9b66ac4e],.TabNavigator[data-v-9b66ac4e]+*{margin-top:1.6em}.TabNavigator .tabnav[data-v-9b66ac4e]{overflow:auto;white-space:nowrap}.TabNavigator .tabs-content-container[data-v-9b66ac4e]{position:relative;overflow:hidden}.tabs--vertical[data-v-9b66ac4e]{display:flex;flex-flow:row-reverse}@media only screen and (max-width:735px){.tabs--vertical[data-v-9b66ac4e]{flex-flow:column-reverse}}.tabs--vertical .tabnav[data-v-9b66ac4e]{width:30%;flex:0 0 auto;white-space:normal;margin:0}@media only screen and (max-width:735px){.tabs--vertical .tabnav[data-v-9b66ac4e]{width:100%}}.tabs--vertical .tabs-content[data-v-9b66ac4e]{flex:1 1 auto;min-width:0;padding-right:1.6em}@media only screen and (max-width:735px){.tabs--vertical .tabs-content[data-v-9b66ac4e]{padding-right:0;padding-bottom:.8em}}.fade-enter-active[data-v-9b66ac4e],.fade-leave-active[data-v-9b66ac4e]{transition:opacity .2s ease-in-out}.fade-enter[data-v-9b66ac4e],.fade-leave-to[data-v-9b66ac4e]{opacity:0}.fade-leave-active[data-v-9b66ac4e]{position:absolute;top:0;left:0;right:0}.tasklist[data-v-6a56a858]{--checkbox-width:1rem;--indent-width:calc(var(--checkbox-width)/2);--content-margin:var(--indent-width);list-style-type:none;margin-left:var(--indent-width)}p[data-v-6a56a858]{margin-left:var(--content-margin)}p[data-v-6a56a858]:only-child{--content-margin:calc(var(--checkbox-width) + var(--indent-width))}input[type=checkbox]+p[data-v-6a56a858]{display:inline-block}.button-cta[data-v-c9c81868]{background:var(--colors-button-light-background,var(--color-button-background));border-color:var(--color-button-border,currentcolor);border-radius:var(--button-border-radius,var(--border-radius,4px));border-style:var(--button-border-style,none);border-width:var(--button-border-width,medium);color:var(--colors-button-text,var(--color-button-text));cursor:pointer;min-width:1.76471rem;padding:.23529rem .88235rem;text-align:center;white-space:nowrap;display:inline-block;font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.button-cta[data-v-c9c81868]:active{background:var(--colors-button-light-backgroundActive,var(--color-button-background-active));outline:none}.button-cta[data-v-c9c81868]:hover:not([disabled]){background:var(--colors-button-light-backgroundHover,var(--color-button-background-hover));text-decoration:none}.button-cta[data-v-c9c81868]:disabled{opacity:.32;cursor:default}.fromkeyboard .button-cta[data-v-c9c81868]:focus{box-shadow:0 0 0 4px var(--color-focus-color);outline:none}.button-cta.is-dark[data-v-c9c81868]{background:var(--colors-button-dark-background,#06f)}.button-cta.is-dark[data-v-c9c81868]:active{background:var(--colors-button-dark-backgroundActive,var(--color-button-background-active))}.button-cta.is-dark[data-v-c9c81868]:hover:not([disabled]){background:var(--colors-button-dark-backgroundHover,var(--color-button-background-hover))}.card-cover-wrap.rounded[data-v-74d84342]{border-radius:var(--border-radius,4px);overflow:hidden}.card-cover[data-v-74d84342]{background-color:var(--color-card-background);display:block;height:var(--card-cover-height,180px)}.card-cover.fallback[data-v-74d84342],.card-cover[data-v-74d84342] img{width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;display:block;margin:0}.card-cover[data-v-74d84342] img{height:100%}.card[data-v-3c69339c]{overflow:hidden;display:block;transition:box-shadow,transform .16s ease-out;will-change:box-shadow,transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;height:var(--card-height);border-radius:var(--border-radius,4px)}.card[data-v-3c69339c]:hover{text-decoration:none}.card:hover .link[data-v-3c69339c]{text-decoration:underline}.card[data-v-3c69339c]:hover{box-shadow:0 5px 10px var(--color-card-shadow);transform:scale(1.007)}@media (prefers-reduced-motion:reduce){.card[data-v-3c69339c]:hover{box-shadow:none;transform:none}}.card.small[data-v-3c69339c]{--card-height:408px;--card-details-height:139px;--card-cover-height:235px}@media only screen and (max-width:1250px){.card.small[data-v-3c69339c]{--card-height:341px;--card-details-height:144px;--card-cover-height:163px}}.card.large[data-v-3c69339c]{--card-height:556px;--card-details-height:163px;--card-cover-height:359px}@media only screen and (max-width:1250px){.card.large[data-v-3c69339c]{--card-height:420px;--card-details-height:137px;--card-cover-height:249px}}.card.floating-style[data-v-3c69339c]{--color-card-shadow:transparent;--card-height:auto;--card-details-height:auto}.details[data-v-3c69339c]{background-color:var(--color-card-background);padding:17px;position:relative;height:var(--card-details-height);font-size:.82353rem;line-height:1.28571}.details[data-v-3c69339c],.large .details[data-v-3c69339c]{font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.large .details[data-v-3c69339c]{font-size:1rem;line-height:1.47059}@media only screen and (max-width:1250px){.large .details[data-v-3c69339c]{font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.floating-style .details[data-v-3c69339c]{--color-card-background:transparent;padding:17px 0}.eyebrow[data-v-3c69339c]{color:var(--color-card-eyebrow);display:block;margin-bottom:4px;font-size:.82353rem;line-height:1.28571}.eyebrow[data-v-3c69339c],.large .eyebrow[data-v-3c69339c]{font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.large .eyebrow[data-v-3c69339c]{font-size:1rem;line-height:1.23529}@media only screen and (max-width:1250px){.large .eyebrow[data-v-3c69339c]{font-size:.82353rem;line-height:1.28571;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.title[data-v-3c69339c]{color:var(--color-card-content-text);font-size:1rem;line-height:1.23529;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){.title[data-v-3c69339c]{font-size:.82353rem;line-height:1.28571;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.title[data-v-3c69339c]{font-size:1rem;line-height:1.23529;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.large .title[data-v-3c69339c]{font-size:1.23529rem;line-height:1.19048;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){.large .title[data-v-3c69339c]{font-size:1rem;line-height:1.23529;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.card-content[data-v-3c69339c]{color:var(--color-card-content-text);margin-top:4px}.link[data-v-3c69339c]{bottom:17px;display:flex;align-items:center;position:absolute}.link .link-icon[data-v-3c69339c]{height:.6em;width:.6em;margin-left:.3em}.floating-style .link[data-v-3c69339c]{bottom:unset;margin-top:.8em;position:relative}@media only screen and (max-width:735px){.card[data-v-3c69339c]{margin-left:auto;margin-right:auto}.card+.card[data-v-3c69339c]{margin-bottom:20px;margin-top:20px}.card.large[data-v-3c69339c],.card.small[data-v-3c69339c]{--card-height:auto;--card-details-height:auto;min-width:280px;max-width:300px;--card-cover-height:227px}.card.large .link[data-v-3c69339c],.card.small .link[data-v-3c69339c]{bottom:unset;margin-top:7px;position:relative}}.nav-menu-items[data-v-67c1c0a5]{display:flex;justify-content:flex-end}.nav--in-breakpoint-range .nav-menu-items[data-v-67c1c0a5]{display:block;opacity:0;padding:1rem 1.88235rem 1.64706rem 1.88235rem;transform:translate3d(0,-50px,0);transition:transform 1s cubic-bezier(.07,1.06,.27,.95) .5s,opacity .7s cubic-bezier(.07,1.06,.27,.95) .2s}.nav--is-open.nav--in-breakpoint-range .nav-menu-items[data-v-67c1c0a5]{opacity:1;transform:translateZ(0);transition-delay:.2s,.4s}.nav--in-breakpoint-range .nav-menu-items[data-v-67c1c0a5]:not(:only-child):not(:last-child){padding-bottom:0}.nav--in-breakpoint-range .nav-menu-items[data-v-67c1c0a5]:not(:only-child):last-child{padding-top:0}.TopicTypeIcon[data-v-c8b8711e]{width:1em;height:1em;flex:0 0 auto;color:var(--color-figure-gray-secondary)}.TopicTypeIcon[data-v-c8b8711e] picture{flex:1}.TopicTypeIcon[data-v-c8b8711e] img,.TopicTypeIcon svg[data-v-c8b8711e]{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.nav[data-v-0c761cd5]{position:sticky;top:0;width:100%;height:3.05882rem;z-index:9997;--nav-padding:1.29412rem;color:var(--color-nav-color)}@media print{.nav[data-v-0c761cd5]{position:relative}}@media only screen and (max-width:767px){.nav[data-v-0c761cd5]{min-width:320px;height:2.82353rem}}.theme-dark.nav[data-v-0c761cd5]{background:none;color:var(--color-nav-dark-color)}.nav__wrapper[data-v-0c761cd5]{position:absolute;top:0;left:0;width:100%;height:auto;min-height:100%;z-index:1}.nav__background[data-v-0c761cd5]{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;transition:background-color 0s ease-in}.nav__background[data-v-0c761cd5]:after{background-color:var(--color-nav-keyline)}.nav--no-bg-transition .nav__background[data-v-0c761cd5]{transition:none!important}.nav--solid-background .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-solid-background);-webkit-backdrop-filter:none;backdrop-filter:none}.nav--is-open.nav--solid-background .nav__background[data-v-0c761cd5],.nav--is-sticking.nav--solid-background .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-solid-background)}.nav--is-open.theme-dark.nav--solid-background .nav__background[data-v-0c761cd5],.nav--is-sticking.theme-dark.nav--solid-background .nav__background[data-v-0c761cd5],.theme-dark.nav--solid-background .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-dark-solid-background)}.nav--in-breakpoint-range .nav__background[data-v-0c761cd5]{min-height:2.82353rem;transition:background-color 0s ease .7s}.nav--is-sticking .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-expanded);max-height:none;transition:background-color 0s ease;transition-property:background-color,-webkit-backdrop-filter;transition-property:background-color,backdrop-filter;transition-property:background-color,backdrop-filter,-webkit-backdrop-filter}.nav--is-sticking .nav__background[data-v-0c761cd5]:after{background-color:var(--color-nav-sticking-expanded-keyline)}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.nav--is-sticking .nav__background[data-v-0c761cd5]{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:var(--color-nav-uiblur-stuck)}}.theme-dark.nav--is-sticking .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-dark-stuck)}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.theme-dark.nav--is-sticking .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-dark-uiblur-stuck)}}.nav--is-open .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-expanded);max-height:none;transition:background-color 0s ease;transition-property:background-color,-webkit-backdrop-filter;transition-property:background-color,backdrop-filter;transition-property:background-color,backdrop-filter,-webkit-backdrop-filter}.nav--is-open .nav__background[data-v-0c761cd5]:after{background-color:var(--color-nav-sticking-expanded-keyline)}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.nav--is-open .nav__background[data-v-0c761cd5]{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:var(--color-nav-uiblur-expanded)}}.theme-dark.nav--is-open .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-dark-expanded)}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.theme-dark.nav--is-open .nav__background[data-v-0c761cd5]{background-color:var(--color-nav-dark-uiblur-expanded)}}.theme-dark .nav__background[data-v-0c761cd5]:after{background-color:var(--color-nav-dark-keyline)}.nav--is-open.theme-dark .nav__background[data-v-0c761cd5]:after,.nav--is-sticking.theme-dark .nav__background[data-v-0c761cd5]:after{background-color:var(--color-nav-dark-sticking-expanded-keyline)}.nav__background[data-v-0c761cd5]:after{content:"";display:block;position:absolute;top:100%;left:50%;transform:translateX(-50%);width:980px;height:1px;z-index:1}@media only screen and (max-width:1023px){.nav__background[data-v-0c761cd5]:after{width:100%}}.nav--noborder .nav__background[data-v-0c761cd5]:after{display:none}.nav--is-sticking.nav--noborder .nav__background[data-v-0c761cd5]:after{display:block}.nav--fullwidth-border .nav__background[data-v-0c761cd5]:after,.nav--is-open .nav__background[data-v-0c761cd5]:after,.nav--is-sticking .nav__background[data-v-0c761cd5]:after,.nav--solid-background .nav__background[data-v-0c761cd5]:after{width:100%}.nav-overlay[data-v-0c761cd5]{position:fixed;left:0;right:0;top:0;display:block;opacity:0}.nav--is-open .nav-overlay[data-v-0c761cd5]{background-color:rgba(51,51,51,.4);transition:opacity .7s cubic-bezier(.07,1.06,.27,.95) .2s;bottom:0;opacity:1}.nav-wrapper[data-v-0c761cd5]{position:absolute;top:0;left:0;width:100%;height:auto;min-height:100%;z-index:1}.pre-title[data-v-0c761cd5]{display:flex;overflow:hidden;padding-left:1.29412rem;margin-left:-1.29412rem}.pre-title[data-v-0c761cd5]:empty{display:none}.nav--in-breakpoint-range .pre-title[data-v-0c761cd5]{overflow:visible;padding:0;margin-left:0}.nav-content[data-v-0c761cd5]{display:flex;padding:0 var(--nav-padding);max-width:980px;margin:0 auto;position:relative;z-index:2;justify-content:space-between}.nav--is-wide-format .nav-content[data-v-0c761cd5]{box-sizing:border-box;max-width:1920px;margin-left:auto;margin-right:auto}@supports (padding:calc(max(0px))){.nav-content[data-v-0c761cd5]{padding-left:calc(max(var(--nav-padding), env(safe-area-inset-left)));padding-right:calc(max(var(--nav-padding), env(safe-area-inset-right)))}}@media only screen and (max-width:767px){.nav-content[data-v-0c761cd5]{padding:0 0 0 .94118rem}}.nav--in-breakpoint-range .nav-content[data-v-0c761cd5]{display:grid;grid-template-columns:auto 1fr auto;grid-auto-rows:minmax(-webkit-min-content,-webkit-max-content);grid-auto-rows:minmax(min-content,max-content);grid-template-areas:"pre-title title actions" "menu menu menu"}.nav-menu[data-v-0c761cd5]{font-size:.70588rem;line-height:1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);flex:1 1 auto;display:flex;padding-top:10px;min-width:0}@media only screen and (max-width:767px){.nav-menu[data-v-0c761cd5]{font-size:.82353rem;line-height:1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.nav--in-breakpoint-range .nav-menu[data-v-0c761cd5]{font-size:.82353rem;line-height:1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);padding-top:0;grid-area:menu}.nav-menu-tray[data-v-0c761cd5]{width:100%;max-width:100%;align-items:center;display:flex;justify-content:space-between}.nav--in-breakpoint-range .nav-menu-tray[data-v-0c761cd5]{display:block;overflow:hidden;pointer-events:none;visibility:hidden;max-height:0;transition:max-height .4s ease-in 0s,visibility 0s linear 1s}.nav--is-open.nav--in-breakpoint-range .nav-menu-tray[data-v-0c761cd5]{max-height:calc(100vh - 5.64706rem);overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:auto;visibility:visible;transition-delay:.2s,0s}.nav--is-transitioning.nav--is-open.nav--in-breakpoint-range .nav-menu-tray[data-v-0c761cd5]{overflow-y:hidden}.nav--is-sticking.nav--is-open.nav--in-breakpoint-range .nav-menu-tray[data-v-0c761cd5]{max-height:calc(100vh - 2.82353rem)}.nav-actions[data-v-0c761cd5]{display:flex;align-items:center}.nav--in-breakpoint-range .nav-actions[data-v-0c761cd5]{grid-area:actions;justify-content:flex-end}@media only screen and (max-width:767px){.nav-actions[data-v-0c761cd5]{padding-right:.94118rem}}.nav--in-breakpoint-range .pre-title+.nav-title[data-v-0c761cd5]{grid-area:title}.nav--is-wide-format.nav--in-breakpoint-range .pre-title+.nav-title[data-v-0c761cd5]{width:100%;justify-content:center}.nav-title[data-v-0c761cd5]{height:3.05882rem;font-size:1.11765rem;line-height:1.42105;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);cursor:default;display:flex;align-items:center;white-space:nowrap;box-sizing:border-box}@media only screen and (max-width:767px){.nav-title[data-v-0c761cd5]{padding-top:0;height:2.82353rem;width:90%}}.nav-title[data-v-0c761cd5] span{height:100%;line-height:normal}.nav-title a[data-v-0c761cd5]{display:inline-block;letter-spacing:inherit;line-height:normal;margin:0;text-decoration:none;white-space:nowrap}.nav-title a[data-v-0c761cd5]:hover{text-decoration:none}@media only screen and (max-width:767px){.nav-title a[data-v-0c761cd5]{display:flex}}.nav-title[data-v-0c761cd5],.nav-title a[data-v-0c761cd5]{color:var(--color-figure-gray);transition:color 0s ease-in}.nav--is-open.theme-dark .nav-title[data-v-0c761cd5],.nav--is-open.theme-dark .nav-title a[data-v-0c761cd5],.nav--is-sticking.theme-dark .nav-title[data-v-0c761cd5],.nav--is-sticking.theme-dark .nav-title a[data-v-0c761cd5],.theme-dark .nav-title[data-v-0c761cd5],.theme-dark .nav-title a[data-v-0c761cd5]{color:var(--color-nav-dark-link-color)}.nav-ax-toggle[data-v-0c761cd5]{display:none;position:absolute;top:0;left:0;width:1px;height:1px;z-index:10}.nav-ax-toggle[data-v-0c761cd5]:focus{outline-offset:-6px;width:100%;height:100%}.nav--in-breakpoint-range .nav-ax-toggle[data-v-0c761cd5]{display:block}.nav-menucta[data-v-0c761cd5]{cursor:pointer;display:none;align-items:center;overflow:hidden;width:1.17647rem;-webkit-tap-highlight-color:transparent;height:2.82353rem}.nav--in-breakpoint-range .nav-menucta[data-v-0c761cd5]{display:flex}.nav-menucta-chevron[data-v-0c761cd5]{display:block;position:relative;width:100%;height:.70588rem;transition:transform .3s linear}.nav-menucta-chevron[data-v-0c761cd5]:after,.nav-menucta-chevron[data-v-0c761cd5]:before{content:"";display:block;position:absolute;top:.58824rem;width:.70588rem;height:.05882rem;transition:transform .3s linear;background:var(--color-figure-gray)}.nav-menucta-chevron[data-v-0c761cd5]:before{right:50%;border-radius:.5px 0 0 .5px}.nav-menucta-chevron[data-v-0c761cd5]:after{left:50%;border-radius:0 .5px .5px 0}.nav-menucta-chevron[data-v-0c761cd5]:before{transform-origin:100% 100%;transform:rotate(40deg) scaleY(1.5)}.nav-menucta-chevron[data-v-0c761cd5]:after{transform-origin:0 100%;transform:rotate(-40deg) scaleY(1.5)}.nav--is-open .nav-menucta-chevron[data-v-0c761cd5]{transform:scaleY(-1)}.theme-dark .nav-menucta-chevron[data-v-0c761cd5]:after,.theme-dark .nav-menucta-chevron[data-v-0c761cd5]:before{background:var(--color-nav-dark-link-color)}[data-v-0c761cd5] .nav-menu-link{color:var(--color-nav-link-color)}[data-v-0c761cd5] .nav-menu-link:hover{color:var(--color-nav-link-color-hover);text-decoration:none}.theme-dark[data-v-0c761cd5] .nav-menu-link{color:var(--color-nav-dark-link-color)}.theme-dark[data-v-0c761cd5] .nav-menu-link:hover{color:var(--color-nav-dark-link-color-hover)}[data-v-0c761cd5] .nav-menu-link.current{color:var(--color-nav-current-link);cursor:default}[data-v-0c761cd5] .nav-menu-link.current:hover{color:var(--color-nav-current-link)}.theme-dark[data-v-0c761cd5] .nav-menu-link.current,.theme-dark[data-v-0c761cd5] .nav-menu-link.current:hover{color:var(--color-nav-dark-current-link)}.reference-card-grid-item__image[data-v-15b5139b]{display:flex;align-items:center;justify-content:center;font-size:80px;background-color:var(--color-fill-gray-quaternary)}.reference-card-grid-item__icon[data-v-15b5139b]{margin:0;display:flex;justify-content:center}.reference-card-grid-item__icon[data-v-15b5139b] .icon-inline{flex:1 1 auto}.nav-menu-item[data-v-66cbfe4c]{margin-left:1.41176rem;list-style:none;min-width:0}.nav--in-breakpoint-range .nav-menu-item[data-v-66cbfe4c]{margin-left:0;width:100%;min-height:2.47059rem}.nav--in-breakpoint-range .nav-menu-item[data-v-66cbfe4c]:first-child .nav-menu-link{border-top:0}.nav--in-breakpoint-range .nav-menu-item--animated[data-v-66cbfe4c]{opacity:0;transform:none;transition:.5s ease;transition-property:transform,opacity}.nav--is-open.nav--in-breakpoint-range .nav-menu-item--animated[data-v-66cbfe4c]{opacity:1;transform:translateZ(0);transition-delay:0s}.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="0"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="1"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="2"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="3"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="4"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="5"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="6"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:first-child,.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(2),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(3),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(4),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(5),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(6),.nav--is-open.nav--in-breakpoint-range [data-previous-menu-children-count="7"] .nav-menu-item--animated[data-v-66cbfe4c]:nth-child(7){transition-delay:0s}.links-block[data-v-81ecd99a]+*{margin-top:1.6em}.topic-link-block[data-v-81ecd99a]{margin-top:15px} \ No newline at end of file diff --git a/XCoordinator.doccarchive/css/index.d5b499b0.css b/XCoordinator.doccarchive/css/index.d5b499b0.css new file mode 100644 index 00000000..41ab3dd3 --- /dev/null +++ b/XCoordinator.doccarchive/css/index.d5b499b0.css @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */.color-scheme-toggle[data-v-8890c4d6]{--toggle-color-fill:var(--color-button-background);--toggle-color-text:var(--color-fill-blue);font-size:.70588rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);border:1px solid var(--toggle-color-fill);border-radius:var(--toggle-border-radius-outer,var(--border-radius,4px));display:inline-flex;padding:1px}@media screen{[data-color-scheme=dark] .color-scheme-toggle[data-v-8890c4d6]{--toggle-color-text:var(--color-figure-blue)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .color-scheme-toggle[data-v-8890c4d6]{--toggle-color-text:var(--color-figure-blue)}}@media print{.color-scheme-toggle[data-v-8890c4d6]{display:none}}input[data-v-8890c4d6]{position:absolute;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(0 0 99.9% 99.9%);clip-path:inset(0 0 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.fromkeyboard label[data-v-8890c4d6]:focus-within{outline:4px solid var(--color-focus-color);outline-offset:1px}.text[data-v-8890c4d6]{border:1px solid transparent;border-radius:var(--toggle-border-radius-inner,2px);color:var(--toggle-color-text);display:inline-block;text-align:center;padding:1px 6px;min-width:42px;box-sizing:border-box}.text[data-v-8890c4d6]:hover{cursor:pointer}input:checked+.text[data-v-8890c4d6]{--toggle-color-text:var(--color-button-text);background:var(--toggle-color-fill);border-color:var(--toggle-color-fill)}.footer[data-v-72f2e2dc]{border-top:1px solid var(--color-grid)}.row[data-v-72f2e2dc]{margin-left:auto;margin-right:auto;width:980px;display:flex;flex-direction:row-reverse;padding:20px 0}@media only screen and (max-width:1250px){.row[data-v-72f2e2dc]{width:692px}}@media only screen and (max-width:735px){.row[data-v-72f2e2dc]{width:87.5%;width:100%;padding:20px .94118rem;box-sizing:border-box}}.InitialLoadingPlaceholder[data-v-35c356b6]{background:var(--colors-loading-placeholder-background,var(--color-loading-placeholder-background));height:100vh;width:100%}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;background-color:var(--colors-text-background,var(--color-text-background));height:100%}abbr,blockquote,body,button,dd,dl,dt,fieldset,figure,form,h1,h2,h3,h4,h5,h6,hgroup,input,legend,li,ol,p,pre,ul{margin:0;padding:0}address,caption,code,figcaption,pre,th{font-size:1em;font-weight:400;font-style:normal}fieldset,iframe,img{border:0}caption,th{text-align:left}table{border-collapse:collapse;border-spacing:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}button{background:none;border:0;box-sizing:content-box;color:inherit;cursor:pointer;font:inherit;line-height:inherit;overflow:visible;vertical-align:inherit}button:disabled{cursor:default}:focus{outline:4px solid var(--color-focus-color);outline-offset:1px}::-moz-focus-inner{border:0;padding:0}@media print{#content,#main,body{color:#000}a,a:link,a:visited{color:#000;text-decoration:none}.hide,.noprint{display:none}}body{height:100%;min-width:320px}html{font:var(--typography-html-font,17px "Helvetica Neue","Helvetica","Arial",sans-serif);quotes:"“" "”"}body{font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);background-color:var(--color-text-background);color:var(--colors-text,var(--color-text));font-style:normal;word-wrap:break-word}body,button,input,select,textarea{font-synthesis:none;-moz-font-feature-settings:"kern";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;direction:ltr;text-align:left}h1,h2,h3,h4,h5,h6{color:var(--colors-header-text,var(--color-header-text))}h1+*,h2+*,h3+*,h4+*,h5+*,h6+*{margin-top:.8em}ol+h1,ol+h2,ol+h3,ol+h4,ol+h5,ol+h6,p+h1,p+h2,p+h3,p+h4,p+h5,p+h6,ul+h1,ul+h2,ul+h3,ul+h4,ul+h5,ul+h6{margin-top:1.6em}ol+*,p+*,ul+*{margin-top:.8em}ol,ul{margin-left:1.17647em}ol ol,ol ul,ul ol,ul ul{margin-top:0;margin-bottom:0}nav ol,nav ul{margin:0;list-style:none}li li{font-size:1em}a{color:var(--colors-link,var(--color-link))}a:link,a:visited{text-decoration:none}a:hover{text-decoration:underline}a:active{text-decoration:none}p+a{display:inline-block}b,strong{font-weight:600}cite,dfn,em,i{font-style:italic}sup{font-size:.6em;vertical-align:top;position:relative;bottom:-.2em}h1 sup,h2 sup,h3 sup{font-size:.4em}sup a{vertical-align:inherit;color:inherit}sup a:hover{color:var(--figure-blue);text-decoration:none}sub{line-height:1}abbr{border:0}pre{overflow:auto;-webkit-overflow-scrolling:auto;white-space:pre;word-wrap:normal}code{font-family:var(--typography-html-font-mono,Menlo,monospace);font-weight:inherit;letter-spacing:0}.syntax-comment{color:var(--syntax-comment,var(--color-syntax-comments))}.syntax-quote{color:var(--syntax-quote,var(--color-syntax-comments))}.syntax-keyword{color:var(--syntax-keyword,var(--color-syntax-keywords))}.syntax-literal{color:var(--syntax-literal,var(--color-syntax-keywords))}.syntax-selector-tag{color:var(--syntax-selector-tag,var(--color-syntax-keywords))}.syntax-string{color:var(--syntax-string,var(--color-syntax-strings))}.syntax-bullet{color:var(--syntax-bullet,var(--color-syntax-characters))}.syntax-meta{color:var(--syntax-meta,var(--color-syntax-characters))}.syntax-number{color:var(--syntax-number,var(--color-syntax-characters))}.syntax-symbol{color:var(--syntax-symbol,var(--color-syntax-characters))}.syntax-tag{color:var(--syntax-tag,var(--color-syntax-characters))}.syntax-attr{color:var(--syntax-attr,var(--color-syntax-other-type-names))}.syntax-built_in{color:var(--syntax-built_in,var(--color-syntax-other-type-names))}.syntax-builtin-name{color:var(--syntax-builtin-name,var(--color-syntax-other-type-names))}.syntax-class{color:var(--syntax-class,var(--color-syntax-other-type-names))}.syntax-params{color:var(--syntax-params,var(--color-syntax-other-type-names))}.syntax-section{color:var(--syntax-section,var(--color-syntax-other-type-names))}.syntax-title{color:var(--syntax-title,var(--color-syntax-other-type-names))}.syntax-type{color:var(--syntax-type,var(--color-syntax-other-type-names))}.syntax-attribute{color:var(--syntax-attribute,var(--color-syntax-plain-text))}.syntax-identifier{color:var(--syntax-identifier,var(--color-syntax-plain-text))}.syntax-subst{color:var(--syntax-subst,var(--color-syntax-plain-text))}.syntax-doctag,.syntax-strong{font-weight:700}.syntax-emphasis,.syntax-link{font-style:italic}[data-syntax=swift] .syntax-meta{color:var(--syntax-meta,var(--color-syntax-keywords))}[data-syntax=swift] .syntax-class,[data-syntax=swift] .syntax-keyword+.syntax-params,[data-syntax=swift] .syntax-params+.syntax-params{color:unset}[data-syntax=json] .syntax-attr{color:var(--syntax-attr,var(--color-syntax-strings))}#skip-nav{position:absolute;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(0 0 99.9% 99.9%);clip-path:inset(0 0 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0}#skip-nav:active,#skip-nav:focus{position:relative;float:left;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;color:var(--color-figure-blue);font-size:1em;padding:0 10px;z-index:100000;top:0;left:0;height:44px;line-height:44px;-webkit-clip-path:unset;clip-path:unset}.nav--in-breakpoint-range #skip-nav{display:none}.visuallyhidden{position:absolute;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(0 0 99.9% 99.9%);clip-path:inset(0 0 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0}@-webkit-keyframes pulse{0%{opacity:0}33%{opacity:1}66%{opacity:1}to{opacity:0}}@keyframes pulse{0%{opacity:0}33%{opacity:1}66%{opacity:1}to{opacity:0}}.changed{border:1px solid var(--color-changes-modified);border-radius:var(--border-radius,4px);position:relative}.changed.has-multiple-lines,.has-multiple-lines .changed{border-radius:var(--border-radius,4px)}.changed:after{left:8px;background-image:url(../img/modified-icon.f496e73d.svg);background-repeat:no-repeat;bottom:0;content:" ";margin:auto;margin-right:8px;position:absolute;top:0;width:1.17647rem;height:1.17647rem;margin-top:.61765rem;z-index:2}@media screen{[data-color-scheme=dark] .changed:after{background-image:url(../img/modified-icon.f496e73d.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .changed:after{background-image:url(../img/modified-icon.f496e73d.svg)}}.changed-added{border-color:var(--color-changes-added)}.changed-added:after{background-image:url(../img/added-icon.d6f7e47d.svg)}@media screen{[data-color-scheme=dark] .changed-added:after{background-image:url(../img/added-icon.d6f7e47d.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .changed-added:after{background-image:url(../img/added-icon.d6f7e47d.svg)}}.changed-deprecated{border-color:var(--color-changes-deprecated)}.changed-deprecated:after{background-image:url(../img/deprecated-icon.015b4f17.svg)}@media screen{[data-color-scheme=dark] .changed-deprecated:after{background-image:url(../img/deprecated-icon.015b4f17.svg)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .changed-deprecated:after{background-image:url(../img/deprecated-icon.015b4f17.svg)}}.changed.link-block:after,.changed.relationships-item:after,.link-block .changed:after{margin-top:10px}.change-added,.change-removed{padding:2px 0}.change-removed{background-color:var(--color-highlight-red)}.change-added{background-color:var(--color-highlight-green)}body{color-scheme:light dark}body[data-color-scheme=light]{color-scheme:light}body[data-color-scheme=dark]{color-scheme:dark}body{--color-fill:#fff;--color-fill-secondary:#f7f7f7;--color-fill-tertiary:#f0f0f0;--color-fill-quaternary:#282828;--color-fill-blue:#00f;--color-fill-light-blue-secondary:#d1d1ff;--color-fill-gray:#ccc;--color-fill-gray-secondary:#f5f5f5;--color-fill-gray-tertiary:#f0f0f0;--color-fill-gray-quaternary:#f0f0f0;--color-fill-green-secondary:#f0fff0;--color-fill-orange-secondary:#fffaf6;--color-fill-red-secondary:#fff0f5;--color-figure-blue:#36f;--color-figure-gray:#000;--color-figure-gray-secondary:#666;--color-figure-gray-secondary-alt:#666;--color-figure-gray-tertiary:#666;--color-figure-green:green;--color-figure-light-gray:#666;--color-figure-orange:#c30;--color-figure-red:red;--color-tutorials-teal:#000;--color-article-background:var(--color-fill-tertiary);--color-article-body-background:var(--color-fill);--color-aside-deprecated:var(--color-figure-gray);--color-aside-deprecated-background:var(--color-fill-orange-secondary);--color-aside-deprecated-border:var(--color-figure-orange);--color-aside-experiment:var(--color-figure-gray);--color-aside-experiment-background:var(--color-fill-gray-secondary);--color-aside-experiment-border:var(--color-figure-light-gray);--color-aside-important:var(--color-figure-gray);--color-aside-important-background:var(--color-fill-gray-secondary);--color-aside-important-border:var(--color-figure-light-gray);--color-aside-note:var(--color-figure-gray);--color-aside-note-background:var(--color-fill-gray-secondary);--color-aside-note-border:var(--color-figure-light-gray);--color-aside-tip:var(--color-figure-gray);--color-aside-tip-background:var(--color-fill-gray-secondary);--color-aside-tip-border:var(--color-figure-light-gray);--color-aside-warning:var(--color-figure-gray);--color-aside-warning-background:var(--color-fill-red-secondary);--color-aside-warning-border:var(--color-figure-red);--color-badge-default:var(--color-figure-light-gray);--color-badge-beta:var(--color-figure-gray-tertiary);--color-badge-deprecated:var(--color-figure-orange);--color-badge-dark-default:#fff;--color-badge-dark-beta:#b0b0b0;--color-badge-dark-deprecated:#f60;--color-button-background:var(--color-fill-blue);--color-button-background-active:#36f;--color-button-background-hover:var(--color-figure-blue);--color-button-text:#fff;--color-call-to-action-background:var(--color-fill-secondary);--color-changes-added:var(--color-figure-light-gray);--color-changes-added-hover:var(--color-figure-light-gray);--color-changes-deprecated:var(--color-figure-light-gray);--color-changes-deprecated-hover:var(--color-figure-light-gray);--color-changes-modified:var(--color-figure-light-gray);--color-changes-modified-hover:var(--color-figure-light-gray);--color-changes-modified-previous-background:var(--color-fill);--color-code-background:var(--color-fill-secondary);--color-code-collapsible-background:var(--color-fill-tertiary);--color-code-collapsible-text:var(--color-figure-gray-secondary-alt);--color-code-line-highlight:rgba(51,102,255,0.08);--color-code-line-highlight-border:var(--color-figure-blue);--color-code-plain:var(--color-figure-gray);--color-dropdown-background:hsla(0,0%,100%,0.8);--color-dropdown-border:#ccc;--color-dropdown-option-text:#666;--color-dropdown-text:#000;--color-dropdown-dark-background:hsla(0,0%,100%,0.1);--color-dropdown-dark-border:hsla(0,0%,94.1%,0.2);--color-dropdown-dark-option-text:#ccc;--color-dropdown-dark-text:#fff;--color-eyebrow:var(--color-figure-gray-secondary);--color-focus-border-color:var(--color-fill-blue);--color-focus-color:rgba(0,125,250,0.6);--color-form-error:var(--color-figure-red);--color-form-error-background:var(--color-fill-red-secondary);--color-form-valid:var(--color-figure-green);--color-form-valid-background:var(--color-fill-green-secondary);--color-generic-modal-background:var(--color-fill);--color-grid:var(--color-fill-gray);--color-header-text:var(--color-figure-gray);--color-hero-eyebrow:#ccc;--color-link:var(--color-figure-blue);--color-loading-placeholder-background:var(--color-fill);--color-nav-color:#666;--color-nav-current-link:rgba(0,0,0,0.6);--color-nav-expanded:#fff;--color-nav-hierarchy-collapse-background:#f0f0f0;--color-nav-hierarchy-collapse-borders:#ccc;--color-nav-hierarchy-item-borders:#ccc;--color-nav-keyline:rgba(0,0,0,0.2);--color-nav-link-color:#000;--color-nav-link-color-hover:#36f;--color-nav-outlines:#ccc;--color-nav-rule:hsla(0,0%,94.1%,0.5);--color-nav-solid-background:#fff;--color-nav-sticking-expanded-keyline:rgba(0,0,0,0.1);--color-nav-stuck:hsla(0,0%,100%,0.9);--color-nav-uiblur-expanded:hsla(0,0%,100%,0.9);--color-nav-uiblur-stuck:hsla(0,0%,100%,0.7);--color-nav-root-subhead:var(--color-tutorials-teal);--color-nav-dark-border-top-color:hsla(0,0%,100%,0.4);--color-nav-dark-color:#b0b0b0;--color-nav-dark-current-link:hsla(0,0%,100%,0.6);--color-nav-dark-expanded:#2a2a2a;--color-nav-dark-hierarchy-collapse-background:#424242;--color-nav-dark-hierarchy-collapse-borders:#666;--color-nav-dark-hierarchy-item-borders:#424242;--color-nav-dark-keyline:rgba(66,66,66,0.95);--color-nav-dark-link-color:#fff;--color-nav-dark-link-color-hover:#09f;--color-nav-dark-outlines:#575757;--color-nav-dark-rule:#575757;--color-nav-dark-solid-background:#000;--color-nav-dark-sticking-expanded-keyline:rgba(66,66,66,0.7);--color-nav-dark-stuck:rgba(42,42,42,0.9);--color-nav-dark-uiblur-expanded:rgba(42,42,42,0.9);--color-nav-dark-uiblur-stuck:rgba(42,42,42,0.7);--color-nav-dark-root-subhead:#fff;--color-runtime-preview-background:var(--color-fill-tertiary);--color-runtime-preview-disabled-text:hsla(0,0%,40%,0.6);--color-runtime-preview-text:var(--color-figure-gray-secondary);--color-secondary-label:var(--color-figure-gray-secondary);--color-step-background:var(--color-fill-secondary);--color-step-caption:var(--color-figure-gray-secondary);--color-step-focused:var(--color-figure-light-gray);--color-step-text:var(--color-figure-gray-secondary);--color-svg-icon:#666;--color-syntax-attributes:#947100;--color-syntax-characters:#272ad8;--color-syntax-comments:#707f8c;--color-syntax-documentation-markup:#506375;--color-syntax-documentation-markup-keywords:#506375;--color-syntax-heading:#ba2da2;--color-syntax-keywords:#ad3da4;--color-syntax-marks:#000;--color-syntax-numbers:#272ad8;--color-syntax-other-class-names:#703daa;--color-syntax-other-constants:#4b21b0;--color-syntax-other-declarations:#047cb0;--color-syntax-other-function-and-method-names:#4b21b0;--color-syntax-other-instance-variables-and-globals:#703daa;--color-syntax-other-preprocessor-macros:#78492a;--color-syntax-other-type-names:#703daa;--color-syntax-param-internal-name:#404040;--color-syntax-plain-text:#000;--color-syntax-preprocessor-statements:#78492a;--color-syntax-project-class-names:#3e8087;--color-syntax-project-constants:#2d6469;--color-syntax-project-function-and-method-names:#2d6469;--color-syntax-project-instance-variables-and-globals:#3e8087;--color-syntax-project-preprocessor-macros:#78492a;--color-syntax-project-type-names:#3e8087;--color-syntax-strings:#d12f1b;--color-syntax-type-declarations:#03638c;--color-syntax-urls:#1337ff;--color-tabnav-item-border-color:var(--color-fill-gray);--color-text:var(--color-figure-gray);--color-text-background:var(--color-fill);--color-tutorial-assessments-background:var(--color-fill-secondary);--color-tutorial-background:var(--color-fill);--color-tutorial-navbar-dropdown-background:var(--color-fill);--color-tutorial-navbar-dropdown-border:var(--color-fill-gray);--color-tutorial-quiz-border-active:var(--color-figure-blue);--color-tutorials-overview-background:#161616;--color-tutorials-overview-content:#fff;--color-tutorials-overview-content-alt:#fff;--color-tutorials-overview-eyebrow:#ccc;--color-tutorials-overview-icon:#b0b0b0;--color-tutorials-overview-link:#09f;--color-tutorials-overview-navigation-link:#ccc;--color-tutorials-overview-navigation-link-active:#fff;--color-tutorials-overview-navigation-link-hover:#fff;--color-tutorial-hero-text:#fff;--color-tutorial-hero-background:#000;--color-navigator-item-hover:rgba(0,0,255,0.05);--color-card-background:var(--color-fill);--color-card-content-text:var(--color-figure-gray);--color-card-eyebrow:var(--color-figure-gray-secondary-alt);--color-card-shadow:rgba(0,0,0,0.04)}@media screen{body[data-color-scheme=dark]{--color-fill:#000;--color-fill-secondary:#161616;--color-fill-tertiary:#2a2a2a;--color-fill-blue:#06f;--color-fill-light-blue-secondary:#004ec4;--color-fill-gray:#575757;--color-fill-gray-secondary:#222;--color-fill-gray-tertiary:#424242;--color-fill-gray-quaternary:#424242;--color-fill-green-secondary:#030;--color-fill-orange-secondary:#472400;--color-fill-red-secondary:#300;--color-figure-blue:#09f;--color-figure-gray:#fff;--color-figure-gray-secondary:#ccc;--color-figure-gray-secondary-alt:#b0b0b0;--color-figure-gray-tertiary:#b0b0b0;--color-figure-green:#090;--color-figure-light-gray:#b0b0b0;--color-figure-orange:#f60;--color-figure-red:#f33;--color-tutorials-teal:#fff;--color-article-body-background:#111;--color-badge-default:var(--color-badge-dark-default);--color-button-background-active:#06f;--color-code-line-highlight:rgba(0,153,255,0.08);--color-dropdown-background:var(--color-dropdown-dark-background);--color-dropdown-border:var(--color-dropdown-dark-border);--color-dropdown-option-text:var(--color-dropdown-dark-option-text);--color-dropdown-text:var(--color-dropdown-dark-text);--color-nav-color:var(--color-nav-dark-color);--color-nav-current-link:var(--color-nav-dark-current-link);--color-nav-expanded:var(--color-nav-dark-expanded);--color-nav-hierarchy-collapse-background:var(--color-nav-dark-hierarchy-collapse-background);--color-nav-hierarchy-collapse-borders:var(--color-nav-dark-hierarchy-collapse-borders);--color-nav-hierarchy-item-borders:var(--color-nav-dark-hierarchy-item-borders);--color-nav-keyline:var(--color-nav-dark-keyline);--color-nav-link-color:var(--color-nav-dark-link-color);--color-nav-link-color-hover:var(--color-nav-dark-link-color-hover);--color-nav-outlines:var(--color-nav-dark-outlines);--color-nav-rule:var(--color-nav-dark-rule);--color-nav-solid-background:var(--color-nav-dark-solid-background);--color-nav-sticking-expanded-keyline:var(--color-nav-dark-sticking-expanded-keyline);--color-nav-stuck:var(--color-nav-dark-stuck);--color-nav-uiblur-expanded:var(--color-nav-dark-uiblur-expanded);--color-nav-uiblur-stuck:var(--color-nav-dark-uiblur-stuck);--color-runtime-preview-disabled-text:hsla(0,0%,80%,0.6);--color-syntax-attributes:#cc9768;--color-syntax-characters:#d9c97c;--color-syntax-comments:#7f8c98;--color-syntax-documentation-markup:#7f8c98;--color-syntax-documentation-markup-keywords:#a3b1bf;--color-syntax-keywords:#ff7ab2;--color-syntax-marks:#fff;--color-syntax-numbers:#d9c97c;--color-syntax-other-class-names:#dabaff;--color-syntax-other-constants:#a7ebdd;--color-syntax-other-declarations:#4eb0cc;--color-syntax-other-function-and-method-names:#b281eb;--color-syntax-other-instance-variables-and-globals:#b281eb;--color-syntax-other-preprocessor-macros:#ffa14f;--color-syntax-other-type-names:#dabaff;--color-syntax-param-internal-name:#bfbfbf;--color-syntax-plain-text:#fff;--color-syntax-preprocessor-statements:#ffa14f;--color-syntax-project-class-names:#acf2e4;--color-syntax-project-constants:#78c2b3;--color-syntax-project-function-and-method-names:#78c2b3;--color-syntax-project-instance-variables-and-globals:#78c2b3;--color-syntax-project-preprocessor-macros:#ffa14f;--color-syntax-project-type-names:#acf2e4;--color-syntax-strings:#ff8170;--color-syntax-type-declarations:#6bdfff;--color-syntax-urls:#69f;--color-tutorial-background:var(--color-fill-tertiary);--color-navigator-item-hover:rgba(0,102,255,0.5);--color-card-shadow:hsla(0,0%,100%,0.04)}}@media screen and (prefers-color-scheme:dark){body[data-color-scheme=auto]{--color-fill:#000;--color-fill-secondary:#161616;--color-fill-tertiary:#2a2a2a;--color-fill-blue:#06f;--color-fill-light-blue-secondary:#004ec4;--color-fill-gray:#575757;--color-fill-gray-secondary:#222;--color-fill-gray-tertiary:#424242;--color-fill-gray-quaternary:#424242;--color-fill-green-secondary:#030;--color-fill-orange-secondary:#472400;--color-fill-red-secondary:#300;--color-figure-blue:#09f;--color-figure-gray:#fff;--color-figure-gray-secondary:#ccc;--color-figure-gray-secondary-alt:#b0b0b0;--color-figure-gray-tertiary:#b0b0b0;--color-figure-green:#090;--color-figure-light-gray:#b0b0b0;--color-figure-orange:#f60;--color-figure-red:#f33;--color-tutorials-teal:#fff;--color-article-body-background:#111;--color-badge-default:var(--color-badge-dark-default);--color-button-background-active:#06f;--color-code-line-highlight:rgba(0,153,255,0.08);--color-dropdown-background:var(--color-dropdown-dark-background);--color-dropdown-border:var(--color-dropdown-dark-border);--color-dropdown-option-text:var(--color-dropdown-dark-option-text);--color-dropdown-text:var(--color-dropdown-dark-text);--color-nav-color:var(--color-nav-dark-color);--color-nav-current-link:var(--color-nav-dark-current-link);--color-nav-expanded:var(--color-nav-dark-expanded);--color-nav-hierarchy-collapse-background:var(--color-nav-dark-hierarchy-collapse-background);--color-nav-hierarchy-collapse-borders:var(--color-nav-dark-hierarchy-collapse-borders);--color-nav-hierarchy-item-borders:var(--color-nav-dark-hierarchy-item-borders);--color-nav-keyline:var(--color-nav-dark-keyline);--color-nav-link-color:var(--color-nav-dark-link-color);--color-nav-link-color-hover:var(--color-nav-dark-link-color-hover);--color-nav-outlines:var(--color-nav-dark-outlines);--color-nav-rule:var(--color-nav-dark-rule);--color-nav-solid-background:var(--color-nav-dark-solid-background);--color-nav-sticking-expanded-keyline:var(--color-nav-dark-sticking-expanded-keyline);--color-nav-stuck:var(--color-nav-dark-stuck);--color-nav-uiblur-expanded:var(--color-nav-dark-uiblur-expanded);--color-nav-uiblur-stuck:var(--color-nav-dark-uiblur-stuck);--color-runtime-preview-disabled-text:hsla(0,0%,80%,0.6);--color-syntax-attributes:#cc9768;--color-syntax-characters:#d9c97c;--color-syntax-comments:#7f8c98;--color-syntax-documentation-markup:#7f8c98;--color-syntax-documentation-markup-keywords:#a3b1bf;--color-syntax-keywords:#ff7ab2;--color-syntax-marks:#fff;--color-syntax-numbers:#d9c97c;--color-syntax-other-class-names:#dabaff;--color-syntax-other-constants:#a7ebdd;--color-syntax-other-declarations:#4eb0cc;--color-syntax-other-function-and-method-names:#b281eb;--color-syntax-other-instance-variables-and-globals:#b281eb;--color-syntax-other-preprocessor-macros:#ffa14f;--color-syntax-other-type-names:#dabaff;--color-syntax-param-internal-name:#bfbfbf;--color-syntax-plain-text:#fff;--color-syntax-preprocessor-statements:#ffa14f;--color-syntax-project-class-names:#acf2e4;--color-syntax-project-constants:#78c2b3;--color-syntax-project-function-and-method-names:#78c2b3;--color-syntax-project-instance-variables-and-globals:#78c2b3;--color-syntax-project-preprocessor-macros:#ffa14f;--color-syntax-project-type-names:#acf2e4;--color-syntax-strings:#ff8170;--color-syntax-type-declarations:#6bdfff;--color-syntax-urls:#69f;--color-tutorial-background:var(--color-fill-tertiary);--color-navigator-item-hover:rgba(0,102,255,0.5);--color-card-shadow:hsla(0,0%,100%,0.04)}}#main{outline-style:none}:root{--app-height:100vh}[data-v-0a4c340a] :focus:not(input):not(textarea):not(select){outline:none}.fromkeyboard[data-v-0a4c340a] :focus:not(input):not(textarea):not(select){outline:4px solid var(--color-focus-color);outline-offset:1px}#app[data-v-0a4c340a]{display:flex;flex-flow:column;min-height:100%}#app[data-v-0a4c340a]>*{min-width:0}#app .router-content[data-v-0a4c340a]{flex:1}.container[data-v-790053de]{margin-left:auto;margin-right:auto;width:980px;outline-style:none;margin-top:92px;margin-bottom:140px}@media only screen and (max-width:1250px){.container[data-v-790053de]{width:692px}}@media only screen and (max-width:735px){.container[data-v-790053de]{width:87.5%}}.error-content[data-v-790053de]{box-sizing:border-box;width:502px;margin-left:auto;margin-right:auto;margin-bottom:54px}@media only screen and (max-width:1250px){.error-content[data-v-790053de]{width:420px;margin-bottom:45px}}@media only screen and (max-width:735px){.error-content[data-v-790053de]{max-width:330px;width:auto;margin-bottom:35px}}.title[data-v-790053de]{text-align:center;font-size:2.82353rem;line-height:1.08333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){.title[data-v-790053de]{font-size:2.35294rem;line-height:1.1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.title[data-v-790053de]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/css/topic.726a35dc.css b/XCoordinator.doccarchive/css/topic.726a35dc.css new file mode 100644 index 00000000..b2d8490b --- /dev/null +++ b/XCoordinator.doccarchive/css/topic.726a35dc.css @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */.nav-title-content[data-v-854b4dd6]{max-width:100%}.title[data-v-854b4dd6]{color:var(--color-nav-root-title,currentColor);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:inline-block;vertical-align:top;max-width:296px}@media only screen and (max-width:1023px){.title[data-v-854b4dd6]{max-width:205px}}@media only screen and (max-width:767px){.title[data-v-854b4dd6]{flex-basis:fill;display:initial;vertical-align:initial;max-width:none}}.subhead[data-v-854b4dd6]{color:var(--color-nav-root-subhead)}.theme-dark .subhead[data-v-854b4dd6]{color:var(--color-nav-dark-root-subhead)}.mobile-dropdown[data-v-154acfbd]{box-sizing:border-box}.nav--in-breakpoint-range .mobile-dropdown[data-v-154acfbd]{padding-left:.23529rem;padding-right:.23529rem}.mobile-dropdown ul[data-v-154acfbd]{list-style:none}.mobile-dropdown .option[data-v-154acfbd]{cursor:pointer;font-size:.70588rem;padding:.5rem 0;display:block;text-decoration:none;color:inherit}.mobile-dropdown .option[data-v-154acfbd]:focus{outline-offset:0}.mobile-dropdown .option.depth1[data-v-154acfbd]{padding-left:.47059rem}.active[data-v-154acfbd],.tutorial.router-link-active[data-v-154acfbd]{font-weight:600}.active[data-v-154acfbd]:focus,.tutorial.router-link-active[data-v-154acfbd]:focus{outline:none}.chapter-list[data-v-154acfbd]:not(:first-child){margin-top:1rem}.chapter-name[data-v-154acfbd],.tutorial[data-v-154acfbd]{padding:.5rem 0;font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.section-list[data-v-154acfbd],.tutorial-list[data-v-154acfbd]{padding:0 .58824rem}.chapter-list:last-child .tutorial-list[data-v-154acfbd]:last-child{padding-bottom:10em}.chapter-list[data-v-154acfbd]{display:inline-block}.form-element[data-v-998803d8]{position:relative}.form-dropdown[data-v-998803d8]{font-size:1rem;line-height:1.23529;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:block;box-sizing:border-box;width:100%;height:3.3em;color:var(--color-dropdown-text);padding:1.11765rem 2.35294rem 0 .94118rem;text-align:left;border:1px solid var(--color-dropdown-border);border-radius:var(--border-radius,4px);background-clip:padding-box;margin-bottom:.82353rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;min-height:32px}.form-dropdown[data-v-998803d8]:focus{box-shadow:0 0 0 4px var(--color-focus-color);outline:none;border-color:var(--color-focus-border-color)}.form-dropdown.no-eyebrow[data-v-998803d8]{padding-top:0}.form-dropdown[data-v-998803d8]:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--color-dropdown-text)}.form-dropdown[data-v-998803d8]::-ms-expand{opacity:0}.form-dropdown~.form-icon[data-v-998803d8]{position:absolute;display:block;pointer-events:none;fill:var(--color-figure-gray-tertiary);right:14px;width:13px;height:auto;top:50%;transform:translateY(-50%)}.is-open .form-dropdown~.form-icon[data-v-998803d8]{transform:translateY(-50%) scale(-1)}@media only screen and (max-width:735px){.form-dropdown~.form-icon[data-v-998803d8]{right:14px}}.form-dropdown~.form-label[data-v-998803d8]{font-size:.70588rem;line-height:1.75;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);position:absolute;top:.47059rem;left:17px;color:var(--color-figure-gray-secondary);pointer-events:none;padding:0;z-index:1}.form-dropdown[data-v-998803d8] option{color:var(--color-dropdown-text)}.form-dropdown-selectnone[data-v-998803d8]{color:transparent}.form-dropdown-selectnone~.form-label[data-v-998803d8]{font-size:1rem;line-height:1.23529;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);top:19px;left:17px;color:var(--color-figure-gray-tertiary)}.form-dropdown-selectnone[data-v-998803d8]:-moz-focusring{text-shadow:none}.form-dropdown-selectnone[data-v-998803d8]::-ms-value{display:none}.theme-dark .form-dropdown[data-v-998803d8]{color:var(--color-dropdown-dark-text);background-color:var(--color-dropdown-dark-background);border-color:var(--color-dropdown-dark-border)}.theme-dark .form-dropdown~.form-label[data-v-998803d8]{color:#ccc}.theme-dark .form-dropdown[data-v-998803d8]:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--color-dropdown-dark-text)}.theme-dark .form-dropdown.form-dropdown-selectnone[data-v-998803d8]{color:transparent}.theme-dark .form-dropdown.form-dropdown-selectnone[data-v-998803d8]:-moz-focusring{text-shadow:none}.theme-dark .form-dropdown-selectnone~.form-label[data-v-998803d8]{color:#b0b0b0}.dropdown-small[data-v-12dd746a]{height:30px;display:flex;align-items:center;position:relative;background:var(--color-fill)}.dropdown-small .form-dropdown-toggle[data-v-12dd746a]{line-height:1.5;font-size:12px;padding-top:0;padding-bottom:0;padding-left:20px;min-height:unset;height:30px;display:flex;align-items:center}.dropdown-small .form-dropdown-toggle[data-v-12dd746a]:focus{box-shadow:none;border-color:var(--color-dropdown-border)}.fromkeyboard .dropdown-small .form-dropdown-toggle[data-v-12dd746a]:focus{box-shadow:0 0 0 2px var(--color-focus-color);outline:none;border-color:var(--color-focus-border-color)}.form-dropdown-toggle[data-v-12dd746a]{margin:0}.is-open .form-dropdown-toggle[data-v-12dd746a]{border-radius:var(--border-radius,4px) var(--border-radius,4px) 0 0;border-bottom:none;padding-bottom:1px}.fromkeyboard .is-open .form-dropdown-toggle[data-v-12dd746a]{box-shadow:1px -1px 0 1px var(--color-focus-color),-1px -1px 0 1px var(--color-focus-color);border-color:var(--color-focus-border-color)}.form-dropdown-title[data-v-12dd746a]{margin:0;padding:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dropdown-custom[data-v-12dd746a]{border-radius:var(--border-radius,4px)}.dropdown-custom.is-open[data-v-12dd746a]{border-radius:var(--border-radius,4px) var(--border-radius,4px) 0 0}.dropdown-custom[data-v-12dd746a] .form-dropdown-content{background:var(--color-fill);position:absolute;right:0;left:0;top:100%;border-bottom-left-radius:var(--border-radius,4px);border-bottom-right-radius:var(--border-radius,4px);border:1px solid var(--color-dropdown-border);border-top:none;display:none;overflow-y:auto}.dropdown-custom[data-v-12dd746a] .form-dropdown-content.is-open{display:block}.fromkeyboard .dropdown-custom[data-v-12dd746a] .form-dropdown-content.is-open{box-shadow:1px 1px 0 1px var(--color-focus-color),-1px 1px 0 1px var(--color-focus-color);border-color:var(--color-focus-border-color);border-top-color:transparent}.nav .dropdown-custom[data-v-12dd746a] .form-dropdown-content{max-height:calc(100vh - 116px - 3.05882rem)}.nav--is-sticking.nav .dropdown-custom[data-v-12dd746a] .form-dropdown-content{max-height:calc(100vh - 3.05882rem - 72px)}.dropdown-custom[data-v-12dd746a] .options{list-style:none;margin:0;padding:0 0 20px}.dropdown-custom[data-v-12dd746a] .option{cursor:pointer;padding:5px 20px;font-size:12px;line-height:20px;outline:none}.dropdown-custom[data-v-12dd746a] .option:hover{background-color:var(--color-fill-tertiary)}.dropdown-custom[data-v-12dd746a] .option.option-active{font-weight:600}.fromkeyboard .dropdown-custom[data-v-12dd746a] .option:hover{background-color:transparent}.fromkeyboard .dropdown-custom[data-v-12dd746a] .option:focus{background-color:var(--color-fill-tertiary);outline:none}.tutorial-dropdown[data-v-4a151342]{grid-column:3}.section-tracker[data-v-4a151342]{font-size:.70588rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-figure-gray-secondary);margin-left:15px}.tutorial-dropdown[data-v-78dc103f]{grid-column:1/2}.tutorial-dropdown .options[data-v-78dc103f]{padding-top:1rem;padding-bottom:0}.tutorial-dropdown .option[data-v-78dc103f]{padding:5px 20px 5px 30px}.chapter-list[data-v-78dc103f]{padding-bottom:20px}.chapter-name[data-v-78dc103f]{margin:0 20px 5px 20px;line-height:normal;color:var(--color-figure-gray-secondary)}.chevron-icon[data-v-af20c2a0]{padding:0;color:var(--color-nav-outlines);grid-column:2;height:20px;width:20px;margin:0 4px}@media only screen and (min-width:768px){.nav[data-v-af20c2a0] .nav-content{display:grid;grid-template-columns:auto auto 3fr;align-items:center}.nav[data-v-af20c2a0] .nav-menu{padding:0;grid-column:3/5}.nav[data-v-af20c2a0] .nav-menu-item{margin:0}}.dropdown-container[data-v-af20c2a0]{height:3.05882rem;display:grid;grid-template-columns:minmax(230px,285px) auto minmax(230px,1fr);align-items:center}@media only screen and (max-width:1023px){.dropdown-container[data-v-af20c2a0]{grid-template-columns:minmax(173px,216px) auto minmax(173px,1fr)}}.separator[data-v-af20c2a0]{height:20px;border-right:1px solid;border-color:var(--color-nav-outlines);margin:0 20px;grid-column:2}.mobile-dropdown-container[data-v-af20c2a0],.nav--in-breakpoint-range.nav .dropdown-container[data-v-af20c2a0],.nav--in-breakpoint-range.nav .separator[data-v-af20c2a0]{display:none}.nav--in-breakpoint-range.nav .mobile-dropdown-container[data-v-af20c2a0]{display:block}.nav--in-breakpoint-range.nav[data-v-af20c2a0] .nav-title{grid-area:title}.nav--in-breakpoint-range.nav[data-v-af20c2a0] .pre-title{display:none}.nav[data-v-af20c2a0] .nav-title{grid-column:1;width:90%;padding-top:0}.primary-dropdown[data-v-af20c2a0],.secondary-dropdown[data-v-af20c2a0]{background:var(--color-tutorial-navbar-dropdown-background);border-color:var(--color-tutorial-navbar-dropdown-border)}.primary-dropdown[data-v-af20c2a0] .form-dropdown,.primary-dropdown[data-v-af20c2a0] .form-dropdown:focus,.secondary-dropdown[data-v-af20c2a0] .form-dropdown,.secondary-dropdown[data-v-af20c2a0] .form-dropdown:focus{border-color:var(--color-tutorial-navbar-dropdown-border)}.primary-dropdown[data-v-af20c2a0] .options,.secondary-dropdown[data-v-af20c2a0] .options{background:var(--color-tutorial-navbar-dropdown-background);border-color:var(--color-tutorial-navbar-dropdown-border)}[data-v-3cfe1c35] .code-listing+*,[data-v-3cfe1c35] aside+*,[data-v-3cfe1c35] h2+*,[data-v-3cfe1c35] h3+*,[data-v-3cfe1c35] ol+*,[data-v-3cfe1c35] p+*,[data-v-3cfe1c35] ul+*{margin-top:20px}[data-v-3cfe1c35] ol ol,[data-v-3cfe1c35] ol ul,[data-v-3cfe1c35] ul ol,[data-v-3cfe1c35] ul ul{margin-top:0}[data-v-3cfe1c35] h2{font-size:1.88235rem;line-height:1.25;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-3cfe1c35] h2{font-size:1.64706rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){[data-v-3cfe1c35] h2{font-size:1.41176rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}[data-v-3cfe1c35] h3{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-3cfe1c35] h3{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}[data-v-3cfe1c35] .code-listing{background:var(--color-code-background);border-color:var(--colors-grid,var(--color-grid));border-style:solid;border-width:1px}[data-v-3cfe1c35] .code-listing pre{font-size:.70588rem;line-height:1.83333;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace);padding:20px 0}.columns[data-v-30edf911]{display:grid;grid-template-rows:repeat(2,auto)}.columns.cols-2[data-v-30edf911]{gap:20px 8.33333%;grid-template-columns:repeat(2,1fr)}.columns.cols-3[data-v-30edf911]{gap:20px 4.16667%;grid-template-columns:repeat(3,1fr)}.asset[data-v-30edf911]{align-self:end;grid-row:1}.content[data-v-30edf911]{grid-row:2}@media only screen and (max-width:735px){.columns.cols-2[data-v-30edf911],.columns.cols-3[data-v-30edf911]{grid-template-columns:unset}.asset[data-v-30edf911],.content[data-v-30edf911]{grid-row:auto}}.content-and-media[data-v-3fa44f9e]{display:flex}.content-and-media.media-leading[data-v-3fa44f9e]{flex-direction:row-reverse}.content-and-media.media-trailing[data-v-3fa44f9e]{flex-direction:row}@media only screen and (min-width:736px){.content-and-media[data-v-3fa44f9e]{align-items:center;justify-content:center}}.content[data-v-3fa44f9e]{width:62.5%}.asset[data-v-3fa44f9e]{width:29.16667%}.media-leading .asset[data-v-3fa44f9e]{margin-right:8.33333%}.media-trailing .asset[data-v-3fa44f9e]{margin-left:8.33333%}@media only screen and (max-width:735px){.content-and-media.media-leading[data-v-3fa44f9e],.content-and-media.media-trailing[data-v-3fa44f9e]{flex-direction:column}.asset[data-v-3fa44f9e],.content[data-v-3fa44f9e]{width:100%}.media-leading .asset[data-v-3fa44f9e],.media-trailing .asset[data-v-3fa44f9e]{margin:20px 0 0 0}}.group[id][data-v-1f2be54b]{margin-top:20px;padding-top:20px}[data-v-1f2be54b] img,[data-v-1f2be54b] video{display:block;margin:0 auto;max-width:100%}.layout+[data-v-4d5a806e]{margin-top:40px}@media only screen and (max-width:735px){.layout[data-v-4d5a806e]:first-child>:not(.group[id]){margin-top:40px}}.body[data-v-6499e2f2]{background:var(--colors-text-background,var(--color-article-body-background));margin-left:auto;margin-right:auto;width:980px;border-radius:10px;transform:translateY(-120px)}@media only screen and (max-width:1250px){.body[data-v-6499e2f2]{width:692px}}@media only screen and (max-width:735px){.body[data-v-6499e2f2]{width:87.5%;border-radius:0;transform:none}}.body[data-v-6499e2f2]~*{margin-top:-40px}.body-content[data-v-6499e2f2]{padding:40px 8.33333% 80px 8.33333%}@media only screen and (max-width:735px){.body-content[data-v-6499e2f2]{padding:0 0 40px 0}}.call-to-action[data-v-2016b288]{padding:65px 0;background:var(--color-call-to-action-background)}.theme-dark .call-to-action[data-v-2016b288]{--color-call-to-action-background:#424242}.row[data-v-2016b288]{margin-left:auto;margin-right:auto;width:980px;display:flex;align-items:center}@media only screen and (max-width:1250px){.row[data-v-2016b288]{width:692px}}@media only screen and (max-width:735px){.row[data-v-2016b288]{width:87.5%}}[data-v-2016b288] img,[data-v-2016b288] video{max-height:560px}h2[data-v-2016b288]{font-size:1.88235rem;line-height:1.25;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){h2[data-v-2016b288]{font-size:1.64706rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){h2[data-v-2016b288]{font-size:1.41176rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.label[data-v-2016b288]{display:block;font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-bottom:.4em;color:var(--color-eyebrow)}@media only screen and (max-width:735px){.label[data-v-2016b288]{font-size:1.11765rem;line-height:1.21053;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.content[data-v-2016b288]{margin-bottom:1.5rem}.right-column[data-v-2016b288]{margin-left:auto}@media only screen and (max-width:735px){.row[data-v-2016b288]{display:block}.col+.col[data-v-2016b288]{margin-top:40px}}@media only screen and (max-width:735px){.call-to-action[data-v-426a965c]{margin-top:0}}.headline[data-v-1898f592]{margin-bottom:.8em}.heading[data-v-1898f592]{font-size:2.82353rem;line-height:1.08333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-header-text)}@media only screen and (max-width:1250px){.heading[data-v-1898f592]{font-size:2.35294rem;line-height:1.1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.heading[data-v-1898f592]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.dark .heading[data-v-1898f592]{color:#fff}.eyebrow[data-v-1898f592]{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:block;margin-bottom:.4em;color:var(--color-eyebrow)}@media only screen and (max-width:1250px){.eyebrow[data-v-1898f592]{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.metadata[data-v-2fa6f125]{display:flex}.item[data-v-2fa6f125]{font-size:.70588rem;line-height:1.33333;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-right:1px solid #fff;padding:0 27.5px}@media only screen and (max-width:735px){.item[data-v-2fa6f125]{font-size:.64706rem;line-height:1.63636;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);padding:0 8px}}.item[data-v-2fa6f125]:first-of-type{padding-left:0}.item[data-v-2fa6f125]:last-of-type{border:none}@media only screen and (max-width:735px){.item[data-v-2fa6f125]:last-of-type{padding-right:0}}.content[data-v-2fa6f125]{color:#fff}.icon[data-v-2fa6f125]{font-size:2.82353rem;line-height:1.08333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){.icon[data-v-2fa6f125]{font-size:2.35294rem;line-height:1.1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.icon[data-v-2fa6f125]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.small-icon[data-v-2fa6f125]{width:1em;height:1em;margin-left:.2rem}.small-icon.xcode-icon[data-v-2fa6f125]{width:.8em;height:.8em}.content-link[data-v-2fa6f125]{display:flex;align-items:center}a[data-v-2fa6f125]{color:var(--colors-link,var(--color-tutorials-overview-link))}.duration[data-v-2fa6f125]{display:flex;align-items:baseline;font-size:2.35294rem;line-height:1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);line-height:1.8rem}@media only screen and (max-width:735px){.duration[data-v-2fa6f125]{font-size:1.64706rem;line-height:1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);line-height:1.3rem}}.minutes[data-v-2fa6f125]{display:inline-block;font-size:1.64706rem;line-height:1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);line-height:1.3rem}@media only screen and (max-width:735px){.minutes[data-v-2fa6f125]{font-size:1rem;line-height:1.23529;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);line-height:.8rem}}.item-large-icon[data-v-2fa6f125]{height:2.3rem;max-width:100%}@media only screen and (max-width:735px){.item-large-icon[data-v-2fa6f125]{height:1.5rem;max-width:100%}}.bottom[data-v-2fa6f125]{margin-top:13px}@media only screen and (max-width:735px){.bottom[data-v-2fa6f125]{margin-top:8px}}.hero[data-v-1a8cd6d3]{color:var(--color-tutorial-hero-text);position:relative}.bg[data-v-1a8cd6d3],.hero[data-v-1a8cd6d3]{background-color:var(--color-tutorial-hero-background)}.bg[data-v-1a8cd6d3]{background-position:top;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%}.row[data-v-1a8cd6d3]{margin-left:auto;margin-right:auto;width:980px;padding:80px 0}@media only screen and (max-width:1250px){.row[data-v-1a8cd6d3]{width:692px}}@media only screen and (max-width:735px){.row[data-v-1a8cd6d3]{width:87.5%}}.col[data-v-1a8cd6d3]{z-index:1}[data-v-1a8cd6d3] .eyebrow{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-hero-eyebrow)}@media only screen and (max-width:1250px){[data-v-1a8cd6d3] .eyebrow{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.headline[data-v-1a8cd6d3]{font-size:2.82353rem;line-height:1.08333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-bottom:2rem}@media only screen and (max-width:1250px){.headline[data-v-1a8cd6d3]{font-size:2.35294rem;line-height:1.1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.headline[data-v-1a8cd6d3]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.intro[data-v-1a8cd6d3]{font-size:1.23529rem;line-height:1.38095;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:735px){.intro[data-v-1a8cd6d3]{font-size:1.11765rem;line-height:1.42105;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.content+p[data-v-1a8cd6d3]{margin-top:.8em}@media only screen and (max-width:735px){.content+p[data-v-1a8cd6d3]{margin-top:8px}}.call-to-action[data-v-1a8cd6d3]{display:flex;align-items:center}.call-to-action .cta-icon[data-v-1a8cd6d3]{margin-left:.4rem;width:1em;height:1em}.metadata[data-v-1a8cd6d3]{margin-top:2rem}.video-asset[data-v-1a8cd6d3]{display:grid;height:100vh;margin:0;place-items:center center}.video-asset[data-v-1a8cd6d3] video{max-width:1280px;min-width:320px;width:100%}@media only screen and (max-width:735px){.headline[data-v-1a8cd6d3]{margin-bottom:19px}}.tutorial-hero[data-v-35a9482f]{margin-bottom:80px}@media only screen and (max-width:735px){.tutorial-hero[data-v-35a9482f]{margin-bottom:0}}.title[data-v-8ec95972]{font-size:.70588rem;line-height:1.33333;color:var(--colors-secondary-label,var(--color-secondary-label))}.title[data-v-8ec95972],.title[data-v-455ff2a6]{font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.title[data-v-455ff2a6]{font-size:1.11765rem;line-height:1.21053;color:var(--colors-header-text,var(--color-header-text));margin:25px 0}.question-content[data-v-455ff2a6] code{font-size:.76471rem;line-height:1.84615;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace)}.choices[data-v-455ff2a6]{display:flex;flex-direction:column;padding:0;list-style:none;margin:25px 0}.choice[data-v-455ff2a6]{font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);flex:1;border-radius:var(--border-radius,4px);margin:8px 0;padding:1.5rem 40px;cursor:pointer;background:var(--colors-text-background,var(--color-text-background));display:flex;flex-direction:column;justify-content:center;border-width:1px;border-style:solid;border-color:var(--colors-grid,var(--color-grid));position:relative}.choice[data-v-455ff2a6] img{max-height:23.52941rem}.choice[data-v-455ff2a6]:first-of-type{margin-top:0}.choice[data-v-455ff2a6] code{font-size:.76471rem;line-height:1.84615;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace)}.controls[data-v-455ff2a6]{text-align:center;margin-bottom:40px}.controls .button-cta[data-v-455ff2a6]{margin:.5rem;margin-top:0;padding:.3rem 3rem;min-width:8rem}input[type=radio][data-v-455ff2a6]{position:absolute;width:100%;left:0;height:100%;opacity:0;z-index:-1}.active[data-v-455ff2a6]{border-color:var(--color-tutorial-quiz-border-active);box-shadow:0 0 0 4px var(--color-focus-color);outline:none}.active [data-v-455ff2a6]{color:var(--colors-text,var(--color-text))}.correct[data-v-455ff2a6]{background:var(--color-form-valid-background);border-color:var(--color-form-valid)}.correct .choice-icon[data-v-455ff2a6]{fill:var(--color-form-valid)}.incorrect[data-v-455ff2a6]{background:var(--color-form-error-background);border-color:var(--color-form-error)}.incorrect .choice-icon[data-v-455ff2a6]{fill:var(--color-form-error)}.correct[data-v-455ff2a6],.incorrect[data-v-455ff2a6]{position:relative}.correct .choice-icon[data-v-455ff2a6],.incorrect .choice-icon[data-v-455ff2a6]{position:absolute;top:11px;left:10px;font-size:20px;width:1.05em}.disabled[data-v-455ff2a6]{pointer-events:none}.answer[data-v-455ff2a6]{margin:.5rem 1.5rem .5rem 0;font-size:.70588rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.answer[data-v-455ff2a6]:last-of-type{margin-bottom:0}[data-v-455ff2a6] .question>.code-listing{padding:unset;border-radius:0}[data-v-455ff2a6] pre{padding:0}[data-v-455ff2a6] img{display:block;margin-left:auto;margin-right:auto;max-width:100%}.title[data-v-c1de71de]{font-size:1.88235rem;line-height:1.25;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--colors-header-text,var(--color-header-text))}@media only screen and (max-width:1250px){.title[data-v-c1de71de]{font-size:1.64706rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.title[data-v-c1de71de]{font-size:1.41176rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.title p[data-v-c1de71de]{color:var(--colors-text,var(--color-text))}.assessments[data-v-c1de71de]{box-sizing:content-box;padding:0 1rem;background:var(--color-tutorial-assessments-background);margin-left:auto;margin-right:auto;width:980px;margin-bottom:80px}@media only screen and (max-width:1250px){.assessments[data-v-c1de71de]{width:692px}}@media only screen and (max-width:735px){.assessments[data-v-c1de71de]{width:87.5%}}.banner[data-v-c1de71de]{padding:40px 0;border-bottom:1px solid;margin-bottom:40px;border-color:var(--colors-grid,var(--color-grid));text-align:center}.success[data-v-c1de71de]{text-align:center;padding-bottom:40px;font-size:1.88235rem;line-height:1.25;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--colors-text,var(--color-text))}@media only screen and (max-width:1250px){.success[data-v-c1de71de]{font-size:1.64706rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.success[data-v-c1de71de]{font-size:1.41176rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.assessments-wrapper[data-v-c1de71de]{padding-top:80px}.assessments-wrapper[data-v-3c94366b]{padding-bottom:40px;padding-top:0}@media only screen and (max-width:735px){.assessments-wrapper[data-v-3c94366b]{padding-top:80px}}.article[data-v-d9f204d0]{background:var(--colors-article-background,var(--color-article-background))}@media only screen and (max-width:735px){.article[data-v-d9f204d0]{background:var(--colors-text-background,var(--color-article-body-background))}}.intro-container[data-v-54daa228]{margin-bottom:80px}.intro[data-v-54daa228]{display:flex;align-items:center}@media only screen and (max-width:735px){.intro[data-v-54daa228]{padding-bottom:0;flex-direction:column}}.intro.ide .media[data-v-54daa228] img{background-color:var(--colors-text-background,var(--color-text-background))}.col.left[data-v-54daa228]{padding-right:40px}@media only screen and (max-width:1250px){.col.left[data-v-54daa228]{padding-right:28px}}@media only screen and (max-width:735px){.col.left[data-v-54daa228]{margin-left:auto;margin-right:auto;width:980px;padding-right:0}}@media only screen and (max-width:735px) and (max-width:1250px){.col.left[data-v-54daa228]{width:692px}}@media only screen and (max-width:735px) and (max-width:735px){.col.left[data-v-54daa228]{width:87.5%}}.col.right[data-v-54daa228]{padding-left:40px}@media only screen and (max-width:1250px){.col.right[data-v-54daa228]{padding-left:28px}}@media only screen and (max-width:735px){.col.right[data-v-54daa228]{padding-left:0}}.content[data-v-54daa228]{font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.media[data-v-54daa228] img{width:auto;max-height:560px;min-height:18.82353rem;-o-object-fit:scale-down;object-fit:scale-down}@media only screen and (max-width:735px){.media[data-v-54daa228]{margin:0;margin-top:40px}.media[data-v-54daa228] img,.media[data-v-54daa228] video{max-height:80vh}}.media[data-v-54daa228] .asset{padding:0 20px}.headline[data-v-54daa228]{color:var(--colors-header-text,var(--color-header-text))}[data-v-54daa228] .eyebrow{font-size:1.23529rem;line-height:1.19048;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:735px){[data-v-54daa228] .eyebrow{font-size:1.11765rem;line-height:1.21053;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}[data-v-54daa228] .eyebrow a{color:inherit}[data-v-54daa228] .heading{font-size:1.88235rem;line-height:1.25;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:1250px){[data-v-54daa228] .heading{font-size:1.64706rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){[data-v-54daa228] .heading{font-size:1.41176rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.expanded-intro[data-v-54daa228]{margin-left:auto;margin-right:auto;width:980px;margin-top:40px}@media only screen and (max-width:1250px){.expanded-intro[data-v-54daa228]{width:692px}}@media only screen and (max-width:735px){.expanded-intro[data-v-54daa228]{width:87.5%}}[data-v-54daa228] .cols-2{gap:20px 16.66667%}[data-v-54daa228] .cols-3 .column{gap:20px 12.5%}.code-preview[data-v-9acc0234]{position:sticky;overflow-y:auto;-webkit-overflow-scrolling:touch;background-color:var(--background,var(--color-step-background));height:calc(100vh - 3.05882rem)}.code-preview.ide[data-v-9acc0234]{height:100vh}.code-preview[data-v-9acc0234] .code-listing{color:var(--text,var(--color-code-plain))}.code-preview[data-v-9acc0234] pre{font-size:.70588rem;line-height:1.83333;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace)}.header[data-v-9acc0234]{font-size:.70588rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);position:relative;display:flex;justify-content:space-between;align-items:center;width:-webkit-fill-available;width:-moz-available;width:stretch;cursor:pointer;font-weight:600;padding:8px 12px;border-radius:var(--border-radius,4px) var(--border-radius,4px) 0 0;z-index:1;background:var(--color-runtime-preview-background);color:var(--colors-runtime-preview-text,var(--color-runtime-preview-text))}.header[data-v-9acc0234]:focus{outline-style:none}#app.fromkeyboard .header[data-v-9acc0234]:focus{box-shadow:0 0 0 4px var(--color-focus-color);outline:none;border-color:var(--color-focus-border-color)}.runtime-preview[data-v-9acc0234]{--color-runtime-preview-shadow:rgba(0,0,0,0.4);position:absolute;top:0;right:0;background:var(--color-runtime-preview-background);border-radius:var(--border-radius,4px);margin:1rem;margin-left:0;transition:width .2s ease-in;box-shadow:0 0 3px 0 var(--color-runtime-preview-shadow)}@media screen{[data-color-scheme=dark] .runtime-preview[data-v-9acc0234]{--color-runtime-preview-shadow:hsla(0,0%,100%,0.4)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .runtime-preview[data-v-9acc0234]{--color-runtime-preview-shadow:hsla(0,0%,100%,0.4)}}@supports not ((width:-webkit-fill-available) or (width:-moz-available) or (width:stretch)){.runtime-preview[data-v-9acc0234]{display:flex;flex-direction:column}}.runtime-preview .runtimve-preview__container[data-v-9acc0234]{border-radius:var(--border-radius,4px);overflow:hidden}.runtime-preview-ide[data-v-9acc0234]{top:0}.runtime-preview-ide .runtime-preview-asset[data-v-9acc0234] img{background-color:var(--color-runtime-preview-background)}.runtime-preview.collapsed[data-v-9acc0234]{box-shadow:0 0 3px 0 var(--color-runtime-preview-shadow);width:102px}.runtime-preview.collapsed .header[data-v-9acc0234]{border-radius:var(--border-radius,4px)}.runtime-preview.disabled[data-v-9acc0234]{box-shadow:0 0 3px 0 transparent}.runtime-preview.disabled .header[data-v-9acc0234]{color:var(--color-runtime-preview-disabled-text);cursor:auto}.runtime-preview-asset[data-v-9acc0234]{border-radius:0 0 var(--border-radius,4px) var(--border-radius,4px)}.runtime-preview-asset[data-v-9acc0234] img{border-bottom-left-radius:var(--border-radius,4px);border-bottom-right-radius:var(--border-radius,4px)}.preview-icon[data-v-9acc0234]{height:.8em;width:.8em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.preview-show[data-v-9acc0234]{transform:scale(-1)}[data-v-5ad4e037] pre{padding:10px 0}.toggle-preview[data-v-d0709828]{color:var(--color-runtime-preview-disabled-text);display:flex;align-items:center}a[data-v-d0709828]{color:var(--url,var(--color-link))}.toggle-text[data-v-d0709828]{display:flex;align-items:center}svg.toggle-icon[data-v-d0709828]{width:1em;height:1em;margin-left:.5em}.mobile-code-preview[data-v-3bee1128]{background-color:var(--background,var(--color-step-background));padding:14px 0}@media only screen and (max-width:735px){.mobile-code-preview[data-v-3bee1128]{display:flex;flex-direction:column}}.runtime-preview-modal-content[data-v-3bee1128]{padding:45px 60px 0 60px;min-width:200px}.runtime-preview-modal-content[data-v-3bee1128] img:not(.file-icon){border-radius:var(--border-radius,4px);box-shadow:0 0 3px rgba(0,0,0,.4);max-height:80vh;width:auto;display:block;margin-bottom:1rem}.runtime-preview-modal-content .runtime-preview-label[data-v-3bee1128]{font-size:.70588rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-runtime-preview-text);display:block;text-align:center;padding:.5em}[data-v-3bee1128] .code-listing{color:var(--text,var(--color-code-plain))}[data-v-3bee1128] .full-code-listing{padding-top:60px;min-height:calc(100vh - 60px)}[data-v-3bee1128] pre{font-size:.70588rem;line-height:1.83333;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace)}.preview-toggle-container[data-v-3bee1128]{align-self:flex-end;margin-right:20px}.step-container[data-v-295730d0]{margin:0}.step-container[data-v-295730d0]:not(:last-child){margin-bottom:100px}@media only screen and (max-width:735px){.step-container[data-v-295730d0]:not(:last-child){margin-bottom:80px}}.step[data-v-295730d0]{position:relative;border-radius:var(--tutorial-step-border-radius,var(--border-radius,4px));padding:1rem 2rem;background-color:var(--color-step-background);overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.step[data-v-295730d0]:before{content:"";position:absolute;top:0;left:0;border:1px solid var(--color-step-focused);background-color:var(--color-step-focused);height:calc(100% - 2px);width:4px;opacity:0;transition:opacity .15s ease-in}.step.focused[data-v-295730d0],.step[data-v-295730d0]:focus{outline:none}.step.focused[data-v-295730d0]:before,.step[data-v-295730d0]:focus:before{opacity:1}@media only screen and (max-width:735px){.step[data-v-295730d0]{padding-left:2rem}.step[data-v-295730d0]:before{opacity:1}}.step-label[data-v-295730d0]{font-size:.70588rem;line-height:1.33333;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--colors-text,var(--color-step-text));margin-bottom:.4em}.caption[data-v-295730d0]{border-top:1px solid;border-color:var(--color-step-caption);padding:1rem 0 0 0;margin-top:1rem}.media-container[data-v-295730d0]{display:none}@media only screen and (max-width:735px){.step[data-v-295730d0]{margin:0 .58824rem 1.17647rem .58824rem}.step.focused[data-v-295730d0],.step[data-v-295730d0]:focus{outline:none}.media-container[data-v-295730d0]{display:block;position:relative}.media-container[data-v-295730d0] img,.media-container[data-v-295730d0] video{max-height:80vh}[data-v-295730d0] .asset{padding:0 20px}}.steps[data-v-25d30c2c]{position:relative;font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:flex;color:var(--colors-text,var(--color-text))}@media only screen and (max-width:735px){.steps[data-v-25d30c2c]{padding-top:80px}.steps[data-v-25d30c2c]:before{position:absolute;top:0;border-top:1px solid var(--color-fill-gray-tertiary);content:"";width:calc(100% - 2.35294rem);margin:0 1.17647rem}}.content-container[data-v-25d30c2c]{flex:none;margin-right:4.16667%;width:37.5%;margin-top:140px;margin-bottom:94vh}@media only screen and (max-width:735px){.content-container[data-v-25d30c2c]{margin-top:0;margin-bottom:0;height:100%;margin-left:0;margin-right:0;position:relative;width:100%}}.asset-container[data-v-25d30c2c]{flex:none;height:calc(100vh - 3.05882rem);background-color:var(--background,var(--color-step-background));max-width:921px;width:calc(50vw + 8.33333%);position:sticky;top:3.05882rem;transition:margin .1s ease-in-out}@media only screen and (max-width:767px){.asset-container[data-v-25d30c2c]{top:2.82353rem;height:calc(100vh - 2.82353rem)}}.asset-container[data-v-25d30c2c]:not(.for-step-code){overflow-y:auto;-webkit-overflow-scrolling:touch}.asset-container.ide[data-v-25d30c2c]{height:100vh;top:0}@media only screen and (min-width:736px){.asset-container[data-v-25d30c2c]{display:grid}.asset-container>[data-v-25d30c2c]{grid-row:1;grid-column:1;height:calc(100vh - 3.05882rem)}.asset-container.ide>[data-v-25d30c2c]{height:100vh}}.asset-container .step-asset[data-v-25d30c2c]{box-sizing:border-box;padding:0;padding-left:40px;min-height:320px;height:100%}.asset-container .step-asset[data-v-25d30c2c],.asset-container .step-asset[data-v-25d30c2c] picture{height:100%;display:flex;align-items:center}.asset-container .step-asset[data-v-25d30c2c] .video-replay-container{height:100%;display:flex;flex-direction:column;justify-content:center}.asset-container .step-asset[data-v-25d30c2c] img,.asset-container .step-asset[data-v-25d30c2c] video{width:auto;max-height:calc(100vh - 3.05882rem - 80px);max-width:531.6634px;margin:0}@media only screen and (max-width:1250px){.asset-container .step-asset[data-v-25d30c2c] img,.asset-container .step-asset[data-v-25d30c2c] video{max-width:363.66436px}}.asset-container .step-asset[data-v-25d30c2c] .video-replay-container,.asset-container .step-asset[data-v-25d30c2c] img{min-height:320px}.asset-container .step-asset[data-v-25d30c2c] .video-replay-container video{min-height:280px}@media only screen and (max-width:735px){.asset-container[data-v-25d30c2c]{display:none}}.asset-wrapper[data-v-25d30c2c]{width:63.2%;align-self:center;transition:transform .25s ease-out;will-change:transform}.asset-wrapper.ide .step-asset[data-v-25d30c2c] img{background-color:var(--background,var(--color-step-background))}[data-v-25d30c2c] .runtime-preview-asset{display:grid}[data-v-25d30c2c] .runtime-preview-asset>*{grid-row:1;grid-column:1}.interstitial[data-v-25d30c2c]{padding:0 2rem}.interstitial[data-v-25d30c2c]:not(:first-child){margin-top:5.88235rem}.interstitial[data-v-25d30c2c]:not(:last-child){margin-bottom:30px}@media only screen and (max-width:735px){.interstitial[data-v-25d30c2c]{margin-left:auto;margin-right:auto;width:980px;padding:0}}@media only screen and (max-width:735px) and (max-width:1250px){.interstitial[data-v-25d30c2c]{width:692px}}@media only screen and (max-width:735px) and (max-width:735px){.interstitial[data-v-25d30c2c]{width:87.5%}}@media only screen and (max-width:735px){.interstitial[data-v-25d30c2c]:not(:first-child){margin-top:0}}.fade-enter-active[data-v-25d30c2c],.fade-leave-active[data-v-25d30c2c]{transition:opacity .3s ease-in-out}.fade-enter[data-v-25d30c2c],.fade-leave-to[data-v-25d30c2c]{opacity:0}.section[data-v-6b3a0b3a]{padding-top:80px}.sections[data-v-79a75e9e]{margin-left:auto;margin-right:auto;width:980px}@media only screen and (max-width:1250px){.sections[data-v-79a75e9e]{width:692px}}@media only screen and (max-width:735px){.sections[data-v-79a75e9e]{width:87.5%;margin:0;width:100%}}.tutorial[data-v-0f871b08]{background-color:var(--colors-text-background,var(--color-tutorial-background))} \ No newline at end of file diff --git a/XCoordinator.doccarchive/css/tutorials-overview.2a582c39.css b/XCoordinator.doccarchive/css/tutorials-overview.2a582c39.css new file mode 100644 index 00000000..f4e1be74 --- /dev/null +++ b/XCoordinator.doccarchive/css/tutorials-overview.2a582c39.css @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */.tutorials-navigation-link[data-v-e9f9b59c]{color:var(--color-tutorials-overview-navigation-link);transition:color .3s linear}.tutorials-navigation-link[data-v-e9f9b59c]:hover{text-decoration:none;transition:none;color:var(--color-tutorials-overview-navigation-link-hover)}.tutorials-navigation-link.active[data-v-e9f9b59c]{color:var(--color-tutorials-overview-navigation-link-active)}.tutorials-navigation-list[data-v-6f2800d1]{list-style-type:none;margin:0}.tutorials-navigation-list li+li[data-v-6f2800d1]:not(.volume--named){margin-top:24px}.tutorials-navigation-list .volume--named+.volume--named[data-v-6f2800d1]{margin-top:12px}.expand-enter-active,.expand-leave-active{transition:height .3s ease-in-out;overflow:hidden}.expand-enter,.expand-leave-to{height:0}.toggle[data-v-6513d652]{color:#f0f0f0;line-height:21px;display:flex;align-items:center;width:100%;font-weight:600;padding:6px 6px 6px 0;border-bottom:1px solid #2a2a2a;text-decoration:none;box-sizing:border-box}@media only screen and (max-width:767px){.toggle[data-v-6513d652]{padding-right:6px;border-bottom-color:hsla(0,0%,100%,.1)}}.toggle .text[data-v-6513d652]{word-break:break-word}.toggle[data-v-6513d652]:hover{text-decoration:none}.toggle .toggle-icon[data-v-6513d652]{display:inline-block;transition:transform .2s ease-in;height:.4em;width:.4em;margin-left:auto;margin-right:.2em}.collapsed .toggle .toggle-icon[data-v-6513d652]{transform:rotate(45deg)}.collapsed .toggle[data-v-6513d652],.collapsed .toggle[data-v-6513d652]:hover{color:#b0b0b0}.tutorials-navigation-menu-content[data-v-6513d652]{opacity:1;transition:height .2s ease-in,opacity .2s ease-in}.collapsed .tutorials-navigation-menu-content[data-v-6513d652]{height:0;opacity:0}.tutorials-navigation-menu-content .tutorials-navigation-list[data-v-6513d652]{padding:24px 0 12px 0}.tutorials-navigation[data-v-0cbd8adb]{font-size:1rem;line-height:1.23529;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.nav-title-content[data-v-854b4dd6]{max-width:100%}.title[data-v-854b4dd6]{color:var(--color-nav-root-title,currentColor);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:inline-block;vertical-align:top;max-width:296px}@media only screen and (max-width:1023px){.title[data-v-854b4dd6]{max-width:205px}}@media only screen and (max-width:767px){.title[data-v-854b4dd6]{flex-basis:fill;display:initial;vertical-align:initial;max-width:none}}.subhead[data-v-854b4dd6]{color:var(--color-nav-root-subhead)}.theme-dark .subhead[data-v-854b4dd6]{color:var(--color-nav-dark-root-subhead)}.nav[data-v-1001350c] .nav-menu{padding-top:0}.nav[data-v-1001350c] .nav-menu .nav-menu-items{margin-left:auto}@media only screen and (min-width:768px){.nav[data-v-1001350c] .nav-menu .nav-menu-items .in-page-navigation{display:none}}@media only screen and (min-width:320px) and (max-width:735px){.nav[data-v-1001350c] .nav-menu .nav-menu-items{padding:18px 0 40px}}.hero[data-v-549fca98]{margin-left:auto;margin-right:auto;width:980px;padding-bottom:4.70588rem;padding-top:4.70588rem}@media only screen and (max-width:1250px){.hero[data-v-549fca98]{width:692px}}@media only screen and (max-width:735px){.hero[data-v-549fca98]{width:87.5%}}.copy-container[data-v-549fca98]{margin:0 auto;text-align:center;width:720px}.title[data-v-549fca98]{font-size:2.82353rem;line-height:1.08333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-tutorials-overview-content)}@media only screen and (max-width:1250px){.title[data-v-549fca98]{font-size:2.35294rem;line-height:1.1;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.title[data-v-549fca98]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.content[data-v-549fca98]{font-size:1.23529rem;line-height:1.38095;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-tutorials-overview-content)}@media only screen and (max-width:735px){.content[data-v-549fca98]{font-size:1.11765rem;line-height:1.42105;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.meta[data-v-549fca98]{color:var(--color-tutorials-overview-content-alt);align-items:center;display:flex;justify-content:center}.meta-content[data-v-549fca98]{font-size:.82353rem;line-height:1.42857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.meta .timer-icon[data-v-549fca98]{margin-right:.35294rem;height:16px;width:16px;fill:var(--color-tutorials-overview-icon)}@media only screen and (max-width:735px){.meta .timer-icon[data-v-549fca98]{margin-right:.29412rem;height:.82353rem;width:.82353rem}}.meta .time[data-v-549fca98]{font-size:1.11765rem;line-height:1.21053;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}@media only screen and (max-width:735px){.meta .time[data-v-549fca98]{font-size:1rem;line-height:1.11765;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.title+.content[data-v-549fca98]{margin-top:1.47059rem}.content+.meta[data-v-549fca98]{margin-top:1.17647rem}.button-cta[data-v-549fca98]{margin-top:1.76471rem}*+.asset[data-v-549fca98]{margin-top:4.11765rem}@media only screen and (max-width:1250px){.copy-container[data-v-549fca98]{width:636px}}@media only screen and (max-width:735px){.hero[data-v-549fca98]{padding-bottom:1.76471rem;padding-top:2.35294rem}.copy-container[data-v-549fca98]{width:100%}.title+.content[data-v-549fca98]{margin-top:.88235rem}.button-cta[data-v-549fca98]{margin-top:1.41176rem}*+.asset[data-v-549fca98]{margin-top:2.23529rem}}.image[data-v-569db166]{margin-bottom:10px}.name[data-v-569db166]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-tutorials-overview-header-text,#f0f0f0);word-break:break-word}@media only screen and (max-width:1250px){.name[data-v-569db166]{font-size:1.64706rem;line-height:1.14286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.name[data-v-569db166]{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.content[data-v-569db166]{font-size:1rem;line-height:1.23529;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-tutorials-overview-content-alt);margin-top:10px}.volume-name[data-v-569db166]{padding:50px 60px;text-align:center;background:var(--color-tutorials-overview-fill-secondary,#161616);margin:2px 0}@media only screen and (max-width:735px){.volume-name[data-v-569db166]{padding:40px 20px}}.document-icon[data-v-3a80772b]{margin-left:-3px}.tile[data-v-96abac22]{background:var(--color-tutorials-overview-fill-secondary,#161616);padding:40px 30px;color:var(--color-tutorials-overview-content-alt)}.content[data-v-96abac22] a,a[data-v-96abac22]{color:var(--colors-link,var(--color-tutorials-overview-link))}.icon[data-v-96abac22]{display:block;height:1.47059rem;line-height:1.47059rem;margin-bottom:.58824rem;width:1.47059rem}.icon[data-v-96abac22] svg.svg-icon{width:100%;max-height:100%;fill:var(--color-tutorials-overview-icon)}.icon[data-v-96abac22] svg.svg-icon .svg-icon-stroke{stroke:var(--color-tutorials-overview-content-alt)}.title[data-v-96abac22]{font-size:1.23529rem;line-height:1.19048;font-weight:600;margin-bottom:.8em}.content[data-v-96abac22],.link[data-v-96abac22],.title[data-v-96abac22]{font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.content[data-v-96abac22],.link[data-v-96abac22]{font-size:.82353rem;line-height:1.42857;font-weight:400}.content[data-v-96abac22]{color:var(--color-tutorials-overview-content-alt)}.link[data-v-96abac22]{display:block;margin-top:1.17647rem}.link .link-icon[data-v-96abac22]{margin-left:.2em;width:.6em;height:.6em}[data-v-96abac22] .content ul{list-style-type:none;margin-left:0;font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}[data-v-96abac22] .content ul li:before{content:"\200B";position:absolute}[data-v-96abac22] .content li+li{margin-top:8px}@media only screen and (max-width:735px){.tile[data-v-96abac22]{padding:1.76471rem 1.17647rem}}.tile-group[data-v-015f9f13]{display:grid;grid-column-gap:2px;grid-row-gap:2px}.tile-group.count-1[data-v-015f9f13]{grid-template-columns:1fr;text-align:center}.tile-group.count-1[data-v-015f9f13] .icon{margin-left:auto;margin-right:auto}.tile-group.count-2[data-v-015f9f13]{grid-template-columns:repeat(2,1fr)}.tile-group.count-3[data-v-015f9f13]{grid-template-columns:repeat(3,1fr)}.tile-group.count-4[data-v-015f9f13]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,auto)}.tile-group.count-5[data-v-015f9f13]{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,auto)}.tile-group.count-5 .tile[data-v-015f9f13]{grid-column-end:span 2}.tile-group.count-5 .tile[data-v-015f9f13]:nth-of-type(-n+2){grid-column-end:span 3}.tile-group.count-6[data-v-015f9f13]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,auto)}@media only screen and (min-width:768px) and (max-width:1250px){.tile-group.tile-group[data-v-015f9f13]{grid-template-columns:1fr;grid-template-rows:auto}}@media only screen and (max-width:735px){.tile-group.count-1[data-v-015f9f13],.tile-group.count-2[data-v-015f9f13],.tile-group.count-3[data-v-015f9f13],.tile-group.count-4[data-v-015f9f13],.tile-group.count-5[data-v-015f9f13],.tile-group.count-6[data-v-015f9f13]{grid-template-columns:1fr;grid-template-rows:auto}}.title[data-v-49ba6f62]{font-size:1.88235rem;line-height:1.125;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:#f0f0f0}@media only screen and (max-width:1250px){.title[data-v-49ba6f62]{font-size:1.64706rem;line-height:1.14286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}@media only screen and (max-width:735px){.title[data-v-49ba6f62]{font-size:1.41176rem;line-height:1.16667;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.content[data-v-49ba6f62]{font-size:1rem;line-height:1.23529;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:#b0b0b0;margin-top:10px}.topic-list[data-v-da979188]{list-style-type:none;margin:50px 0 0 0;position:relative}.topic-list li[data-v-da979188]:before{content:"\200B";position:absolute}.topic-list[data-v-da979188]:before{content:"";border-left:1px solid var(--color-fill-quaternary);display:block;height:calc(100% - .88235rem);left:.88235rem;position:absolute;top:50%;transform:translateY(-50%);width:0}.topic[data-v-da979188]{font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:flex;align-items:flex-start}@media only screen and (max-width:735px){.topic[data-v-da979188]{font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}}.topic+.topic[data-v-da979188]{margin-top:.58824rem}.topic .topic-icon[data-v-da979188]{background-color:var(--color-fill-quaternary);border-radius:50%;flex-shrink:0;height:1.76471rem;width:1.76471rem;margin-right:1.17647rem;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:.47059rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.topic .topic-icon svg[data-v-da979188]{fill:var(--color-tutorials-overview-icon);max-width:100%;max-height:100%;width:100%}.container[data-v-da979188]{align-items:baseline;display:flex;justify-content:space-between;width:100%;padding-top:.11765rem}.container[data-v-da979188]:hover{text-decoration:none}.container:hover .link[data-v-da979188]{text-decoration:underline}.timer-icon[data-v-da979188]{margin-right:.29412rem;height:.70588rem;width:.70588rem;fill:var(--color-tutorials-overview-icon)}.time[data-v-da979188]{font-size:.82353rem;line-height:1.28571;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-tutorials-overview-content-alt);align-items:center;display:inline-flex}.link[data-v-da979188]{padding-right:.58824rem;color:var(--colors-link,var(--color-tutorials-overview-link))}@media only screen and (min-width:768px) and (max-width:1250px){.topic-list[data-v-da979188]{margin-top:2.35294rem}}@media only screen and (max-width:735px){.topic-list[data-v-da979188]{margin-top:1.76471rem}.topic[data-v-da979188]{height:auto;align-items:flex-start}.topic.no-time-estimate[data-v-da979188]{align-items:center}.topic.no-time-estimate .topic-icon[data-v-da979188]{align-self:flex-start;top:0}.topic+.topic[data-v-da979188]{margin-top:1.17647rem}.topic .topic-icon[data-v-da979188]{top:.29412rem;margin-right:.76471rem}.container[data-v-da979188]{flex-wrap:wrap;padding-top:0}.link[data-v-da979188],.time[data-v-da979188]{flex-basis:100%}.time[data-v-da979188]{margin-top:.29412rem}}.chapter[data-v-512b66f6]:focus{outline:none!important}.info[data-v-512b66f6]{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.name[data-v-512b66f6]{font-size:1.23529rem;line-height:1.19048;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-tutorials-overview-header-text,#f0f0f0)}.name-text[data-v-512b66f6]{word-break:break-word}.eyebrow[data-v-512b66f6]{font-size:1rem;line-height:1.23529;font-weight:400;color:var(--color-tutorials-overview-eyebrow);display:block;font-weight:600;margin-bottom:5px}.content[data-v-512b66f6],.eyebrow[data-v-512b66f6]{font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.content[data-v-512b66f6]{font-size:.82353rem;line-height:1.42857;font-weight:400;color:var(--color-tutorials-overview-content-alt)}.asset[data-v-512b66f6]{flex:0 0 190px}.intro[data-v-512b66f6]{flex:0 1 360px}@media only screen and (min-width:768px) and (max-width:1250px){.asset[data-v-512b66f6]{flex:0 0 130px}.intro[data-v-512b66f6]{flex:0 1 260px}}@media only screen and (max-width:767px){.intro[data-v-512b66f6]{flex:0 1 340px}}@media only screen and (max-width:735px){.info[data-v-512b66f6]{display:block;text-align:center}.asset[data-v-512b66f6]{margin:0 45px}.eyebrow[data-v-512b66f6]{margin-bottom:7px}.intro[data-v-512b66f6]{margin-top:40px}}.tile[data-v-2d1dbe98]{background:var(--color-tutorials-overview-fill-secondary,#161616);margin:2px 0;padding:50px 60px}.asset[data-v-2d1dbe98]{margin-bottom:10px}@media only screen and (min-width:768px) and (max-width:1250px){.tile[data-v-2d1dbe98]{padding:40px 30px}}@media only screen and (max-width:735px){.volume[data-v-2d1dbe98]{border-radius:0}.tile[data-v-2d1dbe98]{padding:40px 20px}}.learning-path[data-v-18755bc2]{background:var(--color-tutorials-overview-fill,#000);padding:4.70588rem 0}.main-container[data-v-18755bc2]{margin-left:auto;margin-right:auto;width:980px;align-items:stretch;display:flex;justify-content:space-between}@media only screen and (max-width:1250px){.main-container[data-v-18755bc2]{width:692px}}@media only screen and (max-width:735px){.main-container[data-v-18755bc2]{width:87.5%}}.ide .main-container[data-v-18755bc2]{justify-content:center}.secondary-content-container[data-v-18755bc2]{flex:0 0 200px;width:200px}.tutorials-navigation[data-v-18755bc2]{position:sticky;top:7.76471rem}.primary-content-container[data-v-18755bc2]{flex:0 1 720px;max-width:100%}.content-sections-container .content-section[data-v-18755bc2]{border-radius:12px;overflow:hidden}.content-sections-container .content-section+.content-section[data-v-18755bc2]{margin-top:1.17647rem}@media only screen and (min-width:768px) and (max-width:1250px){.learning-path[data-v-18755bc2]{padding:2.35294rem 0}.primary-content-container[data-v-18755bc2]{flex-basis:auto;margin-left:1.29412rem}.secondary-content-container[data-v-18755bc2]{flex:0 0 180px;width:180px}}@media only screen and (max-width:767px){.secondary-content-container[data-v-18755bc2]{display:none}}@media only screen and (max-width:735px){.content-sections-container .content-section[data-v-18755bc2]{border-radius:0}.content-sections-container .content-section.volume[data-v-18755bc2]{margin-top:1.17647rem}.learning-path[data-v-18755bc2]{padding:0}.main-container[data-v-18755bc2]{width:100%}}.tutorials-overview[data-v-2d1816cc]{height:100%}.tutorials-overview .radial-gradient[data-v-2d1816cc]{margin-top:-3.05882rem;padding-top:3.05882rem;background:var(--color-tutorials-overview-fill-secondary,var(--color-tutorials-overview-background))}@media only screen and (max-width:735px){.tutorials-overview .radial-gradient[data-v-2d1816cc]{margin-top:-2.82353rem;padding-top:2.82353rem}}@-moz-document url-prefix(){.tutorials-overview .radial-gradient{background:#111!important}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator.json new file mode 100644 index 00000000..517718dc --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator","interfaceLanguage":"swift"},"topicSections":[{"title":"Classes","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator"]},{"title":"Protocols","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol"]},{"title":"Structures","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions"]},{"title":"Type Aliases","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicNavigationCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicTabBarCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicViewCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationTransition","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageTransition","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitTransition","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarTransition","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewTransition"]}],"kind":"symbol","metadata":{"roleHeading":"Framework","externalID":"XCoordinator","title":"XCoordinator","symbolKind":"module","role":"collection","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[[]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/Container":{"role":"symbol","title":"Container","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Container"}],"url":"\/documentation\/xcoordinator\/container"},"doc://XCoordinator/documentation/XCoordinator/NavigationTransition":{"role":"symbol","title":"NavigationTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationTransition"}],"abstract":[{"type":"text","text":"NavigationTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationTransition"}],"url":"\/documentation\/xcoordinator\/navigationtransition"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator/ViewTransition":{"role":"symbol","title":"ViewTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewTransition"}],"abstract":[{"type":"text","text":"ViewTransition offers transitions common to any "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewTransition"}],"url":"\/documentation\/xcoordinator\/viewtransition"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicViewCoordinator":{"role":"symbol","title":"BasicViewCoordinator","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicViewCoordinator"}],"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" as its rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicViewCoordinator"}],"url":"\/documentation\/xcoordinator\/basicviewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/PageTransition":{"role":"symbol","title":"PageTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageTransition"}],"abstract":[{"type":"text","text":"PageTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageTransition"}],"url":"\/documentation\/xcoordinator\/pagetransition"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/SplitTransition":{"role":"symbol","title":"SplitTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitTransition"}],"abstract":[{"type":"text","text":"SplitTransition offers different transitions common to a "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitTransition"}],"url":"\/documentation\/xcoordinator\/splittransition"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator/TabBarTransition":{"role":"symbol","title":"TabBarTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarTransition"}],"abstract":[{"type":"text","text":"TabBarTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarTransition"}],"url":"\/documentation\/xcoordinator\/tabbartransition"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/ContextPresentationHandler":{"role":"symbol","title":"ContextPresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions, which also provides the context information about the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ContextPresentationHandler"}],"url":"\/documentation\/xcoordinator\/contextpresentationhandler"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/BasicNavigationCoordinator":{"role":"symbol","title":"BasicNavigationCoordinator","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicNavigationCoordinator"}],"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" as its rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicNavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicNavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/basicnavigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/BasicTabBarCoordinator":{"role":"symbol","title":"BasicTabBarCoordinator","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicTabBarCoordinator"}],"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":" as its rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicTabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicTabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/basictabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation.json new file mode 100644 index 00000000..710ab609 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Depending on the transition in use, different properties of a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" are set to make sure the transition animation is used."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(cs)NSObject"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/s7CVarArgP","doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP","doc:\/\/XCoordinator\/s23CustomStringConvertibleP","doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH","doc:\/\/XCoordinator\/objc(pl)UIViewControllerTransitioningDelegate"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","interfaceLanguage":"swift"},"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"title":"Animation","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"c:@M@XCoordinator@objc(cs)Animation","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"Animation"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/init(presentation:dismissal:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/dismissalAnimation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/presentationAnimation"]},{"title":"Type Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/default"]},{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations"],"generated":true}],"references":{"doc://XCoordinator/documentation/XCoordinator/Animation/default":{"role":"symbol","title":"default","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"`default`"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"}],"abstract":[{"type":"text","text":"Use "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to override currently set animations"},{"type":"text","text":" "},{"type":"text","text":"and reset to the default animations provided by iOS"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/default","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/default"},"doc://XCoordinator/objc(cs)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObject","identifier":"doc:\/\/XCoordinator\/objc(cs)NSObject"},"doc://XCoordinator/documentation/XCoordinator/Animation/dismissalAnimation":{"role":"symbol","title":"dismissalAnimation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissalAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation performed when transitioning away from a presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/dismissalAnimation","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/dismissalanimation"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"doc://XCoordinator/s23CustomStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomStringConvertible","identifier":"doc:\/\/XCoordinator\/s23CustomStringConvertibleP"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/documentation/XCoordinator/Animation/presentationAnimation":{"role":"symbol","title":"presentationAnimation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation performed when transitioning to a presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/presentationAnimation","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/presentationanimation"},"doc://XCoordinator/objc(pl)UIViewControllerTransitioningDelegate":{"type":"unresolvable","title":"UIKit.UIViewControllerTransitioningDelegate","identifier":"doc:\/\/XCoordinator\/objc(pl)UIViewControllerTransitioningDelegate"},"doc://XCoordinator/s7CVarArgP":{"type":"unresolvable","title":"Swift.CVarArg","identifier":"doc:\/\/XCoordinator\/s7CVarArgP"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/s28CustomDebugStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomDebugStringConvertible","identifier":"doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/documentation/XCoordinator/Animation/init(presentation:dismissal:)":{"role":"symbol","title":"init(presentation:dismissal:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"dismissal"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates an Animation object containing a presentation and a dismissal animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/init(presentation:dismissal:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/init(presentation:dismissal:)"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Animation/UIViewControllerTransitioningDelegate-Implementations":{"role":"collectionGroup","title":"UIViewControllerTransitioningDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/animation\/uiviewcontrollertransitioningdelegate-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(fordismissed:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(fordismissed:).json new file mode 100644 index 00000000..c37ccf92 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(fordismissed:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forDismissed"},{"kind":"text","text":" "},{"kind":"internalParam","text":"dismissed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"dismissed","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The view controller to be dismissed."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The dismissal animation when initializing the "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/animationcontroller(fordismissed:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forDismissed:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"animationController(forDismissed:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forDismissed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)Animation(im)animationControllerForDismissedController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations"]]},"references":{"https://developer.apple.com/documentation/uikit/UIViewControllerTransitioningDelegate":{"title":"UIViewControllerTransitioningDelegate","titleInlineContent":[{"type":"text","text":"UIViewControllerTransitioningDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Animation/UIViewControllerTransitioningDelegate-Implementations":{"role":"collectionGroup","title":"UIViewControllerTransitioningDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/animation\/uiviewcontrollertransitioningdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation/animationController(forDismissed:)":{"role":"symbol","title":"animationController(forDismissed:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forDismissed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forDismissed:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/animationcontroller(fordismissed:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:).json new file mode 100644 index 00000000..5d14fb13 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forPresented"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presented"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"presenting"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"source"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presented","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The view controller to be presented."}]}]},{"name":"presenting","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The view controller that is presenting."}]}]},{"name":"source","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The view controller whose "},{"type":"codeVoice","code":"present(_:animated:completion:)"},{"type":"text","text":" was called."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentation animation when initializing the "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/animationcontroller(forpresented:presenting:source:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forPresented:presenting:source:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"animationController(forPresented:presenting:source:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forPresented"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"presenting"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"source"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)Animation(im)animationControllerForPresentedController:presentingController:sourceController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Animation/UIViewControllerTransitioningDelegate-Implementations":{"role":"collectionGroup","title":"UIViewControllerTransitioningDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/animation\/uiviewcontrollertransitioningdelegate-implementations"},"https://developer.apple.com/documentation/uikit/UIViewControllerTransitioningDelegate":{"title":"UIViewControllerTransitioningDelegate","titleInlineContent":[{"type":"text","text":"UIViewControllerTransitioningDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},"doc://XCoordinator/documentation/XCoordinator/Animation/animationController(forPresented:presenting:source:)":{"role":"symbol","title":"animationController(forPresented:presenting:source:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forPresented"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"presenting"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"source"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forPresented:presenting:source:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/animationcontroller(forpresented:presenting:source:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/default.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/default.json new file mode 100644 index 00000000..a19e41ab --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/default.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"`default`"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/default"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/default","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to override currently set animations"},{"type":"text","text":" "},{"type":"text","text":"and reset to the default animations provided by iOS"}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"`default`"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"}],"title":"default","roleHeading":"Type Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator9AnimationC7defaultACvpZ","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation/default":{"role":"symbol","title":"default","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"`default`"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"}],"abstract":[{"type":"text","text":"Use "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to override currently set animations"},{"type":"text","text":" "},{"type":"text","text":"and reset to the default animations provided by iOS"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/default","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/default"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/dismissalanimation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/dismissalanimation.json new file mode 100644 index 00000000..f558a886 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/dismissalanimation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissalAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/dismissalanimation"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/dismissalAnimation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The transition animation performed when transitioning away from a presentable."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissalAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"title":"dismissalAnimation","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator9AnimationC09dismissalB0AA010TransitionB0_pSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation/dismissalAnimation":{"role":"symbol","title":"dismissalAnimation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissalAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation performed when transitioning away from a presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/dismissalAnimation","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/dismissalanimation"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/init(presentation:dismissal:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/init(presentation:dismissal:).json new file mode 100644 index 00000000..5bed4b3c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/init(presentation:dismissal:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"dismissal"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The transition animation performed when transitioning to a presentable."}]}]},{"name":"dismissal","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The transition animation performed when transitioning away from a presentable."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/init(presentation:dismissal:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/init(presentation:dismissal:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates an Animation object containing a presentation and a dismissal animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"dismissal"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?)"}],"title":"init(presentation:dismissal:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator9AnimationC12presentation9dismissalAcA010TransitionB0_pSg_AGtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Animation/init(presentation:dismissal:)":{"role":"symbol","title":"init(presentation:dismissal:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"dismissal"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates an Animation object containing a presentation and a dismissal animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/init(presentation:dismissal:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/init(presentation:dismissal:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:).json new file mode 100644 index 00000000..e4002f75 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForDismissal"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"animator"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"animator","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animator of this transition, which is most likely the dismissal animation."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The dismissal animation’s interaction controller."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/interactioncontrollerfordismissal(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForDismissal(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"interactionControllerForDismissal(using:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForDismissal"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)Animation(im)interactionControllerForDismissal:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations"]]},"references":{"https://developer.apple.com/documentation/uikit/UIViewControllerTransitioningDelegate":{"title":"UIViewControllerTransitioningDelegate","titleInlineContent":[{"type":"text","text":"UIViewControllerTransitioningDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},"doc://XCoordinator/documentation/XCoordinator/Animation/interactionControllerForDismissal(using:)":{"role":"symbol","title":"interactionControllerForDismissal(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForDismissal"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForDismissal(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/interactioncontrollerfordismissal(using:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Animation/UIViewControllerTransitioningDelegate-Implementations":{"role":"collectionGroup","title":"UIViewControllerTransitioningDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/animation\/uiviewcontrollertransitioningdelegate-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:).json new file mode 100644 index 00000000..63c0ae8c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForPresentation"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"animator"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"animator","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animator of this transition, which is most likely the presentation animation."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentation animation’s interaction controller."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/interactioncontrollerforpresentation(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForPresentation(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"interactionControllerForPresentation(using:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForPresentation"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)Animation(im)interactionControllerForPresentation:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"https://developer.apple.com/documentation/uikit/UIViewControllerTransitioningDelegate":{"title":"UIViewControllerTransitioningDelegate","titleInlineContent":[{"type":"text","text":"UIViewControllerTransitioningDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation/UIViewControllerTransitioningDelegate-Implementations":{"role":"collectionGroup","title":"UIViewControllerTransitioningDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/animation\/uiviewcontrollertransitioningdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator/Animation/interactionControllerForPresentation(using:)":{"role":"symbol","title":"interactionControllerForPresentation(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForPresentation"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForPresentation(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/interactioncontrollerforpresentation(using:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/presentationanimation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/presentationanimation.json new file mode 100644 index 00000000..ba5df0fc --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/presentationanimation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/presentationanimation"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/presentationAnimation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The transition animation performed when transitioning to a presentable."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"title":"presentationAnimation","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator9AnimationC012presentationB0AA010TransitionB0_pSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation/presentationAnimation":{"role":"symbol","title":"presentationAnimation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation performed when transitioning to a presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/presentationAnimation","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/presentationanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations.json new file mode 100644 index 00000000..fadffd4e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/animation\/uiviewcontrollertransitioningdelegate-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/UIViewControllerTransitioningDelegate-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forDismissed:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forPresented:presenting:source:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForDismissal(using:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForPresentation(using:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"UIViewControllerTransitioningDelegate Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation/animationController(forPresented:presenting:source:)":{"role":"symbol","title":"animationController(forPresented:presenting:source:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forPresented"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"presenting"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"source"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forPresented:presenting:source:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/animationcontroller(forpresented:presenting:source:)"},"doc://XCoordinator/documentation/XCoordinator/Animation/interactionControllerForPresentation(using:)":{"role":"symbol","title":"interactionControllerForPresentation(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForPresentation"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForPresentation(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/interactioncontrollerforpresentation(using:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation/animationController(forDismissed:)":{"role":"symbol","title":"animationController(forDismissed:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"forDismissed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/animationController(forDismissed:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/animationcontroller(fordismissed:)"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"https://developer.apple.com/documentation/uikit/UIViewControllerTransitioningDelegate":{"title":"UIViewControllerTransitioningDelegate","titleInlineContent":[{"type":"text","text":"UIViewControllerTransitioningDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},"doc://XCoordinator/documentation/XCoordinator/Animation/interactionControllerForDismissal(using:)":{"role":"symbol","title":"interactionControllerForDismissal(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionControllerForDismissal"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerTransitioningDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation\/interactionControllerForDismissal(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/animation\/interactioncontrollerfordismissal(using:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator.json new file mode 100644 index 00000000..2d472620 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"TransitionType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP","text":"TransitionProtocol"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"It is also encouraged to use already provided subclasses of BaseCoordinator such as"},{"type":"text","text":" "},{"type":"codeVoice","code":"NavigationCoordinator"},{"type":"text","text":", "},{"type":"codeVoice","code":"TabBarCoordinator"},{"type":"text","text":", "},{"type":"codeVoice","code":"ViewCoordinator"},{"type":"text","text":", "},{"type":"codeVoice","code":"SplitCoordinator"},{"type":"text","text":" "},{"type":"text","text":"and "},{"type":"codeVoice","code":"PageCoordinator"},{"type":"text","text":"."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator"],"kind":"relationships","title":"Inherited By","type":"inheritedBy"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"title":"BaseCoordinator","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator15BaseCoordinatorC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialRoute:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialTransition:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/children","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/rootViewController-swift.property","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-614jt"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/addChild(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/prepareTransition(for:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/presented(from:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:handler:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerParent(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChild(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChildrenIfNeeded()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/router(for:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/unregisterInteractiveTransitions(triggeredBy:)"]},{"title":"Type Aliases","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij"]},{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Presentable-Implementations","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/TransitionPerformer-Implementations"],"generated":true}],"references":{"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/presented(from:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerParent(_:)":{"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerParent(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/registerparent(_:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/removeChild(_:)":{"role":"symbol","title":"removeChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method removes a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChild(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/removechild(_:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerInteractiveTransition(for:triggeredBy:handler:completion:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"registerInteractiveTransition(for:triggeredBy:handler:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"handler"},{"kind":"text","text":": ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"handlerRecognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Register an interactive transition triggered by a gesture recognizer."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:handler:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:handler:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"progress"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldFinish"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Register an interactive transition triggered by a gesture recognizer."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/addChild(_:)":{"role":"symbol","title":"addChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method adds a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/addChild(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/addchild(_:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/viewController-614jt":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController of the Presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-614jt","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-614jt"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/children":{"role":"symbol","title":"children","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"children"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The child coordinators that are currently in the view hierarchy."},{"type":"text","text":" "},{"type":"text","text":"When performing a transition, children are automatically added and removed from this array"},{"type":"text","text":" "},{"type":"text","text":"depending on whether they are in the view hierarchy."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/children","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/children"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/rootViewController-swift.property":{"role":"symbol","title":"rootViewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"}],"abstract":[{"type":"text","text":"The rootViewController on which transitions are performed."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/rootViewController-swift.property","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.property"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/unregisterInteractiveTransitions(triggeredBy:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"unregisterInteractiveTransitions(triggeredBy:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"unregisterInteractiveTransitions"},{"kind":"text","text":"("},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Unregisters a previously registered interactive transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/unregisterInteractiveTransitions(triggeredBy:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/unregisterinteractivetransitions(triggeredby:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Coordinator-Implementations":{"role":"collectionGroup","title":"Coordinator Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/removeChildrenIfNeeded()":{"role":"symbol","title":"removeChildrenIfNeeded()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method removes all children that are no longer in the view hierarchy."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChildrenIfNeeded()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/removechildrenifneeded()"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/router(for:)":{"role":"symbol","title":"router(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/router(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router(for:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/prepareTransition(for:)":{"role":"symbol","title":"prepareTransition(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"}],"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"Override this method to define transitions for triggered routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/prepareTransition(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/preparetransition(for:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/init(rootViewController:initialTransition:)":{"role":"symbol","title":"init(rootViewController:initialTransition:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialTransition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer performs a transition before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialTransition:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialtransition:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/TransitionPerformer-Implementations":{"role":"collectionGroup","title":"TransitionPerformer Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/TransitionPerformer-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/transitionperformer-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/addchild(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/addchild(_:).json new file mode 100644 index 00000000..7c9f9e56 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/addchild(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The child to be added."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/addchild(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/addChild(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method adds a child to a coordinator’s children."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"title":"addChild(_:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC8addChildyyAA11Presentable_pF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/addChild(_:)":{"role":"symbol","title":"addChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method adds a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/addChild(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/addchild(_:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/chain(routes:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/chain(routes:).json new file mode 100644 index 00000000..80f5d9a8 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/chain(routes:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"routes","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The routes to be chained."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"A transition combining the transitions of the specified routes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/chain(routes:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/chain(routes:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"With "},{"type":"codeVoice","code":"chain(routes:)"},{"type":"text","text":" different routes can be chained together to form a combined transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"chain(routes:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE5chain6routes14TransitionTypeQzSay05RouteF0QzG_tF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Coordinator-Implementations":{"role":"collectionGroup","title":"Coordinator Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/chain(routes:)":{"role":"symbol","title":"chain(routes:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"abstract":[{"type":"text","text":"With "},{"type":"codeVoice","code":"chain(routes:)"},{"type":"text","text":" different routes can be chained together to form a combined transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/chain(routes:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/chain(routes:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/children.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/children.json new file mode 100644 index 00000000..10ae14ad --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/children.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"children"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"] { get }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/children"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/children","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The child coordinators that are currently in the view hierarchy."},{"type":"text","text":" "},{"type":"text","text":"When performing a transition, children are automatically added and removed from this array"},{"type":"text","text":" "},{"type":"text","text":"depending on whether they are in the view hierarchy."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"children"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"title":"children","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator15BaseCoordinatorC8childrenSayAA11Presentable_pGvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/children":{"role":"symbol","title":"children","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"children"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The child coordinators that are currently in the view hierarchy."},{"type":"text","text":" "},{"type":"text","text":"When performing a transition, children are automatically added and removed from this array"},{"type":"text","text":" "},{"type":"text","text":"depending on whether they are in the view hierarchy."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/children","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/children"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/childtransitioncompleted().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/childtransitioncompleted().json new file mode 100644 index 00000000..bc5a8413 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/childtransitioncompleted().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/childtransitioncompleted()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/childTransitionCompleted()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"kind":"symbol","metadata":{"role":"symbol","title":"childTransitionCompleted()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE24childTransitionCompletedyyF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/childTransitionCompleted()":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/childTransitionCompleted()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/childtransitioncompleted()"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/presentable-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:).json new file mode 100644 index 00000000..ab762cc4 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@"},{"kind":"typeIdentifier","text":"MainActor","preciseIdentifier":"s:ScM"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP","text":"TransitionContext"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options configuring the execution of transitions, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transition context of the performed transition(s)."},{"type":"text","text":" "},{"type":"text","text":"If the context is not needed, use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Useful for deep linking. It is encouraged to use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead, if the context is not needed."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"contextTrigger(_:with:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE14contextTrigger_4withAA17TransitionContext_p9RouteTypeQz_AA0F7OptionsVtYaF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"13.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"13.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/contextTrigger(_:with:)":{"role":"symbol","title":"contextTrigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:).json new file mode 100644 index 00000000..c15ec64e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera","text":"ContextPresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options configuring the execution of transitions, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."},{"type":"text","text":" "},{"type":"text","text":"If the context is not needed, use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Useful for deep linking. It is encouraged to use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead, if the context is not needed."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"kind":"symbol","metadata":{"role":"symbol","title":"contextTrigger(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/contextTrigger(_:with:completion:)":{"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/ContextPresentationHandler":{"role":"symbol","title":"ContextPresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions, which also provides the context information about the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ContextPresentationHandler"}],"url":"\/documentation\/xcoordinator\/contextpresentationhandler"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/coordinator-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/coordinator-implementations.json new file mode 100644 index 00000000..f362dc8f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/coordinator-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-8iux"],"generated":true},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/chain(routes:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-5tg0j","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-7vijh","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerPeek(for:route:)"],"generated":true},{"title":"Type Aliases","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-6xno2"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"Coordinator Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-6xno2":{"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for Coordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-6xno2","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-6xno2"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/viewController-8iux":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"A Coordinator uses its rootViewController as viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-8iux","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-8iux"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/deepLink(_:_:)-7vijh":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-7vijh","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-7vijh"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerPeek(for:route:)":{"role":"symbol","title":"registerPeek(for:route:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Use this transition to register 3D Touch Peek and Pop functionality."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerPeek(for:route:)","kind":"symbol","type":"topic","deprecated":true,"url":"\/documentation\/xcoordinator\/basecoordinator\/registerpeek(for:route:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/deepLink(_:_:)-5tg0j":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-5tg0j","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-5tg0j"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/chain(routes:)":{"role":"symbol","title":"chain(routes:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"abstract":[{"type":"text","text":"With "},{"type":"codeVoice","code":"chain(routes:)"},{"type":"text","text":" different routes can be chained together to form a combined transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/chain(routes:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/chain(routes:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j.json new file mode 100644 index 00000000..21914a7c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"remainingRoutes"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"S"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Sequence","preciseIdentifier":"s:ST"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":">, "},{"kind":"typeIdentifier","text":"S"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Element"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The first route in the chain."},{"type":"text","text":" "},{"type":"text","text":"It is given a special place because its exact type can be specified."}]}]},{"name":"remainingRoutes","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The remaining routes of the chain."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-5tg0j"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-5tg0j","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"kind":"symbol","metadata":{"role":"symbol","title":"deepLink(_:_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Coordinator-Implementations":{"role":"collectionGroup","title":"Coordinator Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/deepLink(_:_:)-5tg0j":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-5tg0j","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-5tg0j"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh.json new file mode 100644 index 00000000..c6cdc91b --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"remainingRoutes"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Parameters"}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"route:"},{"type":"text","text":" "},{"type":"text","text":"The first route in the chain."},{"type":"text","text":" "},{"type":"text","text":"It is given a special place because its exact type can be specified."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"remainingRoutes:"},{"type":"text","text":" "},{"type":"text","text":"The remaining routes of the chain."},{"type":"text","text":" "},{"type":"text","text":"As it is not implemented in a type-safe manner, use it with caution."},{"type":"text","text":" "},{"type":"text","text":"Keep in mind that changes in the app’s structure and changes of transitions"},{"type":"text","text":" "},{"type":"text","text":"behind the given routes can lead to runtime errors and, therefore, crashes of your app."}]}]}]}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-7vijh"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-7vijh","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"kind":"symbol","metadata":{"role":"symbol","title":"deepLink(_:_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Coordinator-Implementations":{"role":"collectionGroup","title":"Coordinator Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/deepLink(_:_:)-7vijh":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/deepLink(_:_:)-7vijh","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-7vijh"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:).json new file mode 100644 index 00000000..1144e52d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"initialRoute","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If a route is specified, it is triggered before making the coordinator visible."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialroute:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialRoute:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"title":"init(rootViewController:initialRoute:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator15BaseCoordinatorC18rootViewController12initialRouteACyxq_G04RooteF0Qy__xSgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:).json new file mode 100644 index 00000000..24bdd995 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialTransition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"initialTransition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If a transition is specified, it is performed before making the coordinator visible."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialtransition:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialTransition:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This initializer performs a transition before the coordinator is made visible."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialTransition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":"?)"}],"title":"init(rootViewController:initialTransition:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator15BaseCoordinatorC18rootViewController17initialTransitionACyxq_G04RooteF0Qy__q_Sgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/init(rootViewController:initialTransition:)":{"role":"symbol","title":"init(rootViewController:initialTransition:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialTransition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer performs a transition before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/init(rootViewController:initialTransition:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialtransition:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:).json new file mode 100644 index 00000000..dc9c2cc6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The transition to be performed."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The options on how to perform the transition, including the option to enable\/disable animations."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The completion handler called once a transition has finished."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/performtransition(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/performTransition(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Perform a transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"performTransition(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE17performTransition_4with10completiony0D4TypeQz_AA0D7OptionsVyycSgtF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/TransitionPerformer-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/performTransition(_:with:completion:)":{"role":"symbol","title":"performTransition(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Perform a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/performTransition(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/performtransition(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/TransitionPerformer-Implementations":{"role":"collectionGroup","title":"TransitionPerformer Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/TransitionPerformer-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/transitionperformer-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/preparetransition(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/preparetransition(for:).json new file mode 100644 index 00000000..4f786245 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/preparetransition(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The triggered route for which a transition is to be prepared."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The prepared transition."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/preparetransition(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/prepareTransition(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"Override this method to define transitions for triggered routes."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"}],"title":"prepareTransition(for:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC17prepareTransition3forq_x_tF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/prepareTransition(for:)":{"role":"symbol","title":"prepareTransition(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"}],"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"Override this method to define transitions for triggered routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/prepareTransition(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/preparetransition(for:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presentable-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presentable-implementations.json new file mode 100644 index 00000000..a3809411 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presentable-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/presentable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Presentable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/childTransitionCompleted()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/setRoot(for:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"Presentable Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/setRoot(for:)":{"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/setRoot(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/setroot(for:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/childTransitionCompleted()":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/childTransitionCompleted()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/childtransitioncompleted()"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presented(from:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presented(from:).json new file mode 100644 index 00000000..1d2ccd28 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presented(from:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the presentable is shown."},{"type":"text","text":" "},{"type":"text","text":"This could be a window, another viewController, a coordinator, etc."},{"type":"text","text":" "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" is specified whenever a context cannot be easily determined."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/presented(from:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/presented(from:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"title":"presented(from:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC9presented4fromyAA11Presentable_pSg_tF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/presented(from:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:).json new file mode 100644 index 00000000..0c7bc39d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":" "},{"kind":"internalParam","text":"recognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"handler"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"handlerRecognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"? = nil) "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"GestureRecognizer"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The route to be triggered when the gestureRecognizer begins."},{"type":"text","text":" "},{"type":"text","text":"Make sure that the transition behind is interactive as otherwise the transition is simply performed."}]}]},{"name":"recognizer","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The gesture recognizer to be used to update the interactive transition."}]}]},{"name":"handler","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The handler to update the interaction controller of the animation generated by the given "},{"type":"codeVoice","code":"transition"},{"type":"text","text":" closure."}]}]},{"name":"handlerRecognizer","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The gestureRecognizer with which the handler has been registered."}]}]},{"name":"transition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The closure to perform the transition. It returns the transition animation to control the interaction controller of."},{"type":"text","text":" "},{"type":"codeVoice","code":"TransitionAnimation.start()"},{"type":"text","text":" is automatically called."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The closure to be called whenever the transition completes."},{"type":"text","text":" "},{"type":"text","text":"Hint: Might be called multiple times but only once per performing the transition."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Also consider "},{"type":"codeVoice","code":"registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)"},{"type":"text","text":" as it might make it easier"},{"type":"text","text":" "},{"type":"text","text":"to implement an interactive transition. This is meant for cases where the other method does not provide enough customization"},{"type":"text","text":" "},{"type":"text","text":"options."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"A target is added to the gestureRecognizer so that the handler is executed every time the state of the gesture recognizer changes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:handler:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:handler:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Register an interactive transition triggered by a gesture recognizer."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"registerInteractiveTransition(for:triggeredBy:handler:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"handler"},{"kind":"text","text":": ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"handlerRecognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerInteractiveTransition(for:triggeredBy:handler:completion:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"registerInteractiveTransition(for:triggeredBy:handler:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"handler"},{"kind":"text","text":": ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"handlerRecognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF07GestureN0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Register an interactive transition triggered by a gesture recognizer."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:handler:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:handler:completion:)"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:).json new file mode 100644 index 00000000..a82d692f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":" "},{"kind":"internalParam","text":"recognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"progress"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldFinish"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"? = nil) "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"GestureRecognizer"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The route to be triggered when the gestureRecognizer begins."},{"type":"text","text":" "},{"type":"text","text":"Make sure that the transition behind is interactive as otherwise the transition is simply performed."}]}]},{"name":"recognizer","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The gesture recognizer to be used to update the interactive transition."}]}]},{"name":"progress","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Return the progress as CGFloat between 0 (start) and 1 (finish)."}]}]},{"name":"shouldFinish","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Decide depending on the gestureRecognizer’s state whether to finish or cancel a given transition."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The closure to be called whenever the transition completes."},{"type":"text","text":" "},{"type":"text","text":"Hint: Might be called multiple times but only once per performing the transition."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"To get more customization options, check out "},{"type":"codeVoice","code":"registerInteractiveTransition(for:triggeredBy:handler:completion:)"},{"type":"text","text":"."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"A target is added to the gestureRecognizer so that the handler is executed every time the state of the gesture recognizer changes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Register an interactive transition triggered by a gesture recognizer."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"progress"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldFinish"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerInteractiveTransition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"GestureRecognizer"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC9RouteTypexmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"progress"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldFinish"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"GestureRecognizer","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__14CoreFoundation7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF07GestureR0L_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Register an interactive transition triggered by a gesture recognizer."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerparent(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerparent(_:).json new file mode 100644 index 00000000..d4f178a0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerparent(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/registerparent(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerParent(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"title":"registerParent(_:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC14registerParentyyAA11Presentable_XlF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerParent(_:)":{"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerParent(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/registerparent(_:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerpeek(for:route:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerpeek(for:route:).json new file mode 100644 index 00000000..7153b62a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerpeek(for:route:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"source"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","preciseIdentifier":"s:12XCoordinator9ContainerP","text":"Container"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"source","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The view to register peek and pop on."}]}]},{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered for peek and pop."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/registerpeek(for:route:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerPeek(for:route:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use this transition to register 3D Touch Peek and Pop functionality."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"registerPeek(for:route:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","platforms":[{"unavailable":false,"deprecatedAt":"13.0","message":"Use `UIContextMenuInteraction` instead.","introducedAt":"9.0","deprecated":false,"name":"iOS","beta":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations"]]},"deprecationSummary":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Use `UIContextMenuInteraction` instead."}]}],"references":{"doc://XCoordinator/documentation/XCoordinator/Container":{"role":"symbol","title":"Container","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Container"}],"url":"\/documentation\/xcoordinator\/container"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Coordinator-Implementations":{"role":"collectionGroup","title":"Coordinator Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/registerPeek(for:route:)":{"role":"symbol","title":"registerPeek(for:route:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Use this transition to register 3D Touch Peek and Pop functionality."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/registerPeek(for:route:)","kind":"symbol","type":"topic","deprecated":true,"url":"\/documentation\/xcoordinator\/basecoordinator\/registerpeek(for:route:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechild(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechild(_:).json new file mode 100644 index 00000000..91a18703 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechild(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The child to be removed."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/removechild(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChild(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method removes a child to a coordinator’s children."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"title":"removeChild(_:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC11removeChildyyAA11Presentable_pF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/removeChild(_:)":{"role":"symbol","title":"removeChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method removes a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChild(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/removechild(_:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechildrenifneeded().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechildrenifneeded().json new file mode 100644 index 00000000..bc38f3c0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechildrenifneeded().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/removechildrenifneeded()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChildrenIfNeeded()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method removes all children that are no longer in the view hierarchy."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"title":"removeChildrenIfNeeded()","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC22removeChildrenIfNeededyyF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/removeChildrenIfNeeded()":{"role":"symbol","title":"removeChildrenIfNeeded()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method removes all children that are no longer in the view hierarchy."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/removeChildrenIfNeeded()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/removechildrenifneeded()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property.json new file mode 100644 index 00000000..9482b653 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" { get }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.property"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/rootViewController-swift.property","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The rootViewController on which transitions are performed."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"}],"title":"rootViewController","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator15BaseCoordinatorC18rootViewController04RooteF0Qy_vp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/rootViewController-swift.property":{"role":"symbol","title":"rootViewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"}],"abstract":[{"type":"text","text":"The rootViewController on which transitions are performed."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/rootViewController-swift.property","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.property"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2.json new file mode 100644 index 00000000..db9dbcb6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"},{"kind":"text","text":"."},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa","text":"RootViewController"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-6xno2"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-6xno2","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Shortcut for Coordinator.TransitionType.RootViewController"}],"kind":"symbol","metadata":{"navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"role":"symbol","title":"BaseCoordinator.RootViewController","roleHeading":"Type Alias","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"symbolKind":"typealias","externalID":"s:12XCoordinator11CoordinatorPAAE18RootViewControllera::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Coordinator-Implementations":{"role":"collectionGroup","title":"Coordinator Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-6xno2":{"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for Coordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-6xno2","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-6xno2"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij.json new file mode 100644 index 00000000..27b4a5c7 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa","text":"RootViewController"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"kind":"symbol","metadata":{"navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","roleHeading":"Type Alias","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"symbolKind":"typealias","externalID":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router(for:).json new file mode 100644 index 00000000..fa975354 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","preciseIdentifier":"s:12XCoordinator6RouterP","text":"Router"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)? "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"R"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The route to determine a router for."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Deep linking makes use of this method to trigger the specified routes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/router(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/router(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"title":"router(for:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/router(for:)":{"role":"symbol","title":"router(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0G0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/router(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router(for:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router-implementations.json new file mode 100644 index 00000000..09433621 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/router-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:completion:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"Router Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/contextTrigger(_:with:)":{"role":"symbol","title":"contextTrigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/contextTrigger(_:with:completion:)":{"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/contextTrigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:completion:)":{"role":"symbol","title":"trigger(_:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:completion:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:)":{"role":"symbol","title":"trigger(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:with:)":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:with:completion:)":{"role":"symbol","title":"trigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/setroot(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/setroot(for:).json new file mode 100644 index 00000000..8b19fdcf --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/setroot(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"window"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"window","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The window to set the root of."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method sets the rootViewController of the window and makes it key and visible."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, it calls "},{"type":"codeVoice","code":"presented(from:)"},{"type":"text","text":" with the window as its parameter."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/setroot(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/setRoot(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"kind":"symbol","metadata":{"role":"symbol","title":"setRoot(for:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE7setRoot3forySo8UIWindowC_tF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/setRoot(for:)":{"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/setRoot(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/setroot(for:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/transitionperformer-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/transitionperformer-implementations.json new file mode 100644 index 00000000..3e78790f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/transitionperformer-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/transitionperformer-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/TransitionPerformer-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/performTransition(_:with:completion:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"TransitionPerformer Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/performTransition(_:with:completion:)":{"role":"symbol","title":"performTransition(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Perform a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/performTransition(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/performtransition(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:).json new file mode 100644 index 00000000..04bbee5f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@"},{"kind":"typeIdentifier","text":"MainActor","preciseIdentifier":"s:ScM"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/trigger(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"trigger(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7triggeryy9RouteTypeQzYaF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"13.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"13.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:)":{"role":"symbol","title":"trigger(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:completion:).json new file mode 100644 index 00000000..df435c1e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/trigger(_:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_10completiony9RouteTypeQz_yycSgtF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:completion:)":{"role":"symbol","title":"trigger(_:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:completion:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:).json new file mode 100644 index 00000000..d82c57e8 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options for performing the transition, e.g. whether it should be animated."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:with:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_4withy9RouteTypeQz_AA17TransitionOptionsVtF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:with:)":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:).json new file mode 100644 index 00000000..8e53d3e7 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Transition options for performing the transition, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyycSgtF::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/trigger(_:with:completion:)":{"role":"symbol","title":"trigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/trigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:).json new file mode 100644 index 00000000..40a04b48 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"unregisterInteractiveTransitions"},{"kind":"text","text":"("},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":" "},{"kind":"internalParam","text":"recognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"recognizer","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The recognizer to unregister interactive transitions for."},{"type":"text","text":" "},{"type":"text","text":"This method will unregister all interactive transitions with that gesture recognizer."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Unregistering is not mandatory to prevent reference cycles, etc."},{"type":"text","text":" "},{"type":"text","text":"It is useful, though, to remove previously registered interactive transitions that are no longer needed or wanted."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/unregisterinteractivetransitions(triggeredby:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/unregisterInteractiveTransitions(triggeredBy:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Unregisters a previously registered interactive transition."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"unregisterInteractiveTransitions(triggeredBy:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"unregisterInteractiveTransitions"},{"kind":"text","text":"("},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator15BaseCoordinatorC32unregisterInteractiveTransitions11triggeredByySo19UIGestureRecognizerC_tF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/unregisterInteractiveTransitions(triggeredBy:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"unregisterInteractiveTransitions(triggeredBy:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"unregisterInteractiveTransitions"},{"kind":"text","text":"("},{"kind":"externalParam","text":"triggeredBy"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Unregisters a previously registered interactive transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/unregisterInteractiveTransitions(triggeredBy:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/unregisterinteractivetransitions(triggeredby:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-614jt.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-614jt.json new file mode 100644 index 00000000..f033ff1a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-614jt.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"! { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"In the case of a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":", it returns itself."},{"type":"text","text":" "},{"type":"text","text":"A coordinator returns its rootViewController."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-614jt"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-614jt","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The viewController of the Presentable."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"title":"viewController","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator15BaseCoordinatorC14viewControllerSo06UIViewE0CSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/viewController-614jt":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController of the Presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-614jt","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-614jt"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-8iux.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-8iux.json new file mode 100644 index 00000000..89393e03 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-8iux.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"! { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-8iux"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-8iux","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A Coordinator uses its rootViewController as viewController."}],"kind":"symbol","metadata":{"role":"symbol","title":"viewController","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"symbolKind":"property","externalID":"s:12XCoordinator11CoordinatorPAAE14viewControllerSo06UIViewD0CSgvp::SYNTHESIZED::s:12XCoordinator15BaseCoordinatorC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/Coordinator-Implementations":{"role":"collectionGroup","title":"Coordinator Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/Coordinator-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/viewController-8iux":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"A Coordinator uses its rootViewController as viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/viewController-8iux","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-8iux"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator.json new file mode 100644 index 00000000..70de5930 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"TransitionType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP","text":"TransitionProtocol"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Although subclassing of coordinators is encouraged for more complex cases, a "},{"type":"codeVoice","code":"BasicCoordinator"},{"type":"text","text":" can easily"},{"type":"text","text":" "},{"type":"text","text":"be created by only providing a "},{"type":"codeVoice","code":"prepareTransition"},{"type":"text","text":" closure, an "},{"type":"codeVoice","code":"initialRoute"},{"type":"text","text":" and an "},{"type":"codeVoice","code":"initialLoadingType"},{"type":"text","text":"."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"title":"BasicCoordinator","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator16BasicCoordinatorC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/prepareTransition(for:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/presented(from:)"]},{"title":"Enumerations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever the BasicCoordinator is shown to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/presented(from:)"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)":{"role":"symbol","title":"init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"initialLoadingType"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"InitialLoadingType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO"},{"kind":"text","text":", "},{"kind":"externalParam","text":"prepareTransition"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":")?)"}],"abstract":[{"type":"text","text":"Creates a BasicCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/prepareTransition(for:)":{"role":"symbol","title":"prepareTransition(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"}],"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"Override this method to define transitions for triggered routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/prepareTransition(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/preparetransition(for:)"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}],"url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:).json new file mode 100644 index 00000000..c7f67af6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"initialLoadingType"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO","text":"InitialLoadingType"},{"kind":"text","text":" = .presented, "},{"kind":"externalParam","text":"prepareTransition"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":")?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"initialRoute","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If a route is specified, it is triggered depending on the initialLoadingType."}]}]},{"name":"initialLoadingType","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The initialLoadingType specifies when the initialRoute is triggered."}]}]},{"name":"prepareTransition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"A closure to define transitions based on triggered routes."},{"type":"text","text":" "},{"type":"text","text":"Make sure to override "},{"type":"codeVoice","code":"prepareTransition"},{"type":"text","text":" \u001cby subclassing, if you specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a BasicCoordinator."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"initialLoadingType"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"InitialLoadingType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO"},{"kind":"text","text":", "},{"kind":"externalParam","text":"prepareTransition"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":")?)"}],"title":"init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator16BasicCoordinatorC18rootViewController12initialRoute0G11LoadingType17prepareTransitionACyxq_G04RooteF0Qy__xSgAC07InitialiJ0Oyxq__Gq_xcSgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}],"url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)":{"role":"symbol","title":"init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"initialLoadingType"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"InitialLoadingType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO"},{"kind":"text","text":", "},{"kind":"externalParam","text":"prepareTransition"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"},{"kind":"text","text":")?)"}],"abstract":[{"type":"text","text":"Creates a BasicCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype.json new file mode 100644 index 00000000..d3165d0d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","interfaceLanguage":"swift"},"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"title":"BasicCoordinator.InitialLoadingType","roleHeading":"Enumeration","role":"symbol","symbolKind":"enum","externalID":"s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator"]]},"topicSections":[{"title":"Enumeration Cases","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/immediately","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/presented"]},{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/Equatable-Implementations"],"generated":true}],"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/immediately":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType.immediately","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"immediately"}],"abstract":[{"type":"text","text":"The initial route is triggered before the coordinator is made visible (i.e. on initialization)."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/immediately","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/immediately"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}],"url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/Equatable-Implementations":{"role":"collectionGroup","title":"Equatable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/Equatable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/equatable-implementations"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/presented":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType.presented","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"}],"abstract":[{"type":"text","text":"The initial route is triggered after the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/presented","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/presented"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:).json new file mode 100644 index 00000000..d5ee6299 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"internalParam","text":"lhs"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"internalParam","text":"rhs"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/!=(_:_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/!=(_:_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Inherited from "},{"type":"codeVoice","code":"Equatable.!=(_:_:)"},{"type":"text","text":"."}],"kind":"symbol","metadata":{"role":"symbol","title":"!=(_:_:)","roleHeading":"Operator","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"symbolKind":"op","externalID":"s:SQsE2neoiySbx_xtFZ::SYNTHESIZED::s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO","extendedModule":"Swift","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/Equatable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/Equatable-Implementations":{"role":"collectionGroup","title":"Equatable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/Equatable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/equatable-implementations"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/!=(_:_:)"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}],"url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations.json new file mode 100644 index 00000000..b568d5fe --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}],"url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/!=(_:_:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately.json new file mode 100644 index 00000000..951c9701 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"immediately"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/immediately"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/immediately","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The initial route is triggered before the coordinator is made visible (i.e. on initialization)."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"immediately"}],"title":"BasicCoordinator.InitialLoadingType.immediately","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO11immediatelyyAEyxq__GAGmAA5RouteRzAA18TransitionProtocolR_r0_lF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/immediately":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType.immediately","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"immediately"}],"abstract":[{"type":"text","text":"The initial route is triggered before the coordinator is made visible (i.e. on initialization)."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/immediately","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/immediately"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}],"url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented.json new file mode 100644 index 00000000..89f15b13 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/presented"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/presented","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The initial route is triggered after the coordinator is made visible."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"}],"title":"BasicCoordinator.InitialLoadingType.presented","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO9presentedyAEyxq__GAGmAA5RouteRzAA18TransitionProtocolR_r0_lF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"InitialLoadingType"}],"abstract":[{"type":"codeVoice","code":"InitialLoadingType"},{"type":"text","text":" differentiates between different points in time when the initital route is to"},{"type":"text","text":" "},{"type":"text","text":"be triggered by the coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InitialLoadingType"}],"url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/InitialLoadingType/presented":{"role":"symbol","title":"BasicCoordinator.InitialLoadingType.presented","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"}],"abstract":[{"type":"text","text":"The initial route is triggered after the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/InitialLoadingType\/presented","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/presented"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/preparetransition(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/preparetransition(for:).json new file mode 100644 index 00000000..248a6749 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/preparetransition(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"override"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The triggered route for which a transition is to be prepared."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The prepared transition."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/preparetransition(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/prepareTransition(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"Override this method to define transitions for triggered routes."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"}],"title":"prepareTransition(for:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator16BasicCoordinatorC17prepareTransition3forq_x_tF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/prepareTransition(for:)":{"role":"symbol","title":"prepareTransition(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC9RouteTypexmfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC14TransitionTypeq_mfp"}],"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"Override this method to define transitions for triggered routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/prepareTransition(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/preparetransition(for:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/presented(from:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/presented(from:).json new file mode 100644 index 00000000..03d4b249 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/presented(from:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"override"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which this coordinator has been shown to the user."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"If "},{"type":"codeVoice","code":"initialLoadingType"},{"type":"text","text":" has been specified as "},{"type":"codeVoice","code":"presented"},{"type":"text","text":" and an initialRoute is present,"},{"type":"text","text":" "},{"type":"text","text":"the route is triggered here."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basiccoordinator\/presented(from:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/presented(from:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is called whenever the BasicCoordinator is shown to the user."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"title":"presented(from:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator16BasicCoordinatorC9presented4fromyAA11Presentable_pSg_tF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever the BasicCoordinator is shown to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/basiccoordinator\/presented(from:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basicnavigationcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basicnavigationcoordinator.json new file mode 100644 index 00000000..721aef07 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basicnavigationcoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicNavigationCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":"> = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC","text":"BasicCoordinator"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator26BasicNavigationCoordinatora1Rxmfp"},{"kind":"text","text":", "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationTransition","preciseIdentifier":"s:12XCoordinator20NavigationTransitiona","text":"NavigationTransition"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"R"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basicnavigationcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicNavigationCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" as its rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicNavigationCoordinator"}],"title":"BasicNavigationCoordinator","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator26BasicNavigationCoordinatora","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"BasicNavigationCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationTransition":{"role":"symbol","title":"NavigationTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationTransition"}],"abstract":[{"type":"text","text":"NavigationTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationTransition"}],"url":"\/documentation\/xcoordinator\/navigationtransition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/BasicNavigationCoordinator":{"role":"symbol","title":"BasicNavigationCoordinator","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicNavigationCoordinator"}],"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" as its rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicNavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicNavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/basicnavigationcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basictabbarcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basictabbarcoordinator.json new file mode 100644 index 00000000..e2f363a6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basictabbarcoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicTabBarCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":"> = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC","text":"BasicCoordinator"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator22BasicTabBarCoordinatora1Rxmfp"},{"kind":"text","text":", "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarTransition","preciseIdentifier":"s:12XCoordinator16TabBarTransitiona","text":"TabBarTransition"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"R"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basictabbarcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicTabBarCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":" as its rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicTabBarCoordinator"}],"title":"BasicTabBarCoordinator","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator22BasicTabBarCoordinatora","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"BasicTabBarCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicTabBarCoordinator":{"role":"symbol","title":"BasicTabBarCoordinator","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicTabBarCoordinator"}],"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":" as its rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicTabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicTabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/basictabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarTransition":{"role":"symbol","title":"TabBarTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarTransition"}],"abstract":[{"type":"text","text":"TabBarTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarTransition"}],"url":"\/documentation\/xcoordinator\/tabbartransition"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/basicviewcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/basicviewcoordinator.json new file mode 100644 index 00000000..d76127fa --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/basicviewcoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicViewCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":"> = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","preciseIdentifier":"s:12XCoordinator16BasicCoordinatorC","text":"BasicCoordinator"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator20BasicViewCoordinatora1Rxmfp"},{"kind":"text","text":", "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewTransition","preciseIdentifier":"s:12XCoordinator14ViewTransitiona","text":"ViewTransition"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"R"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/basicviewcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicViewCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" as its rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicViewCoordinator"}],"title":"BasicViewCoordinator","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator20BasicViewCoordinatora","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"BasicViewCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/ViewTransition":{"role":"symbol","title":"ViewTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewTransition"}],"abstract":[{"type":"text","text":"ViewTransition offers transitions common to any "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewTransition"}],"url":"\/documentation\/xcoordinator\/viewtransition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicViewCoordinator":{"role":"symbol","title":"BasicViewCoordinator","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicViewCoordinator"}],"abstract":[{"type":"text","text":"A BasicCoordinator with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" as its rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicViewCoordinator"}],"url":"\/documentation\/xcoordinator\/basicviewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/container.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/container.json new file mode 100644 index 00000000..6de8c4c6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/container.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"With the Container protocol, "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" objects can be used interchangeably,"},{"type":"text","text":" "},{"type":"text","text":"e.g. when embedding containers into containers."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/container"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"title":"Container","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator9ContainerP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"Container"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/view","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/viewController"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/Container/view":{"role":"symbol","title":"view","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"view"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIView","preciseIdentifier":"c:objc(cs)UIView"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The view of the Container."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/view","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/container\/view"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Container":{"role":"symbol","title":"Container","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Container"}],"url":"\/documentation\/xcoordinator\/container"},"doc://XCoordinator/documentation/XCoordinator/Container/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController of the Container."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/viewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/container\/viewcontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/container/view.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/container/view.json new file mode 100644 index 00000000..f9333d9c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/container/view.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"view"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIView","preciseIdentifier":"c:objc(cs)UIView"},{"kind":"text","text":"! { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/container\/view"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/view","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The view of the Container."}],"kind":"symbol","metadata":{"role":"symbol","title":"view","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"view"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIView","preciseIdentifier":"c:objc(cs)UIView"},{"kind":"text","text":"!"}],"symbolKind":"property","externalID":"s:12XCoordinator9ContainerP4viewSo6UIViewCSgvp","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Container":{"role":"symbol","title":"Container","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Container"}],"url":"\/documentation\/xcoordinator\/container"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Container/view":{"role":"symbol","title":"view","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"view"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIView","preciseIdentifier":"c:objc(cs)UIView"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The view of the Container."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/view","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/container\/view"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/container/viewcontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/container/viewcontroller.json new file mode 100644 index 00000000..db9caa5f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/container/viewcontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"! { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/container\/viewcontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/viewController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The viewController of the Container."}],"kind":"symbol","metadata":{"role":"symbol","title":"viewController","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"symbolKind":"property","externalID":"s:12XCoordinator9ContainerP14viewControllerSo06UIViewD0CSgvp","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Container/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController of the Container."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container\/viewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/container\/viewcontroller"},"doc://XCoordinator/documentation/XCoordinator/Container":{"role":"symbol","title":"Container","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Container"}],"url":"\/documentation\/xcoordinator\/container"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/contextpresentationhandler.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/contextpresentationhandler.json new file mode 100644 index 00000000..779236a8 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/contextpresentationhandler.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"},{"kind":"text","text":" = ("},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP","text":"TransitionContext"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/contextpresentationhandler"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The completion handler for transitions, which also provides the context information about the transition."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"}],"title":"ContextPresentationHandler","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator26ContextPresentationHandlera","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"ContextPresentationHandler"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/ContextPresentationHandler":{"role":"symbol","title":"ContextPresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions, which also provides the context information about the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ContextPresentationHandler"}],"url":"\/documentation\/xcoordinator\/contextpresentationhandler"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator.json new file mode 100644 index 00000000..b6c733bd --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","preciseIdentifier":"s:12XCoordinator6RouterP","text":"Router"},{"kind":"text","text":", "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP","text":"TransitionPerformer"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"It requires an object to be able to trigger routes and perform transitions."},{"type":"text","text":" "},{"type":"text","text":"This connection is created using the "},{"type":"codeVoice","code":"prepareTransition(for:)"},{"type":"text","text":" method."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator"],"kind":"relationships","title":"Conforming Types","type":"conformingTypes"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"title":"Coordinator","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator11CoordinatorP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"Coordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/viewController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/addChild(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/chain(routes:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-3460y","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-5e278","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/prepareTransition(for:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/registerPeek(for:route:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChild(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChildrenIfNeeded()"]},{"title":"Type Aliases","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/RootViewController"]},{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/Presentable-Implementations"],"generated":true}],"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/removeChild(_:)":{"role":"symbol","title":"removeChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method removes a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChild(_:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/removechild(_:)"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/registerPeek(for:route:)":{"role":"symbol","title":"registerPeek(for:route:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Use this transition to register 3D Touch Peek and Pop functionality."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/registerPeek(for:route:)","kind":"symbol","type":"topic","deprecated":true,"url":"\/documentation\/xcoordinator\/coordinator\/registerpeek(for:route:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/RootViewController":{"role":"symbol","title":"Coordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for Coordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/RootViewController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/coordinator\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/addChild(_:)":{"role":"symbol","title":"addChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method adds a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/addChild(_:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/addchild(_:)"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"A Coordinator uses its rootViewController as viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/viewController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/viewcontroller"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/deepLink(_:_:)-3460y":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-3460y","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-3460y"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/removeChildrenIfNeeded()":{"role":"symbol","title":"removeChildrenIfNeeded()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method removes all children that are no longer in the view hierarchy."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChildrenIfNeeded()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/removechildrenifneeded()"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/chain(routes:)":{"role":"symbol","title":"chain(routes:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"abstract":[{"type":"text","text":"With "},{"type":"codeVoice","code":"chain(routes:)"},{"type":"text","text":" different routes can be chained together to form a combined transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/chain(routes:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/chain(routes:)"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/deepLink(_:_:)-5e278":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-5e278","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-5e278"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/prepareTransition(for:)":{"role":"symbol","title":"prepareTransition(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"It especially decides, which transitions are performed for the triggered routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/prepareTransition(for:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/preparetransition(for:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/addchild(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/addchild(_:).json new file mode 100644 index 00000000..7ab3e3e4 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/addchild(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The child to be added."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/addchild(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/addChild(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method adds a child to a coordinator’s children."}],"kind":"symbol","metadata":{"role":"symbol","title":"addChild(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorP8addChildyyAA11Presentable_pF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator/addChild(_:)":{"role":"symbol","title":"addChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"addChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method adds a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/addChild(_:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/addchild(_:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/chain(routes:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/chain(routes:).json new file mode 100644 index 00000000..a758d643 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/chain(routes:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"routes","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The routes to be chained."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"A transition combining the transitions of the specified routes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/chain(routes:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/chain(routes:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"With "},{"type":"codeVoice","code":"chain(routes:)"},{"type":"text","text":" different routes can be chained together to form a combined transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"chain(routes:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE5chain6routes14TransitionTypeQzSay05RouteF0QzG_tF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/chain(routes:)":{"role":"symbol","title":"chain(routes:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"chain"},{"kind":"text","text":"("},{"kind":"externalParam","text":"routes"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"abstract":[{"type":"text","text":"With "},{"type":"codeVoice","code":"chain(routes:)"},{"type":"text","text":" different routes can be chained together to form a combined transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/chain(routes:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/chain(routes:)"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/childtransitioncompleted().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/childtransitioncompleted().json new file mode 100644 index 00000000..56e1b1b9 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/childtransitioncompleted().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/childtransitioncompleted()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/childTransitionCompleted()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"kind":"symbol","metadata":{"role":"symbol","title":"childTransitionCompleted()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE24childTransitionCompletedyyF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator/childTransitionCompleted()":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/childTransitionCompleted()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/childtransitioncompleted()"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:).json new file mode 100644 index 00000000..26c38d7a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera","text":"ContextPresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options configuring the execution of transitions, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."},{"type":"text","text":" "},{"type":"text","text":"If the context is not needed, use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Useful for deep linking. It is encouraged to use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead, if the context is not needed."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/contexttrigger(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/contextTrigger(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"kind":"symbol","metadata":{"role":"symbol","title":"contextTrigger(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:completion:)"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/Router/contextTrigger(_:with:completion:)":{"defaultImplementations":1,"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/contextTrigger(_:with:completion:)":{"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/contextTrigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/ContextPresentationHandler":{"role":"symbol","title":"ContextPresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions, which also provides the context information about the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ContextPresentationHandler"}],"url":"\/documentation\/xcoordinator\/contextpresentationhandler"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y.json new file mode 100644 index 00000000..47fed2e0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"remainingRoutes"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"S"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Sequence","preciseIdentifier":"s:ST"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":">, "},{"kind":"typeIdentifier","text":"S"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Element"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The first route in the chain."},{"type":"text","text":" "},{"type":"text","text":"It is given a special place because its exact type can be specified."}]}]},{"name":"remainingRoutes","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The remaining routes of the chain."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-3460y"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-3460y","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"kind":"symbol","metadata":{"role":"symbol","title":"deepLink(_:_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/deepLink(_:_:)-3460y":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"S"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"S","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF1SL_qd_0_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSTRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-3460y","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-3460y"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278.json new file mode 100644 index 00000000..957b547f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"remainingRoutes"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Parameters"}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"route:"},{"type":"text","text":" "},{"type":"text","text":"The first route in the chain."},{"type":"text","text":" "},{"type":"text","text":"It is given a special place because its exact type can be specified."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"remainingRoutes:"},{"type":"text","text":" "},{"type":"text","text":"The remaining routes of the chain."},{"type":"text","text":" "},{"type":"text","text":"As it is not implemented in a type-safe manner, use it with caution."},{"type":"text","text":" "},{"type":"text","text":"Keep in mind that changes in the app’s structure and changes of transitions"},{"type":"text","text":" "},{"type":"text","text":"behind the given routes can lead to runtime errors and, therefore, crashes of your app."}]}]}]}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-5e278"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-5e278","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"kind":"symbol","metadata":{"role":"symbol","title":"deepLink(_:_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/deepLink(_:_:)-5e278":{"role":"symbol","title":"deepLink(_:_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"deepLink"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtAG0eG0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Deep-Linking can be used to chain routes of different types together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/deepLink(_:_:)-5e278","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-5e278"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/performtransition(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/performtransition(_:with:completion:).json new file mode 100644 index 00000000..3c6b113c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/performtransition(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The transition to be performed."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The options on how to perform the transition, including the option to enable\/disable animations."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The completion handler called once a transition has finished."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/performtransition(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/performTransition(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Perform a transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"performTransition(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE17performTransition_4with10completiony0D4TypeQz_AA0D7OptionsVyycSgtF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/performTransition(_:with:completion:)"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/performTransition(_:with:completion:)":{"role":"symbol","title":"performTransition(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Perform a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/performTransition(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/performtransition(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/performTransition(_:with:completion:)":{"defaultImplementations":1,"role":"symbol","title":"performTransition(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Perform a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/performTransition(_:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/performtransition(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/preparetransition(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/preparetransition(for:).json new file mode 100644 index 00000000..6ca37a84 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/preparetransition(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The triggered route for which a transition is to be prepared."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The prepared transition."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/preparetransition(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/prepareTransition(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"It especially decides, which transitions are performed for the triggered routes."}],"kind":"symbol","metadata":{"role":"symbol","title":"prepareTransition(for:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorP17prepareTransition3for0D4TypeQz05RouteF0Qz_tF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/prepareTransition(for:)":{"role":"symbol","title":"prepareTransition(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"prepareTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"}],"abstract":[{"type":"text","text":"This method prepares transitions for routes."},{"type":"text","text":" "},{"type":"text","text":"It especially decides, which transitions are performed for the triggered routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/prepareTransition(for:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/preparetransition(for:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presentable-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presentable-implementations.json new file mode 100644 index 00000000..04fa3ead --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presentable-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/presentable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/Presentable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/childTransitionCompleted()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/presented(from:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"Presentable Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/presented(from:)"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/childTransitionCompleted()":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/childTransitionCompleted()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/childtransitioncompleted()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presented(from:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presented(from:).json new file mode 100644 index 00000000..deebff00 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presented(from:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the presentable is shown."},{"type":"text","text":" "},{"type":"text","text":"This could be a window, another viewController, a coordinator, etc."},{"type":"text","text":" "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" is specified whenever a context cannot be easily determined."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/presented(from:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/presented(from:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"kind":"symbol","metadata":{"role":"symbol","title":"presented(from:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE9presented4fromyAA11Presentable_pSg_tF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/presented(from:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/registerpeek(for:route:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/registerpeek(for:route:).json new file mode 100644 index 00000000..29d69ede --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/registerpeek(for:route:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"source"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","preciseIdentifier":"s:12XCoordinator9ContainerP","text":"Container"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"source","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The view to register peek and pop on."}]}]},{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered for peek and pop."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/registerpeek(for:route:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/registerPeek(for:route:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use this transition to register 3D Touch Peek and Pop functionality."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"registerPeek(for:route:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF","extendedModule":"XCoordinator","platforms":[{"unavailable":false,"deprecatedAt":"13.0","message":"Use `UIContextMenuInteraction` instead.","introducedAt":"9.0","deprecated":false,"name":"iOS","beta":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"deprecationSummary":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Use `UIContextMenuInteraction` instead."}]}],"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/registerPeek(for:route:)":{"role":"symbol","title":"registerPeek(for:route:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerPeek"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator11CoordinatorPAAE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztAI0gJ0RtzlF18RootViewControllerL_qd__mfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"Use this transition to register 3D Touch Peek and Pop functionality."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/registerPeek(for:route:)","kind":"symbol","type":"topic","deprecated":true,"url":"\/documentation\/xcoordinator\/coordinator\/registerpeek(for:route:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Container":{"role":"symbol","title":"Container","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Container"}],"url":"\/documentation\/xcoordinator\/container"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechild(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechild(_:).json new file mode 100644 index 00000000..2f838e1d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechild(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The child to be removed."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/removechild(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChild(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method removes a child to a coordinator’s children."}],"kind":"symbol","metadata":{"role":"symbol","title":"removeChild(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorP11removeChildyyAA11Presentable_pF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/removeChild(_:)":{"role":"symbol","title":"removeChild(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChild"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method removes a child to a coordinator’s children."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChild(_:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/removechild(_:)"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechildrenifneeded().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechildrenifneeded().json new file mode 100644 index 00000000..addaf35b --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechildrenifneeded().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/removechildrenifneeded()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChildrenIfNeeded()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method removes all children that are no longer in the view hierarchy."}],"kind":"symbol","metadata":{"role":"symbol","title":"removeChildrenIfNeeded()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator11CoordinatorP22removeChildrenIfNeededyyF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator/removeChildrenIfNeeded()":{"role":"symbol","title":"removeChildrenIfNeeded()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"removeChildrenIfNeeded"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method removes all children that are no longer in the view hierarchy."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/removeChildrenIfNeeded()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/removechildrenifneeded()"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/rootviewcontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/rootviewcontroller.json new file mode 100644 index 00000000..3d586e62 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/rootviewcontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"},{"kind":"text","text":"."},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa","text":"RootViewController"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/rootviewcontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/RootViewController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Shortcut for Coordinator.TransitionType.RootViewController"}],"kind":"symbol","metadata":{"navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"role":"symbol","title":"Coordinator.RootViewController","roleHeading":"Type Alias","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"symbolKind":"typealias","externalID":"s:12XCoordinator11CoordinatorPAAE18RootViewControllera","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/RootViewController":{"role":"symbol","title":"Coordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for Coordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/RootViewController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/coordinator\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/viewcontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/viewcontroller.json new file mode 100644 index 00000000..9630ebba --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/viewcontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"! { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/coordinator\/viewcontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/viewController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A Coordinator uses its rootViewController as viewController."}],"kind":"symbol","metadata":{"role":"symbol","title":"viewController","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"symbolKind":"property","externalID":"s:12XCoordinator11CoordinatorPAAE14viewControllerSo06UIViewD0CSgvp","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"A Coordinator uses its rootViewController as viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/viewController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/viewcontroller"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation.json new file mode 100644 index 00000000..808c41ab --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"An "},{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" can be created by providing the duration, the animation code"},{"type":"text","text":" "},{"type":"text","text":"and (optionally) a closure to create an interaction controller."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(cs)NSObject"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation"],"kind":"relationships","title":"Inherited By","type":"inheritedBy"},{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/s7CVarArgP","doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP","doc:\/\/XCoordinator\/s23CustomStringConvertibleP","doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","interfaceLanguage":"swift"},"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"title":"InteractiveTransitionAnimation","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"c:@M@XCoordinator@objc(cs)InteractiveTransitionAnimation","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:generateInteractionController:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:generateInteractionController:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/interactionController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/animateTransition(using:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/cleanup()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/generateInteractionController()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/start()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/transitionDuration(using:)"]}],"references":{"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(duration:transition:generateInteractionController:)":{"role":"symbol","title":"init(duration:transition:generateInteractionController:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates an InteractiveTransitionAnimation with a duration, an animation closure and a closure to"},{"type":"text","text":" "},{"type":"text","text":"generate an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:generateInteractionController:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:generateinteractioncontroller:)"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/cleanup()":{"role":"symbol","title":"cleanup()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Ends the transition animation by deleting the interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/cleanup()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/cleanup()"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/interactionController":{"role":"symbol","title":"interactionController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/interactionController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/interactioncontroller"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/transitionDuration(using:)":{"role":"symbol","title":"transitionDuration(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/transitionDuration(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/transitionduration(using:)"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(transitionAnimation:generateInteractionController:)":{"role":"symbol","title":"init(transitionAnimation:generateInteractionController:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:generateInteractionController:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"Provides a simple interface to convert StaticTransitionAnimations to interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:generateInteractionController:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:generateinteractioncontroller:)"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/s23CustomStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomStringConvertible","identifier":"doc:\/\/XCoordinator\/s23CustomStringConvertibleP"},"https://developer.apple.com/documentation/uikit/UIPercentDrivenInteractiveTransition":{"title":"UIPercentDrivenInteractiveTransition","titleInlineContent":[{"type":"text","text":"UIPercentDrivenInteractiveTransition"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPercentDrivenInteractiveTransition","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPercentDrivenInteractiveTransition"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(transitionAnimation:)":{"role":"symbol","title":"init(transitionAnimation:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"Provides a simple interface to convert StaticTransitionAnimations to interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:)"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/animateTransition(using:)":{"role":"symbol","title":"animateTransition(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/animateTransition(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/animatetransition(using:)"},"doc://XCoordinator/s28CustomDebugStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomDebugStringConvertible","identifier":"doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/generateInteractionController()":{"role":"symbol","title":"generateInteractionController()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInteractionController"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"This method is used to generate an applicable interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/generateInteractionController()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/generateinteractioncontroller()"},"doc://XCoordinator/objc(pl)UIViewControllerAnimatedTransitioning":{"type":"unresolvable","title":"UIKit.UIViewControllerAnimatedTransitioning","identifier":"doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/objc(cs)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObject","identifier":"doc:\/\/XCoordinator\/objc(cs)NSObject"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/start()":{"role":"symbol","title":"start()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Starts the transition animation by generating an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/start()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/start()"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/s7CVarArgP":{"type":"unresolvable","title":"Swift.CVarArg","identifier":"doc:\/\/XCoordinator\/s7CVarArgP"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(duration:transition:)":{"role":"symbol","title":"init(duration:transition:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:generateInteractionController:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"By ommitting the "},{"type":"codeVoice","code":"generateInteractionController"},{"type":"text","text":" closure, the transition will use"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPercentDrivenInteractiveTransition"},{"type":"text","text":" "},{"type":"text","text":"to create interaction controllers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:).json new file mode 100644 index 00000000..951d9fea --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitionContext"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionContext","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context of a transition for which the animation should be started."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/animatetransition(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/animateTransition(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"title":"animateTransition(using:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)InteractiveTransitionAnimation(im)animateTransition:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/animateTransition(using:)":{"role":"symbol","title":"animateTransition(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/animateTransition(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/animatetransition(using:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/cleanup().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/cleanup().json new file mode 100644 index 00000000..6df28d82 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/cleanup().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/cleanup()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/cleanup()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Ends the transition animation by deleting the interaction controller."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"title":"cleanup()","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC7cleanupyyF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/cleanup()":{"role":"symbol","title":"cleanup()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Ends the transition animation by deleting the interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/cleanup()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/cleanup()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller().json new file mode 100644 index 00000000..e0387dbd --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInteractionController"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP","text":"PercentDrivenInteractionController"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/generateinteractioncontroller()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/generateInteractionController()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is used to generate an applicable interaction controller."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInteractionController"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"title":"generateInteractionController()","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC29generateInteractionControllerAA013PercentDrivenfG0_pSgyF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/generateInteractionController()":{"role":"symbol","title":"generateInteractionController()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInteractionController"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"This method is used to generate an applicable interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/generateInteractionController()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/generateinteractioncontroller()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:).json new file mode 100644 index 00000000..036d8760 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"convenience"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"duration","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The duration of the animation."}]}]},{"name":"transition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The animation code."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:generateInteractionController:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"By ommitting the "},{"type":"codeVoice","code":"generateInteractionController"},{"type":"text","text":" closure, the transition will use"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPercentDrivenInteractiveTransition"},{"type":"text","text":" "},{"type":"text","text":"to create interaction controllers."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"title":"init(duration:transition:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC8duration10transitionACSd_ySo36UIViewControllerContextTransitioning_pctcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"https://developer.apple.com/documentation/uikit/UIPercentDrivenInteractiveTransition":{"title":"UIPercentDrivenInteractiveTransition","titleInlineContent":[{"type":"text","text":"UIPercentDrivenInteractiveTransition"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPercentDrivenInteractiveTransition","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPercentDrivenInteractiveTransition"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(duration:transition:)":{"role":"symbol","title":"init(duration:transition:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:generateInteractionController:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"By ommitting the "},{"type":"codeVoice","code":"generateInteractionController"},{"type":"text","text":" closure, the transition will use"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPercentDrivenInteractiveTransition"},{"type":"text","text":" "},{"type":"text","text":"to create interaction controllers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:).json new file mode 100644 index 00000000..192cf29d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" () -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP","text":"PercentDrivenInteractionController"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Parameters"}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"duration: The duration of the animation."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"transition: The animation code."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"context: The context in which the transition is performed."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"generateInteractionController:"},{"type":"text","text":" "},{"type":"text","text":"The closure to generate an interaction controller when needed,"},{"type":"text","text":" "},{"type":"text","text":"usually at the beginning of a transition."}]}]}]}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:generateinteractioncontroller:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:generateInteractionController:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates an InteractiveTransitionAnimation with a duration, an animation closure and a closure to"},{"type":"text","text":" "},{"type":"text","text":"generate an interaction controller."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"title":"init(duration:transition:generateInteractionController:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC8duration10transition29generateInteractionControllerACSd_ySo06UIViewI20ContextTransitioning_pcAA013PercentDrivenhI0_pSgyctcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(duration:transition:generateInteractionController:)":{"role":"symbol","title":"init(duration:transition:generateInteractionController:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"transition"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates an InteractiveTransitionAnimation with a duration, an animation closure and a closure to"},{"type":"text","text":" "},{"type":"text","text":"generate an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(duration:transition:generateInteractionController:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:generateinteractioncontroller:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:).json new file mode 100644 index 00000000..2f036cb5 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"convenience"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation","text":"StaticTransitionAnimation"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionAnimation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The StaticTransitionAnimation to be converted."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"Provides a simple interface to convert StaticTransitionAnimations to interactive transition animations."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation"},{"kind":"text","text":")"}],"title":"init(transitionAnimation:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC010transitionD0AcA06StaticcD0C_tcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(transitionAnimation:)":{"role":"symbol","title":"init(transitionAnimation:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"Provides a simple interface to convert StaticTransitionAnimations to interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:)"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:).json new file mode 100644 index 00000000..1002ef03 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"convenience"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation","text":"StaticTransitionAnimation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" () -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP","text":"PercentDrivenInteractionController"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionAnimation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The StaticTransitionAnimation to be converted."}]}]},{"name":"generateInteractionController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The closure to generate an interaction controller when needed,"},{"type":"text","text":" "},{"type":"text","text":"usually at the beginning of a transition."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:generateinteractioncontroller:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:generateInteractionController:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:generateInteractionController:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"Provides a simple interface to convert StaticTransitionAnimations to interactive transition animations."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"title":"init(transitionAnimation:generateInteractionController:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC010transitionD029generateInteractionControllerAcA06StaticcD0C_AA013PercentDrivengH0_pSgyctcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/init(transitionAnimation:generateInteractionController:)":{"role":"symbol","title":"init(transitionAnimation:generateInteractionController:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionAnimation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"StaticTransitionAnimation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Convenience initializer for "},{"type":"codeVoice","code":"init(duration:transition:generateInteractionController:)"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"Provides a simple interface to convert StaticTransitionAnimations to interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/init(transitionAnimation:generateInteractionController:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:generateinteractioncontroller:)"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller.json new file mode 100644 index 00000000..d9d29af4 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP","text":"PercentDrivenInteractionController"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The interaction controller is reset when calling "},{"type":"codeVoice","code":"TransitionAnimation.start()"},{"type":"text","text":" can always be "},{"type":"codeVoice","code":"nil"},{"type":"text","text":","},{"type":"text","text":" "},{"type":"text","text":"e.g. in static transition animations."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Until "},{"type":"codeVoice","code":"TransitionAnimation.cleanup()"},{"type":"text","text":" is called, it should always return the same instance."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/interactioncontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/interactionController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"title":"interactionController","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC21interactionControllerAA024PercentDrivenInteractionF0_pSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/interactionController":{"role":"symbol","title":"interactionController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/interactionController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/interactioncontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/start().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/start().json new file mode 100644 index 00000000..49327d5e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/start().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/start()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/start()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Starts the transition animation by generating an interaction controller."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"title":"start()","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator30InteractiveTransitionAnimationC5startyyF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/start()":{"role":"symbol","title":"start()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Starts the transition animation by generating an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/start()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/start()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:).json new file mode 100644 index 00000000..5e11d1f3 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitionContext"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionContext","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context of the transition."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transition duration as specified in the initializer."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interactivetransitionanimation\/transitionduration(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/transitionDuration(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"title":"transitionDuration(using:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)InteractiveTransitionAnimation(im)transitionDuration:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation/transitionDuration(using:)":{"role":"symbol","title":"transitionDuration(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation\/transitionDuration(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interactivetransitionanimation\/transitionduration(using:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation.json new file mode 100644 index 00000000..9a7a78a1 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interruptibletransitionanimation"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/s7CVarArgP","doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP","doc:\/\/XCoordinator\/s23CustomStringConvertibleP","doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"kind":"symbol","metadata":{"navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"role":"symbol","title":"InterruptibleTransitionAnimation","roleHeading":"Class","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"symbolKind":"class","externalID":"c:@M@XCoordinator@objc(cs)InterruptibleTransitionAnimation","modules":[{"name":"XCoordinator"}],"platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"10.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"10.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:generateInteractionController:)"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/animateTransition(using:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/generateInterruptibleAnimator(using:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/interruptibleAnimator(using:)"]}],"references":{"doc://XCoordinator/objc(pl)UIViewControllerAnimatedTransitioning":{"type":"unresolvable","title":"UIKit.UIViewControllerAnimatedTransitioning","identifier":"doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/generateInterruptibleAnimator(using:)":{"role":"symbol","title":"generateInterruptibleAnimator(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInterruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"abstract":[{"type":"text","text":"Generates an interruptible animator based on the transitionContext."},{"type":"text","text":" "},{"type":"text","text":"It further adds a completion block to the animator to ensure it is deallocated once"},{"type":"text","text":" "},{"type":"text","text":"the transition is finished."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/generateInterruptibleAnimator(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/generateinterruptibleanimator(using:)"},"doc://XCoordinator/s7CVarArgP":{"type":"unresolvable","title":"Swift.CVarArg","identifier":"doc:\/\/XCoordinator\/s7CVarArgP"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"doc://XCoordinator/s28CustomDebugStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomDebugStringConvertible","identifier":"doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/init(duration:generateAnimator:generateInteractionController:)":{"role":"symbol","title":"init(duration:generateAnimator:generateInteractionController:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates an interruptible transition animation based on duration, an animator generator closure"},{"type":"text","text":" "},{"type":"text","text":"and an interaction controller generator closure."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:generateInteractionController:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:generateinteractioncontroller:)"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/animateTransition(using:)":{"role":"symbol","title":"animateTransition(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/animateTransition(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/animatetransition(using:)"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/init(duration:generateAnimator:)":{"role":"symbol","title":"init(duration:generateAnimator:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates an interruptible transition animation based on duration and an animator generator closure."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:)"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/s23CustomStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomStringConvertible","identifier":"doc:\/\/XCoordinator\/s23CustomStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/interruptibleAnimator(using:)":{"role":"symbol","title":"interruptibleAnimator(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/interruptibleAnimator(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/interruptibleanimator(using:)"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:).json new file mode 100644 index 00000000..b4a430cd --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"override"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitionContext"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionContext","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the transition is performed."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method simply calls "},{"type":"codeVoice","code":"startAnimation()"},{"type":"text","text":" on the interruptible animator."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interruptibletransitionanimation\/animatetransition(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/animateTransition(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"role":"symbol","title":"animateTransition(using:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)InterruptibleTransitionAnimation(im)animateTransition:","modules":[{"name":"XCoordinator"}],"platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"10.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"10.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/animateTransition(using:)":{"role":"symbol","title":"animateTransition(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/animateTransition(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/animatetransition(using:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:).json new file mode 100644 index 00000000..37c304f2 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInterruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitionContext"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionContext","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the transition is performed."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This code is called once per transition to generate the interruptible animator"},{"type":"text","text":" "},{"type":"text","text":"which is reused in subsequent calls of "},{"type":"codeVoice","code":"interruptibeAnimator(using:)"},{"type":"text","text":"."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interruptibletransitionanimation\/generateinterruptibleanimator(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/generateInterruptibleAnimator(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Generates an interruptible animator based on the transitionContext."},{"type":"text","text":" "},{"type":"text","text":"It further adds a completion block to the animator to ensure it is deallocated once"},{"type":"text","text":" "},{"type":"text","text":"the transition is finished."}],"kind":"symbol","metadata":{"role":"symbol","title":"generateInterruptibleAnimator(using:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInterruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"symbolKind":"method","externalID":"s:12XCoordinator32InterruptibleTransitionAnimationC08generateB8Animator5usingSo25UIViewImplicitlyAnimating_pSo0H30ControllerContextTransitioning_p_tF","modules":[{"name":"XCoordinator"}],"platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"10.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"10.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/generateInterruptibleAnimator(using:)":{"role":"symbol","title":"generateInterruptibleAnimator(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"generateInterruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"abstract":[{"type":"text","text":"Generates an interruptible animator based on the transitionContext."},{"type":"text","text":" "},{"type":"text","text":"It further adds a completion block to the animator to ensure it is deallocated once"},{"type":"text","text":" "},{"type":"text","text":"the transition is finished."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/generateInterruptibleAnimator(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/generateinterruptibleanimator(using:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:).json new file mode 100644 index 00000000..8fd47eaa --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"convenience"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"duration","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The total duration of the animation."}]}]},{"name":"generateAnimator","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"A generator closure to create a "},{"type":"codeVoice","code":"UIViewPropertyAnimator"},{"type":"text","text":" dynamically."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"A "},{"type":"codeVoice","code":"UIPercentDrivenInteractiveTransition"},{"type":"text","text":" is used as interaction controller."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates an interruptible transition animation based on duration and an animator generator closure."}],"kind":"symbol","metadata":{"role":"symbol","title":"init(duration:generateAnimator:)","roleHeading":"Initializer","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":")"}],"symbolKind":"init","externalID":"s:12XCoordinator32InterruptibleTransitionAnimationC8duration16generateAnimatorACSd_So25UIViewImplicitlyAnimating_pSo0H30ControllerContextTransitioning_pctcfc","modules":[{"name":"XCoordinator"}],"platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"10.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"10.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/init(duration:generateAnimator:)":{"role":"symbol","title":"init(duration:generateAnimator:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates an interruptible transition animation based on duration and an animator generator closure."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:)"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:).json new file mode 100644 index 00000000..48eedca0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" () -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP","text":"PercentDrivenInteractionController"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"duration","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The total duration of the animation."}]}]},{"name":"generateAnimator","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"A generator closure to create a "},{"type":"codeVoice","code":"UIViewPropertyAnimator"},{"type":"text","text":" dynamically."}]}]},{"name":"generateInteractionController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"A generator closure to create an interaction controller which handles animation progress changes."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:generateinteractioncontroller:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:generateInteractionController:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates an interruptible transition animation based on duration, an animator generator closure"},{"type":"text","text":" "},{"type":"text","text":"and an interaction controller generator closure."}],"kind":"symbol","metadata":{"role":"symbol","title":"init(duration:generateAnimator:generateInteractionController:)","roleHeading":"Initializer","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"symbolKind":"init","externalID":"s:12XCoordinator32InterruptibleTransitionAnimationC8duration16generateAnimator0F21InteractionControllerACSd_So25UIViewImplicitlyAnimating_pSo0jI20ContextTransitioning_pcAA013PercentDrivenhI0_pSgyctcfc","modules":[{"name":"XCoordinator"}],"platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"10.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"10.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/init(duration:generateAnimator:generateInteractionController:)":{"role":"symbol","title":"init(duration:generateAnimator:generateInteractionController:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateAnimator"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"},{"kind":"text","text":", "},{"kind":"externalParam","text":"generateInteractionController"},{"kind":"text","text":": () -> "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates an interruptible transition animation based on duration, an animator generator closure"},{"type":"text","text":" "},{"type":"text","text":"and an interaction controller generator closure."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/init(duration:generateAnimator:generateInteractionController:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:generateinteractioncontroller:)"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:).json new file mode 100644 index 00000000..7adb1c18 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitionContext"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionContext","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the transition is performed."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method returns an already generated interruptible animator, if present."},{"type":"text","text":" "},{"type":"text","text":"Otherwise it generates a new one using "},{"type":"codeVoice","code":"generateInterruptibleAnimator(using:)"},{"type":"text","text":"."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/interruptibletransitionanimation\/interruptibleanimator(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/interruptibleAnimator(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"role":"symbol","title":"interruptibleAnimator(using:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)InterruptibleTransitionAnimation(im)interruptibleAnimatorForTransition:","modules":[{"name":"XCoordinator"}],"platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"10.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"10.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation/interruptibleAnimator(using:)":{"role":"symbol","title":"interruptibleAnimator(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"interruptibleAnimator"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewImplicitlyAnimating","preciseIdentifier":"c:objc(pl)UIViewImplicitlyAnimating"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation\/interruptibleAnimator(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/interruptibleanimator(using:)"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate.json new file mode 100644 index 00000000..06f72bc2 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"NavigationAnimationDelegate conforms to the "},{"type":"codeVoice","code":"UINavigationControllerDelegate"},{"type":"text","text":" protocol"},{"type":"text","text":" "},{"type":"text","text":"and is intended for use as the delegate of one navigation controller only."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(cs)NSObject"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/s7CVarArgP","doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP","doc:\/\/XCoordinator\/s23CustomStringConvertibleP","doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH","doc:\/\/XCoordinator\/objc(pl)UIGestureRecognizerDelegate","doc:\/\/XCoordinator\/objc(pl)UINavigationControllerDelegate"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"title":"NavigationAnimationDelegate","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"c:@M@XCoordinator@objc(cs)NavigationAnimationDelegate","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/transitionProgressThreshold","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/velocityThreshold"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/handleInteractivePopGestureRecognizer(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/setupPopGestureRecognizer(for:)"]},{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UIGestureRecognizerDelegate-Implementations","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations"],"generated":true}],"references":{"doc://XCoordinator/objc(pl)UIGestureRecognizerDelegate":{"type":"unresolvable","title":"UIKit.UIGestureRecognizerDelegate","identifier":"doc:\/\/XCoordinator\/objc(pl)UIGestureRecognizerDelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/setupPopGestureRecognizer(for:)":{"role":"symbol","title":"setupPopGestureRecognizer(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setupPopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method sets up the "},{"type":"codeVoice","code":"interactivePopGestureRecognizer"},{"type":"text","text":" of the navigation controller"},{"type":"text","text":" "},{"type":"text","text":"to allow for custom interactive pop animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/setupPopGestureRecognizer(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/setuppopgesturerecognizer(for:)"},"doc://XCoordinator/s7CVarArgP":{"type":"unresolvable","title":"Swift.CVarArg","identifier":"doc:\/\/XCoordinator\/s7CVarArgP"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"doc://XCoordinator/objc(pl)UINavigationControllerDelegate":{"type":"unresolvable","title":"UIKit.UINavigationControllerDelegate","identifier":"doc:\/\/XCoordinator\/objc(pl)UINavigationControllerDelegate"},"doc://XCoordinator/objc(cs)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObject","identifier":"doc:\/\/XCoordinator\/objc(cs)NSObject"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/handleInteractivePopGestureRecognizer(_:)":{"role":"symbol","title":"handleInteractivePopGestureRecognizer(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"handleInteractivePopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method handles changes of the navigation controller’s "},{"type":"codeVoice","code":"interactivePopGestureRecognizer"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/handleInteractivePopGestureRecognizer(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/handleinteractivepopgesturerecognizer(_:)"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/transitionProgressThreshold":{"role":"symbol","title":"transitionProgressThreshold","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionProgressThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"}],"abstract":[{"type":"text","text":"The transition progress threshold for the interactive pop transition to succeed"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/transitionProgressThreshold","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/transitionprogressthreshold"},"doc://XCoordinator/s23CustomStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomStringConvertible","identifier":"doc:\/\/XCoordinator\/s23CustomStringConvertibleP"},"doc://XCoordinator/s28CustomDebugStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomDebugStringConvertible","identifier":"doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/UIGestureRecognizerDelegate-Implementations":{"role":"collectionGroup","title":"UIGestureRecognizerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UIGestureRecognizerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uigesturerecognizerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/UINavigationControllerDelegate-Implementations":{"role":"collectionGroup","title":"UINavigationControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uinavigationcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/velocityThreshold":{"role":"symbol","title":"velocityThreshold","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"velocityThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"}],"abstract":[{"type":"text","text":"The velocity threshold needed for the interactive pop transition to succeed"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/velocityThreshold","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/velocitythreshold"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:).json new file mode 100644 index 00000000..a7cc91a1 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"gestureRecognizerShouldBegin"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"gestureRecognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"gestureRecognizer","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The gesture recognizer this class is the delegate of."},{"type":"text","text":" "},{"type":"text","text":"This class is used as the delegate for the interactivePopGestureRecognizer of"},{"type":"text","text":" "},{"type":"text","text":"the navigationController."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"This method returns true, if and only if"}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/gesturerecognizershouldbegin(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/gestureRecognizerShouldBegin(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIGestureRecognizerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"gestureRecognizerShouldBegin(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"gestureRecognizerShouldBegin"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)gestureRecognizerShouldBegin:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UIGestureRecognizerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/gestureRecognizerShouldBegin(_:)":{"role":"symbol","title":"gestureRecognizerShouldBegin(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"gestureRecognizerShouldBegin"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIGestureRecognizerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/gestureRecognizerShouldBegin(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/gesturerecognizershouldbegin(_:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/UIGestureRecognizerDelegate-Implementations":{"role":"collectionGroup","title":"UIGestureRecognizerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UIGestureRecognizerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uigesturerecognizerdelegate-implementations"},"https://developer.apple.com/documentation/uikit/UIGestureRecognizerDelegate":{"title":"UIGestureRecognizerDelegate documentation","titleInlineContent":[{"type":"text","text":"UIGestureRecognizerDelegate documentation"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIGestureRecognizerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIGestureRecognizerDelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:).json new file mode 100644 index 00000000..5186480a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@objc"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"handleInteractivePopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"gestureRecognizer"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"gestureRecognizer","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The interactivePopGestureRecognizer of the "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method performs the top-most dismissalAnimation and informs its interaction controller about changes"},{"type":"text","text":" "},{"type":"text","text":"of the interactivePopGestureRecognizer’s state."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/handleinteractivepopgesturerecognizer(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/handleInteractivePopGestureRecognizer(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method handles changes of the navigation controller’s "},{"type":"codeVoice","code":"interactivePopGestureRecognizer"},{"type":"text","text":"."}],"kind":"symbol","metadata":{"role":"symbol","title":"handleInteractivePopGestureRecognizer(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"handleInteractivePopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)handleInteractivePopGestureRecognizer:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/handleInteractivePopGestureRecognizer(_:)":{"role":"symbol","title":"handleInteractivePopGestureRecognizer(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"handleInteractivePopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method handles changes of the navigation controller’s "},{"type":"codeVoice","code":"interactivePopGestureRecognizer"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/handleInteractivePopGestureRecognizer(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/handleinteractivepopgesturerecognizer(_:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:).json new file mode 100644 index 00000000..ffd5aef8 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"navigationController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerFor"},{"kind":"text","text":" "},{"kind":"internalParam","text":"operation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Operation","preciseIdentifier":"c:@E@UINavigationControllerOperation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"from"},{"kind":"text","text":" "},{"kind":"internalParam","text":"fromVC"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":" "},{"kind":"internalParam","text":"toVC"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"navigationController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"operation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The operation being executed. Possible values are push, pop or none."}]}]},{"name":"fromVC","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The source view controller of the transition."}]}]},{"name":"toVC","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The destination view controller of the transition."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The destination view controller’s animationController depending on its "},{"type":"codeVoice","code":"transitioningDelegate"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"In the case of a "},{"type":"codeVoice","code":"push"},{"type":"text","text":" operation, it returns the toVC’s presentation animation."},{"type":"text","text":" "},{"type":"text","text":"For "},{"type":"codeVoice","code":"pop"},{"type":"text","text":" it is the fromVC’s dismissal animation. If there is no transitioningDelegate or the operation "},{"type":"codeVoice","code":"none"},{"type":"text","text":"\u001c is used,"},{"type":"text","text":" "},{"type":"text","text":"it uses the NavigationCoordinator’s delegate as fallback."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:animationcontrollerfor:from:to:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:animationControllerFor:from:to:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"navigationController(_:animationControllerFor:from:to:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Operation","preciseIdentifier":"c:@E@UINavigationControllerOperation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:animationControllerForOperation:fromViewController:toViewController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:animationControllerFor:from:to:)":{"role":"symbol","title":"navigationController(_:animationControllerFor:from:to:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Operation","preciseIdentifier":"c:@E@UINavigationControllerOperation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:animationControllerFor:from:to:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:animationcontrollerfor:from:to:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/UINavigationControllerDelegate-Implementations":{"role":"collectionGroup","title":"UINavigationControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uinavigationcontrollerdelegate-implementations"},"https://developer.apple.com/documentation/uikit/uinavigationcontrollerdelegate":{"title":"UINavigationControllerDelegate documentation","titleInlineContent":[{"type":"text","text":"UINavigationControllerDelegate documentation"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:).json new file mode 100644 index 00000000..c5497750 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"navigationController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didShow"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"navigationController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"operation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The operation being executed. Possible values are push, pop or none."}]}]},{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The target view controller."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:didshow:animated:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:didShow:animated:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"navigationController(_:didShow:animated:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didShow"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:didShowViewController:animated:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"https://developer.apple.com/documentation/uikit/uinavigationcontrollerdelegate":{"title":"UINavigationControllerDelegate documentation","titleInlineContent":[{"type":"text","text":"UINavigationControllerDelegate documentation"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:didShow:animated:)":{"role":"symbol","title":"navigationController(_:didShow:animated:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didShow"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:didShow:animated:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:didshow:animated:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/UINavigationControllerDelegate-Implementations":{"role":"collectionGroup","title":"UINavigationControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uinavigationcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:).json new file mode 100644 index 00000000..7c1c1bf8 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"navigationController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":" "},{"kind":"internalParam","text":"animationController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"navigationController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"animationController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The animationController to return the interactionController for."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If the animationController is a "},{"type":"codeVoice","code":"TransitionAnimation"},{"type":"text","text":", it returns its interactionController."},{"type":"text","text":" "},{"type":"text","text":"Otherwise it requests an interactionController from the NavigationCoordinator’s delegate."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:interactioncontrollerfor:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:interactionControllerFor:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"navigationController(_:interactionControllerFor:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:interactionControllerForAnimationController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/UINavigationControllerDelegate-Implementations":{"role":"collectionGroup","title":"UINavigationControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uinavigationcontrollerdelegate-implementations"},"https://developer.apple.com/documentation/uikit/uinavigationcontrollerdelegate":{"title":"UINavigationControllerDelegate documentation","titleInlineContent":[{"type":"text","text":"UINavigationControllerDelegate documentation"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:interactionControllerFor:)":{"role":"symbol","title":"navigationController(_:interactionControllerFor:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:interactionControllerFor:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:interactioncontrollerfor:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:).json new file mode 100644 index 00000000..8c8867f0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"navigationController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willShow"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"navigationController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"operation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The operation being executed. Possible values are push, pop or none."}]}]},{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The view controller to be shown."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:willshow:animated:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:willShow:animated:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"navigationController(_:willShow:animated:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willShow"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:willShowViewController:animated:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/UINavigationControllerDelegate-Implementations":{"role":"collectionGroup","title":"UINavigationControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uinavigationcontrollerdelegate-implementations"},"https://developer.apple.com/documentation/uikit/uinavigationcontrollerdelegate":{"title":"UINavigationControllerDelegate documentation","titleInlineContent":[{"type":"text","text":"UINavigationControllerDelegate documentation"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:willShow:animated:)":{"role":"symbol","title":"navigationController(_:willShow:animated:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willShow"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:willShow:animated:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:willshow:animated:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:).json new file mode 100644 index 00000000..5ce23c7c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setupPopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"navigationController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"navigationController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The navigation controller to be set up."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method overrides the delegate of the "},{"type":"codeVoice","code":"interactivePopGestureRecognizer"},{"type":"text","text":" to "},{"type":"codeVoice","code":"self"},{"type":"text","text":","},{"type":"text","text":" "},{"type":"text","text":"but keeps a reference to the original delegate to enable the default pop animations."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/setuppopgesturerecognizer(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/setupPopGestureRecognizer(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method sets up the "},{"type":"codeVoice","code":"interactivePopGestureRecognizer"},{"type":"text","text":" of the navigation controller"},{"type":"text","text":" "},{"type":"text","text":"to allow for custom interactive pop animations."}],"kind":"symbol","metadata":{"role":"symbol","title":"setupPopGestureRecognizer(for:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setupPopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator27NavigationAnimationDelegateC25setupPopGestureRecognizer3forySo22UINavigationControllerC_tF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/setupPopGestureRecognizer(for:)":{"role":"symbol","title":"setupPopGestureRecognizer(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setupPopGestureRecognizer"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method sets up the "},{"type":"codeVoice","code":"interactivePopGestureRecognizer"},{"type":"text","text":" of the navigation controller"},{"type":"text","text":" "},{"type":"text","text":"to allow for custom interactive pop animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/setupPopGestureRecognizer(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/setuppopgesturerecognizer(for:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold.json new file mode 100644 index 00000000..f54aa3f3 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionProgressThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/transitionprogressthreshold"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/transitionProgressThreshold","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The transition progress threshold for the interactive pop transition to succeed"}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionProgressThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"}],"title":"transitionProgressThreshold","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator27NavigationAnimationDelegateC27transitionProgressThreshold14CoreFoundation7CGFloatVvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/transitionProgressThreshold":{"role":"symbol","title":"transitionProgressThreshold","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionProgressThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"}],"abstract":[{"type":"text","text":"The transition progress threshold for the interactive pop transition to succeed"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/transitionProgressThreshold","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/transitionprogressthreshold"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations.json new file mode 100644 index 00000000..89e1313e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/uigesturerecognizerdelegate-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UIGestureRecognizerDelegate-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/gestureRecognizerShouldBegin(_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"UIGestureRecognizerDelegate Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/gestureRecognizerShouldBegin(_:)":{"role":"symbol","title":"gestureRecognizerShouldBegin(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"gestureRecognizerShouldBegin"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIGestureRecognizer","preciseIdentifier":"c:objc(cs)UIGestureRecognizer"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIGestureRecognizerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/gestureRecognizerShouldBegin(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/gesturerecognizershouldbegin(_:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"https://developer.apple.com/documentation/uikit/UIGestureRecognizerDelegate":{"title":"UIGestureRecognizerDelegate documentation","titleInlineContent":[{"type":"text","text":"UIGestureRecognizerDelegate documentation"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIGestureRecognizerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIGestureRecognizerDelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations.json new file mode 100644 index 00000000..5681aec5 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/uinavigationcontrollerdelegate-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/UINavigationControllerDelegate-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:animationControllerFor:from:to:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:didShow:animated:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:interactionControllerFor:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:willShow:animated:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"UINavigationControllerDelegate Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:interactionControllerFor:)":{"role":"symbol","title":"navigationController(_:interactionControllerFor:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:interactionControllerFor:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:interactioncontrollerfor:)"},"https://developer.apple.com/documentation/uikit/uinavigationcontrollerdelegate":{"title":"UINavigationControllerDelegate documentation","titleInlineContent":[{"type":"text","text":"UINavigationControllerDelegate documentation"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:willShow:animated:)":{"role":"symbol","title":"navigationController(_:willShow:animated:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willShow"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:willShow:animated:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:willshow:animated:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:didShow:animated:)":{"role":"symbol","title":"navigationController(_:didShow:animated:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didShow"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:didShow:animated:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:didshow:animated:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/navigationController(_:animationControllerFor:from:to:)":{"role":"symbol","title":"navigationController(_:animationControllerFor:from:to:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"navigationController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Operation","preciseIdentifier":"c:@E@UINavigationControllerOperation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/uinavigationcontrollerdelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/navigationController(_:animationControllerFor:from:to:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:animationcontrollerfor:from:to:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold.json new file mode 100644 index 00000000..1b85aedf --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"velocityThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationanimationdelegate\/velocitythreshold"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/velocityThreshold","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The velocity threshold needed for the interactive pop transition to succeed"}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"velocityThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"}],"title":"velocityThreshold","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator27NavigationAnimationDelegateC17velocityThreshold14CoreFoundation7CGFloatVvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate/velocityThreshold":{"role":"symbol","title":"velocityThreshold","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"velocityThreshold"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"}],"abstract":[{"type":"text","text":"The velocity threshold needed for the interactive pop transition to succeed"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate\/velocityThreshold","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationanimationdelegate\/velocitythreshold"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator.json new file mode 100644 index 00000000..c7b4167a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"NavigationCoordinator especially ensures that transition animations are called,"},{"type":"text","text":" "},{"type":"text","text":"which would not be the case when creating a "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":"."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"title":"NavigationCoordinator","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator21NavigationCoordinatorC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:initialRoute:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:root:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/animationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/delegate"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/animationDelegate":{"role":"symbol","title":"animationDelegate","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationDelegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"NavigationAnimationDelegate","preciseIdentifier":"c:@M@XCoordinator@objc(cs)NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"The animation delegate controlling the rootViewController’s transition animations."},{"type":"text","text":" "},{"type":"text","text":"This animation delegate is set to be the rootViewController’s rootViewController, if you did not set one earlier."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/animationDelegate","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/animationdelegate"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator21NavigationCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates a NavigationCoordinator and optionally triggers an initial route."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/init(rootViewController:root:)":{"role":"symbol","title":"init(rootViewController:root:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"root"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a NavigationCoordinator and pushes a presentable onto the navigation stack right away."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:root:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:root:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/delegate":{"role":"symbol","title":"delegate","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationControllerDelegate","preciseIdentifier":"c:objc(pl)UINavigationControllerDelegate"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"This represents a fallback-delegate to be notified about navigation controller events."},{"type":"text","text":" "},{"type":"text","text":"It is further used to call animation methods when no animation has been specified in the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/delegate","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/delegate"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/animationdelegate.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/animationdelegate.json new file mode 100644 index 00000000..f2cb57a9 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/animationdelegate.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationDelegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","preciseIdentifier":"c:@M@XCoordinator@objc(cs)NavigationAnimationDelegate","text":"NavigationAnimationDelegate"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationcoordinator\/animationdelegate"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/animationDelegate","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The animation delegate controlling the rootViewController’s transition animations."},{"type":"text","text":" "},{"type":"text","text":"This animation delegate is set to be the rootViewController’s rootViewController, if you did not set one earlier."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationDelegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"NavigationAnimationDelegate","preciseIdentifier":"c:@M@XCoordinator@objc(cs)NavigationAnimationDelegate"}],"title":"animationDelegate","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator21NavigationCoordinatorC17animationDelegateAA0b9AnimationE0Cvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/animationDelegate":{"role":"symbol","title":"animationDelegate","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animationDelegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"NavigationAnimationDelegate","preciseIdentifier":"c:@M@XCoordinator@objc(cs)NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"The animation delegate controlling the rootViewController’s transition animations."},{"type":"text","text":" "},{"type":"text","text":"This animation delegate is set to be the rootViewController’s rootViewController, if you did not set one earlier."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/animationDelegate","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/animationdelegate"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationAnimationDelegate":{"role":"symbol","title":"NavigationAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationAnimationDelegate"}],"abstract":[{"type":"text","text":"NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for push-transitions to specify animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/navigationanimationdelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/delegate.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/delegate.json new file mode 100644 index 00000000..81cc5230 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/delegate.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationControllerDelegate","preciseIdentifier":"c:objc(pl)UINavigationControllerDelegate"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" "},{"kind":"keyword","text":"set"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationcoordinator\/delegate"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/delegate","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This represents a fallback-delegate to be notified about navigation controller events."},{"type":"text","text":" "},{"type":"text","text":"It is further used to call animation methods when no animation has been specified in the transition."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationControllerDelegate","preciseIdentifier":"c:objc(pl)UINavigationControllerDelegate"},{"kind":"text","text":"?"}],"title":"delegate","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator21NavigationCoordinatorC8delegateSo30UINavigationControllerDelegate_pSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/delegate":{"role":"symbol","title":"delegate","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UINavigationControllerDelegate","preciseIdentifier":"c:objc(pl)UINavigationControllerDelegate"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"This represents a fallback-delegate to be notified about navigation controller events."},{"type":"text","text":" "},{"type":"text","text":"It is further used to call animation methods when no animation has been specified in the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/delegate","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/delegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:).json new file mode 100644 index 00000000..2b82d246 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"override"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator21NavigationCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"initialRoute","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The route to be triggered."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:initialroute:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:initialRoute:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a NavigationCoordinator and optionally triggers an initial route."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator21NavigationCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"title":"init(rootViewController:initialRoute:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator21NavigationCoordinatorC18rootViewController12initialRouteACyxGSo012UINavigationF0C_xSgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator21NavigationCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates a NavigationCoordinator and optionally triggers an initial route."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:).json new file mode 100644 index 00000000..f905ecad --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"root"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"root","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be pushed."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:root:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:root:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a NavigationCoordinator and pushes a presentable onto the navigation stack right away."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"root"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"title":"init(rootViewController:root:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator21NavigationCoordinatorC18rootViewController0D0ACyxGSo012UINavigationF0C_AA11Presentable_ptcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator/init(rootViewController:root:)":{"role":"symbol","title":"init(rootViewController:root:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"root"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a NavigationCoordinator and pushes a presentable onto the navigation stack right away."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator\/init(rootViewController:root:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:root:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationtransition.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationtransition.json new file mode 100644 index 00000000..a9390b54 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationtransition.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationTransition"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"UINavigationController","preciseIdentifier":"c:objc(cs)UINavigationController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/navigationtransition"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationTransition","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"NavigationTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" as rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationTransition"}],"title":"NavigationTransition","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator20NavigationTransitiona","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"NavigationTransition"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/NavigationTransition":{"role":"symbol","title":"NavigationTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationTransition"}],"abstract":[{"type":"text","text":"NavigationTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationTransition"}],"url":"\/documentation\/xcoordinator\/navigationtransition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator.json new file mode 100644 index 00000000..236a3ed9 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"title":"PageCoordinator","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator15PageCoordinatorC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:dataSource:set:_:direction:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:pages:loop:set:_:direction:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/dataSource"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)":{"role":"symbol","title":"init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionStyle"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionStyle","preciseIdentifier":"c:@E@UIPageViewControllerTransitionStyle"},{"kind":"text","text":", "},{"kind":"externalParam","text":"navigationOrientation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationOrientation","preciseIdentifier":"c:@E@UIPageViewControllerNavigationOrientation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"isDoubleSided"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"spineLocation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"SpineLocation","preciseIdentifier":"c:@E@UIPageViewControllerSpineLocation"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"interPageSpacing"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/init(rootViewController:pages:loop:set:_:direction:)":{"role":"symbol","title":"init(rootViewController:pages:loop:set:_:direction:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a PageCoordinator with several sequential (potentially looping) pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:pages:loop:set:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:pages:loop:set:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/dataSource":{"role":"symbol","title":"dataSource","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"}],"abstract":[{"type":"text","text":"The dataSource of the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/dataSource","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/datasource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/init(rootViewController:dataSource:set:_:direction:)":{"role":"symbol","title":"init(rootViewController:dataSource:set:_:direction:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a PageCoordinator with a custom dataSource."},{"type":"text","text":" "},{"type":"text","text":"It further sets the currently shown page and a direction for the animation of displaying it."},{"type":"text","text":" "},{"type":"text","text":"If you need custom configuration of the rootViewController, modify the "},{"type":"codeVoice","code":"configuration"},{"type":"text","text":" parameter,"},{"type":"text","text":" "},{"type":"text","text":"since you cannot change this after the initialization."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:dataSource:set:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:datasource:set:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/datasource.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/datasource.json new file mode 100644 index 00000000..689ed601 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/datasource.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Feel free to change the pages at runtime. To reflect the changes in the rootViewController, perform a "},{"type":"codeVoice","code":"set"},{"type":"text","text":" transition as well."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinator\/datasource"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/dataSource","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The dataSource of the rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"}],"title":"dataSource","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator15PageCoordinatorC10dataSourceSo024UIPageViewControllerDataE0_pvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/dataSource":{"role":"symbol","title":"dataSource","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"}],"abstract":[{"type":"text","text":"The dataSource of the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/dataSource","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/datasource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:).json new file mode 100644 index 00000000..6fb92b81 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":" "},{"kind":"internalParam","text":"firstPage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"secondPage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"dataSource","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The dataSource of the PageCoordinator."}]}]},{"name":"set","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be shown right from the start."},{"type":"text","text":" "},{"type":"text","text":"This should be one of the elements of the specified pages."},{"type":"text","text":" "},{"type":"text","text":"If not specified, no "},{"type":"codeVoice","code":"set"},{"type":"text","text":" transition is triggered, which results in the first page being shown."}]}]},{"name":"direction","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The direction in which the transition to set the specified first page (parameter "},{"type":"codeVoice","code":"set"},{"type":"text","text":") should be animated in."},{"type":"text","text":" "},{"type":"text","text":"If you specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" for "},{"type":"codeVoice","code":"set"},{"type":"text","text":", this parameter is ignored."}]}]},{"name":"configuration","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The configuration of the rootViewController. You cannot change this configuration later anymore (Limitation of UIKit)."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:datasource:set:_:direction:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:dataSource:set:_:direction:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a PageCoordinator with a custom dataSource."},{"type":"text","text":" "},{"type":"text","text":"It further sets the currently shown page and a direction for the animation of displaying it."},{"type":"text","text":" "},{"type":"text","text":"If you need custom configuration of the rootViewController, modify the "},{"type":"codeVoice","code":"configuration"},{"type":"text","text":" parameter,"},{"type":"text","text":" "},{"type":"text","text":"since you cannot change this after the initialization."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"title":"init(rootViewController:dataSource:set:_:direction:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator15PageCoordinatorC18rootViewController10dataSource3set_9directionACyxGSo06UIPageeF0C_So0kef4DataH0_pAA11Presentable_pAaL_pSgSo0keF19NavigationDirectionVtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/init(rootViewController:dataSource:set:_:direction:)":{"role":"symbol","title":"init(rootViewController:dataSource:set:_:direction:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"dataSource"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewControllerDataSource","preciseIdentifier":"c:objc(pl)UIPageViewControllerDataSource"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a PageCoordinator with a custom dataSource."},{"type":"text","text":" "},{"type":"text","text":"It further sets the currently shown page and a direction for the animation of displaying it."},{"type":"text","text":" "},{"type":"text","text":"If you need custom configuration of the rootViewController, modify the "},{"type":"codeVoice","code":"configuration"},{"type":"text","text":" parameter,"},{"type":"text","text":" "},{"type":"text","text":"since you cannot change this after the initialization."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:dataSource:set:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:datasource:set:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:).json new file mode 100644 index 00000000..b2da0f34 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":" = false, "},{"kind":"externalParam","text":"set"},{"kind":"text","text":" "},{"kind":"internalParam","text":"firstPage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"secondPage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":" = .forward)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"pages","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The pages of the PageCoordinator."},{"type":"text","text":" "},{"type":"text","text":"These can be changed later, if necessary, using the "},{"type":"codeVoice","code":"PageCoordinator.dataSource"},{"type":"text","text":" property."}]}]},{"name":"loop","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Whether or not the PageCoordinator should loop when hitting the end or the beginning of the specified pages."}]}]},{"name":"set","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be shown right from the start."},{"type":"text","text":" "},{"type":"text","text":"This should be one of the elements of the specified pages."},{"type":"text","text":" "},{"type":"text","text":"If not specified, no "},{"type":"codeVoice","code":"set"},{"type":"text","text":" transition is triggered, which results in the first page being shown."}]}]},{"name":"direction","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The direction in which the transition to set the specified first page (parameter "},{"type":"codeVoice","code":"set"},{"type":"text","text":") should be animated in."},{"type":"text","text":" "},{"type":"text","text":"If you specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" for "},{"type":"codeVoice","code":"set"},{"type":"text","text":", this parameter is ignored."}]}]},{"name":"configuration","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The configuration of the rootViewController. You cannot change this configuration later anymore (Limitation of UIKit)."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"It further sets the current page of the rootViewController animated in the specified direction."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:pages:loop:set:_:direction:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:pages:loop:set:_:direction:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a PageCoordinator with several sequential (potentially looping) pages."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"title":"init(rootViewController:pages:loop:set:_:direction:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator15PageCoordinatorC18rootViewController5pages4loop3set_9directionACyxGSo06UIPageeF0C_SayAA11Presentable_pGSbAaL_pSgANSo0keF19NavigationDirectionVtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/init(rootViewController:pages:loop:set:_:direction:)":{"role":"symbol","title":"init(rootViewController:pages:loop:set:_:direction:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a PageCoordinator with several sequential (potentially looping) pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(rootViewController:pages:loop:set:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:pages:loop:set:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:).json new file mode 100644 index 00000000..84726d39 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"convenience"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionStyle"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionStyle","preciseIdentifier":"c:@E@UIPageViewControllerTransitionStyle"},{"kind":"text","text":" = .pageCurl, "},{"kind":"externalParam","text":"navigationOrientation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationOrientation","preciseIdentifier":"c:@E@UIPageViewControllerNavigationOrientation"},{"kind":"text","text":" = .horizontal, "},{"kind":"externalParam","text":"isDoubleSided"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":" = false, "},{"kind":"externalParam","text":"spineLocation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"SpineLocation","preciseIdentifier":"c:@E@UIPageViewControllerSpineLocation"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"interPageSpacing"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":" = false, "},{"kind":"externalParam","text":"set"},{"kind":"text","text":" "},{"kind":"internalParam","text":"firstPage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"secondPage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":" = .forward)"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinator\/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionStyle"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionStyle","preciseIdentifier":"c:@E@UIPageViewControllerTransitionStyle"},{"kind":"text","text":", "},{"kind":"externalParam","text":"navigationOrientation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationOrientation","preciseIdentifier":"c:@E@UIPageViewControllerNavigationOrientation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"isDoubleSided"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"spineLocation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"SpineLocation","preciseIdentifier":"c:@E@UIPageViewControllerSpineLocation"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"interPageSpacing"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"title":"init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator15PageCoordinatorC15transitionStyle21navigationOrientation13isDoubleSided13spineLocation05interB7Spacing5pages4loop3set_9directionACyxGSo030UIPageViewControllerTransitionE0V_So0stu10NavigationG0VSbSo0stu5SpineL0VSg14CoreFoundation7CGFloatVSgSayAA11Presentable_pGSbAaY_pSgA_So0stuW9DirectionVtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PageCoordinator/init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)":{"role":"symbol","title":"init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transitionStyle"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TransitionStyle","preciseIdentifier":"c:@E@UIPageViewControllerTransitionStyle"},{"kind":"text","text":", "},{"kind":"externalParam","text":"navigationOrientation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationOrientation","preciseIdentifier":"c:@E@UIPageViewControllerNavigationOrientation"},{"kind":"text","text":", "},{"kind":"externalParam","text":"isDoubleSided"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"spineLocation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"SpineLocation","preciseIdentifier":"c:@E@UIPageViewControllerSpineLocation"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"interPageSpacing"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":", "},{"kind":"externalParam","text":"set"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":")"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator\/init(transitionStyle:navigationOrientation:isDoubleSided:spineLocation:interPageSpacing:pages:loop:set:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinator\/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource.json new file mode 100644 index 00000000..ec14238a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"It further allows looping through the given pages. When looping is active the pages are wrapped around in the given presentables array."},{"type":"text","text":" "},{"type":"text","text":"When the user navigates beyond the end of the specified pages, the pages are wrapped around by displaying the first page."},{"type":"text","text":" "},{"type":"text","text":"In analogy to that, it also wraps to the last page when navigating beyond the beginning."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(cs)NSObject"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/s7CVarArgP","doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP","doc:\/\/XCoordinator\/s23CustomStringConvertibleP","doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH","doc:\/\/XCoordinator\/objc(pl)UIPageViewControllerDataSource"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"title":"PageCoordinatorDataSource","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/init(pages:loop:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/loop","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pages"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerAfter:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerBefore:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationCount(for:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationIndex(for:)"]}],"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/s7CVarArgP":{"type":"unresolvable","title":"Swift.CVarArg","identifier":"doc:\/\/XCoordinator\/s7CVarArgP"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/presentationCount(for:)":{"role":"symbol","title":"presentationCount(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationCount"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationCount(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationcount(for:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"},"doc://XCoordinator/s28CustomDebugStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomDebugStringConvertible","identifier":"doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/init(pages:loop:)":{"role":"symbol","title":"init(pages:loop:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a PageCoordinatorDataSource with the given pages and looping capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/init(pages:loop:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/init(pages:loop:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/pageViewController(_:viewControllerBefore:)":{"role":"symbol","title":"pageViewController(_:viewControllerBefore:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerBefore"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerBefore:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerbefore:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/presentationIndex(for:)":{"role":"symbol","title":"presentationIndex(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationIndex"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationIndex(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationindex(for:)"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"doc://XCoordinator/objc(pl)UIPageViewControllerDataSource":{"type":"unresolvable","title":"UIKit.UIPageViewControllerDataSource","identifier":"doc:\/\/XCoordinator\/objc(pl)UIPageViewControllerDataSource"},"doc://XCoordinator/s23CustomStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomStringConvertible","identifier":"doc:\/\/XCoordinator\/s23CustomStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/loop":{"role":"symbol","title":"loop","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"Whether or not the pages of the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" should be in a loop,"},{"type":"text","text":" "},{"type":"text","text":"i.e. whether a swipe to the left of the last page should result in the first page being shown"},{"type":"text","text":" "},{"type":"text","text":"(or the last shown when swiping right on the first page)"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/loop","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/loop"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/pages":{"role":"symbol","title":"pages","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The pages of the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" in sequential order."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pages","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pages"},"doc://XCoordinator/objc(cs)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObject","identifier":"doc:\/\/XCoordinator\/objc(cs)NSObject"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/pageViewController(_:viewControllerAfter:)":{"role":"symbol","title":"pageViewController(_:viewControllerAfter:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerAfter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerAfter:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerafter:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:).json new file mode 100644 index 00000000..aaee3031 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"pages","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The pages to be shown in the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":"."}]}]},{"name":"loop","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Whether or not the pages of the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" should be in a loop,"},{"type":"text","text":" "},{"type":"text","text":"i.e. whether a swipe to the left of the last page should result in the first page being shown"},{"type":"text","text":" "},{"type":"text","text":"(or the last shown when swiping right on the first page)"},{"type":"text","text":" "},{"type":"text","text":"If you specify "},{"type":"codeVoice","code":"false"},{"type":"text","text":" here, the user cannot swipe left on the last page and right on the first."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource\/init(pages:loop:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/init(pages:loop:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a PageCoordinatorDataSource with the given pages and looping capabilities."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"title":"init(pages:loop:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator25PageCoordinatorDataSourceC5pages4loopACSaySo16UIViewControllerCG_Sbtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/init(pages:loop:)":{"role":"symbol","title":"init(pages:loop:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a PageCoordinatorDataSource with the given pages and looping capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/init(pages:loop:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/init(pages:loop:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/loop.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/loop.json new file mode 100644 index 00000000..1534339e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/loop.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource\/loop"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/loop","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Whether or not the pages of the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" should be in a loop,"},{"type":"text","text":" "},{"type":"text","text":"i.e. whether a swipe to the left of the last page should result in the first page being shown"},{"type":"text","text":" "},{"type":"text","text":"(or the last shown when swiping right on the first page)"}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"title":"loop","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator25PageCoordinatorDataSourceC4loopSbvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/loop":{"role":"symbol","title":"loop","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"loop"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"Whether or not the pages of the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" should be in a loop,"},{"type":"text","text":" "},{"type":"text","text":"i.e. whether a swipe to the left of the last page should result in the first page being shown"},{"type":"text","text":" "},{"type":"text","text":"(or the last shown when swiping right on the first page)"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/loop","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/loop"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pages.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pages.json new file mode 100644 index 00000000..38188bbf --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pages.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"]"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource\/pages"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pages","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The pages of the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" in sequential order."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"]"}],"title":"pages","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator25PageCoordinatorDataSourceC5pagesSaySo16UIViewControllerCGvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource"]]},"references":{"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/pages":{"role":"symbol","title":"pages","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"pages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The pages of the "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" in sequential order."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pages","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pages"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:).json new file mode 100644 index 00000000..533de32c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"pageViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerAfter"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"pageViewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The dataSource owner."}]}]},{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The viewController to find the following viewController of."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The following viewController."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method first searches for the index of the given viewController in the "},{"type":"codeVoice","code":"pages"},{"type":"text","text":" array."},{"type":"text","text":" "},{"type":"text","text":"It then tries to find a viewController at the following position by potentially looping."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerafter:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerAfter:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerAfter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"title":"pageViewController(_:viewControllerAfter:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)pageViewController:viewControllerAfterViewController:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/pageViewController(_:viewControllerAfter:)":{"role":"symbol","title":"pageViewController(_:viewControllerAfter:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerAfter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerAfter:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerafter:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:).json new file mode 100644 index 00000000..c51b2d89 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"pageViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerBefore"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"pageViewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The dataSource owner."}]}]},{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The viewController to find the preceding viewController of."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The preceding viewController."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method first searches for the index of the given viewController in the "},{"type":"codeVoice","code":"pages"},{"type":"text","text":" array."},{"type":"text","text":" "},{"type":"text","text":"It then tries to find a viewController at the preceding position by potentially looping."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerbefore:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerBefore:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerBefore"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"title":"pageViewController(_:viewControllerBefore:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)pageViewController:viewControllerBeforeViewController:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/pageViewController(_:viewControllerBefore:)":{"role":"symbol","title":"pageViewController(_:viewControllerBefore:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pageViewController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"viewControllerBefore"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/pageViewController(_:viewControllerBefore:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerbefore:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:).json new file mode 100644 index 00000000..798df1e0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationCount"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"pageViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"pageViewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The dataSource owner."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The count of "},{"type":"codeVoice","code":"pages"},{"type":"text","text":", if it is displayed. Otherwise 0."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationcount(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationCount(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationCount"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"presentationCount(for:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)presentationCountForPageViewController:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/presentationCount(for:)":{"role":"symbol","title":"presentationCount(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationCount"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationCount(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationcount(for:)"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:).json new file mode 100644 index 00000000..d6e00b04 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationIndex"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"pageViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"pageViewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The dataSource owner."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The index of the currently visible view controller."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationindex(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationIndex(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationIndex"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"presentationIndex(for:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)presentationIndexForPageViewController:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource":{"role":"symbol","title":"PageCoordinatorDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinatorDataSource"}],"abstract":[{"type":"text","text":"PageCoordinatorDataSource is a"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"implementation with a rather static list of pages."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinatorDataSource"}],"url":"\/documentation\/xcoordinator\/pagecoordinatordatasource"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinatorDataSource/presentationIndex(for:)":{"role":"symbol","title":"presentationIndex(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentationIndex"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinatorDataSource\/presentationIndex(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationindex(for:)"},"https://developer.apple.com/documentation/uikit/UIPageViewControllerDataSource":{"title":"UIPageViewControllerDataSource","titleInlineContent":[{"type":"text","text":"UIPageViewControllerDataSource"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIPageViewControllerDataSource"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagetransition.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagetransition.json new file mode 100644 index 00000000..f82c5f0a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/pagetransition.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageTransition"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/pagetransition"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageTransition","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"PageTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageTransition"}],"title":"PageTransition","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator14PageTransitiona","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"PageTransition"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/PageTransition":{"role":"symbol","title":"PageTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageTransition"}],"abstract":[{"type":"text","text":"PageTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageTransition"}],"url":"\/documentation\/xcoordinator\/pagetransition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller.json new file mode 100644 index 00000000..25232bde --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"PercentDrivenInteractionController is based on the "},{"type":"codeVoice","code":"UIViewControllerInteractiveTransitioning"},{"type":"text","text":" protocol."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/percentdriveninteractioncontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/objc(pl)UIViewControllerInteractiveTransitioning"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"title":"PercentDrivenInteractionController","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator34PercentDrivenInteractionControllerP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/cancel()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/finish()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/update(_:)"]}],"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController/cancel()":{"role":"symbol","title":"cancel()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cancel"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Cancels the animation, e.g. by cleaning up and reversing any progress made."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/cancel()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/cancel()"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController/finish()":{"role":"symbol","title":"finish()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"finish"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Finishes the animation by completing it from the current progress onwards."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/finish()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/finish()"},"doc://XCoordinator/objc(pl)UIViewControllerInteractiveTransitioning":{"type":"unresolvable","title":"UIKit.UIViewControllerInteractiveTransitioning","identifier":"doc:\/\/XCoordinator\/objc(pl)UIViewControllerInteractiveTransitioning"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController/update(_:)":{"role":"symbol","title":"update(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"update"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Updates the animation to be at the specified progress."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/update(_:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/update(_:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/cancel().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/cancel().json new file mode 100644 index 00000000..34bf3eea --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/cancel().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cancel"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/cancel()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/cancel()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Cancels the animation, e.g. by cleaning up and reversing any progress made."}],"kind":"symbol","metadata":{"role":"symbol","title":"cancel()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cancel"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator34PercentDrivenInteractionControllerP6cancelyyF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController/cancel()":{"role":"symbol","title":"cancel()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cancel"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Cancels the animation, e.g. by cleaning up and reversing any progress made."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/cancel()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/cancel()"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/finish().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/finish().json new file mode 100644 index 00000000..cb14990e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/finish().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"finish"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/finish()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/finish()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Finishes the animation by completing it from the current progress onwards."}],"kind":"symbol","metadata":{"role":"symbol","title":"finish()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"finish"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator34PercentDrivenInteractionControllerP6finishyyF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController/finish()":{"role":"symbol","title":"finish()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"finish"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Finishes the animation by completing it from the current progress onwards."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/finish()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/finish()"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:).json new file mode 100644 index 00000000..03edaa0f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"update"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"percentComplete"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method is called based on user interactions."},{"type":"text","text":" "},{"type":"text","text":"A linear progression of the animation is encouraged when handling user interactions."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/update(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/update(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Updates the animation to be at the specified progress."}],"kind":"symbol","metadata":{"role":"symbol","title":"update(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"update"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator34PercentDrivenInteractionControllerP6updateyy14CoreFoundation7CGFloatVF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController/update(_:)":{"role":"symbol","title":"update(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"update"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"CGFloat","preciseIdentifier":"s:14CoreFoundation7CGFloatV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Updates the animation to be at the specified progress."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController\/update(_:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/update(_:)"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable.json new file mode 100644 index 00000000..a2940cc1 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Therefore, it is useful for view controllers, coordinators and views."},{"type":"text","text":" "},{"type":"text","text":"Presentable is often used for transitions to allow for view controllers and coordinators to be transitioned to."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Inherited By","type":"inheritedBy"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator"],"kind":"relationships","title":"Conforming Types","type":"conformingTypes"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"title":"Presentable","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator11PresentableP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"Presentable"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/viewController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-3jrlv","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-vlfa","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-2syh0","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/router(for:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-7uc80"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController of the Presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/viewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/viewcontroller"},"doc://XCoordinator/documentation/XCoordinator/Presentable/childTransitionCompleted()-3jrlv":{"defaultImplementations":1,"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-3jrlv","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-3jrlv"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable/router(for:)":{"role":"symbol","title":"router(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/router(for:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/router(for:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable/presented(from:)-vlfa":{"defaultImplementations":1,"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-vlfa","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/presented(from:)-vlfa"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable/registerParent(_:)-2syh0":{"defaultImplementations":1,"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-2syh0","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/registerparent(_:)-2syh0"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable/setRoot(for:)-7uc80":{"defaultImplementations":1,"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-7uc80","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/setroot(for:)-7uc80"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv.json new file mode 100644 index 00000000..b483f6e4 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-3jrlv"],"traits":[{"interfaceLanguage":"swift"}]}],"defaultImplementationsSections":[{"title":"Presentable Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-4nvzl"]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-3jrlv","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"kind":"symbol","metadata":{"role":"symbol","title":"childTransitionCompleted()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentableP24childTransitionCompletedyyF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Presentable/childTransitionCompleted()-4nvzl":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-4nvzl","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-4nvzl"},"doc://XCoordinator/documentation/XCoordinator/Presentable/childTransitionCompleted()-3jrlv":{"defaultImplementations":1,"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-3jrlv","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-3jrlv"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl.json new file mode 100644 index 00000000..23acdfc2 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-4nvzl"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-4nvzl","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"kind":"symbol","metadata":{"role":"symbol","title":"childTransitionCompleted()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE24childTransitionCompletedyyF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-3jrlv"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable/childTransitionCompleted()-3jrlv":{"defaultImplementations":1,"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-3jrlv","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-3jrlv"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Presentable/childTransitionCompleted()-4nvzl":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/childTransitionCompleted()-4nvzl","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-4nvzl"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-7l34o.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-7l34o.json new file mode 100644 index 00000000..42e7d754 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-7l34o.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the presentable is shown."},{"type":"text","text":" "},{"type":"text","text":"This could be a window, another viewController, a coordinator, etc."},{"type":"text","text":" "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" is specified whenever a context cannot be easily determined."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/presented(from:)-7l34o"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-7l34o","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"kind":"symbol","metadata":{"role":"symbol","title":"presented(from:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE9presented4fromyAaB_pSg_tF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-vlfa"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable/presented(from:)-vlfa":{"defaultImplementations":1,"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-vlfa","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/presented(from:)-vlfa"},"doc://XCoordinator/documentation/XCoordinator/Presentable/presented(from:)-7l34o":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-7l34o","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/presented(from:)-7l34o"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-vlfa.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-vlfa.json new file mode 100644 index 00000000..2e577ab6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-vlfa.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the presentable is shown."},{"type":"text","text":" "},{"type":"text","text":"This could be a window, another viewController, a coordinator, etc."},{"type":"text","text":" "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" is specified whenever a context cannot be easily determined."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/presented(from:)-vlfa"],"traits":[{"interfaceLanguage":"swift"}]}],"defaultImplementationsSections":[{"title":"Presentable Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-7l34o"]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-vlfa","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"kind":"symbol","metadata":{"role":"symbol","title":"presented(from:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable/presented(from:)-7l34o":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-7l34o","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/presented(from:)-7l34o"},"doc://XCoordinator/documentation/XCoordinator/Presentable/presented(from:)-vlfa":{"defaultImplementations":1,"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/presented(from:)-vlfa","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/presented(from:)-vlfa"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3.json new file mode 100644 index 00000000..ce39075a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/registerparent(_:)-1b0o3"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-1b0o3","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"kind":"symbol","metadata":{"role":"symbol","title":"registerParent(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE14registerParentyyAaB_XlF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-2syh0"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable/registerParent(_:)-2syh0":{"defaultImplementations":1,"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-2syh0","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/registerparent(_:)-2syh0"},"doc://XCoordinator/documentation/XCoordinator/Presentable/registerParent(_:)-1b0o3":{"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-1b0o3","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/registerparent(_:)-1b0o3"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-2syh0.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-2syh0.json new file mode 100644 index 00000000..3be42bfe --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-2syh0.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/registerparent(_:)-2syh0"],"traits":[{"interfaceLanguage":"swift"}]}],"defaultImplementationsSections":[{"title":"Presentable Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-1b0o3"]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-2syh0","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"kind":"symbol","metadata":{"role":"symbol","title":"registerParent(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentableP14registerParentyyAaB_XlF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable/registerParent(_:)-2syh0":{"defaultImplementations":1,"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-2syh0","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/registerparent(_:)-2syh0"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Presentable/registerParent(_:)-1b0o3":{"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/registerParent(_:)-1b0o3","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/registerparent(_:)-1b0o3"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/router(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/router(for:).json new file mode 100644 index 00000000..ddcd76cb --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/router(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","preciseIdentifier":"s:12XCoordinator6RouterP","text":"Router"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)? "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"R"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The route to determine a router for."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Deep linking makes use of this method to trigger the specified routes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/router(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/router(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"kind":"symbol","metadata":{"role":"symbol","title":"router(for:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable/router(for:)":{"role":"symbol","title":"router(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator11PresentableP6router3forAA6Router_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/router(for:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/router(for:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-7uc80.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-7uc80.json new file mode 100644 index 00000000..91e7cd0e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-7uc80.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"window"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"window","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The window to set the root of."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method sets the rootViewController of the window and makes it key and visible."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, it calls "},{"type":"codeVoice","code":"presented(from:)"},{"type":"text","text":" with the window as its parameter."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/setroot(for:)-7uc80"],"traits":[{"interfaceLanguage":"swift"}]}],"defaultImplementationsSections":[{"title":"Presentable Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-8jtc1"]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-7uc80","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"kind":"symbol","metadata":{"role":"symbol","title":"setRoot(for:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Presentable/setRoot(for:)-8jtc1":{"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-8jtc1","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/setroot(for:)-8jtc1"},"doc://XCoordinator/documentation/XCoordinator/Presentable/setRoot(for:)-7uc80":{"defaultImplementations":1,"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-7uc80","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/setroot(for:)-7uc80"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-8jtc1.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-8jtc1.json new file mode 100644 index 00000000..f2ee0f21 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-8jtc1.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"window"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"window","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The window to set the root of."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method sets the rootViewController of the window and makes it key and visible."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, it calls "},{"type":"codeVoice","code":"presented(from:)"},{"type":"text","text":" with the window as its parameter."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/setroot(for:)-8jtc1"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-8jtc1","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"kind":"symbol","metadata":{"role":"symbol","title":"setRoot(for:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE7setRoot3forySo8UIWindowC_tF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-7uc80"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable/setRoot(for:)-8jtc1":{"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-8jtc1","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/presentable\/setroot(for:)-8jtc1"},"doc://XCoordinator/documentation/XCoordinator/Presentable/setRoot(for:)-7uc80":{"defaultImplementations":1,"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/setRoot(for:)-7uc80","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/setroot(for:)-7uc80"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/viewcontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/viewcontroller.json new file mode 100644 index 00000000..e8f35e34 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/viewcontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"! { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"In the case of a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":", it returns itself."},{"type":"text","text":" "},{"type":"text","text":"A coordinator returns its rootViewController."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentable\/viewcontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/viewController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The viewController of the Presentable."}],"kind":"symbol","metadata":{"role":"symbol","title":"viewController","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"symbolKind":"property","externalID":"s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController of the Presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable\/viewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/presentable\/viewcontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentationhandler.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentationhandler.json new file mode 100644 index 00000000..80c7f115 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/presentationhandler.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"},{"kind":"text","text":" = () -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/presentationhandler"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The completion handler for transitions."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"title":"PresentationHandler","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator19PresentationHandlera","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter.json new file mode 100644 index 00000000..00275635 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"ParentRoute"},{"kind":"text","text":", "},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"ParentRoute"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Create a RedirectionRouter from a parent router by providing a reference to that parent."},{"type":"text","text":" "},{"type":"text","text":"Triggered routes of the RedirectionRouter will be redirected to this parent router according to the provided mapping."},{"type":"text","text":" "},{"type":"text","text":"Please provide either a "},{"type":"codeVoice","code":"map"},{"type":"text","text":" closure in the initializer or override the "},{"type":"codeVoice","code":"mapToParentRoute"},{"type":"text","text":" method."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"A RedirectionRouter has a viewController which is used in transitions,"},{"type":"text","text":" "},{"type":"text","text":"e.g. when you are presenting, pushing, or otherwise displaying it."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"title":"RedirectionRouter","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator17RedirectionRouterC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/init(viewController:parent:map:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/parent","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/viewController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/mapToParentRoute(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/router(for:)"]},{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations"],"generated":true}],"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/router(for:)":{"role":"symbol","title":"router(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/router(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router(for:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/mapToParentRoute(_:)":{"role":"symbol","title":"mapToParentRoute(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"mapToParentRoute"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"}],"abstract":[{"type":"text","text":"Map RouteType to ParentRoute."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/mapToParentRoute(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/maptoparentroute(_:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController used in transitions, e.g. when pushing, presenting"},{"type":"text","text":" "},{"type":"text","text":"or otherwise displaying the RedirectionRouter."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/viewController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/viewcontroller"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/init(viewController:parent:map:)":{"role":"symbol","title":"init(viewController:parent:map:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">, "},{"kind":"externalParam","text":"map"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":")?)"}],"abstract":[{"type":"text","text":"Creates a RedirectionRouter with a certain viewController, a parent router"},{"type":"text","text":" "},{"type":"text","text":"and an optional mapping."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/init(viewController:parent:map:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/init(viewcontroller:parent:map:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/parent":{"role":"symbol","title":"parent","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"A type-erased Router object of the parent router."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/parent","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/parent"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/contextTrigger(_:with:completion:)":{"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/childtransitioncompleted().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/childtransitioncompleted().json new file mode 100644 index 00000000..b444f510 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/childtransitioncompleted().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/childtransitioncompleted()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/childTransitionCompleted()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"kind":"symbol","metadata":{"role":"symbol","title":"childTransitionCompleted()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE24childTransitionCompletedyyF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/childTransitionCompleted()":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/childTransitionCompleted()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/childtransitioncompleted()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:).json new file mode 100644 index 00000000..001ae184 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@"},{"kind":"typeIdentifier","text":"MainActor","preciseIdentifier":"s:ScM"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP","text":"TransitionContext"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options configuring the execution of transitions, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transition context of the performed transition(s)."},{"type":"text","text":" "},{"type":"text","text":"If the context is not needed, use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Useful for deep linking. It is encouraged to use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead, if the context is not needed."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"contextTrigger(_:with:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE14contextTrigger_4withAA17TransitionContext_p9RouteTypeQz_AA0F7OptionsVtYaF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"13.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"13.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/contextTrigger(_:with:)":{"role":"symbol","title":"contextTrigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:).json new file mode 100644 index 00000000..c10143b1 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera","text":"ContextPresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options configuring the execution of transitions, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."},{"type":"text","text":" "},{"type":"text","text":"If the context is not needed, use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Useful for deep linking. It is encouraged to use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead, if the context is not needed."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"title":"contextTrigger(_:with:completion:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator17RedirectionRouterC14contextTrigger_4with10completionyq__AA17TransitionOptionsVyAA0H7Context_pcSgtF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/contextTrigger(_:with:completion:)":{"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/ContextPresentationHandler":{"role":"symbol","title":"ContextPresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions, which also provides the context information about the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ContextPresentationHandler"}],"url":"\/documentation\/xcoordinator\/contextpresentationhandler"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:).json new file mode 100644 index 00000000..7b97653a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","preciseIdentifier":"s:12XCoordinator6RouterP","text":"Router"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">, "},{"kind":"externalParam","text":"map"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":")?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The view controller to be used in transitions, e.g. when pushing, presenting or otherwise displaying the RedirectionRouter."}]}]},{"name":"parent","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Triggered routes will be rerouted to the parent router."}]}]},{"name":"map","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"A mapping from this RedirectionRouter’s routes to the parent’s routes."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/init(viewcontroller:parent:map:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/init(viewController:parent:map:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a RedirectionRouter with a certain viewController, a parent router"},{"type":"text","text":" "},{"type":"text","text":"and an optional mapping."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">, "},{"kind":"externalParam","text":"map"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":")?)"}],"title":"init(viewController:parent:map:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator17RedirectionRouterC14viewController6parent3mapACyxq_GSo06UIViewE0C_AA0C0_px9RouteTypeRts_XPxq_cSgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/init(viewController:parent:map:)":{"role":"symbol","title":"init(viewController:parent:map:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">, "},{"kind":"externalParam","text":"map"},{"kind":"text","text":": (("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":")?)"}],"abstract":[{"type":"text","text":"Creates a RedirectionRouter with a certain viewController, a parent router"},{"type":"text","text":" "},{"type":"text","text":"and an optional mapping."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/init(viewController:parent:map:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/init(viewcontroller:parent:map:)"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:).json new file mode 100644 index 00000000..b0c96422 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"mapToParentRoute"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The route to be mapped."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The mapped route for the parent router."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method is called when a route is triggered in the RedirectionRouter."},{"type":"text","text":" "},{"type":"text","text":"It is used to translate RouteType routes to the parent’s routes which are then triggered in the parent router."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/maptoparentroute(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/mapToParentRoute(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Map RouteType to ParentRoute."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"mapToParentRoute"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"}],"title":"mapToParentRoute(_:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator17RedirectionRouterC16mapToParentRouteyxq_F","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/mapToParentRoute(_:)":{"role":"symbol","title":"mapToParentRoute(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"mapToParentRoute"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC9RouteTypeq_mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"}],"abstract":[{"type":"text","text":"Map RouteType to ParentRoute."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/mapToParentRoute(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/maptoparentroute(_:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/parent.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/parent.json new file mode 100644 index 00000000..c2e163fb --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/parent.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"unowned"},{"kind":"text","text":" "},{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","preciseIdentifier":"s:12XCoordinator6RouterP","text":"Router"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/parent"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/parent","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A type-erased Router object of the parent router."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">"}],"title":"parent","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator17RedirectionRouterC6parentAA0C0_px9RouteTypeRts_XPvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/parent":{"role":"symbol","title":"parent","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"parent"},{"kind":"text","text":": "},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"ParentRoute","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC11ParentRoutexmfp"},{"kind":"text","text":">"}],"abstract":[{"type":"text","text":"A type-erased Router object of the parent router."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/parent","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/parent"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presentable-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presentable-implementations.json new file mode 100644 index 00000000..38551fd3 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presentable-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/presentable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/childTransitionCompleted()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/presented(from:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/registerParent(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/setRoot(for:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"Presentable Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/presented(from:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/registerParent(_:)":{"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/registerParent(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/registerparent(_:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/setRoot(for:)":{"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/setRoot(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/setroot(for:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/childTransitionCompleted()":{"role":"symbol","title":"childTransitionCompleted()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"childTransitionCompleted"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"This method gets called when the transition of a child coordinator is being reported to its parent."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/childTransitionCompleted()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/childtransitioncompleted()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presented(from:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presented(from:).json new file mode 100644 index 00000000..cb135008 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presented(from:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context in which the presentable is shown."},{"type":"text","text":" "},{"type":"text","text":"This could be a window, another viewController, a coordinator, etc."},{"type":"text","text":" "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" is specified whenever a context cannot be easily determined."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/presented(from:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/presented(from:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"kind":"symbol","metadata":{"role":"symbol","title":"presented(from:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE9presented4fromyAaB_pSg_tF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/presented(from:)":{"role":"symbol","title":"presented(from:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presented"},{"kind":"text","text":"("},{"kind":"externalParam","text":"from"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This method is called whenever a Presentable is shown to the user."},{"type":"text","text":" "},{"type":"text","text":"It further provides information about the context a presentable is shown in."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/presented(from:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/presented(from:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/presentable-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/registerparent(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/registerparent(_:).json new file mode 100644 index 00000000..6725d4d5 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/registerparent(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/registerparent(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/registerParent(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"kind":"symbol","metadata":{"role":"symbol","title":"registerParent(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE14registerParentyyAaB_XlF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/registerParent(_:)":{"role":"symbol","title":"registerParent(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"registerParent"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":" & "},{"kind":"typeIdentifier","text":"AnyObject","preciseIdentifier":"s:s9AnyObjecta"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"This method is used to register a parent coordinator to a child coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/registerParent(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/registerparent(_:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/presentable-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router(for:).json new file mode 100644 index 00000000..f38b9f1b --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","preciseIdentifier":"s:12XCoordinator6RouterP","text":"Router"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)? "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"R"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The route to determine a router for."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Deep linking makes use of this method to trigger the specified routes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/router(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/router(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"title":"router(for:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/router(for:)":{"role":"symbol","title":"router(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"router"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":") -> ("},{"kind":"keyword","text":"any"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Router","preciseIdentifier":"s:12XCoordinator6RouterP"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator17RedirectionRouterC6router3forAA0C0_pqd__9RouteTypeRts_XPSgqd___tAA0F0Rd__lF1RL_qd__mfp"},{"kind":"text","text":">)?"}],"abstract":[{"type":"text","text":"This method can be used to retrieve whether the presentable can trigger a specific route"},{"type":"text","text":" "},{"type":"text","text":"and potentially returns a router to trigger the route on."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/router(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router(for:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router-implementations.json new file mode 100644 index 00000000..61cd0d8e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/router-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:completion:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"Router Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:)":{"role":"symbol","title":"trigger(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:with:)":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/contextTrigger(_:with:)":{"role":"symbol","title":"contextTrigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/contextTrigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:completion:)":{"role":"symbol","title":"trigger(_:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:completion:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:with:completion:)":{"role":"symbol","title":"trigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/setroot(for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/setroot(for:).json new file mode 100644 index 00000000..51ace8f6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/setroot(for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"window"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"window","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The window to set the root of."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method sets the rootViewController of the window and makes it key and visible."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, it calls "},{"type":"codeVoice","code":"presented(from:)"},{"type":"text","text":" with the window as its parameter."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/setroot(for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/setRoot(for:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"kind":"symbol","metadata":{"role":"symbol","title":"setRoot(for:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator11PresentablePAAE7setRoot3forySo8UIWindowC_tF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Presentable-Implementations":{"role":"collectionGroup","title":"Presentable Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Presentable-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/presentable-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/setRoot(for:)":{"role":"symbol","title":"setRoot(for:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"setRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIWindow","preciseIdentifier":"c:objc(cs)UIWindow"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Sets the presentable as the root of the window."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/setRoot(for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/setroot(for:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:).json new file mode 100644 index 00000000..9182b235 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@"},{"kind":"typeIdentifier","text":"MainActor","preciseIdentifier":"s:ScM"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"trigger(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7triggeryy9RouteTypeQzYaF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"13.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"13.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:)":{"role":"symbol","title":"trigger(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:completion:).json new file mode 100644 index 00000000..3a3e4bf9 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_10completiony9RouteTypeQz_yycSgtF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:completion:)":{"role":"symbol","title":"trigger(_:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:completion:)"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:).json new file mode 100644 index 00000000..b290934b --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options for performing the transition, e.g. whether it should be animated."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:with:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_4withy9RouteTypeQz_AA17TransitionOptionsVtF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:with:)":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router-implementations"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:).json new file mode 100644 index 00000000..736f590a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Transition options for performing the transition, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyycSgtF::SYNTHESIZED::s:12XCoordinator17RedirectionRouterC","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/trigger(_:with:completion:)":{"role":"symbol","title":"trigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/trigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/Router-Implementations":{"role":"collectionGroup","title":"Router Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/Router-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/router-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/viewcontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/viewcontroller.json new file mode 100644 index 00000000..835ee6f3 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/viewcontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"! { get }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/redirectionrouter\/viewcontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/viewController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The viewController used in transitions, e.g. when pushing, presenting"},{"type":"text","text":" "},{"type":"text","text":"or otherwise displaying the RedirectionRouter."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"title":"viewController","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator17RedirectionRouterC14viewControllerSo06UIViewE0CSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter/viewController":{"role":"symbol","title":"viewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"abstract":[{"type":"text","text":"The viewController used in transitions, e.g. when pushing, presenting"},{"type":"text","text":" "},{"type":"text","text":"or otherwise displaying the RedirectionRouter."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter\/viewController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/redirectionrouter\/viewcontroller"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/route.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/route.json new file mode 100644 index 00000000..a9bc7faa --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/route.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/route"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"title":"Route","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator5RouteP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"Route"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router.json new file mode 100644 index 00000000..45a44244 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":"> : AnyObject, "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"A Router can trigger routes, which lead to transitions being executed. In constrast to the Coordinator protocol,"},{"type":"text","text":" "},{"type":"text","text":"the router does not specify a TransitionType and can therefore be used in the form of a"},{"type":"text","text":" "},{"type":"codeVoice","code":"StrongRouter"},{"type":"text","text":", "},{"type":"codeVoice","code":"UnownedRouter"},{"type":"text","text":" or "},{"type":"codeVoice","code":"WeakRouter"},{"type":"text","text":" to reduce a coordinator’s capabilities to"},{"type":"text","text":" "},{"type":"text","text":"the triggering of routes."},{"type":"text","text":" "},{"type":"text","text":"This may especially be useful in viewModels when using them in different contexts."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"],"kind":"relationships","title":"Inherited By","type":"inheritedBy"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator"],"kind":"relationships","title":"Conforming Types","type":"conformingTypes"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"title":"Router","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator6RouterP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"Router"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Associated Types","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:completion:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-7y4ig","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-pmke","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:completion:)"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/contextTrigger(_:with:)":{"role":"symbol","title":"contextTrigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/contexttrigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:with:completion:)":{"role":"symbol","title":"trigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Router/contextTrigger(_:with:completion:)":{"defaultImplementations":1,"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:completion:)":{"role":"symbol","title":"trigger(_:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:completion:)"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:with:)-pmke":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-pmke","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:with:)-pmke"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator/RedirectionRouter":{"role":"symbol","title":"RedirectionRouter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"RedirectionRouter"}],"abstract":[{"type":"text","text":"RedirectionRouters can be used to extract routes into different route types."},{"type":"text","text":" "},{"type":"text","text":"Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/RedirectionRouter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RedirectionRouter"}],"url":"\/documentation\/xcoordinator\/redirectionrouter"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:)":{"role":"symbol","title":"trigger(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:)"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:with:)-7y4ig":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-7y4ig","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:with:)-7y4ig"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:).json new file mode 100644 index 00000000..dfd78885 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@"},{"kind":"typeIdentifier","text":"MainActor","preciseIdentifier":"s:ScM"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP","text":"TransitionContext"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options configuring the execution of transitions, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transition context of the performed transition(s)."},{"type":"text","text":" "},{"type":"text","text":"If the context is not needed, use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Useful for deep linking. It is encouraged to use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead, if the context is not needed."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/contexttrigger(_:with:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"contextTrigger(_:with:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE14contextTrigger_4withAA17TransitionContext_p9RouteTypeQz_AA0F7OptionsVtYaF","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"13.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"13.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/Router/contextTrigger(_:with:)":{"role":"symbol","title":"contextTrigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","text":"TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/contexttrigger(_:with:)"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:completion:).json new file mode 100644 index 00000000..04d3884f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera","text":"ContextPresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options configuring the execution of transitions, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."},{"type":"text","text":" "},{"type":"text","text":"If the context is not needed, use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Useful for deep linking. It is encouraged to use "},{"type":"codeVoice","code":"trigger"},{"type":"text","text":" instead, if the context is not needed."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/contexttrigger(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"defaultImplementationsSections":[{"title":"Coordinator Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/contextTrigger(_:with:completion:)"]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"kind":"symbol","metadata":{"role":"symbol","title":"contextTrigger(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/Router/contextTrigger(_:with:completion:)":{"defaultImplementations":1,"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/contextTrigger(_:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/ContextPresentationHandler":{"role":"symbol","title":"ContextPresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ContextPresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions, which also provides the context information about the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ContextPresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ContextPresentationHandler"}],"url":"\/documentation\/xcoordinator\/contextpresentationhandler"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/contextTrigger(_:with:completion:)":{"role":"symbol","title":"contextTrigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"contextTrigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"ContextPresentationHandler","preciseIdentifier":"s:12XCoordinator26ContextPresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers routes and returns context in completion-handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/contextTrigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/contexttrigger(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/routetype.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/routetype.json new file mode 100644 index 00000000..b4ed773d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/routetype.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/routetype"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"kind":"symbol","metadata":{"role":"symbol","title":"RouteType","roleHeading":"Associated Type","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"symbolKind":"associatedtype","externalID":"s:12XCoordinator6RouterP9RouteTypeQa","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:).json new file mode 100644 index 00000000..b1374b13 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@"},{"kind":"typeIdentifier","text":"MainActor","preciseIdentifier":"s:ScM"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/trigger(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"trigger(_:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7triggeryy9RouteTypeQzYaF","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"13.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"13.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:)":{"role":"symbol","title":"trigger(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:completion:).json new file mode 100644 index 00000000..ecdcf0f4 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/trigger(_:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_10completiony9RouteTypeQz_yycSgtF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:completion:)":{"role":"symbol","title":"trigger(_:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route with default transition options enabling the animation of the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-7y4ig.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-7y4ig.json new file mode 100644 index 00000000..ec4541e6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-7y4ig.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Transition options for performing the transition, e.g. whether it should be animated."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/trigger(_:with:)-7y4ig"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-7y4ig","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:with:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_4withy9RouteTypeQz_AA17TransitionOptionsVtF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:with:)-7y4ig":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Triggers the specified route without the need of specifying a completion handler."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-7y4ig","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:with:)-7y4ig"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-pmke.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-pmke.json new file mode 100644 index 00000000..d3049bc4 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-pmke.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"attribute","text":"@"},{"kind":"typeIdentifier","text":"MainActor","preciseIdentifier":"s:ScM"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Transition options for performing the transition, e.g. whether it should be animated."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/trigger(_:with:)-pmke"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-pmke","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"role":"symbol","title":"trigger(_:with:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_4withy9RouteTypeQz_AA17TransitionOptionsVtYaF","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"13.0","deprecated":false},{"beta":false,"unavailable":false,"name":"tvOS","introducedAt":"13.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:with:)-pmke":{"role":"symbol","title":"trigger(_:with:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:)-pmke","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:with:)-pmke"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:completion:).json new file mode 100644 index 00000000..1e7287dd --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Transition options for performing the transition, e.g. whether it should be animated."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If present, this completion handler is executed once the transition is completed"},{"type":"text","text":" "},{"type":"text","text":"(including animations)."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/router\/trigger(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"trigger(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator6RouterPAAE7trigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyycSgtF","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/Router/trigger(_:with:completion:)":{"role":"symbol","title":"trigger(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Triggers the specified route by performing a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/trigger(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/router\/trigger(_:with:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator.json new file mode 100644 index 00000000..982dce9e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"You can use all "},{"type":"codeVoice","code":"SplitTransitions"},{"type":"text","text":" and get an initializer to set a master and"},{"type":"text","text":" "},{"type":"text","text":"(optional) detail presentable."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/splitcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"title":"SplitCoordinator","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator16SplitCoordinatorC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:initialRoute:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:primary:secondary:supplementary:)"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16SplitCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator/init(rootViewController:primary:secondary:supplementary:)":{"role":"symbol","title":"init(rootViewController:primary:secondary:supplementary:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"primary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"secondary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"supplementary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates a SplitCoordinator and sets the specified presentables as the rootViewController’s"},{"type":"text","text":" "},{"type":"text","text":"viewControllers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:primary:secondary:supplementary:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:primary:secondary:supplementary:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:).json new file mode 100644 index 00000000..5d2f7f8b --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"override"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16SplitCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"initialRoute","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If a route is specified, it is triggered before making the coordinator visible."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:initialroute:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:initialRoute:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16SplitCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"title":"init(rootViewController:initialRoute:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator16SplitCoordinatorC18rootViewController12initialRouteACyxGSo07UISpliteF0C_xSgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator16SplitCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:).json new file mode 100644 index 00000000..60881733 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"primary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"secondary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"supplementary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"primary","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be shown as primary in the "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}]}]},{"name":"secondary","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be shown as secondary in the "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":". This is optional due to"},{"type":"text","text":" "},{"type":"text","text":"the fact that it might not be useful to have a detail page right away on a small-screen device."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:primary:secondary:supplementary:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:primary:secondary:supplementary:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a SplitCoordinator and sets the specified presentables as the rootViewController’s"},{"type":"text","text":" "},{"type":"text","text":"viewControllers."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"primary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"secondary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"supplementary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"title":"init(rootViewController:primary:secondary:supplementary:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator16SplitCoordinatorC18rootViewController7primary9secondary13supplementaryACyxGSo07UISpliteF0C_AA11Presentable_pAaK_pSgALtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator/init(rootViewController:primary:secondary:supplementary:)":{"role":"symbol","title":"init(rootViewController:primary:secondary:supplementary:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"primary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"secondary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"supplementary"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Creates a SplitCoordinator and sets the specified presentables as the rootViewController’s"},{"type":"text","text":" "},{"type":"text","text":"viewControllers."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator\/init(rootViewController:primary:secondary:supplementary:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:primary:secondary:supplementary:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/splittransition.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/splittransition.json new file mode 100644 index 00000000..05956b64 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/splittransition.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitTransition"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"UISplitViewController","preciseIdentifier":"c:objc(cs)UISplitViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/splittransition"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitTransition","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"SplitTransition offers different transitions common to a "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":" rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitTransition"}],"title":"SplitTransition","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator15SplitTransitiona","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"SplitTransition"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/SplitTransition":{"role":"symbol","title":"SplitTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitTransition"}],"abstract":[{"type":"text","text":"SplitTransition offers different transitions common to a "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitTransition"}],"url":"\/documentation\/xcoordinator\/splittransition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation.json new file mode 100644 index 00000000..fa296e02 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/statictransitionanimation"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(cs)NSObject"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/s7CVarArgP","doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP","doc:\/\/XCoordinator\/s23CustomStringConvertibleP","doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","interfaceLanguage":"swift"},"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"title":"StaticTransitionAnimation","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/init(duration:performAnimation:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/interactionController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/animateTransition(using:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/cleanup()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/start()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/transitionDuration(using:)"]}],"references":{"doc://XCoordinator/objc(pl)UIViewControllerAnimatedTransitioning":{"type":"unresolvable","title":"UIKit.UIViewControllerAnimatedTransitioning","identifier":"doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/s23CustomStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomStringConvertible","identifier":"doc:\/\/XCoordinator\/s23CustomStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/cleanup()":{"role":"symbol","title":"cleanup()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/cleanup()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/cleanup()"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/transitionDuration(using:)":{"role":"symbol","title":"transitionDuration(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/transitionDuration(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/transitionduration(using:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/init(duration:performAnimation:)":{"role":"symbol","title":"init(duration:performAnimation:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"performAnimation"},{"kind":"text","text":": ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"context"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a StaticTransitionAnimation to be used as presentation or dismissal transition animation in"},{"type":"text","text":" "},{"type":"text","text":"an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" \u001cobject."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/init(duration:performAnimation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/init(duration:performanimation:)"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/animateTransition(using:)":{"role":"symbol","title":"animateTransition(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/animateTransition(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/animatetransition(using:)"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/start()":{"role":"symbol","title":"start()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Starts the animation by possibly creating a new interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/start()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/start()"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/interactionController":{"role":"symbol","title":"interactionController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/interactionController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/interactioncontroller"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/objc(cs)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObject","identifier":"doc:\/\/XCoordinator\/objc(cs)NSObject"},"doc://XCoordinator/s7CVarArgP":{"type":"unresolvable","title":"Swift.CVarArg","identifier":"doc:\/\/XCoordinator\/s7CVarArgP"},"doc://XCoordinator/s28CustomDebugStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomDebugStringConvertible","identifier":"doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/animatetransition(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/animatetransition(using:).json new file mode 100644 index 00000000..d0854789 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/animatetransition(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitionContext"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionContext","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context of the current transition."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method performs the animation as specified in the initializer."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/statictransitionanimation\/animatetransition(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/animateTransition(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"title":"animateTransition(using:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation(im)animateTransition:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/animateTransition(using:)":{"role":"symbol","title":"animateTransition(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"animateTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/animateTransition(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/animatetransition(using:)"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/cleanup().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/cleanup().json new file mode 100644 index 00000000..cf75a211 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/cleanup().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/statictransitionanimation\/cleanup()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/cleanup()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"title":"cleanup()","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator25StaticTransitionAnimationC7cleanupyyF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/cleanup()":{"role":"symbol","title":"cleanup()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/cleanup()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/cleanup()"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:).json new file mode 100644 index 00000000..743e3f26 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"performAnimation"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"context"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"duration","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The total duration of the animation."}]}]},{"name":"performAnimation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"A closure performing the animation."}]}]},{"name":"context","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"From the context, you can access source and destination views and"},{"type":"text","text":" "},{"type":"text","text":"viewControllers and the containerView."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/statictransitionanimation\/init(duration:performanimation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/init(duration:performAnimation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a StaticTransitionAnimation to be used as presentation or dismissal transition animation in"},{"type":"text","text":" "},{"type":"text","text":"an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" \u001cobject."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"performAnimation"},{"kind":"text","text":": ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"context"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"title":"init(duration:performAnimation:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator25StaticTransitionAnimationC8duration07performD0ACSd_ySo36UIViewControllerContextTransitioning_pctcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/init(duration:performAnimation:)":{"role":"symbol","title":"init(duration:performAnimation:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"duration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"},{"kind":"text","text":", "},{"kind":"externalParam","text":"performAnimation"},{"kind":"text","text":": ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"context"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a StaticTransitionAnimation to be used as presentation or dismissal transition animation in"},{"type":"text","text":" "},{"type":"text","text":"an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" \u001cobject."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/init(duration:performAnimation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/init(duration:performanimation:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/interactioncontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/interactioncontroller.json new file mode 100644 index 00000000..647bdfd6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/interactioncontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP","text":"PercentDrivenInteractionController"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The interaction controller is reset when calling "},{"type":"codeVoice","code":"TransitionAnimation.start()"},{"type":"text","text":" can always be "},{"type":"codeVoice","code":"nil"},{"type":"text","text":","},{"type":"text","text":" "},{"type":"text","text":"e.g. in static transition animations."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Until "},{"type":"codeVoice","code":"TransitionAnimation.cleanup()"},{"type":"text","text":" is called, it should always return the same instance."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/statictransitionanimation\/interactioncontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/interactionController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"title":"interactionController","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator25StaticTransitionAnimationC21interactionControllerAA024PercentDrivenInteractionF0_pSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/interactionController":{"role":"symbol","title":"interactionController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/interactionController","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/interactioncontroller"},"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/start().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/start().json new file mode 100644 index 00000000..6ad2fa0e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/start().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/statictransitionanimation\/start()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/start()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Starts the animation by possibly creating a new interaction controller."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"title":"start()","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator25StaticTransitionAnimationC5startyyF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/start()":{"role":"symbol","title":"start()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Starts the animation by possibly creating a new interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/start()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/start()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/transitionduration(using:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/transitionduration(using:).json new file mode 100644 index 00000000..fa823a3a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/transitionduration(using:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitionContext"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitionContext","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The context of the current transition."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The duration of the animation as specified in the initializer."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/statictransitionanimation\/transitionduration(using:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/transitionDuration(using:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"title":"transitionDuration(using:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"c:@M@XCoordinator@objc(cs)StaticTransitionAnimation(im)transitionDuration:","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"https://developer.apple.com/documentation/uikit/UIViewControllerAnimatedTransitioning":{"title":"UIViewControllerAnimatedTransitioning","titleInlineContent":[{"type":"text","text":"UIViewControllerAnimatedTransitioning"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation/transitionDuration(using:)":{"role":"symbol","title":"transitionDuration(using:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"transitionDuration"},{"kind":"text","text":"("},{"kind":"externalParam","text":"using"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerContextTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerContextTransitioning"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"TimeInterval","preciseIdentifier":"c:@T@NSTimeInterval"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewControllerAnimatedTransitioning"},{"type":"text","text":" "},{"type":"text","text":"for further information."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation\/transitionDuration(using:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/statictransitionanimation\/transitionduration(using:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate.json new file mode 100644 index 00000000..2e19a87c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"TabBarAnimationDelegate conforms to the "},{"type":"codeVoice","code":"UITabBarControllerDelegate"},{"type":"text","text":" protocol"},{"type":"text","text":" "},{"type":"text","text":"and is intended for use as the delegate of one tabbar controller only."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(cs)NSObject"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/s7CVarArgP","doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP","doc:\/\/XCoordinator\/s23CustomStringConvertibleP","doc:\/\/XCoordinator\/SQ","doc:\/\/XCoordinator\/SH","doc:\/\/XCoordinator\/objc(pl)UITabBarControllerDelegate"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"title":"TabBarAnimationDelegate","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"c:@M@XCoordinator@objc(cs)TabBarAnimationDelegate","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"],"generated":true}],"references":{"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"doc://XCoordinator/s23CustomStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomStringConvertible","identifier":"doc:\/\/XCoordinator\/s23CustomStringConvertibleP"},"doc://XCoordinator/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/XCoordinator\/SQ"},"doc://XCoordinator/s28CustomDebugStringConvertibleP":{"type":"unresolvable","title":"Swift.CustomDebugStringConvertible","identifier":"doc:\/\/XCoordinator\/s28CustomDebugStringConvertibleP"},"doc://XCoordinator/objc(cs)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObject","identifier":"doc:\/\/XCoordinator\/objc(cs)NSObject"},"doc://XCoordinator/s7CVarArgP":{"type":"unresolvable","title":"Swift.CVarArg","identifier":"doc:\/\/XCoordinator\/s7CVarArgP"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"},"doc://XCoordinator/SH":{"type":"unresolvable","title":"Swift.Hashable","identifier":"doc:\/\/XCoordinator\/SH"},"doc://XCoordinator/objc(pl)UITabBarControllerDelegate":{"type":"unresolvable","title":"UIKit.UITabBarControllerDelegate","identifier":"doc:\/\/XCoordinator\/objc(pl)UITabBarControllerDelegate"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:).json new file mode 100644 index 00000000..8e027128 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"tabBarController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerForTransitionFrom"},{"kind":"text","text":" "},{"kind":"internalParam","text":"fromVC"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":" "},{"kind":"internalParam","text":"toVC"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabBarController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"fromVC","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The source view controller of the transition."}]}]},{"name":"toVC","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The destination view controller of the transition."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentation animation controller from the toVC’s transitioningDelegate."},{"type":"text","text":" "},{"type":"text","text":"If not present, it uses the TabBarCoordinator’s delegate as fallback."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:animationControllerForTransitionFrom:to:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"tabBarController(_:animationControllerForTransitionFrom:to:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerForTransitionFrom"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:animationControllerForTransitionFromViewController:toViewController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"]]},"references":{"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:animationControllerForTransitionFrom:to:)":{"role":"symbol","title":"tabBarController(_:animationControllerForTransitionFrom:to:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerForTransitionFrom"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:animationControllerForTransitionFrom:to:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:).json new file mode 100644 index 00000000..1f177c46 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"tabBarController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didEndCustomizing"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewControllers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabBarController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"viewControllers","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The source viewControllers."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method delegates to the TabBarCoordinator’s delegate."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didendcustomizing:changed:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didEndCustomizing:changed:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"tabBarController(_:didEndCustomizing:changed:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didEndCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:didEndCustomizingViewControllers:changed:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:didEndCustomizing:changed:)":{"role":"symbol","title":"tabBarController(_:didEndCustomizing:changed:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didEndCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didEndCustomizing:changed:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didendcustomizing:changed:)"},"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:).json new file mode 100644 index 00000000..50cf15da --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"tabBarController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didSelect"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabBarController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The destination viewController."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method delegates to the TabBarCoordinator’s delegate."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didselect:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didSelect:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"tabBarController(_:didSelect:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didSelect"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:didSelectViewController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:didSelect:)":{"role":"symbol","title":"tabBarController(_:didSelect:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didSelect"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didSelect:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didselect:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:).json new file mode 100644 index 00000000..5692a345 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"tabBarController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":" "},{"kind":"internalParam","text":"animationController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If the animationController is a "},{"type":"codeVoice","code":"TransitionAnimation"},{"type":"text","text":", it returns its interactionController."},{"type":"text","text":" "},{"type":"text","text":"Otherwise it requests an interactionController from the TabBarCoordinator’s delegate."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Parameters"}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"tabBarController: The delegate owner."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"animationController: The animationController to return the interactionController for."}]}]}]}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:interactioncontrollerfor:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:interactionControllerFor:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"tabBarController(_:interactionControllerFor:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:interactionControllerForAnimationController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:interactionControllerFor:)":{"role":"symbol","title":"tabBarController(_:interactionControllerFor:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:interactionControllerFor:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:interactioncontrollerfor:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:).json new file mode 100644 index 00000000..64f96708 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"tabBarController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldSelect"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabBarController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The destination viewController."}]}]}]},{"kind":"content","content":[{"anchor":"return-value","level":2,"type":"heading","text":"Return Value"},{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The result of the TabBarCooordinator’s delegate. If not specified, it returns true."}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method delegates to the TabBarCoordinator’s delegate."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:shouldselect:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:shouldSelect:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"tabBarController(_:shouldSelect:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldSelect"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:shouldSelectViewController:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:shouldSelect:)":{"role":"symbol","title":"tabBarController(_:shouldSelect:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldSelect"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:shouldSelect:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:shouldselect:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"},"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:).json new file mode 100644 index 00000000..b5952804 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"tabBarController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willBeginCustomizing"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewControllers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"])"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabBarController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"viewControllers","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The source viewControllers."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method delegates to the TabBarCoordinator’s delegate."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willbegincustomizing:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willBeginCustomizing:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"tabBarController(_:willBeginCustomizing:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willBeginCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"])"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:willBeginCustomizingViewControllers:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:willBeginCustomizing:)":{"role":"symbol","title":"tabBarController(_:willBeginCustomizing:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willBeginCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"])"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willBeginCustomizing:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willbegincustomizing:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:).json new file mode 100644 index 00000000..3d2e36d0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"tabBarController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willEndCustomizing"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewControllers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabBarController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The delegate owner."}]}]},{"name":"viewControllers","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The source viewControllers."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This method delegates to the TabBarCoordinator’s delegate."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willendcustomizing:changed:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willEndCustomizing:changed:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"kind":"symbol","metadata":{"role":"symbol","title":"tabBarController(_:willEndCustomizing:changed:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willEndCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"symbolKind":"method","externalID":"c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:willEndCustomizingViewControllers:changed:","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations"]]},"references":{"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/UITabBarControllerDelegate-Implementations":{"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:willEndCustomizing:changed:)":{"role":"symbol","title":"tabBarController(_:willEndCustomizing:changed:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willEndCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willEndCustomizing:changed:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willendcustomizing:changed:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations.json new file mode 100644 index 00000000..c76ec87e --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/UITabBarControllerDelegate-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:animationControllerForTransitionFrom:to:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didEndCustomizing:changed:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didSelect:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:interactionControllerFor:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:shouldSelect:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willBeginCustomizing:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willEndCustomizing:changed:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"UITabBarControllerDelegate Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:willEndCustomizing:changed:)":{"role":"symbol","title":"tabBarController(_:willEndCustomizing:changed:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willEndCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willEndCustomizing:changed:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willendcustomizing:changed:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:interactionControllerFor:)":{"role":"symbol","title":"tabBarController(_:interactionControllerFor:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"interactionControllerFor"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerInteractiveTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerInteractiveTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:interactionControllerFor:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:interactioncontrollerfor:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:animationControllerForTransitionFrom:to:)":{"role":"symbol","title":"tabBarController(_:animationControllerForTransitionFrom:to:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animationControllerForTransitionFrom"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:animationControllerForTransitionFrom:to:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:didEndCustomizing:changed:)":{"role":"symbol","title":"tabBarController(_:didEndCustomizing:changed:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didEndCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"changed"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didEndCustomizing:changed:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didendcustomizing:changed:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:willBeginCustomizing:)":{"role":"symbol","title":"tabBarController(_:willBeginCustomizing:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"willBeginCustomizing"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"])"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:willBeginCustomizing:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willbegincustomizing:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:shouldSelect:)":{"role":"symbol","title":"tabBarController(_:shouldSelect:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"shouldSelect"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:shouldSelect:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:shouldselect:)"},"https://developer.apple.com/documentation/uikit/UITabBarControllerDelegate":{"title":"UITabBarControllerDelegate","titleInlineContent":[{"type":"text","text":"UITabBarControllerDelegate"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate/tabBarController(_:didSelect:)":{"role":"symbol","title":"tabBarController(_:didSelect:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"tabBarController"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"didSelect"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"See "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UITabBarControllerDelegate"},{"type":"text","text":" "},{"type":"text","text":"for further reference."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate\/tabBarController(_:didSelect:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didselect:)"},"doc://XCoordinator/documentation/XCoordinator/TabBarAnimationDelegate":{"role":"symbol","title":"TabBarAnimationDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarAnimationDelegate"}],"abstract":[{"type":"text","text":"TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},{"type":"text","text":" "},{"type":"text","text":"to allow for transitions to specify transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarAnimationDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarAnimationDelegate"}],"url":"\/documentation\/xcoordinator\/tabbaranimationdelegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator.json new file mode 100644 index 00000000..4f177c2f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbarcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"title":"TabBarCoordinator","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator17TabBarCoordinatorC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:initialRoute:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-39l8c","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-w397"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/delegate"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17TabBarCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:tabs:)":{"role":"symbol","title":"init(rootViewController:tabs:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"])"}],"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:)"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:tabs:select:)-w397":{"role":"symbol","title":"init(rootViewController:tabs:select:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs and selects a specific presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-w397","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-w397"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:tabs:select:)-39l8c":{"role":"symbol","title":"init(rootViewController:tabs:select:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs and selects a presentable at a given index."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-39l8c","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-39l8c"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/delegate":{"role":"symbol","title":"delegate","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarControllerDelegate","preciseIdentifier":"c:objc(pl)UITabBarControllerDelegate"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"Use this delegate to get informed about tabbarController-related notifications and delegate methods"},{"type":"text","text":" "},{"type":"text","text":"specifying transition animations. The delegate is only referenced weakly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/delegate","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/delegate"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/delegate.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/delegate.json new file mode 100644 index 00000000..3cacd27c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/delegate.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarControllerDelegate","preciseIdentifier":"c:objc(pl)UITabBarControllerDelegate"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" "},{"kind":"keyword","text":"set"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Set this delegate instead of overriding the delegate of the rootViewController"},{"type":"text","text":" "},{"type":"text","text":"specified in the initializer, if possible, to allow for transition animations"},{"type":"text","text":" "},{"type":"text","text":"to be executed as specified in the "},{"type":"codeVoice","code":"prepareTransition(for:)"},{"type":"text","text":" method\u001c."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbarcoordinator\/delegate"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/delegate","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use this delegate to get informed about tabbarController-related notifications and delegate methods"},{"type":"text","text":" "},{"type":"text","text":"specifying transition animations. The delegate is only referenced weakly."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarControllerDelegate","preciseIdentifier":"c:objc(pl)UITabBarControllerDelegate"},{"kind":"text","text":"?"}],"title":"delegate","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator17TabBarCoordinatorC8delegateSo05UITabC18ControllerDelegate_pSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/delegate":{"role":"symbol","title":"delegate","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"delegate"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UITabBarControllerDelegate","preciseIdentifier":"c:objc(pl)UITabBarControllerDelegate"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"Use this delegate to get informed about tabbarController-related notifications and delegate methods"},{"type":"text","text":" "},{"type":"text","text":"specifying transition animations. The delegate is only referenced weakly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/delegate","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/delegate"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:).json new file mode 100644 index 00000000..7c6682a9 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"override"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17TabBarCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"initialRoute","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If a route is specified, it is triggered before making the coordinator visible."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:initialroute:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:initialRoute:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17TabBarCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"title":"init(rootViewController:initialRoute:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator17TabBarCoordinatorC18rootViewController12initialRouteACyxGSo05UITabcG0C_xSgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator17TabBarCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:initialroute:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:).json new file mode 100644 index 00000000..f2e4395d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"])"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabs","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentables to be used as tabs."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"])"}],"title":"init(rootViewController:tabs:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabsACyxGSo05UITabcG0C_SayAA11Presentable_pGtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:tabs:)":{"role":"symbol","title":"init(rootViewController:tabs:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"])"}],"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c.json new file mode 100644 index 00000000..4d1e64ac --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabs","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The presentables to be used as tabs."}]}]},{"name":"select","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The index of the presentable to be selected before displaying."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-39l8c"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-39l8c","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs and selects a presentable at a given index."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":")"}],"title":"init(rootViewController:tabs:select:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabs6selectACyxGSo05UITabcG0C_SayAA11Presentable_pGSitcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:tabs:select:)-39l8c":{"role":"symbol","title":"init(rootViewController:tabs:select:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs and selects a presentable at a given index."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-39l8c","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-39l8c"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397.json new file mode 100644 index 00000000..bcfa2290 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":" = .init(), "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"tabs","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The presentables to be used as tabs."}]}]},{"name":"select","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be selected before displaying. Make sure, this presentable is one of the"},{"type":"text","text":" "},{"type":"text","text":"specified tabs in the other parameter."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-w397"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-w397","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs and selects a specific presentable."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"title":"init(rootViewController:tabs:select:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabs6selectACyxGSo05UITabcG0C_SayAA11Presentable_pGAaJ_ptcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator/init(rootViewController:tabs:select:)-w397":{"role":"symbol","title":"init(rootViewController:tabs:select:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"tabs"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"select"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates a TabBarCoordinator with a specified set of tabs and selects a specific presentable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator\/init(rootViewController:tabs:select:)-w397","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-w397"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbartransition.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbartransition.json new file mode 100644 index 00000000..c09559f2 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbartransition.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarTransition"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"UITabBarController","preciseIdentifier":"c:objc(cs)UITabBarController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/tabbartransition"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarTransition","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"TabBarTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":" rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarTransition"}],"title":"TabBarTransition","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator16TabBarTransitiona","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TabBarTransition"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarTransition":{"role":"symbol","title":"TabBarTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarTransition"}],"abstract":[{"type":"text","text":"TabBarTransition offers transitions that can be used"},{"type":"text","text":" "},{"type":"text","text":"with a "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarTransition"}],"url":"\/documentation\/xcoordinator\/tabbartransition"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition.json new file mode 100644 index 00000000..5a348b68 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RootViewController"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"codeVoice","code":"Transitions"},{"type":"text","text":" are defined by a "},{"type":"codeVoice","code":"Transition.Perform"},{"type":"text","text":" closure."},{"type":"text","text":" "},{"type":"text","text":"It further provides different context information such as "},{"type":"codeVoice","code":"Transition.presentable"},{"type":"text","text":" and "},{"type":"codeVoice","code":"Transition.animation"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"You can create your own custom transitions using "},{"type":"codeVoice","code":"Transition.init(presentable:animation:perform:)"},{"type":"text","text":" or"},{"type":"text","text":" "},{"type":"text","text":"use one of the many provided static functions to create the most common transitions."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"title":"Transition","roleHeading":"Structure","role":"symbol","symbolKind":"struct","externalID":"s:12XCoordinator10TransitionV","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"Transition"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/init(presentables:animationInUse:perform:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/animation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentables"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(on:with:completion:)"]},{"title":"Type Aliases","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/PerformClosure"]},{"title":"Type Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismiss(animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismissToRoot(animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/embed(_:in:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/none()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(_:on:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(to:animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/popToRoot(animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/present(_:animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentOnRoot(_:animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/push(_:animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/route(_:on:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(_:animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(index:animation:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:_:direction:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-4airv","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-9wr0e","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:for:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/show(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/showDetail(_:)","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/trigger(_:on:)"]},{"title":"Default Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/TransitionProtocol-Implementations"],"generated":true}],"references":{"doc://XCoordinator/documentation/XCoordinator/Transition/pop(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"pop(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pops the topViewController from the rootViewController’s navigation stack."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/pop(animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/show(_:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"show(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"show"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Shows a viewController by calling "},{"type":"codeVoice","code":"show"},{"type":"text","text":" on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/show(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/show(_:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/dismiss(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"dismiss(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismiss"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to call dismiss on the rootViewController’s presentedViewController, if present."},{"type":"text","text":" "},{"type":"text","text":"Otherwise, it is equivalent to "},{"type":"codeVoice","code":"dismissToRoot"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismiss(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/dismiss(animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/none()":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"none()","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"none"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"No transition at all. May be useful for testing or debugging purposes, or to ignore specific"},{"type":"text","text":" "},{"type":"text","text":"routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/none()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/none()"},"doc://XCoordinator/documentation/XCoordinator/Transition/TransitionProtocol-Implementations":{"role":"collectionGroup","title":"TransitionProtocol Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/TransitionProtocol-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/transition\/transitionprotocol-implementations"},"doc://XCoordinator/documentation/XCoordinator/Transition/presentables":{"role":"symbol","title":"presentables","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The presentables this transition is putting into the view hierarchy. This is especially useful for"},{"type":"text","text":" "},{"type":"text","text":"deep-linking."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentables","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/presentables"},"doc://XCoordinator/documentation/XCoordinator/Transition/init(presentables:animationInUse:perform:)":{"role":"symbol","title":"init(presentables:animationInUse:perform:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animationInUse"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"perform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PerformClosure","preciseIdentifier":"s:12XCoordinator10TransitionV14PerformClosurea"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Create your custom transitions with this initializer."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/init(presentables:animationInUse:perform:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/init(presentables:animationinuse:perform:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/presentOnRoot(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"presentOnRoot(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentOnRoot"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to present the given presentable on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentOnRoot(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/presentonroot(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/animation":{"role":"symbol","title":"animation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation this transition is using, i.e. the presentation or dismissal animation"},{"type":"text","text":" "},{"type":"text","text":"of the specified "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object. If the transition does not use any transition animations, "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" "},{"type":"text","text":"is returned."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/animation","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/animation"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:animation:)-9wr0e":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Replaces the navigation stack of the rootViewController with the specified presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-9wr0e","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:animation:)-9wr0e"},"doc://XCoordinator/documentation/XCoordinator/Transition/dismissToRoot(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"dismissToRoot(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to call dismiss on the rootViewController. Also take a look at the "},{"type":"codeVoice","code":"dismiss"},{"type":"text","text":" transition,"},{"type":"text","text":" "},{"type":"text","text":"which calls dismiss on the rootViewController’s presentedViewController, if present."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismissToRoot(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/dismisstoroot(animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/showDetail(_:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"showDetail(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"showDetail"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Shows a detail viewController by calling "},{"type":"codeVoice","code":"showDetail"},{"type":"text","text":" on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/showDetail(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/showdetail(_:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/push(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"push(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"push"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pushes a presentable on the rootViewController’s navigation stack."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/push(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/push(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/perform(on:with:completion:)":{"role":"symbol","title":"perform(on:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator10TransitionV18RootViewControllerxmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Performs a transition on the given viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(on:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/perform(on:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:animation:)-4airv":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to set the tabs of the rootViewController with an optional custom animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-4airv","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:animation:)-4airv"},"doc://XCoordinator/documentation/XCoordinator/Transition/trigger(_:on:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"trigger(_:on:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Use this transition to trigger a route on another router. TransitionOptions and"},{"type":"text","text":" "},{"type":"text","text":"PresentationHandler used during the execution of this transitions are forwarded."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/trigger(_:on:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/trigger(_:on:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/pop(to:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"pop(to:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pops viewControllers from the rootViewController’s navigation stack until the specified"},{"type":"text","text":" "},{"type":"text","text":"presentable is reached."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(to:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/pop(to:animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:_:direction:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:_:direction:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Sets the current page(s) of the rootViewController. Make sure to set"},{"type":"text","text":" "},{"type":"codeVoice","code":"UIPageViewController.isDoubleSided"},{"type":"text","text":" to the appropriate setting before executing this transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/select(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"select(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to select a tab with an optional custom animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/select(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/popToRoot(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"popToRoot(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"popToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pops viewControllers from the rootViewController’s navigation stack until only one viewController"},{"type":"text","text":" "},{"type":"text","text":"is left."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/popToRoot(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/poptoroot(animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Transition/perform(_:on:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"perform(_:on:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"TransitionType"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Performs a transition on a different viewController than the coordinator’s rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(_:on:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/perform(_:on:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/embed(_:in:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"embed(_:in:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"embed"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"in"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to embed the given presentable in a specific container (i.e. a view or viewController)."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/embed(_:in:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/embed(_:in:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/present(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"present(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"present"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to present the given presentable. It uses the rootViewController’s presentedViewController,"},{"type":"text","text":" "},{"type":"text","text":"if present, otherwise it is equivalent to "},{"type":"codeVoice","code":"presentOnRoot"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/present(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/present(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/select(index:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"select(index:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"externalParam","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to select a tab with an optional custom animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(index:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/select(index:animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:for:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:for:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UISplitViewController","preciseIdentifier":"c:objc(cs)UISplitViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Column","preciseIdentifier":"c:@E@UISplitViewControllerColumn"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:for:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator/Transition/PerformClosure":{"role":"symbol","title":"Transition.PerformClosure","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PerformClosure"}],"abstract":[{"type":"text","text":"Perform is the type of closure used to perform the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/PerformClosure","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PerformClosure"}],"url":"\/documentation\/xcoordinator\/transition\/performclosure"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:)"},"doc://XCoordinator/documentation/XCoordinator/Transition/route(_:on:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"route(_:on:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"route"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Use this transition to trigger a route on another coordinator. TransitionOptions and"},{"type":"text","text":" "},{"type":"text","text":"PresentationHandler used during the execution of this transitions are forwarded."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/route(_:on:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/route(_:on:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/animation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/animation.json new file mode 100644 index 00000000..aff7de77 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/animation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/animation"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/animation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The transition animation this transition is using, i.e. the presentation or dismissal animation"},{"type":"text","text":" "},{"type":"text","text":"of the specified "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object. If the transition does not use any transition animations, "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" "},{"type":"text","text":"is returned."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"title":"animation","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator10TransitionV9animationAA0B9Animation_pSgvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/animation":{"role":"symbol","title":"animation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation this transition is using, i.e. the presentation or dismissal animation"},{"type":"text","text":" "},{"type":"text","text":"of the specified "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object. If the transition does not use any transition animations, "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" "},{"type":"text","text":"is returned."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/animation","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/animation"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismiss(animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismiss(animation:).json new file mode 100644 index 00000000..fdfad4f5 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismiss(animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismiss"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to be used by the rootViewController’s presentedViewController."},{"type":"text","text":" "},{"type":"text","text":"Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" to not override its transitioningDelegate or "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to fall back to the"},{"type":"text","text":" "},{"type":"text","text":"default UIKit animations."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/dismiss(animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismiss(animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to call dismiss on the rootViewController’s presentedViewController, if present."},{"type":"text","text":" "},{"type":"text","text":"Otherwise, it is equivalent to "},{"type":"codeVoice","code":"dismissToRoot"},{"type":"text","text":"."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"dismiss(animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismiss"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV7dismiss9animationACyxGAA9AnimationCSg_tFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/dismiss(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"dismiss(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismiss"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to call dismiss on the rootViewController’s presentedViewController, if present."},{"type":"text","text":" "},{"type":"text","text":"Otherwise, it is equivalent to "},{"type":"codeVoice","code":"dismissToRoot"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismiss(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/dismiss(animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismisstoroot(animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismisstoroot(animation:).json new file mode 100644 index 00000000..7375fab5 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismisstoroot(animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to be used by the rootViewController’s presentedViewController."},{"type":"text","text":" "},{"type":"text","text":"Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" to not override its transitioningDelegate or "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to fall back to the"},{"type":"text","text":" "},{"type":"text","text":"default UIKit animations."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/dismisstoroot(animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismissToRoot(animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to call dismiss on the rootViewController. Also take a look at the "},{"type":"codeVoice","code":"dismiss"},{"type":"text","text":" transition,"},{"type":"text","text":" "},{"type":"text","text":"which calls dismiss on the rootViewController’s presentedViewController, if present."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"dismissToRoot(animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV13dismissToRoot9animationACyxGAA9AnimationCSg_tFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/dismissToRoot(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"dismissToRoot(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"dismissToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to call dismiss on the rootViewController. Also take a look at the "},{"type":"codeVoice","code":"dismiss"},{"type":"text","text":" transition,"},{"type":"text","text":" "},{"type":"text","text":"which calls dismiss on the rootViewController’s presentedViewController, if present."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/dismissToRoot(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/dismisstoroot(animation:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/embed(_:in:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/embed(_:in:).json new file mode 100644 index 00000000..61318b29 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/embed(_:in:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"embed"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"in"},{"kind":"text","text":" "},{"kind":"internalParam","text":"container"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","preciseIdentifier":"s:12XCoordinator9ContainerP","text":"Container"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The presentable to be embedded."}]}]},{"name":"container","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The container to embed the presentable in."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/embed(_:in:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/embed(_:in:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to embed the given presentable in a specific container (i.e. a view or viewController)."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"embed(_:in:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"embed"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"in"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV5embed_2inACyxGAA11Presentable_p_AA9Container_ptFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Container":{"role":"symbol","title":"Container","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Container"}],"abstract":[{"type":"text","text":"Container abstracts away from the difference of "},{"type":"codeVoice","code":"UIView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"UIViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Container","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Container"}],"url":"\/documentation\/xcoordinator\/container"},"doc://XCoordinator/documentation/XCoordinator/Transition/embed(_:in:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"embed(_:in:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"embed"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"in"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Container","preciseIdentifier":"s:12XCoordinator9ContainerP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to embed the given presentable in a specific container (i.e. a view or viewController)."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/embed(_:in:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/embed(_:in:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:).json new file mode 100644 index 00000000..36a8c070 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animationInUse"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"perform"},{"kind":"text","text":": "},{"kind":"attribute","text":"@escaping"},{"kind":"text","text":" "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/PerformClosure","preciseIdentifier":"s:12XCoordinator10TransitionV14PerformClosurea","text":"PerformClosure"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentables","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentables this transition is putting into the view hierarchy, if specifiable."},{"type":"text","text":" "},{"type":"text","text":"These presentables are used in the deep-linking feature."}]}]},{"name":"animationInUse","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transition animation this transition is using during the transition, i.e. the present animation"},{"type":"text","text":" "},{"type":"text","text":"of a presenting transition or the dismissal animation of a dismissing transition."},{"type":"text","text":" "},{"type":"text","text":"Make sure to specify an animation here to use your transition with the"},{"type":"text","text":" "},{"type":"codeVoice","code":"registerInteractiveTransition"},{"type":"text","text":" method in your coordinator."}]}]},{"name":"perform","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The perform closure executes the transition."},{"type":"text","text":" "},{"type":"text","text":"To create custom transitions, make sure to call the completion handler after all animations are done."},{"type":"text","text":" "},{"type":"text","text":"If applicable, make sure to use the TransitionOptions to, e.g., decide whether a transition should be animated or not."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Extending Transition with static functions to create transitions with this initializer"},{"type":"text","text":" "},{"type":"text","text":"(instead of calling this initializer in your "},{"type":"codeVoice","code":"prepareTransition(for:)"},{"type":"text","text":" method) is advised"},{"type":"text","text":" "},{"type":"text","text":"as it makes reuse easier."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/init(presentables:animationinuse:perform:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/init(presentables:animationInUse:perform:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Create your custom transitions with this initializer."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animationInUse"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"perform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PerformClosure","preciseIdentifier":"s:12XCoordinator10TransitionV14PerformClosurea"},{"kind":"text","text":")"}],"title":"init(presentables:animationInUse:perform:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator10TransitionV12presentables14animationInUse7performACyxGSayAA11Presentable_pG_AA0B9Animation_pSgyx_AA0B7OptionsVyycSgtctcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/Transition/PerformClosure":{"role":"symbol","title":"Transition.PerformClosure","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PerformClosure"}],"abstract":[{"type":"text","text":"Perform is the type of closure used to perform the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/PerformClosure","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PerformClosure"}],"url":"\/documentation\/xcoordinator\/transition\/performclosure"},"doc://XCoordinator/documentation/XCoordinator/Transition/init(presentables:animationInUse:perform:)":{"role":"symbol","title":"init(presentables:animationInUse:perform:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animationInUse"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"perform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PerformClosure","preciseIdentifier":"s:12XCoordinator10TransitionV14PerformClosurea"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Create your custom transitions with this initializer."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/init(presentables:animationInUse:perform:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/init(presentables:animationinuse:perform:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-2uy55.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-2uy55.json new file mode 100644 index 00000000..e43ba562 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-2uy55.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitions"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":" "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"C"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Collection","preciseIdentifier":"s:Sl"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"C"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Element"},{"kind":"text","text":" == "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"RootViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitions","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transitions to be chained to form the new transition."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/multiple(_:)-2uy55"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-2uy55","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"With this transition you can chain multiple transitions of the same type together."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"multiple(_:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/TransitionProtocol-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/multiple(_:)-2uy55":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"With this transition you can chain multiple transitions of the same type together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-2uy55","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/multiple(_:)-2uy55"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Transition/TransitionProtocol-Implementations":{"role":"collectionGroup","title":"TransitionProtocol Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/TransitionProtocol-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/transition\/transitionprotocol-implementations"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-4o51b.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-4o51b.json new file mode 100644 index 00000000..90173b43 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-4o51b.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitions"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitions","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transitions to be chained to form a combined transition."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/multiple(_:)-4o51b"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-4o51b","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"kind":"symbol","metadata":{"role":"symbol","title":"multiple(_:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"symbolKind":"method","externalID":"s:12XCoordinator18TransitionProtocolPAAE8multipleyxxd_tFZ::SYNTHESIZED::s:12XCoordinator10TransitionV","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/TransitionProtocol-Implementations"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/TransitionProtocol-Implementations":{"role":"collectionGroup","title":"TransitionProtocol Implementations","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/TransitionProtocol-Implementations","kind":"article","type":"topic","url":"\/documentation\/xcoordinator\/transition\/transitionprotocol-implementations"},"doc://XCoordinator/documentation/XCoordinator/Transition/multiple(_:)-4o51b":{"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-4o51b","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/multiple(_:)-4o51b"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/none().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/none().json new file mode 100644 index 00000000..7f0d6570 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/none().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"none"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/none()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/none()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"No transition at all. May be useful for testing or debugging purposes, or to ignore specific"},{"type":"text","text":" "},{"type":"text","text":"routes."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"none()","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"none"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV4noneACyxGyFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition/none()":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"none()","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"none"},{"kind":"text","text":"() -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"No transition at all. May be useful for testing or debugging purposes, or to ignore specific"},{"type":"text","text":" "},{"type":"text","text":"routes."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/none()","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/none()"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(_:on:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(_:on:).json new file mode 100644 index 00000000..c2f6771f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(_:on:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"TransitionType"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":" "},{"kind":"internalParam","text":"viewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa","text":"RootViewController"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":" "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP","text":"TransitionProtocol"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The transition to be performed."}]}]},{"name":"viewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The viewController to perform the transition on."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"This might be helpful when creating a coordinator for a specific viewController would create unnecessary complicated code."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/perform(_:on:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(_:on:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Performs a transition on a different viewController than the coordinator’s rootViewController."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"perform(_:on:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"TransitionType"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/Transition/perform(_:on:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"perform(_:on:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"TransitionType"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ0B4TypeL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Performs a transition on a different viewController than the coordinator’s rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(_:on:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/perform(_:on:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(on:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(on:with:completion:).json new file mode 100644 index 00000000..20e25c29 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(on:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":" "},{"kind":"internalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator10TransitionV18RootViewControllerxmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/perform(on:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(on:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Performs a transition on the given viewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator10TransitionV18RootViewControllerxmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"title":"perform(on:with:completion:)","roleHeading":"Instance Method","role":"symbol","symbolKind":"method","externalID":"s:12XCoordinator10TransitionV7perform2on4with10completionyx_AA0B7OptionsVyycSgtF","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/perform(on:with:completion:)":{"role":"symbol","title":"perform(on:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator10TransitionV18RootViewControllerxmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Performs a transition on the given viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/perform(on:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/perform(on:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/performclosure.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/performclosure.json new file mode 100644 index 00000000..56328590 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/performclosure.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PerformClosure"},{"kind":"text","text":" = ("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator10TransitionV18RootViewControllerxmfp"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"rootViewController","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The rootViewController to perform the transition on."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The options on how to perform the transition, e.g. whether it should be animated or not."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The completion handler of the transition."},{"type":"text","text":" "},{"type":"text","text":"It is called when the transition (including all animations) is completed."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/performclosure"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/PerformClosure","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Perform is the type of closure used to perform the transition."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PerformClosure"}],"title":"Transition.PerformClosure","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator10TransitionV14PerformClosurea","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"PerformClosure"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/Transition/PerformClosure":{"role":"symbol","title":"Transition.PerformClosure","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PerformClosure"}],"abstract":[{"type":"text","text":"Perform is the type of closure used to perform the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/PerformClosure","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PerformClosure"}],"url":"\/documentation\/xcoordinator\/transition\/performclosure"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(animation:).json new file mode 100644 index 00000000..e970d3ac --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to set for the presentable. Only its dismissalAnimation is used for the"},{"type":"text","text":" "},{"type":"text","text":"pop-transition. Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here to leave animations as they were set for the"},{"type":"text","text":" "},{"type":"text","text":"presentable before. You can use "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to reset the previously set animations"},{"type":"text","text":" "},{"type":"text","text":"on this presentable."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/pop(animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Pops the topViewController from the rootViewController’s navigation stack."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"pop(animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop9animationACyxGAA9AnimationCSg_tFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Transition/pop(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"pop(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pops the topViewController from the rootViewController’s navigation stack."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/pop(animation:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(to:animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(to:animation:).json new file mode 100644 index 00000000..fda03b22 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(to:animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"to"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to pop to. Make sure this presentable is in the rootViewController’s"},{"type":"text","text":" "},{"type":"text","text":"navigation stack before performing such a transition."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to set for the presentable. Only its dismissalAnimation is used for the"},{"type":"text","text":" "},{"type":"text","text":"pop-transition. Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here to leave animations as they were set for the"},{"type":"text","text":" "},{"type":"text","text":"presentable before. You can use "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to reset the previously set animations"},{"type":"text","text":" "},{"type":"text","text":"on this presentable."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/pop(to:animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(to:animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Pops viewControllers from the rootViewController’s navigation stack until the specified"},{"type":"text","text":" "},{"type":"text","text":"presentable is reached."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"pop(to:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop2to9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition/pop(to:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"pop(to:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"pop"},{"kind":"text","text":"("},{"kind":"externalParam","text":"to"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pops viewControllers from the rootViewController’s navigation stack until the specified"},{"type":"text","text":" "},{"type":"text","text":"presentable is reached."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/pop(to:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/pop(to:animation:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/poptoroot(animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/poptoroot(animation:).json new file mode 100644 index 00000000..802897f3 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/poptoroot(animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"popToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to set for the presentable. Only its dismissalAnimation is used for the"},{"type":"text","text":" "},{"type":"text","text":"pop-transition. Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here to leave animations as they were set for the"},{"type":"text","text":" "},{"type":"text","text":"presentable before. You can use "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to reset the previously set animations"},{"type":"text","text":" "},{"type":"text","text":"on this presentable."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/poptoroot(animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/popToRoot(animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Pops viewControllers from the rootViewController’s navigation stack until only one viewController"},{"type":"text","text":" "},{"type":"text","text":"is left."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"popToRoot(animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"popToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE9popToRoot9animationACyxGAA9AnimationCSg_tFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Transition/popToRoot(animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"popToRoot(animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"popToRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pops viewControllers from the rootViewController’s navigation stack until only one viewController"},{"type":"text","text":" "},{"type":"text","text":"is left."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/popToRoot(animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/poptoroot(animation:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/present(_:animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/present(_:animation:).json new file mode 100644 index 00000000..279b12a0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/present(_:animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"present"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The presentable to be presented."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to be set as the presentable’s transitioningDelegate. Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" to not override"},{"type":"text","text":" "},{"type":"text","text":"the current transitioningDelegate and "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to reset the transitioningDelegate to use"},{"type":"text","text":" "},{"type":"text","text":"the default UIKit animations."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/present(_:animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/present(_:animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to present the given presentable. It uses the rootViewController’s presentedViewController,"},{"type":"text","text":" "},{"type":"text","text":"if present, otherwise it is equivalent to "},{"type":"codeVoice","code":"presentOnRoot"},{"type":"text","text":"."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"present(_:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"present"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV7present_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition/present(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"present(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"present"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to present the given presentable. It uses the rootViewController’s presentedViewController,"},{"type":"text","text":" "},{"type":"text","text":"if present, otherwise it is equivalent to "},{"type":"codeVoice","code":"presentOnRoot"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/present(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/present(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentables.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentables.json new file mode 100644 index 00000000..fc522a5c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentables.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"] { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/presentables"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentables","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The presentables this transition is putting into the view hierarchy. This is especially useful for"},{"type":"text","text":" "},{"type":"text","text":"deep-linking."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"title":"presentables","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator10TransitionV12presentablesSayAA11Presentable_pGvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/presentables":{"role":"symbol","title":"presentables","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The presentables this transition is putting into the view hierarchy. This is especially useful for"},{"type":"text","text":" "},{"type":"text","text":"deep-linking."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentables","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/presentables"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentonroot(_:animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentonroot(_:animation:).json new file mode 100644 index 00000000..58d173c6 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentonroot(_:animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentOnRoot"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The presentable to be presented."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to be set as the presentable’s transitioningDelegate. Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" to not override"},{"type":"text","text":" "},{"type":"text","text":"the current transitioningDelegate and "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to reset the transitioningDelegate to use"},{"type":"text","text":" "},{"type":"text","text":"the default UIKit animations."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The present-transition might also be helpful as it always presents on top of what is currently"},{"type":"text","text":" "},{"type":"text","text":"presented."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/presentonroot(_:animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentOnRoot(_:animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to present the given presentable on the rootViewController."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"presentOnRoot(_:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentOnRoot"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV13presentOnRoot_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Transition/presentOnRoot(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"presentOnRoot(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentOnRoot"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to present the given presentable on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/presentOnRoot(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/presentonroot(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/push(_:animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/push(_:animation:).json new file mode 100644 index 00000000..7df2be9b --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/push(_:animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"push"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The presentable to be pushed onto the navigation stack."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to set for the presentable. Its presentationAnimation will be used for the"},{"type":"text","text":" "},{"type":"text","text":"immediate push-transition, its dismissalAnimation is used for the pop-transition,"},{"type":"text","text":" "},{"type":"text","text":"if not otherwise specified. Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here to leave animations as they were set for the"},{"type":"text","text":" "},{"type":"text","text":"presentable before. You can use "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to reset the previously set animations"},{"type":"text","text":" "},{"type":"text","text":"on this presentable."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/push(_:animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/push(_:animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Pushes a presentable on the rootViewController’s navigation stack."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"push(_:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"push"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE4push_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition/push(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"push(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"push"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Pushes a presentable on the rootViewController’s navigation stack."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/push(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/push(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/route(_:on:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/route(_:on:).json new file mode 100644 index 00000000..0daa3f36 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/route(_:on:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"route"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":" "},{"kind":"internalParam","text":"coordinator"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":" "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"C"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","preciseIdentifier":"s:12XCoordinator11CoordinatorP","text":"Coordinator"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered on the coordinator."}]}]},{"name":"coordinator","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The coordinator to trigger the route on."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/route(_:on:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/route(_:on:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use this transition to trigger a route on another coordinator. TransitionOptions and"},{"type":"text","text":" "},{"type":"text","text":"PresentationHandler used during the execution of this transitions are forwarded."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"route(_:on:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"route"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/route(_:on:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"route(_:on:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"route"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Use this transition to trigger a route on another coordinator. TransitionOptions and"},{"type":"text","text":" "},{"type":"text","text":"PresentationHandler used during the execution of this transitions are forwarded."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/route(_:on:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/route(_:on:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(_:animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(_:animation:).json new file mode 100644 index 00000000..cf383404 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(_:animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The tab to be selected is the presentable’s viewController. Make sure that this is one of the"},{"type":"text","text":" "},{"type":"text","text":"previously specified tabs of the rootViewController."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to be used. If you specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here, the default animation by UIKit is used."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/select(_:animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(_:animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to select a tab with an optional custom animation."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"select(_:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition/select(_:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"select(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to select a tab with an optional custom animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(_:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/select(_:animation:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(index:animation:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(index:animation:).json new file mode 100644 index 00000000..07df2d72 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(index:animation:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"externalParam","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"index","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The index of the tab to be selected. Make sure that there is a tab at the specified index."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to be used. If you specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here, the default animation by UIKit is used."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/select(index:animation:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(index:animation:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to select a tab with an optional custom animation."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"select(index:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"externalParam","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select5index9animationACyxGSi_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Transition/select(index:animation:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"select(index:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"select"},{"kind":"text","text":"("},{"kind":"externalParam","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":", "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to select a tab with an optional custom animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/select(index:animation:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/select(index:animation:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:).json new file mode 100644 index 00000000..18f9c778 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/set(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:)","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo21UISplitViewControllerCRbzrlE3setyACyxGSayAA11Presentable_pGFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:_:direction:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:_:direction:).json new file mode 100644 index 00000000..0352ffd9 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:_:direction:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"first"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":", "},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"second"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"first","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The first page being shown. If second is specified as "},{"type":"codeVoice","code":"nil"},{"type":"text","text":", this reflects a single page"},{"type":"text","text":" "},{"type":"text","text":"being shown."}]}]},{"name":"second","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The second page being shown. This page is optional, as your rootViewController can be used"},{"type":"text","text":" "},{"type":"text","text":"with "},{"type":"codeVoice","code":"isDoubleSided"},{"type":"text","text":" enabled or not."}]}]},{"name":"direction","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The direction in which the transition should be animated."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/set(_:_:direction:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:_:direction:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Sets the current page(s) of the rootViewController. Make sure to set"},{"type":"text","text":" "},{"type":"codeVoice","code":"UIPageViewController.isDoubleSided"},{"type":"text","text":" to the appropriate setting before executing this transition."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:_:direction:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo20UIPageViewControllerCRbzrlE3set__9directionACyxGAA11Presentable_p_AaI_pSgSo0cdE19NavigationDirectionVtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:_:direction:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:_:direction:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"direction"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIPageViewController","preciseIdentifier":"c:objc(cs)UIPageViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"NavigationDirection","preciseIdentifier":"c:@E@UIPageViewControllerNavigationDirection"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Sets the current page(s) of the rootViewController. Make sure to set"},{"type":"text","text":" "},{"type":"codeVoice","code":"UIPageViewController.isDoubleSided"},{"type":"text","text":" to the appropriate setting before executing this transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:_:direction:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:_:direction:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-4airv.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-4airv.json new file mode 100644 index 00000000..7ed2ed6c --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-4airv.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentables","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The tabs to be set are defined by the presentables’ viewControllers."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to be used. If you specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" here, the default animation by UIKit is used."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/set(_:animation:)-4airv"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-4airv","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Transition to set the tabs of the rootViewController with an optional custom animation."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:animation:)-4airv":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UITabBarController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Transition to set the tabs of the rootViewController with an optional custom animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-4airv","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:animation:)-4airv"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-9wr0e.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-9wr0e.json new file mode 100644 index 00000000..c2d4e76d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-9wr0e.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation","text":"Animation"},{"kind":"text","text":"? = nil) -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentables","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The presentables to make up the navigation stack after the transition is done."}]}]},{"name":"animation","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The animation to set for the presentable. Its presentationAnimation will be used for the"},{"type":"text","text":" "},{"type":"text","text":"transition animation of the top-most viewController, its dismissalAnimation is used for"},{"type":"text","text":" "},{"type":"text","text":"any pop-transition of the whole navigation stack, if not otherwise specified. Specify "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" "},{"type":"text","text":"here to leave animations as they were set for the presentables before. You can use"},{"type":"text","text":" "},{"type":"codeVoice","code":"Animation.default"},{"type":"text","text":" to reset the previously set animations on all presentables."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/set(_:animation:)-9wr0e"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-9wr0e","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Replaces the navigation stack of the rootViewController with the specified presentables."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:animation:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:animation:)-9wr0e":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:animation:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"], "},{"kind":"externalParam","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Animation","preciseIdentifier":"c:@M@XCoordinator@objc(cs)Animation"},{"kind":"text","text":"?) -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Replaces the navigation stack of the rootViewController with the specified presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:animation:)-9wr0e","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:animation:)-9wr0e"},"doc://XCoordinator/documentation/XCoordinator/Animation":{"role":"symbol","title":"Animation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Animation"}],"abstract":[{"type":"codeVoice","code":"Animation"},{"type":"text","text":" is used to set presentation and dismissal animations for presentables."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Animation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Animation"}],"url":"\/documentation\/xcoordinator\/animation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:for:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:for:).json new file mode 100644 index 00000000..6acbe716 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:for:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"for"},{"kind":"text","text":" "},{"kind":"internalParam","text":"column"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UISplitViewController","preciseIdentifier":"c:objc(cs)UISplitViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Column","preciseIdentifier":"c:@E@UISplitViewControllerColumn"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/set(_:for:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:for:)","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"modules":[{"name":"XCoordinator"}],"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:for:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UISplitViewController","preciseIdentifier":"c:objc(cs)UISplitViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Column","preciseIdentifier":"c:@E@UISplitViewControllerColumn"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionVAASo21UISplitViewControllerCRbzrlE3set_3forACyxGAA11Presentable_pSg_So0cdE6ColumnVtFZ","extendedModule":"XCoordinator","platforms":[{"beta":false,"unavailable":false,"name":"iOS","introducedAt":"14.0","deprecated":false}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition/set(_:for:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"set(_:for:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"set"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"for"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UISplitViewController","preciseIdentifier":"c:objc(cs)UISplitViewController"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Column","preciseIdentifier":"c:@E@UISplitViewControllerColumn"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/set(_:for:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/set(_:for:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/show(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/show(_:).json new file mode 100644 index 00000000..6556a6fe --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/show(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"show"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be shown as a primary view controller."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/show(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/show(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Shows a viewController by calling "},{"type":"codeVoice","code":"show"},{"type":"text","text":" on the rootViewController."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"show(_:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"show"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV4showyACyxGAA11Presentable_pFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition/show(_:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"show(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"show"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Shows a viewController by calling "},{"type":"codeVoice","code":"show"},{"type":"text","text":" on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/show(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/show(_:)"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/showdetail(_:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/showdetail(_:).json new file mode 100644 index 00000000..9512ed76 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/showdetail(_:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"showDetail"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"presentable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"presentable","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The presentable to be shown as a detail view controller."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/showdetail(_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/showDetail(_:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Shows a detail viewController by calling "},{"type":"codeVoice","code":"showDetail"},{"type":"text","text":" on the rootViewController."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"showDetail(_:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"showDetail"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV10showDetailyACyxGAA11Presentable_pFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/Transition/showDetail(_:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"showDetail(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"showDetail"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Shows a detail viewController by calling "},{"type":"codeVoice","code":"showDetail"},{"type":"text","text":" on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/showDetail(_:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/showdetail(_:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/transitionprotocol-implementations.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/transitionprotocol-implementations.json new file mode 100644 index 00000000..5aa445ed --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/transitionprotocol-implementations.json @@ -0,0 +1 @@ +{"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/transitionprotocol-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/TransitionProtocol-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Type Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-2uy55","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-4o51b"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"XCoordinator"}],"role":"collectionGroup","title":"TransitionProtocol Implementations"},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition/multiple(_:)-2uy55":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"C"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"C","preciseIdentifier":"s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ1CL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"With this transition you can chain multiple transitions of the same type together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-2uy55","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/multiple(_:)-2uy55"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Transition/multiple(_:)-4o51b":{"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/multiple(_:)-4o51b","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/multiple(_:)-4o51b"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/trigger(_:on:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/trigger(_:on:).json new file mode 100644 index 00000000..97e90ebc --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/trigger(_:on:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"route"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa","text":"RouteType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":" "},{"kind":"internalParam","text":"router"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":" "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"R"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","preciseIdentifier":"s:12XCoordinator6RouterP","text":"Router"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"route","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The route to be triggered on the coordinator."}]}]},{"name":"router","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The router to trigger the route on."}]}]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Peeking is not supported with this transition. If needed, use the "},{"type":"codeVoice","code":"route"},{"type":"text","text":" transition instead."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transition\/trigger(_:on:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/trigger(_:on:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Use this transition to trigger a route on another router. TransitionOptions and"},{"type":"text","text":" "},{"type":"text","text":"PresentationHandler used during the execution of this transitions are forwarded."}],"kind":"symbol","metadata":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"trigger(_:on:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"symbolKind":"method","externalID":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Router/RouteType":{"role":"symbol","title":"RouteType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"Route","preciseIdentifier":"s:12XCoordinator5RouteP"}],"abstract":[{"type":"text","text":"RouteType defines which routes can be triggered in a certain Router implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router\/RouteType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/router\/routetype"},"doc://XCoordinator/documentation/XCoordinator/Transition/trigger(_:on:)":{"conformance":{"constraints":[{"type":"codeVoice","code":"RootViewController"},{"type":"text","text":" inherits "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"trigger(_:on:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"trigger"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"R"},{"kind":"text","text":">("},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator6RouterP9RouteTypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"R","preciseIdentifier":"s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ1RL_qd__mfp"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Transition","preciseIdentifier":"s:12XCoordinator10TransitionV"}],"abstract":[{"type":"text","text":"Use this transition to trigger a route on another router. TransitionOptions and"},{"type":"text","text":" "},{"type":"text","text":"PresentationHandler used during the execution of this transitions are forwarded."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition\/trigger(_:on:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transition\/trigger(_:on:)"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation.json new file mode 100644 index 00000000..29ccff9a --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewControllerAnimatedTransitioning","preciseIdentifier":"c:objc(pl)UIViewControllerAnimatedTransitioning"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"XCoordinator provides different implementations of this protocol with the "},{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":","},{"type":"text","text":" "},{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" and "},{"type":"codeVoice","code":"InterruptibleTransitionAnimation"},{"type":"text","text":" classes."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionanimation"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/objc(pl)NSObject","doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation"],"kind":"relationships","title":"Conforming Types","type":"conformingTypes"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"title":"TransitionAnimation","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator19TransitionAnimationP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/interactionController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/cleanup()","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/start()"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation/start()":{"role":"symbol","title":"start()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Starts the animation by possibly creating a new interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/start()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionanimation\/start()"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation/cleanup()":{"role":"symbol","title":"cleanup()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/cleanup()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionanimation\/cleanup()"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation/interactionController":{"role":"symbol","title":"interactionController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/interactionController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionanimation\/interactioncontroller"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/objc(pl)UIViewControllerAnimatedTransitioning":{"type":"unresolvable","title":"UIKit.UIViewControllerAnimatedTransitioning","identifier":"doc:\/\/XCoordinator\/objc(pl)UIViewControllerAnimatedTransitioning"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator":{"title":"UIViewPropertyAnimator","titleInlineContent":[{"type":"text","text":"UIViewPropertyAnimator"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator","url":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},"doc://XCoordinator/objc(pl)NSObject":{"type":"unresolvable","title":"ObjectiveC.NSObjectProtocol","identifier":"doc:\/\/XCoordinator\/objc(pl)NSObject"},"doc://XCoordinator/documentation/XCoordinator/StaticTransitionAnimation":{"role":"symbol","title":"StaticTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StaticTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"StaticTransitionAnimation"},{"type":"text","text":" can be used to realize static transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/StaticTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StaticTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/statictransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InterruptibleTransitionAnimation":{"role":"symbol","title":"InterruptibleTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"abstract":[{"type":"text","text":"Use InterruptibleTransitionAnimation to define interactive transitions based on the"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/uikit\/UIViewPropertyAnimator"},{"type":"text","text":" "},{"type":"text","text":"APIs introduced in iOS 10."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InterruptibleTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InterruptibleTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interruptibletransitionanimation"},"doc://XCoordinator/documentation/XCoordinator/InteractiveTransitionAnimation":{"role":"symbol","title":"InteractiveTransitionAnimation","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"abstract":[{"type":"codeVoice","code":"InteractiveTransitionAnimation"},{"type":"text","text":" provides a simple interface to create interactive transition animations."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/InteractiveTransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InteractiveTransitionAnimation"}],"url":"\/documentation\/xcoordinator\/interactivetransitionanimation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/cleanup().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/cleanup().json new file mode 100644 index 00000000..702bf621 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/cleanup().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionanimation\/cleanup()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/cleanup()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller."}],"kind":"symbol","metadata":{"role":"symbol","title":"cleanup()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator19TransitionAnimationP7cleanupyyF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation/cleanup()":{"role":"symbol","title":"cleanup()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"cleanup"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/cleanup()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionanimation\/cleanup()"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/interactioncontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/interactioncontroller.json new file mode 100644 index 00000000..3f3f6e89 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/interactioncontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP","text":"PercentDrivenInteractionController"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"discussion","level":2,"type":"heading","text":"Discussion"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The interaction controller is reset when calling "},{"type":"codeVoice","code":"TransitionAnimation.start()"},{"type":"text","text":" can always be "},{"type":"codeVoice","code":"nil"},{"type":"text","text":","},{"type":"text","text":" "},{"type":"text","text":"e.g. in static transition animations."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Until "},{"type":"codeVoice","code":"TransitionAnimation.cleanup()"},{"type":"text","text":" is called, it should always return the same instance."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionanimation\/interactioncontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/interactionController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"kind":"symbol","metadata":{"role":"symbol","title":"interactionController","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"symbolKind":"property","externalID":"s:12XCoordinator19TransitionAnimationP21interactionControllerAA024PercentDrivenInteractionE0_pSgvp","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/PercentDrivenInteractionController":{"role":"symbol","title":"PercentDrivenInteractionController","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PercentDrivenInteractionController"}],"abstract":[{"type":"text","text":"PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},{"type":"text","text":" "},{"type":"text","text":"Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PercentDrivenInteractionController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PercentDrivenInteractionController"}],"url":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation/interactionController":{"role":"symbol","title":"interactionController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"interactionController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PercentDrivenInteractionController","preciseIdentifier":"s:12XCoordinator34PercentDrivenInteractionControllerP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The interaction controller of an animation."},{"type":"text","text":" "},{"type":"text","text":"It gets notified about the state of an animation and handles the specific events accordingly."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/interactionController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionanimation\/interactioncontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/start().json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/start().json new file mode 100644 index 00000000..728f7e91 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/start().json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionanimation\/start()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/start()","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Starts the animation by possibly creating a new interaction controller."}],"kind":"symbol","metadata":{"role":"symbol","title":"start()","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"symbolKind":"method","externalID":"s:12XCoordinator19TransitionAnimationP5startyyF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation/start()":{"role":"symbol","title":"start()","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"start"},{"kind":"text","text":"()"}],"abstract":[{"type":"text","text":"Starts the animation by possibly creating a new interaction controller."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation\/start()","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionanimation\/start()"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext.json new file mode 100644 index 00000000..84678934 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"It is especially useful for deep linking as XCoordinator can internally gather information about"},{"type":"text","text":" "},{"type":"text","text":"the presentables being pushed onto the view hierarchy."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitioncontext"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol"],"kind":"relationships","title":"Inherited By","type":"inheritedBy"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"],"kind":"relationships","title":"Conforming Types","type":"conformingTypes"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","interfaceLanguage":"swift"},"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"title":"TransitionContext","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator17TransitionContextP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/animation","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/presentables"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext/animation":{"role":"symbol","title":"animation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation directly used in the transition, if applicable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/animation","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitioncontext\/animation"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext/presentables":{"role":"symbol","title":"presentables","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The presentables being shown to the user by the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/presentables","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitioncontext\/presentables"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/animation.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/animation.json new file mode 100644 index 00000000..9e1dbac2 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/animation.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP","text":"TransitionAnimation"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitioncontext\/animation"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/animation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The transition animation directly used in the transition, if applicable."}],"kind":"symbol","metadata":{"role":"symbol","title":"animation","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"symbolKind":"property","externalID":"s:12XCoordinator17TransitionContextP9animationAA0B9Animation_pSgvp","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionAnimation":{"role":"symbol","title":"TransitionAnimation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionAnimation"}],"abstract":[{"type":"text","text":"TransitionAnimation aims to provide a common protocol for any type of transition animation used in an "},{"type":"codeVoice","code":"Animation"},{"type":"text","text":" object."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionAnimation"}],"url":"\/documentation\/xcoordinator\/transitionanimation"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext/animation":{"role":"symbol","title":"animation","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"animation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionAnimation","preciseIdentifier":"s:12XCoordinator19TransitionAnimationP"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"The transition animation directly used in the transition, if applicable."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/animation","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitioncontext\/animation"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/presentables.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/presentables.json new file mode 100644 index 00000000..590d85d0 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/presentables.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"},{"kind":"text","text":"] { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitioncontext\/presentables"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/presentables","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The presentables being shown to the user by the transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"presentables","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"symbolKind":"property","externalID":"s:12XCoordinator17TransitionContextP12presentablesSayAA11Presentable_pGvp","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext/presentables":{"role":"symbol","title":"presentables","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"presentables"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP"},{"kind":"text","text":"]"}],"abstract":[{"type":"text","text":"The presentables being shown to the user by the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext\/presentables","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitioncontext\/presentables"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions.json new file mode 100644 index 00000000..16946152 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"You can use TransitionOptions to define whether or not a transition should be animated."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionoptions"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"title":"TransitionOptions","roleHeading":"Structure","role":"symbol","symbolKind":"struct","externalID":"s:12XCoordinator17TransitionOptionsV","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/init(animated:)"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/animated"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionOptions/animated":{"role":"symbol","title":"animated","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"Specifies whether or not the transition should be animated."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/animated","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transitionoptions\/animated"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions/init(animated:)":{"role":"symbol","title":"init(animated:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates transition options on the basis of whether or not it should be animated."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/init(animated:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transitionoptions\/init(animated:)"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/animated.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/animated.json new file mode 100644 index 00000000..2e2f6a38 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/animated.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionoptions\/animated"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/animated","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Specifies whether or not the transition should be animated."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"title":"animated","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:12XCoordinator17TransitionOptionsV8animatedSbvp","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions/animated":{"role":"symbol","title":"animated","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[{"type":"text","text":"Specifies whether or not the transition should be animated."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/animated","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transitionoptions\/animated"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/init(animated:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/init(animated:).json new file mode 100644 index 00000000..2d67c417 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/init(animated:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"animated","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"Whether or not the animation should be animated."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionoptions\/init(animated:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/init(animated:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates transition options on the basis of whether or not it should be animated."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"title":"init(animated:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator17TransitionOptionsV8animatedACSb_tcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions/init(animated:)":{"role":"symbol","title":"init(animated:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"animated"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Creates transition options on the basis of whether or not it should be animated."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions\/init(animated:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transitionoptions\/init(animated:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer.json new file mode 100644 index 00000000..cc42cb54 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"TransitionType"},{"kind":"text","text":"> : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","preciseIdentifier":"s:12XCoordinator11PresentableP","text":"Presentable"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionperformer"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator"],"kind":"relationships","title":"Inherited By","type":"inheritedBy"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator"],"kind":"relationships","title":"Conforming Types","type":"conformingTypes"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"title":"TransitionPerformer","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator19TransitionPerformerP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Associated Types","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType"]},{"title":"Instance Properties","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/rootViewController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/performTransition(_:with:completion:)"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/SplitCoordinator":{"role":"symbol","title":"SplitCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SplitCoordinator"}],"abstract":[{"type":"text","text":"SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},{"type":"text","text":" "},{"type":"codeVoice","code":"UISplitViewController"},{"type":"text","text":"."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/SplitCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SplitCoordinator"}],"url":"\/documentation\/xcoordinator\/splitcoordinator"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/TabBarCoordinator":{"role":"symbol","title":"TabBarCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"TabBarCoordinator"}],"abstract":[{"type":"text","text":"Use a TabBarCoordinator to coordinate a flow where a "},{"type":"codeVoice","code":"UITabbarController"},{"type":"text","text":" serves as a rootViewController."},{"type":"text","text":" "},{"type":"text","text":"With a TabBarCoordinator, you get access to all tabbarController-related transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TabBarCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TabBarCoordinator"}],"url":"\/documentation\/xcoordinator\/tabbarcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/rootViewController":{"role":"symbol","title":"rootViewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"}],"abstract":[{"type":"text","text":"The rootViewController on which transitions are performed."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/rootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/performTransition(_:with:completion:)":{"defaultImplementations":1,"role":"symbol","title":"performTransition(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Perform a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/performTransition(_:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/performtransition(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/PageCoordinator":{"role":"symbol","title":"PageCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PageCoordinator"}],"abstract":[{"type":"text","text":"PageCoordinator provides a base class for your custom coordinator with a "},{"type":"codeVoice","code":"UIPageViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PageCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PageCoordinator"}],"url":"\/documentation\/xcoordinator\/pagecoordinator"},"doc://XCoordinator/documentation/XCoordinator/NavigationCoordinator":{"role":"symbol","title":"NavigationCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationCoordinator"}],"abstract":[{"type":"text","text":"NavigationCoordinator acts as a base class for custom coordinators with a "},{"type":"codeVoice","code":"UINavigationController"},{"type":"text","text":" "},{"type":"text","text":"as rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/NavigationCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationCoordinator"}],"url":"\/documentation\/xcoordinator\/navigationcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/BasicCoordinator":{"role":"symbol","title":"BasicCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BasicCoordinator"}],"abstract":[{"type":"text","text":"BasicCoordinator is a coordinator class that can be used without subclassing."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BasicCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BasicCoordinator"}],"url":"\/documentation\/xcoordinator\/basiccoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:).json new file mode 100644 index 00000000..eeef5edd --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transition"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transition","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The transition to be performed."}]}]},{"name":"options","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The options on how to perform the transition, including the option to enable\/disable animations."}]}]},{"name":"completion","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"The completion handler called once a transition has finished."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionperformer\/performtransition(_:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"defaultImplementationsSections":[{"title":"Coordinator Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/performTransition(_:with:completion:)"]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/performTransition(_:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Perform a transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"performTransition(_:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator19TransitionPerformerP07performB0_4with10completiony0B4TypeQz_AA0B7OptionsVyycSgtF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/performTransition(_:with:completion:)":{"defaultImplementations":1,"role":"symbol","title":"performTransition(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Perform a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/performTransition(_:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/performtransition(_:with:completion:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/Coordinator/performTransition(_:with:completion:)":{"role":"symbol","title":"performTransition(_:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"performTransition"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Perform a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator\/performTransition(_:with:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/coordinator\/performtransition(_:with:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/rootviewcontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/rootviewcontroller.json new file mode 100644 index 00000000..8c64ef3d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/rootviewcontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","text":"TransitionType"},{"kind":"text","text":"."},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa","text":"RootViewController"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionperformer\/rootviewcontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/rootViewController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The rootViewController on which transitions are performed."}],"kind":"symbol","metadata":{"role":"symbol","title":"rootViewController","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"}],"symbolKind":"property","externalID":"s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/rootViewController":{"role":"symbol","title":"rootViewController","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionType","preciseIdentifier":"s:12XCoordinator19TransitionPerformerP0B4TypeQa"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"}],"abstract":[{"type":"text","text":"The rootViewController on which transitions are performed."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/rootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/transitiontype.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/transitiontype.json new file mode 100644 index 00000000..ae1b5250 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/transitiontype.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP","text":"TransitionProtocol"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionperformer\/transitiontype"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"kind":"symbol","metadata":{"role":"symbol","title":"TransitionType","roleHeading":"Associated Type","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"symbolKind":"associatedtype","externalID":"s:12XCoordinator19TransitionPerformerP0B4TypeQa","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer/TransitionType":{"role":"symbol","title":"TransitionType","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"TransitionProtocol","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP"}],"abstract":[{"type":"text","text":"The type of transitions that can be executed on the rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer\/TransitionType","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol.json new file mode 100644 index 00000000..c00f3a76 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","preciseIdentifier":"s:12XCoordinator17TransitionContextP","text":"TransitionContext"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"content","content":[{"anchor":"overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"codeVoice","code":"Transition"},{"type":"text","text":" is provided as an easily-extensible default transition type implementation."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionprotocol"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition"],"kind":"relationships","title":"Conforming Types","type":"conformingTypes"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","interfaceLanguage":"swift"},"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"title":"TransitionProtocol","roleHeading":"Protocol","role":"symbol","symbolKind":"protocol","externalID":"s:12XCoordinator18TransitionProtocolP","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Associated Types","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController"]},{"title":"Instance Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/perform(on:with:completion:)"]},{"title":"Type Methods","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-ukju"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/multiple(_:)-ukju":{"defaultImplementations":1,"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Self"}],"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-ukju","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-ukju"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"},"doc://XCoordinator/documentation/XCoordinator/TransitionContext":{"role":"symbol","title":"TransitionContext","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionContext"}],"abstract":[{"type":"codeVoice","code":"TransitionContext"},{"type":"text","text":" provides context information about transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionContext"}],"url":"\/documentation\/xcoordinator\/transitioncontext"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/perform(on:with:completion:)":{"role":"symbol","title":"perform(on:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Performs a transition on the given viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/perform(on:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/perform(on:with:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5.json new file mode 100644 index 00000000..c3e3fcaa --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitions"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitions","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transitions to be chained to form a combined transition."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-5w9m5"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-5w9m5","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"kind":"symbol","metadata":{"role":"symbol","title":"multiple(_:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"symbolKind":"method","externalID":"s:12XCoordinator18TransitionProtocolPAAE8multipleyxxd_tFZ","extendedModule":"XCoordinator","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-ukju"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/multiple(_:)-ukju":{"defaultImplementations":1,"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Self"}],"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-ukju","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-ukju"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/multiple(_:)-5w9m5":{"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-5w9m5","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-5w9m5"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju.json new file mode 100644 index 00000000..235aa625 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"externalParam","text":"_"},{"kind":"text","text":" "},{"kind":"internalParam","text":"transitions"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Self"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"transitions","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"The transitions to be chained to form a combined transition."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-ukju"],"traits":[{"interfaceLanguage":"swift"}]}],"defaultImplementationsSections":[{"title":"TransitionProtocol Implementations","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-5w9m5"]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-ukju","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"kind":"symbol","metadata":{"role":"symbol","title":"multiple(_:)","roleHeading":"Type Method","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Self"}],"symbolKind":"method","externalID":"s:12XCoordinator18TransitionProtocolP8multipleyxSayxGFZ","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/multiple(_:)-ukju":{"defaultImplementations":1,"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"(["},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"]) -> "},{"kind":"typeIdentifier","text":"Self"}],"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-ukju","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-ukju"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/multiple(_:)-5w9m5":{"role":"symbol","title":"multiple(_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"multiple"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":"...) -> "},{"kind":"typeIdentifier","text":"Self"}],"abstract":[{"type":"text","text":"Creates a compound transition by chaining multiple transitions together."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/multiple(_:)-5w9m5","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-5w9m5"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:).json new file mode 100644 index 00000000..91c5a06f --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":" "},{"kind":"internalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"kind":"internalParam","text":"options"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV","text":"TransitionOptions"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera","text":"PresentationHandler"},{"kind":"text","text":"?)"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionprotocol\/perform(on:with:completion:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/perform(on:with:completion:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Performs a transition on the given viewController."}],"kind":"symbol","metadata":{"role":"symbol","title":"perform(on:with:completion:)","roleHeading":"Instance Method","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"symbolKind":"method","externalID":"s:12XCoordinator18TransitionProtocolP7perform2on4with10completiony18RootViewControllerQz_AA0B7OptionsVyycSgtF","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/PresentationHandler":{"role":"symbol","title":"PresentationHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"PresentationHandler"}],"abstract":[{"type":"text","text":"The completion handler for transitions."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/PresentationHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PresentationHandler"}],"url":"\/documentation\/xcoordinator\/presentationhandler"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/TransitionOptions":{"role":"symbol","title":"TransitionOptions","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionOptions"}],"abstract":[{"type":"text","text":"TransitionOptions specifies transition customization points defined at the point of triggering a transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionOptions","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionOptions"}],"url":"\/documentation\/xcoordinator\/transitionoptions"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/perform(on:with:completion:)":{"role":"symbol","title":"perform(on:with:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"perform"},{"kind":"text","text":"("},{"kind":"externalParam","text":"on"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa"},{"kind":"text","text":", "},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"TransitionOptions","preciseIdentifier":"s:12XCoordinator17TransitionOptionsV"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"PresentationHandler","preciseIdentifier":"s:12XCoordinator19PresentationHandlera"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"Performs a transition on the given viewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/perform(on:with:completion:)","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/perform(on:with:completion:)"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/rootviewcontroller.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/rootviewcontroller.json new file mode 100644 index 00000000..9f5fa372 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/rootviewcontroller.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"kind":"symbol","metadata":{"role":"symbol","title":"RootViewController","roleHeading":"Associated Type","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"symbolKind":"associatedtype","externalID":"s:12XCoordinator18TransitionProtocolP18RootViewControllerQa","required":true,"modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol"]]},"references":{"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol/RootViewController":{"role":"symbol","title":"RootViewController","fragments":[{"kind":"keyword","text":"associatedtype"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"}],"abstract":[{"type":"text","text":"The type of the rootViewController that can execute the transition."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol\/RootViewController","kind":"symbol","required":true,"type":"topic","url":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller"},"doc://XCoordinator/documentation/XCoordinator/TransitionProtocol":{"role":"symbol","title":"TransitionProtocol","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionProtocol"}],"abstract":[{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":" is used to abstract any concrete transition implementation."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionProtocol","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionProtocol"}],"url":"\/documentation\/xcoordinator\/transitionprotocol"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator.json new file mode 100644 index 00000000..316692b7 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"},{"kind":"text","text":"<"},{"kind":"genericParameter","text":"RouteType"},{"kind":"text","text":"> "},{"kind":"keyword","text":"where"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"RouteType"},{"kind":"text","text":" : "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","preciseIdentifier":"s:12XCoordinator5RouteP","text":"Route"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/viewcoordinator"],"traits":[{"interfaceLanguage":"swift"}]}],"relationshipsSections":[{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator"],"kind":"relationships","title":"Inherits From","type":"inheritsFrom"},{"identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer"],"kind":"relationships","title":"Conforms To","type":"conformsTo"}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"title":"ViewCoordinator","roleHeading":"Class","role":"symbol","symbolKind":"class","externalID":"s:12XCoordinator15ViewCoordinatorC","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator\/init(rootViewController:initialRoute:)"]}],"references":{"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15ViewCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/viewcoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/TransitionPerformer":{"role":"symbol","title":"TransitionPerformer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"TransitionPerformer"}],"abstract":[{"type":"text","text":"The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},{"type":"text","text":" "},{"type":"text","text":"It keeps type information about its transition performing capabilities."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/TransitionPerformer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"TransitionPerformer"}],"url":"\/documentation\/xcoordinator\/transitionperformer"},"doc://XCoordinator/documentation/XCoordinator/Presentable":{"role":"symbol","title":"Presentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Presentable"}],"abstract":[{"type":"text","text":"Presentable represents all objects that can be presented (i.e. shown) to the user."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Presentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Presentable"}],"url":"\/documentation\/xcoordinator\/presentable"},"doc://XCoordinator/documentation/XCoordinator/Router":{"role":"symbol","title":"Router","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Router"}],"abstract":[{"type":"text","text":"The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Router","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Router"}],"url":"\/documentation\/xcoordinator\/router"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Coordinator":{"role":"symbol","title":"Coordinator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Coordinator"}],"abstract":[{"type":"text","text":"Coordinator is the protocol every coordinator conforms to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Coordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Coordinator"}],"url":"\/documentation\/xcoordinator\/coordinator"},"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator":{"role":"symbol","title":"BaseCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BaseCoordinator"}],"abstract":[{"type":"text","text":"BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BaseCoordinator"}],"url":"\/documentation\/xcoordinator\/basecoordinator"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Route":{"role":"symbol","title":"Route","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Route"}],"abstract":[{"type":"text","text":"This is the protocol your route types need to conform to."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Route","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Route"}],"url":"\/documentation\/xcoordinator\/route"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:).json b/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:).json new file mode 100644 index 00000000..8f94be1d --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:).json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"override"},{"kind":"text","text":" "},{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera","text":"RootViewController"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15ViewCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"? = nil)"}],"languages":["swift"],"platforms":["iOS"]}]},{"kind":"parameters","parameters":[{"name":"initialRoute","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":""},{"type":"text","text":" "},{"type":"text","text":"If a route is specified, it is triggered before making the coordinator visible."}]}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/viewcoordinator\/init(rootviewcontroller:initialroute:)"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator\/init(rootViewController:initialRoute:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"kind":"symbol","metadata":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15ViewCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"title":"init(rootViewController:initialRoute:)","roleHeading":"Initializer","role":"symbol","symbolKind":"init","externalID":"s:12XCoordinator15ViewCoordinatorC04rootB10Controller12initialRouteACyxGSo06UIViewE0C_xSgtcfc","modules":[{"name":"XCoordinator"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator","doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/BaseCoordinator/RootViewController-swift.typealias-8ybij":{"conformance":{"constraints":[{"type":"codeVoice","code":"RouteType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"Route"},{"type":"text","text":" and "},{"type":"codeVoice","code":"TransitionType"},{"type":"text","text":" conforms to "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."}],"availabilityPrefix":[{"type":"text","text":"Available when"}],"conformancePrefix":[{"type":"text","text":"Conforms when"}]},"role":"symbol","title":"BaseCoordinator.RootViewController","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"RootViewController"}],"abstract":[{"type":"text","text":"Shortcut for "},{"type":"codeVoice","code":"BaseCoordinator.TransitionType.RootViewController"}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/BaseCoordinator\/RootViewController-swift.typealias-8ybij","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"RootViewController"}],"url":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator/init(rootViewController:initialRoute:)":{"role":"symbol","title":"init(rootViewController:initialRoute:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"rootViewController"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RootViewController","preciseIdentifier":"s:12XCoordinator15BaseCoordinatorC18RootViewControllera"},{"kind":"text","text":", "},{"kind":"externalParam","text":"initialRoute"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"RouteType","preciseIdentifier":"s:12XCoordinator15ViewCoordinatorC9RouteTypexmfp"},{"kind":"text","text":"?)"}],"abstract":[{"type":"text","text":"This initializer trigger a route before the coordinator is made visible."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator\/init(rootViewController:initialRoute:)","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator\/viewcoordinator\/init(rootviewcontroller:initialroute:)"},"doc://XCoordinator/documentation/XCoordinator/ViewCoordinator":{"role":"symbol","title":"ViewCoordinator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewCoordinator"}],"abstract":[{"type":"text","text":"ViewCoordinator is a base class for custom coordinators with a "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewCoordinator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewCoordinator"}],"url":"\/documentation\/xcoordinator\/viewcoordinator"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/data/documentation/xcoordinator/viewtransition.json b/XCoordinator.doccarchive/data/documentation/xcoordinator/viewtransition.json new file mode 100644 index 00000000..018cfb91 --- /dev/null +++ b/XCoordinator.doccarchive/data/documentation/xcoordinator/viewtransition.json @@ -0,0 +1 @@ +{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewTransition"},{"kind":"text","text":" = "},{"kind":"typeIdentifier","identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","preciseIdentifier":"s:12XCoordinator10TransitionV","text":"Transition"},{"kind":"text","text":"<"},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":">"}],"languages":["swift"],"platforms":["iOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/xcoordinator\/viewtransition"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewTransition","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"ViewTransition offers transitions common to any "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewTransition"}],"title":"ViewTransition","roleHeading":"Type Alias","role":"symbol","symbolKind":"typealias","externalID":"s:12XCoordinator14ViewTransitiona","modules":[{"name":"XCoordinator"}],"navigatorTitle":[{"kind":"identifier","text":"ViewTransition"}]},"hierarchy":{"paths":[["doc:\/\/XCoordinator\/documentation\/XCoordinator"]]},"references":{"doc://XCoordinator/documentation/XCoordinator/ViewTransition":{"role":"symbol","title":"ViewTransition","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewTransition"}],"abstract":[{"type":"text","text":"ViewTransition offers transitions common to any "},{"type":"codeVoice","code":"UIViewController"},{"type":"text","text":" rootViewController."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/ViewTransition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewTransition"}],"url":"\/documentation\/xcoordinator\/viewtransition"},"doc://XCoordinator/documentation/XCoordinator":{"role":"collection","title":"XCoordinator","abstract":[],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator","kind":"symbol","type":"topic","url":"\/documentation\/xcoordinator"},"doc://XCoordinator/documentation/XCoordinator/Transition":{"role":"symbol","title":"Transition","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Transition"}],"abstract":[{"type":"text","text":"This struct represents the common implementation of the "},{"type":"codeVoice","code":"TransitionProtocol"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"It is used in every of the provided "},{"type":"codeVoice","code":"BaseCoordinator"},{"type":"text","text":" subclasses and provides all transitions implemented in XCoordinator."}],"identifier":"doc:\/\/XCoordinator\/documentation\/XCoordinator\/Transition","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Transition"}],"url":"\/documentation\/xcoordinator\/transition"}}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/developer-og-twitter.jpg b/XCoordinator.doccarchive/developer-og-twitter.jpg new file mode 100644 index 00000000..63c48359 Binary files /dev/null and b/XCoordinator.doccarchive/developer-og-twitter.jpg differ diff --git a/XCoordinator.doccarchive/developer-og.jpg b/XCoordinator.doccarchive/developer-og.jpg new file mode 100644 index 00000000..4db84083 Binary files /dev/null and b/XCoordinator.doccarchive/developer-og.jpg differ diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(fordismissed:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(fordismissed:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(fordismissed:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/default/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/default/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/default/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/dismissalanimation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/dismissalanimation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/dismissalanimation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/init(presentation:dismissal:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/init(presentation:dismissal:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/init(presentation:dismissal:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/presentationanimation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/presentationanimation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/presentationanimation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/addchild(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/addchild(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/addchild(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/chain(routes:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/chain(routes:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/chain(routes:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/children/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/children/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/children/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/childtransitioncompleted()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/childtransitioncompleted()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/childtransitioncompleted()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/coordinator-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/coordinator-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/coordinator-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/preparetransition(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/preparetransition(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/preparetransition(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presentable-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presentable-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presentable-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presented(from:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presented(from:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presented(from:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerparent(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerparent(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerparent(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerpeek(for:route:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerpeek(for:route:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerpeek(for:route:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechild(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechild(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechild(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechildrenifneeded()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechildrenifneeded()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechildrenifneeded()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/setroot(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/setroot(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/setroot(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/transitionperformer-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/transitionperformer-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/transitionperformer-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-614jt/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-614jt/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-614jt/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-8iux/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-8iux/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-8iux/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/preparetransition(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/preparetransition(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/preparetransition(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/presented(from:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/presented(from:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/presented(from:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basicnavigationcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basicnavigationcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basicnavigationcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basictabbarcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basictabbarcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basictabbarcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/basicviewcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/basicviewcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/basicviewcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/container/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/container/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/container/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/container/view/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/container/view/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/container/view/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/container/viewcontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/container/viewcontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/container/viewcontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/contextpresentationhandler/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/contextpresentationhandler/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/contextpresentationhandler/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/addchild(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/addchild(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/addchild(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/chain(routes:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/chain(routes:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/chain(routes:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/childtransitioncompleted()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/childtransitioncompleted()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/childtransitioncompleted()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/performtransition(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/performtransition(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/performtransition(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/preparetransition(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/preparetransition(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/preparetransition(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presentable-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presentable-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presentable-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presented(from:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presented(from:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presented(from:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/registerpeek(for:route:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/registerpeek(for:route:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/registerpeek(for:route:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechild(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechild(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechild(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechildrenifneeded()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechildrenifneeded()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechildrenifneeded()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/rootviewcontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/rootviewcontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/rootviewcontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/viewcontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/viewcontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/viewcontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/cleanup()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/cleanup()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/cleanup()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/start()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/start()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/start()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/animationdelegate/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/animationdelegate/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/animationdelegate/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/delegate/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/delegate/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/delegate/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/navigationtransition/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/navigationtransition/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/navigationtransition/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/datasource/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/datasource/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/datasource/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/loop/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/loop/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/loop/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pages/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pages/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pages/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/pagetransition/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/pagetransition/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/pagetransition/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/cancel()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/cancel()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/cancel()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/finish()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/finish()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/finish()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-7l34o/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-7l34o/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-7l34o/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-vlfa/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-vlfa/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-vlfa/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-2syh0/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-2syh0/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-2syh0/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/router(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/router(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/router(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-7uc80/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-7uc80/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-7uc80/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-8jtc1/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-8jtc1/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-8jtc1/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/viewcontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/viewcontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentable/viewcontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/presentationhandler/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/presentationhandler/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/presentationhandler/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/childtransitioncompleted()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/childtransitioncompleted()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/childtransitioncompleted()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/parent/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/parent/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/parent/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presentable-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presentable-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presentable-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presented(from:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presented(from:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presented(from:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/registerparent(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/registerparent(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/registerparent(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/setroot(for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/setroot(for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/setroot(for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/viewcontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/viewcontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/viewcontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/route/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/route/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/route/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/routetype/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/routetype/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/routetype/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-7y4ig/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-7y4ig/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-7y4ig/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-pmke/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-pmke/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-pmke/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/splittransition/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/splittransition/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/splittransition/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/animatetransition(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/animatetransition(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/animatetransition(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/cleanup()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/cleanup()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/cleanup()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/interactioncontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/interactioncontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/interactioncontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/start()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/start()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/start()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/transitionduration(using:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/transitionduration(using:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/transitionduration(using:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/delegate/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/delegate/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/delegate/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/tabbartransition/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/tabbartransition/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/tabbartransition/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/animation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/animation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/animation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismiss(animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismiss(animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismiss(animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismisstoroot(animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismisstoroot(animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismisstoroot(animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/embed(_:in:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/embed(_:in:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/embed(_:in:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-2uy55/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-2uy55/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-2uy55/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-4o51b/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-4o51b/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-4o51b/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/none()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/none()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/none()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(_:on:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(_:on:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(_:on:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(on:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(on:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(on:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/performclosure/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/performclosure/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/performclosure/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(to:animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(to:animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(to:animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/poptoroot(animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/poptoroot(animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/poptoroot(animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/present(_:animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/present(_:animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/present(_:animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentables/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentables/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentables/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentonroot(_:animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentonroot(_:animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentonroot(_:animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/push(_:animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/push(_:animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/push(_:animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/route(_:on:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/route(_:on:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/route(_:on:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(_:animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(_:animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(_:animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(index:animation:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(index:animation:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(index:animation:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:_:direction:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:_:direction:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:_:direction:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-4airv/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-4airv/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-4airv/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-9wr0e/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-9wr0e/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-9wr0e/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:for:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:for:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:for:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/show(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/show(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/show(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/showdetail(_:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/showdetail(_:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/showdetail(_:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/transitionprotocol-implementations/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/transitionprotocol-implementations/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/transitionprotocol-implementations/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transition/trigger(_:on:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transition/trigger(_:on:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transition/trigger(_:on:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/cleanup()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/cleanup()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/cleanup()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/interactioncontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/interactioncontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/interactioncontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/start()/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/start()/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/start()/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/animation/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/animation/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/animation/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/presentables/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/presentables/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/presentables/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/animated/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/animated/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/animated/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/init(animated:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/init(animated:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/init(animated:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/rootviewcontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/rootviewcontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/rootviewcontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/transitiontype/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/transitiontype/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/transitiontype/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/rootviewcontroller/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/rootviewcontroller/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/rootviewcontroller/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:)/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:)/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:)/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/viewtransition/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/viewtransition/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/documentation/xcoordinator/viewtransition/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/favicon.ico b/XCoordinator.doccarchive/favicon.ico new file mode 100644 index 00000000..5231da6d Binary files /dev/null and b/XCoordinator.doccarchive/favicon.ico differ diff --git a/XCoordinator.doccarchive/favicon.svg b/XCoordinator.doccarchive/favicon.svg new file mode 100644 index 00000000..c54c53fb --- /dev/null +++ b/XCoordinator.doccarchive/favicon.svg @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg b/XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg new file mode 100644 index 00000000..6bb6d89a --- /dev/null +++ b/XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg b/XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg new file mode 100644 index 00000000..a0f80086 --- /dev/null +++ b/XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/XCoordinator.doccarchive/img/modified-icon.f496e73d.svg b/XCoordinator.doccarchive/img/modified-icon.f496e73d.svg new file mode 100644 index 00000000..3e0bd6f0 --- /dev/null +++ b/XCoordinator.doccarchive/img/modified-icon.f496e73d.svg @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/XCoordinator.doccarchive/img/no-image@2x.df2a0a50.png b/XCoordinator.doccarchive/img/no-image@2x.df2a0a50.png new file mode 100644 index 00000000..041394ed Binary files /dev/null and b/XCoordinator.doccarchive/img/no-image@2x.df2a0a50.png differ diff --git a/XCoordinator.doccarchive/index.html b/XCoordinator.doccarchive/index.html new file mode 100644 index 00000000..b22dc0ee --- /dev/null +++ b/XCoordinator.doccarchive/index.html @@ -0,0 +1 @@ +Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/index/availability.index b/XCoordinator.doccarchive/index/availability.index new file mode 100644 index 00000000..02d24f3d Binary files /dev/null and b/XCoordinator.doccarchive/index/availability.index differ diff --git a/XCoordinator.doccarchive/index/data.mdb b/XCoordinator.doccarchive/index/data.mdb new file mode 100755 index 00000000..1dc809c4 Binary files /dev/null and b/XCoordinator.doccarchive/index/data.mdb differ diff --git a/XCoordinator.doccarchive/index/index.json b/XCoordinator.doccarchive/index/index.json new file mode 100644 index 00000000..bd763e5a --- /dev/null +++ b/XCoordinator.doccarchive/index/index.json @@ -0,0 +1 @@ +{"interfaceLanguages":{"swift":[{"children":[{"title":"Classes","type":"groupMarker"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/animation\/init(presentation:dismissal:)","title":"init(presentation: TransitionAnimation?, dismissal: TransitionAnimation?)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/animation\/dismissalanimation","title":"var dismissalAnimation: TransitionAnimation?","type":"property"},{"path":"\/documentation\/xcoordinator\/animation\/presentationanimation","title":"var presentationAnimation: TransitionAnimation?","type":"property"},{"title":"Type Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/animation\/default","title":"static let `default`: Animation","type":"property"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/animation\/animationcontroller(fordismissed:)","title":"func animationController(forDismissed: UIViewController) -> UIViewControllerAnimatedTransitioning?","type":"method"},{"path":"\/documentation\/xcoordinator\/animation\/animationcontroller(forpresented:presenting:source:)","title":"func animationController(forPresented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning?","type":"method"},{"path":"\/documentation\/xcoordinator\/animation\/interactioncontrollerfordismissal(using:)","title":"func interactionControllerForDismissal(using: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning?","type":"method"},{"path":"\/documentation\/xcoordinator\/animation\/interactioncontrollerforpresentation(using:)","title":"func interactionControllerForPresentation(using: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning?","type":"method"}],"path":"\/documentation\/xcoordinator\/animation\/uiviewcontrollertransitioningdelegate-implementations","title":"UIViewControllerTransitioningDelegate Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/animation","title":"Animation","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialroute:)","title":"init(rootViewController: RootViewController, initialRoute: RouteType?)","type":"init"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/init(rootviewcontroller:initialtransition:)","title":"init(rootViewController: RootViewController, initialTransition: TransitionType?)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/children","title":"var children: [Presentable]","type":"property"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.property","title":"var rootViewController: RootViewController","type":"property"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-614jt","title":"var viewController: UIViewController!","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/addchild(_:)","title":"func addChild(Presentable)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/preparetransition(for:)","title":"func prepareTransition(for: RouteType) -> TransitionType","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/presented(from:)","title":"func presented(from: Presentable?)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:handler:completion:)","title":"func registerInteractiveTransition(for: RouteType, triggeredBy: GestureRecognizer, handler: (_ handlerRecognizer: GestureRecognizer, _ transition: () -> TransitionAnimation?) -> Void, completion: PresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)","title":"func registerInteractiveTransition(for: RouteType, triggeredBy: GestureRecognizer, progress: (GestureRecognizer) -> CGFloat, shouldFinish: (GestureRecognizer) -> Bool, completion: PresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/registerparent(_:)","title":"func registerParent(Presentable & AnyObject)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/removechild(_:)","title":"func removeChild(Presentable)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/removechildrenifneeded()","title":"func removeChildrenIfNeeded()","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/router(for:)","title":"func router(for: R) -> (any Router)?","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/unregisterinteractivetransitions(triggeredby:)","title":"func unregisterInteractiveTransitions(triggeredBy: UIGestureRecognizer)","type":"method"},{"title":"Type Aliases","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-8ybij","title":"BaseCoordinator.RootViewController","type":"typealias"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/viewcontroller-8iux","title":"var viewController: UIViewController!","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/chain(routes:)","title":"func chain(routes: [RouteType]) -> TransitionType","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-5tg0j","title":"func deepLink(RouteType, S) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/deeplink(_:_:)-7vijh","title":"func deepLink(RouteType, Route...) -> Transition","type":"method"},{"deprecated":true,"path":"\/documentation\/xcoordinator\/basecoordinator\/registerpeek(for:route:)","title":"func registerPeek(for: Container, route: RouteType) -> Transition","type":"method"},{"title":"Type Aliases","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/rootviewcontroller-swift.typealias-6xno2","title":"BaseCoordinator.RootViewController","type":"typealias"}],"path":"\/documentation\/xcoordinator\/basecoordinator\/coordinator-implementations","title":"Coordinator Implementations","type":"symbol"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/childtransitioncompleted()","title":"func childTransitionCompleted()","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/setroot(for:)","title":"func setRoot(for: UIWindow)","type":"method"}],"path":"\/documentation\/xcoordinator\/basecoordinator\/presentable-implementations","title":"Presentable Implementations","type":"symbol"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:)","title":"func contextTrigger(RouteType, with: TransitionOptions) async -> TransitionContext","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/contexttrigger(_:with:completion:)","title":"func contextTrigger(RouteType, with: TransitionOptions, completion: ContextPresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:)","title":"func trigger(RouteType) async","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:completion:)","title":"func trigger(RouteType, completion: PresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:)","title":"func trigger(RouteType, with: TransitionOptions)","type":"method"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/trigger(_:with:completion:)","title":"func trigger(RouteType, with: TransitionOptions, completion: PresentationHandler?)","type":"method"}],"path":"\/documentation\/xcoordinator\/basecoordinator\/router-implementations","title":"Router Implementations","type":"symbol"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basecoordinator\/performtransition(_:with:completion:)","title":"func performTransition(TransitionType, with: TransitionOptions, completion: PresentationHandler?)","type":"method"}],"path":"\/documentation\/xcoordinator\/basecoordinator\/transitionperformer-implementations","title":"TransitionPerformer Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/basecoordinator","title":"BaseCoordinator","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basiccoordinator\/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)","title":"init(rootViewController: RootViewController, initialRoute: RouteType?, initialLoadingType: InitialLoadingType, prepareTransition: ((RouteType) -> TransitionType)?)","type":"init"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basiccoordinator\/preparetransition(for:)","title":"func prepareTransition(for: RouteType) -> TransitionType","type":"method"},{"path":"\/documentation\/xcoordinator\/basiccoordinator\/presented(from:)","title":"func presented(from: Presentable?)","type":"method"},{"title":"Enumerations","type":"groupMarker"},{"children":[{"title":"Enumeration Cases","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/immediately","title":"case immediately","type":"case"},{"path":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/presented","title":"case presented","type":"case"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Operators","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/!=(_:_:)","title":"static func != (Self, Self) -> Bool","type":"op"}],"path":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype\/equatable-implementations","title":"Equatable Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/basiccoordinator\/initialloadingtype","title":"BasicCoordinator.InitialLoadingType","type":"enum"}],"path":"\/documentation\/xcoordinator\/basiccoordinator","title":"BasicCoordinator","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:)","title":"init(duration: TimeInterval, transition: (UIViewControllerContextTransitioning) -> Void)","type":"init"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(duration:transition:generateinteractioncontroller:)","title":"init(duration: TimeInterval, transition: (UIViewControllerContextTransitioning) -> Void, generateInteractionController: () -> PercentDrivenInteractionController?)","type":"init"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:)","title":"init(transitionAnimation: StaticTransitionAnimation)","type":"init"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/init(transitionanimation:generateinteractioncontroller:)","title":"init(transitionAnimation: StaticTransitionAnimation, generateInteractionController: () -> PercentDrivenInteractionController?)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/interactioncontroller","title":"var interactionController: PercentDrivenInteractionController?","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/animatetransition(using:)","title":"func animateTransition(using: UIViewControllerContextTransitioning)","type":"method"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/cleanup()","title":"func cleanup()","type":"method"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/generateinteractioncontroller()","title":"func generateInteractionController() -> PercentDrivenInteractionController?","type":"method"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/start()","title":"func start()","type":"method"},{"path":"\/documentation\/xcoordinator\/interactivetransitionanimation\/transitionduration(using:)","title":"func transitionDuration(using: UIViewControllerContextTransitioning?) -> TimeInterval","type":"method"}],"path":"\/documentation\/xcoordinator\/interactivetransitionanimation","title":"InteractiveTransitionAnimation","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:)","title":"init(duration: TimeInterval, generateAnimator: (UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating)","type":"init"},{"path":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/init(duration:generateanimator:generateinteractioncontroller:)","title":"init(duration: TimeInterval, generateAnimator: (UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating, generateInteractionController: () -> PercentDrivenInteractionController?)","type":"init"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/animatetransition(using:)","title":"func animateTransition(using: UIViewControllerContextTransitioning)","type":"method"},{"path":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/generateinterruptibleanimator(using:)","title":"func generateInterruptibleAnimator(using: UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating","type":"method"},{"path":"\/documentation\/xcoordinator\/interruptibletransitionanimation\/interruptibleanimator(using:)","title":"func interruptibleAnimator(using: UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating","type":"method"}],"path":"\/documentation\/xcoordinator\/interruptibletransitionanimation","title":"InterruptibleTransitionAnimation","type":"class"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/transitionprogressthreshold","title":"var transitionProgressThreshold: CGFloat","type":"property"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/velocitythreshold","title":"var velocityThreshold: CGFloat","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/handleinteractivepopgesturerecognizer(_:)","title":"func handleInteractivePopGestureRecognizer(UIGestureRecognizer)","type":"method"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/setuppopgesturerecognizer(for:)","title":"func setupPopGestureRecognizer(for: UINavigationController)","type":"method"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/gesturerecognizershouldbegin(_:)","title":"func gestureRecognizerShouldBegin(UIGestureRecognizer) -> Bool","type":"method"}],"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uigesturerecognizerdelegate-implementations","title":"UIGestureRecognizerDelegate Implementations","type":"symbol"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:animationcontrollerfor:from:to:)","title":"func navigationController(UINavigationController, animationControllerFor: UINavigationController.Operation, from: UIViewController, to: UIViewController) -> UIViewControllerAnimatedTransitioning?","type":"method"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:didshow:animated:)","title":"func navigationController(UINavigationController, didShow: UIViewController, animated: Bool)","type":"method"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:interactioncontrollerfor:)","title":"func navigationController(UINavigationController, interactionControllerFor: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning?","type":"method"},{"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/navigationcontroller(_:willshow:animated:)","title":"func navigationController(UINavigationController, willShow: UIViewController, animated: Bool)","type":"method"}],"path":"\/documentation\/xcoordinator\/navigationanimationdelegate\/uinavigationcontrollerdelegate-implementations","title":"UINavigationControllerDelegate Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/navigationanimationdelegate","title":"NavigationAnimationDelegate","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:initialroute:)","title":"init(rootViewController: RootViewController, initialRoute: RouteType?)","type":"init"},{"path":"\/documentation\/xcoordinator\/navigationcoordinator\/init(rootviewcontroller:root:)","title":"init(rootViewController: RootViewController, root: Presentable)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/navigationcoordinator\/animationdelegate","title":"let animationDelegate: NavigationAnimationDelegate","type":"property"},{"path":"\/documentation\/xcoordinator\/navigationcoordinator\/delegate","title":"var delegate: UINavigationControllerDelegate?","type":"property"}],"path":"\/documentation\/xcoordinator\/navigationcoordinator","title":"NavigationCoordinator","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:datasource:set:_:direction:)","title":"init(rootViewController: RootViewController, dataSource: UIPageViewControllerDataSource, set: Presentable, Presentable?, direction: UIPageViewController.NavigationDirection)","type":"init"},{"path":"\/documentation\/xcoordinator\/pagecoordinator\/init(rootviewcontroller:pages:loop:set:_:direction:)","title":"init(rootViewController: RootViewController, pages: [Presentable], loop: Bool, set: Presentable?, Presentable?, direction: UIPageViewController.NavigationDirection)","type":"init"},{"path":"\/documentation\/xcoordinator\/pagecoordinator\/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)","title":"init(transitionStyle: UIPageViewController.TransitionStyle, navigationOrientation: UIPageViewController.NavigationOrientation, isDoubleSided: Bool, spineLocation: UIPageViewController.SpineLocation?, interPageSpacing: CGFloat?, pages: [Presentable], loop: Bool, set: Presentable?, Presentable?, direction: UIPageViewController.NavigationDirection)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/pagecoordinator\/datasource","title":"let dataSource: UIPageViewControllerDataSource","type":"property"}],"path":"\/documentation\/xcoordinator\/pagecoordinator","title":"PageCoordinator","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/init(pages:loop:)","title":"init(pages: [UIViewController], loop: Bool)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/loop","title":"var loop: Bool","type":"property"},{"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pages","title":"var pages: [UIViewController]","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerafter:)","title":"func pageViewController(UIPageViewController, viewControllerAfter: UIViewController) -> UIViewController?","type":"method"},{"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/pageviewcontroller(_:viewcontrollerbefore:)","title":"func pageViewController(UIPageViewController, viewControllerBefore: UIViewController) -> UIViewController?","type":"method"},{"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationcount(for:)","title":"func presentationCount(for: UIPageViewController) -> Int","type":"method"},{"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource\/presentationindex(for:)","title":"func presentationIndex(for: UIPageViewController) -> Int","type":"method"}],"path":"\/documentation\/xcoordinator\/pagecoordinatordatasource","title":"PageCoordinatorDataSource","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/init(viewcontroller:parent:map:)","title":"init(viewController: UIViewController, parent: any Router, map: ((RouteType) -> ParentRoute)?)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/parent","title":"let parent: any Router","type":"property"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/viewcontroller","title":"var viewController: UIViewController!","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:completion:)","title":"func contextTrigger(RouteType, with: TransitionOptions, completion: ContextPresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/maptoparentroute(_:)","title":"func mapToParentRoute(RouteType) -> ParentRoute","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/router(for:)","title":"func router(for: R) -> (any Router)?","type":"method"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/childtransitioncompleted()","title":"func childTransitionCompleted()","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/presented(from:)","title":"func presented(from: Presentable?)","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/registerparent(_:)","title":"func registerParent(Presentable & AnyObject)","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/setroot(for:)","title":"func setRoot(for: UIWindow)","type":"method"}],"path":"\/documentation\/xcoordinator\/redirectionrouter\/presentable-implementations","title":"Presentable Implementations","type":"symbol"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/contexttrigger(_:with:)","title":"func contextTrigger(RouteType, with: TransitionOptions) async -> TransitionContext","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:)","title":"func trigger(RouteType) async","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:completion:)","title":"func trigger(RouteType, completion: PresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:)","title":"func trigger(RouteType, with: TransitionOptions)","type":"method"},{"path":"\/documentation\/xcoordinator\/redirectionrouter\/trigger(_:with:completion:)","title":"func trigger(RouteType, with: TransitionOptions, completion: PresentationHandler?)","type":"method"}],"path":"\/documentation\/xcoordinator\/redirectionrouter\/router-implementations","title":"Router Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/redirectionrouter","title":"RedirectionRouter","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:initialroute:)","title":"init(rootViewController: RootViewController, initialRoute: RouteType?)","type":"init"},{"path":"\/documentation\/xcoordinator\/splitcoordinator\/init(rootviewcontroller:primary:secondary:supplementary:)","title":"init(rootViewController: RootViewController, primary: Presentable, secondary: Presentable?, supplementary: Presentable?)","type":"init"}],"path":"\/documentation\/xcoordinator\/splitcoordinator","title":"SplitCoordinator","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/statictransitionanimation\/init(duration:performanimation:)","title":"init(duration: TimeInterval, performAnimation: (_ context: UIViewControllerContextTransitioning) -> Void)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/statictransitionanimation\/interactioncontroller","title":"var interactionController: PercentDrivenInteractionController?","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/statictransitionanimation\/animatetransition(using:)","title":"func animateTransition(using: UIViewControllerContextTransitioning)","type":"method"},{"path":"\/documentation\/xcoordinator\/statictransitionanimation\/cleanup()","title":"func cleanup()","type":"method"},{"path":"\/documentation\/xcoordinator\/statictransitionanimation\/start()","title":"func start()","type":"method"},{"path":"\/documentation\/xcoordinator\/statictransitionanimation\/transitionduration(using:)","title":"func transitionDuration(using: UIViewControllerContextTransitioning?) -> TimeInterval","type":"method"}],"path":"\/documentation\/xcoordinator\/statictransitionanimation","title":"StaticTransitionAnimation","type":"class"},{"children":[{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)","title":"func tabBarController(UITabBarController, animationControllerForTransitionFrom: UIViewController, to: UIViewController) -> UIViewControllerAnimatedTransitioning?","type":"method"},{"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didendcustomizing:changed:)","title":"func tabBarController(UITabBarController, didEndCustomizing: [UIViewController], changed: Bool)","type":"method"},{"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:didselect:)","title":"func tabBarController(UITabBarController, didSelect: UIViewController)","type":"method"},{"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:interactioncontrollerfor:)","title":"func tabBarController(UITabBarController, interactionControllerFor: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning?","type":"method"},{"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:shouldselect:)","title":"func tabBarController(UITabBarController, shouldSelect: UIViewController) -> Bool","type":"method"},{"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willbegincustomizing:)","title":"func tabBarController(UITabBarController, willBeginCustomizing: [UIViewController])","type":"method"},{"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/tabbarcontroller(_:willendcustomizing:changed:)","title":"func tabBarController(UITabBarController, willEndCustomizing: [UIViewController], changed: Bool)","type":"method"}],"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate\/uitabbarcontrollerdelegate-implementations","title":"UITabBarControllerDelegate Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/tabbaranimationdelegate","title":"TabBarAnimationDelegate","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:initialroute:)","title":"init(rootViewController: RootViewController, initialRoute: RouteType?)","type":"init"},{"path":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:)","title":"init(rootViewController: RootViewController, tabs: [Presentable])","type":"init"},{"path":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-39l8c","title":"init(rootViewController: RootViewController, tabs: [Presentable], select: Int)","type":"init"},{"path":"\/documentation\/xcoordinator\/tabbarcoordinator\/init(rootviewcontroller:tabs:select:)-w397","title":"init(rootViewController: RootViewController, tabs: [Presentable], select: Presentable)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/tabbarcoordinator\/delegate","title":"var delegate: UITabBarControllerDelegate?","type":"property"}],"path":"\/documentation\/xcoordinator\/tabbarcoordinator","title":"TabBarCoordinator","type":"class"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/viewcoordinator\/init(rootviewcontroller:initialroute:)","title":"init(rootViewController: RootViewController, initialRoute: RouteType?)","type":"init"}],"path":"\/documentation\/xcoordinator\/viewcoordinator","title":"ViewCoordinator","type":"class"},{"title":"Protocols","type":"groupMarker"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/container\/view","title":"var view: UIView!","type":"property"},{"path":"\/documentation\/xcoordinator\/container\/viewcontroller","title":"var viewController: UIViewController!","type":"property"}],"path":"\/documentation\/xcoordinator\/container","title":"Container","type":"protocol"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/coordinator\/viewcontroller","title":"var viewController: UIViewController!","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/coordinator\/addchild(_:)","title":"func addChild(Presentable)","type":"method"},{"path":"\/documentation\/xcoordinator\/coordinator\/chain(routes:)","title":"func chain(routes: [RouteType]) -> TransitionType","type":"method"},{"path":"\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-3460y","title":"func deepLink(RouteType, S) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/coordinator\/deeplink(_:_:)-5e278","title":"func deepLink(RouteType, Route...) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/coordinator\/preparetransition(for:)","title":"func prepareTransition(for: RouteType) -> TransitionType","type":"method"},{"deprecated":true,"path":"\/documentation\/xcoordinator\/coordinator\/registerpeek(for:route:)","title":"func registerPeek(for: Container, route: RouteType) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/coordinator\/removechild(_:)","title":"func removeChild(Presentable)","type":"method"},{"path":"\/documentation\/xcoordinator\/coordinator\/removechildrenifneeded()","title":"func removeChildrenIfNeeded()","type":"method"},{"title":"Type Aliases","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/coordinator\/rootviewcontroller","title":"Coordinator.RootViewController","type":"typealias"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/coordinator\/childtransitioncompleted()","title":"func childTransitionCompleted()","type":"method"},{"path":"\/documentation\/xcoordinator\/coordinator\/presented(from:)","title":"func presented(from: Presentable?)","type":"method"}],"path":"\/documentation\/xcoordinator\/coordinator\/presentable-implementations","title":"Presentable Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/coordinator","title":"Coordinator","type":"protocol"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/cancel()","title":"func cancel()","type":"method"},{"path":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/finish()","title":"func finish()","type":"method"},{"path":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller\/update(_:)","title":"func update(CGFloat)","type":"method"}],"path":"\/documentation\/xcoordinator\/percentdriveninteractioncontroller","title":"PercentDrivenInteractionController","type":"protocol"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/presentable\/viewcontroller","title":"var viewController: UIViewController!","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"children":[{"children":[{"path":"\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-4nvzl","title":"func childTransitionCompleted()","type":"method"}],"title":"Presentable Implementations","type":"groupMarker"}],"path":"\/documentation\/xcoordinator\/presentable\/childtransitioncompleted()-3jrlv","title":"func childTransitionCompleted()","type":"method"},{"children":[{"children":[{"path":"\/documentation\/xcoordinator\/presentable\/presented(from:)-7l34o","title":"func presented(from: Presentable?)","type":"method"}],"title":"Presentable Implementations","type":"groupMarker"}],"path":"\/documentation\/xcoordinator\/presentable\/presented(from:)-vlfa","title":"func presented(from: Presentable?)","type":"method"},{"children":[{"children":[{"path":"\/documentation\/xcoordinator\/presentable\/registerparent(_:)-1b0o3","title":"func registerParent(Presentable & AnyObject)","type":"method"}],"title":"Presentable Implementations","type":"groupMarker"}],"path":"\/documentation\/xcoordinator\/presentable\/registerparent(_:)-2syh0","title":"func registerParent(Presentable & AnyObject)","type":"method"},{"path":"\/documentation\/xcoordinator\/presentable\/router(for:)","title":"func router(for: R) -> (any Router)?","type":"method"},{"children":[{"children":[{"path":"\/documentation\/xcoordinator\/presentable\/setroot(for:)-8jtc1","title":"func setRoot(for: UIWindow)","type":"method"}],"title":"Presentable Implementations","type":"groupMarker"}],"path":"\/documentation\/xcoordinator\/presentable\/setroot(for:)-7uc80","title":"func setRoot(for: UIWindow)","type":"method"}],"path":"\/documentation\/xcoordinator\/presentable","title":"Presentable","type":"protocol"},{"path":"\/documentation\/xcoordinator\/route","title":"Route","type":"protocol"},{"children":[{"title":"Associated Types","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/router\/routetype","title":"RouteType","type":"associatedtype"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/router\/contexttrigger(_:with:)","title":"func contextTrigger(RouteType, with: TransitionOptions) async -> TransitionContext","type":"method"},{"children":[{"children":[{"path":"\/documentation\/xcoordinator\/coordinator\/contexttrigger(_:with:completion:)","title":"func contextTrigger(RouteType, with: TransitionOptions, completion: ContextPresentationHandler?)","type":"method"}],"title":"Coordinator Implementations","type":"groupMarker"}],"path":"\/documentation\/xcoordinator\/router\/contexttrigger(_:with:completion:)","title":"func contextTrigger(RouteType, with: TransitionOptions, completion: ContextPresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/router\/trigger(_:)","title":"func trigger(RouteType) async","type":"method"},{"path":"\/documentation\/xcoordinator\/router\/trigger(_:completion:)","title":"func trigger(RouteType, completion: PresentationHandler?)","type":"method"},{"path":"\/documentation\/xcoordinator\/router\/trigger(_:with:)-7y4ig","title":"func trigger(RouteType, with: TransitionOptions)","type":"method"},{"path":"\/documentation\/xcoordinator\/router\/trigger(_:with:)-pmke","title":"func trigger(RouteType, with: TransitionOptions) async","type":"method"},{"path":"\/documentation\/xcoordinator\/router\/trigger(_:with:completion:)","title":"func trigger(RouteType, with: TransitionOptions, completion: PresentationHandler?)","type":"method"}],"path":"\/documentation\/xcoordinator\/router","title":"Router","type":"protocol"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionanimation\/interactioncontroller","title":"var interactionController: PercentDrivenInteractionController?","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionanimation\/cleanup()","title":"func cleanup()","type":"method"},{"path":"\/documentation\/xcoordinator\/transitionanimation\/start()","title":"func start()","type":"method"}],"path":"\/documentation\/xcoordinator\/transitionanimation","title":"TransitionAnimation","type":"protocol"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitioncontext\/animation","title":"var animation: TransitionAnimation?","type":"property"},{"path":"\/documentation\/xcoordinator\/transitioncontext\/presentables","title":"var presentables: [Presentable]","type":"property"}],"path":"\/documentation\/xcoordinator\/transitioncontext","title":"TransitionContext","type":"protocol"},{"children":[{"title":"Associated Types","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionperformer\/transitiontype","title":"TransitionType","type":"associatedtype"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionperformer\/rootviewcontroller","title":"var rootViewController: TransitionType.RootViewController","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"children":[{"children":[{"path":"\/documentation\/xcoordinator\/coordinator\/performtransition(_:with:completion:)","title":"func performTransition(TransitionType, with: TransitionOptions, completion: PresentationHandler?)","type":"method"}],"title":"Coordinator Implementations","type":"groupMarker"}],"path":"\/documentation\/xcoordinator\/transitionperformer\/performtransition(_:with:completion:)","title":"func performTransition(TransitionType, with: TransitionOptions, completion: PresentationHandler?)","type":"method"}],"path":"\/documentation\/xcoordinator\/transitionperformer","title":"TransitionPerformer","type":"protocol"},{"children":[{"title":"Associated Types","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionprotocol\/rootviewcontroller","title":"RootViewController","type":"associatedtype"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionprotocol\/perform(on:with:completion:)","title":"func perform(on: RootViewController, with: TransitionOptions, completion: PresentationHandler?)","type":"method"},{"title":"Type Methods","type":"groupMarker"},{"children":[{"children":[{"path":"\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-5w9m5","title":"static func multiple(Self...) -> Self","type":"method"}],"title":"TransitionProtocol Implementations","type":"groupMarker"}],"path":"\/documentation\/xcoordinator\/transitionprotocol\/multiple(_:)-ukju","title":"static func multiple([Self]) -> Self","type":"method"}],"path":"\/documentation\/xcoordinator\/transitionprotocol","title":"TransitionProtocol","type":"protocol"},{"title":"Structures","type":"groupMarker"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transition\/init(presentables:animationinuse:perform:)","title":"init(presentables: [Presentable], animationInUse: TransitionAnimation?, perform: PerformClosure)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transition\/animation","title":"var animation: TransitionAnimation?","type":"property"},{"path":"\/documentation\/xcoordinator\/transition\/presentables","title":"var presentables: [Presentable]","type":"property"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transition\/perform(on:with:completion:)","title":"func perform(on: RootViewController, with: TransitionOptions, completion: PresentationHandler?)","type":"method"},{"title":"Type Aliases","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transition\/performclosure","title":"Transition.PerformClosure","type":"typealias"},{"title":"Type Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transition\/dismiss(animation:)","title":"static func dismiss(animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/dismisstoroot(animation:)","title":"static func dismissToRoot(animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/embed(_:in:)","title":"static func embed(Presentable, in: Container) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/none()","title":"static func none() -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/perform(_:on:)","title":"static func perform(TransitionType, on: TransitionType.RootViewController) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/pop(animation:)","title":"static func pop(animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/pop(to:animation:)","title":"static func pop(to: Presentable, animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/poptoroot(animation:)","title":"static func popToRoot(animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/present(_:animation:)","title":"static func present(Presentable, animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/presentonroot(_:animation:)","title":"static func presentOnRoot(Presentable, animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/push(_:animation:)","title":"static func push(Presentable, animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/route(_:on:)","title":"static func route(C.RouteType, on: C) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/select(_:animation:)","title":"static func select(Presentable, animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/select(index:animation:)","title":"static func select(index: Int, animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/set(_:)","title":"static func set([Presentable]) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/set(_:_:direction:)","title":"static func set(Presentable, Presentable?, direction: UIPageViewController.NavigationDirection) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/set(_:animation:)-4airv","title":"static func set([Presentable], animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/set(_:animation:)-9wr0e","title":"static func set([Presentable], animation: Animation?) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/set(_:for:)","title":"static func set(Presentable?, for: UISplitViewController.Column) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/show(_:)","title":"static func show(Presentable) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/showdetail(_:)","title":"static func showDetail(Presentable) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/trigger(_:on:)","title":"static func trigger(R.RouteType, on: R) -> Transition","type":"method"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Type Methods","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transition\/multiple(_:)-2uy55","title":"static func multiple(C) -> Transition","type":"method"},{"path":"\/documentation\/xcoordinator\/transition\/multiple(_:)-4o51b","title":"static func multiple(Self...) -> Self","type":"method"}],"path":"\/documentation\/xcoordinator\/transition\/transitionprotocol-implementations","title":"TransitionProtocol Implementations","type":"symbol"}],"path":"\/documentation\/xcoordinator\/transition","title":"Transition","type":"struct"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionoptions\/init(animated:)","title":"init(animated: Bool)","type":"init"},{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/transitionoptions\/animated","title":"let animated: Bool","type":"property"}],"path":"\/documentation\/xcoordinator\/transitionoptions","title":"TransitionOptions","type":"struct"},{"title":"Type Aliases","type":"groupMarker"},{"path":"\/documentation\/xcoordinator\/basicnavigationcoordinator","title":"BasicNavigationCoordinator","type":"typealias"},{"path":"\/documentation\/xcoordinator\/basictabbarcoordinator","title":"BasicTabBarCoordinator","type":"typealias"},{"path":"\/documentation\/xcoordinator\/basicviewcoordinator","title":"BasicViewCoordinator","type":"typealias"},{"path":"\/documentation\/xcoordinator\/contextpresentationhandler","title":"ContextPresentationHandler","type":"typealias"},{"path":"\/documentation\/xcoordinator\/navigationtransition","title":"NavigationTransition","type":"typealias"},{"path":"\/documentation\/xcoordinator\/pagetransition","title":"PageTransition","type":"typealias"},{"path":"\/documentation\/xcoordinator\/presentationhandler","title":"PresentationHandler","type":"typealias"},{"path":"\/documentation\/xcoordinator\/splittransition","title":"SplitTransition","type":"typealias"},{"path":"\/documentation\/xcoordinator\/tabbartransition","title":"TabBarTransition","type":"typealias"},{"path":"\/documentation\/xcoordinator\/viewtransition","title":"ViewTransition","type":"typealias"}],"path":"\/documentation\/xcoordinator","title":"XCoordinator","type":"module"}]},"schemaVersion":{"major":0,"minor":1,"patch":1}} \ No newline at end of file diff --git a/XCoordinator.doccarchive/index/navigator.index b/XCoordinator.doccarchive/index/navigator.index new file mode 100644 index 00000000..d2b944a7 Binary files /dev/null and b/XCoordinator.doccarchive/index/navigator.index differ diff --git a/XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js b/XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js new file mode 100644 index 00000000..74345f0c --- /dev/null +++ b/XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0d3105"],{"5abe":function(t,e){(function(){"use strict";if("object"===typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){var e=t,n=i(e);while(n)e=n.ownerDocument,n=i(e);return e}(window.document),e=[],n=null,o=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return n||(n=function(t,n){o=t&&n?g(t,n):p(),e.forEach((function(t){t._checkForIntersections()}))}),n},s._resetCrossOriginUpdater=function(){n=null,o=null},s.prototype.observe=function(t){var e=this._observationTargets.some((function(e){return e.element==t}));if(!e){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,n){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==n[e-1]}))},s.prototype._parseRootMargin=function(t){var e=t||"0px",n=e.split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return n[1]=n[1]||n[0],n[2]=n[2]||n[0],n[3]=n[3]||n[1],n},s.prototype._monitorIntersections=function(e){var n=e.defaultView;if(n&&-1==this._monitoringDocuments.indexOf(e)){var o=this._checkForIntersections,r=null,s=null;this.POLL_INTERVAL?r=n.setInterval(o,this.POLL_INTERVAL):(c(n,"resize",o,!0),c(e,"scroll",o,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in n&&(s=new n.MutationObserver(o),s.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push((function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),a(t,"resize",o,!0)),a(e,"scroll",o,!0),s&&s.disconnect()}));var h=this.root&&(this.root.ownerDocument||this.root)||t;if(e!=h){var u=i(e);u&&this._monitorIntersections(u.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var n=this._monitoringDocuments.indexOf(e);if(-1!=n){var o=this.root&&(this.root.ownerDocument||this.root)||t,r=this._observationTargets.some((function(t){var n=t.element.ownerDocument;if(n==e)return!0;while(n&&n!=o){var r=i(n);if(n=r&&r.ownerDocument,n==e)return!0}return!1}));if(!r){var s=this._monitoringUnsubscribes[n];if(this._monitoringDocuments.splice(n,1),this._monitoringUnsubscribes.splice(n,1),s(),e!=o){var h=i(e);h&&this._unmonitorIntersections(h.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e=0&&h>=0&&{top:n,bottom:o,left:i,right:r,width:s,height:h}||null}function f(t){var e;try{e=t.getBoundingClientRect()}catch(n){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):p()}function p(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function d(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function g(t,e){var n=e.top-t.top,o=e.left-t.left;return{top:n,left:o,height:e.height,width:e.width,bottom:n+e.height,right:o+e.width}}function m(t,e){var n=e;while(n){if(n==t)return!0;n=v(n)}return!1}function v(e){var n=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(n&&n.assignedSlot&&(n=n.assignedSlot.parentNode),n&&11==n.nodeType&&n.host?n.host:n)}function w(t){return t&&9===t.nodeType}})()}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/chunk-384ef189.bb1ed903.js b/XCoordinator.doccarchive/js/chunk-384ef189.bb1ed903.js new file mode 100644 index 00000000..548fde95 --- /dev/null +++ b/XCoordinator.doccarchive/js/chunk-384ef189.bb1ed903.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-384ef189"],{"00b4":function(e,t,n){"use strict";var a,r,i,o,s,c,l,d,p=n("7b1f"),u={name:"ChangedToken",render(e){const{kind:t,tokens:n}=this;return e("span",{class:["token-"+t,"token-changed"]},n.map(t=>e(F,{props:t})))},props:{kind:{type:String,required:!0},tokens:{type:Array,required:!0}}},f=u,m=n("2877"),h=Object(m["a"])(f,a,r,!1,null,null,null),b=h.exports,g={name:"RawText",render(e){const{_v:t=(t=>e("span",t)),text:n}=this;return t(n)},props:{text:{type:String,required:!0}}},v=g,y=Object(m["a"])(v,i,o,!1,null,null,null),k=y.exports,C={name:"SyntaxToken",render(e){return e("span",{class:"token-"+this.kind},this.text)},props:{kind:{type:String,required:!0},text:{type:String,required:!0}}},_=C,x=Object(m["a"])(_,s,c,!1,null,null,null),O=x.exports,B=n("86d8"),T={name:"TypeIdentifierLink",inject:{references:{default(){return{}}}},render(e){const t="type-identifier-link",n=this.references[this.identifier];return n&&n.url?e(B["a"],{class:t,props:{url:n.url,kind:n.kind,role:n.role}},this.$slots.default):e("span",{class:t},this.$slots.default)},props:{identifier:{type:String,required:!0,default:()=>""}}},S=T,I=Object(m["a"])(S,l,d,!1,null,null,null),j=I.exports;const q={attribute:"attribute",externalParam:"externalParam",genericParameter:"genericParameter",identifier:"identifier",internalParam:"internalParam",keyword:"keyword",label:"label",number:"number",string:"string",text:"text",typeIdentifier:"typeIdentifier",added:"added",removed:"removed"};var w,A,$={name:"DeclarationToken",render(e){const{kind:t,text:n,tokens:a}=this;switch(t){case q.text:{const t={text:n};return e(k,{props:t})}case q.typeIdentifier:{const t={identifier:this.identifier};return e(j,{props:t},[e(p["a"],n)])}case q.added:case q.removed:return e(b,{props:{tokens:a,kind:t}});default:{const a={kind:t,text:n};return e(O,{props:a})}}},constants:{TokenKind:q},props:{kind:{type:String,required:!0},identifier:{type:String,required:!1},text:{type:String,required:!1},tokens:{type:Array,required:!1,default:()=>[]}}},D=$,P=(n("c36f"),Object(m["a"])(D,w,A,!1,null,"5caf1b5b",null)),F=t["a"]=P.exports},"036f":function(e,t,n){"use strict";n("7395")},"18b8":function(e,t,n){},"2a18":function(e,t,n){"use strict";n.r(t);var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"link-block",class:e.linkBlockClasses},[n(e.linkComponent,e._b({ref:"apiChangesDiff",tag:"component",staticClass:"link",class:e.linkClasses},"component",e.linkProps,!1),[e.topic.role&&!e.change?n("TopicLinkBlockIcon",{attrs:{role:e.topic.role,imageOverride:e.references[e.iconOverride]}}):e._e(),e.topic.fragments?n("DecoratedTopicTitle",{attrs:{tokens:e.topic.fragments}}):n("WordBreak",{attrs:{tag:e.titleTag}},[e._v(e._s(e.topic.title))]),e.change?n("span",{staticClass:"visuallyhidden"},[e._v("- "+e._s(e.changeName))]):e._e()],1),e.hasAbstractElements?n("div",{staticClass:"abstract"},[e.topic.abstract?n("ContentNode",{attrs:{content:e.topic.abstract}}):e._e(),e.topic.ideTitle?n("div",{staticClass:"topic-keyinfo"},[e.topic.titleStyle===e.titleStyles.title?[n("strong",[e._v("Key:")]),e._v(" "+e._s(e.topic.name)+" ")]:e.topic.titleStyle===e.titleStyles.symbol?[n("strong",[e._v("Name:")]),e._v(" "+e._s(e.topic.ideTitle)+" ")]:e._e()],2):e._e(),e.topic.required||e.topic.defaultImplementations?n("RequirementMetadata",{staticClass:"topic-required",attrs:{defaultImplementationsCount:e.topic.defaultImplementations}}):e._e(),e.topic.conformance?n("ConditionalConstraints",{attrs:{constraints:e.topic.conformance.constraints,prefix:e.topic.conformance.availabilityPrefix}}):e._e()],1):e._e(),e.showDeprecatedBadge?n("Badge",{attrs:{variant:"deprecated"}}):e.showBetaBadge?n("Badge",{attrs:{variant:"beta"}}):e._e(),e._l(e.tags,(function(t){return n("Badge",{key:t.type+"-"+t.text,attrs:{variant:t.type}},[e._v(" "+e._s(t.text)+" ")])}))],2)},r=[],i=n("66cd"),o=n("d26a"),s=n("a0fd"),c=n("7b1f"),l=n("6359"),d=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.imageOverride||e.icon?n("div",{staticClass:"topic-icon-wrapper"},[e.imageOverride?n("OverridableAsset",{staticClass:"topic-icon",attrs:{imageOverride:e.imageOverride}}):e.icon?n(e.icon,{tag:"component",staticClass:"topic-icon"}):e._e()],1):e._e()},p=[],u=n("a9f1"),f=n("3b96"),m=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"api-reference-icon",attrs:{viewBox:"0 0 14 14",themeId:"api-reference"}},[n("title",[e._v("API Reference")]),n("path",{attrs:{d:"m1 1v12h12v-12zm11 11h-10v-10h10z"}}),n("path",{attrs:{d:"m3 4h8v1h-8zm0 2.5h8v1h-8zm0 2.5h8v1h-8z"}}),n("path",{attrs:{d:"m3 4h8v1h-8z"}}),n("path",{attrs:{d:"m3 6.5h8v1h-8z"}}),n("path",{attrs:{d:"m3 9h8v1h-8z"}})])},h=[],b=n("be08"),g={name:"APIReferenceIcon",components:{SVGIcon:b["a"]}},v=g,y=n("2877"),k=Object(y["a"])(v,m,h,!1,null,null,null),C=k.exports,_=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{attrs:{viewBox:"0 0 14 14",themeId:"endpoint"}},[n("title",[e._v("Web Service Endpoint")]),n("path",{attrs:{d:"M4.052 8.737h-1.242l-1.878 5.263h1.15l0.364-1.081h1.939l0.339 1.081h1.193zM2.746 12.012l0.678-2.071 0.653 2.071z"}}),n("path",{attrs:{d:"M11.969 8.737h1.093v5.263h-1.093v-5.263z"}}),n("path",{attrs:{d:"M9.198 8.737h-2.295v5.263h1.095v-1.892h1.12c0.040 0.003 0.087 0.004 0.134 0.004 0.455 0 0.875-0.146 1.217-0.394l-0.006 0.004c0.296-0.293 0.48-0.699 0.48-1.148 0-0.060-0.003-0.118-0.010-0.176l0.001 0.007c0.003-0.039 0.005-0.085 0.005-0.131 0-0.442-0.183-0.842-0.476-1.128l-0-0c-0.317-0.256-0.724-0.41-1.168-0.41-0.034 0-0.069 0.001-0.102 0.003l0.005-0zM9.628 11.014c-0.15 0.118-0.341 0.188-0.548 0.188-0.020 0-0.040-0.001-0.060-0.002l0.003 0h-1.026v-1.549h1.026c0.017-0.001 0.037-0.002 0.058-0.002 0.206 0 0.396 0.066 0.551 0.178l-0.003-0.002c0.135 0.13 0.219 0.313 0.219 0.515 0 0.025-0.001 0.050-0.004 0.074l0-0.003c0.002 0.020 0.003 0.044 0.003 0.068 0 0.208-0.083 0.396-0.219 0.534l0-0z"}}),n("path",{attrs:{d:"M13.529 4.981c0-1.375-1.114-2.489-2.489-2.49h-0l-0.134 0.005c-0.526-1.466-1.903-2.496-3.522-2.496-0.892 0-1.711 0.313-2.353 0.835l0.007-0.005c-0.312-0.243-0.709-0.389-1.14-0.389-1.030 0-1.865 0.834-1.866 1.864v0c0 0.001 0 0.003 0 0.004 0 0.123 0.012 0.242 0.036 0.358l-0.002-0.012c-0.94 0.37-1.593 1.27-1.593 2.323 0 1.372 1.11 2.485 2.482 2.49h8.243c1.306-0.084 2.333-1.164 2.333-2.484 0-0.001 0-0.002 0-0.003v0zM11.139 6.535h-8.319c-0.799-0.072-1.421-0.739-1.421-1.551 0-0.659 0.41-1.223 0.988-1.45l0.011-0.004 0.734-0.28-0.148-0.776-0.012-0.082v-0.088c0-0 0-0.001 0-0.001 0-0.515 0.418-0.933 0.933-0.933 0.216 0 0.416 0.074 0.574 0.197l-0.002-0.002 0.584 0.453 0.575-0.467 0.169-0.127c0.442-0.306 0.991-0.489 1.581-0.489 1.211 0 2.243 0.769 2.633 1.846l0.006 0.019 0.226 0.642 0.814-0.023 0.131 0.006c0.805 0.067 1.432 0.736 1.432 1.552 0 0.836-0.659 1.518-1.486 1.556l-0.003 0z"}})])},x=[],O={name:"EndpointIcon",components:{SVGIcon:b["a"]}},B=O,T=Object(y["a"])(B,_,x,!1,null,null,null),S=T.exports,I=n("a295"),j=n("8d2d"),q=n("fdd9");const w={[i["a"].article]:u["a"],[i["a"].collectionGroup]:C,[i["a"].learn]:I["a"],[i["a"].overview]:I["a"],[i["a"].project]:j["a"],[i["a"].tutorial]:j["a"],[i["a"].resources]:I["a"],[i["a"].sampleCode]:f["a"],[i["a"].restRequestSymbol]:S};var A={components:{OverridableAsset:q["a"],SVGIcon:b["a"]},props:{role:{type:String,required:!0},imageOverride:{type:Object,default:null}},computed:{icon:({role:e})=>w[e]}},$=A,D=(n("83a8"),Object(y["a"])($,d,p,!1,null,"384630c1",null)),P=D.exports,F=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("code",{staticClass:"decorated-title"},e._l(e.tokens,(function(t,a){return n(e.componentFor(t),{key:a,tag:"component",class:[e.classFor(t),e.emptyTokenClass(t)]},[e._v(e._s(t.text))])})),1)},z=[],E=n("00b4");const{TokenKind:M}=E["a"].constants,N={decorator:"decorator",identifier:"identifier",label:"label"};var R={name:"DecoratedTopicTitle",components:{WordBreak:c["a"]},props:{tokens:{type:Array,required:!0,default:()=>[]}},constants:{TokenKind:M},methods:{emptyTokenClass:({text:e})=>({"empty-token":" "===e}),classFor({kind:e}){switch(e){case M.externalParam:case M.identifier:return N.identifier;case M.label:return N.label;default:return N.decorator}},componentFor(e){return/^\s+$/.test(e.text)?"span":c["a"]}}},V=R,L=(n("dcf6"),Object(y["a"])(V,F,z,!1,null,"06ec7395",null)),W=L.exports,G=n("64cf"),K=n("e8ea"),H=n("5d59");const J={article:"article",symbol:"symbol"},X={title:"title",symbol:"symbol"},Q={link:"link"};var U={name:"TopicsLinkBlock",components:{Badge:s["a"],WordBreak:c["a"],ContentNode:l["a"],TopicLinkBlockIcon:P,DecoratedTopicTitle:W,RequirementMetadata:K["a"],ConditionalConstraints:G["a"]},inject:["store","references"],mixins:[H["b"],H["a"]],constants:{ReferenceType:Q,TopicKind:J,TitleStyles:X},props:{isSymbolBeta:Boolean,isSymbolDeprecated:Boolean,topic:{type:Object,required:!0,validator:e=>(!("abstract"in e)||Array.isArray(e.abstract))&&"string"===typeof e.identifier&&(e.type===Q.link&&!e.kind||"string"===typeof e.kind)&&(e.type===Q.link&&!e.role||"string"===typeof e.role)&&"string"===typeof e.title&&"string"===typeof e.url&&(!("defaultImplementations"in e)||"number"===typeof e.defaultImplementations)&&(!("required"in e)||"boolean"===typeof e.required)&&(!("conformance"in e)||"object"===typeof e.conformance)}},data(){return{state:this.store.state}},computed:{linkComponent:({topic:e})=>e.type===Q.link?"a":"router-link",linkProps({topic:e}){const t=Object(o["b"])(e.url,this.$route.query);return e.type===Q.link?{href:t}:{to:t}},linkBlockClasses:({changesClasses:e,hasAbstractElements:t,hasMultipleLinesAfterAPIChanges:n,multipleLinesClass:a})=>({"has-inline-element":!t,[a]:n,...!t&&e}),linkClasses:({changesClasses:e,deprecated:t,hasAbstractElements:n})=>({deprecated:t,"has-adjacent-elements":n,...n&&e}),changesClasses:({getChangesClasses:e,change:t})=>e(t),titleTag({topic:e}){if(e.titleStyle===X.title)return e.ideTitle?"span":"code";if(e.role&&(e.role===i["a"].collection||e.role===i["a"].dictionarySymbol))return"span";switch(e.kind){case J.symbol:return"code";default:return"span"}},titleStyles:()=>X,deprecated:({showDeprecatedBadge:e,topic:t})=>e||t.deprecated,showBetaBadge:({topic:e,isSymbolBeta:t})=>Boolean(!t&&e.beta),showDeprecatedBadge:({topic:e,isSymbolDeprecated:t})=>Boolean(!t&&e.deprecated),change({topic:{identifier:e},state:{apiChanges:t}}){return this.changeFor(e,t)},changeName:({change:e,getChangeName:t})=>t(e),hasAbstractElements:({topic:{abstract:e,conformance:t,required:n,defaultImplementations:a}}={})=>e&&e.length>0||t||n||a,tags:({topic:e})=>(e.tags||[]).slice(0,1),iconOverride:({topic:{images:e=[]}})=>{const t=e.find(({type:e})=>"icon"===e);return t?t.identifier:null}}},Y=U,Z=(n("036f"),Object(y["a"])(Y,a,r,!1,null,"750aa7a8",null));t["default"]=Z.exports},"2f04":function(e,t,n){},3484:function(e,t,n){"use strict";n("18b8")},"5a86":function(e,t,n){"use strict";n("fab0")},"5d59":function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return l}));var a=n("b5cf"),r=n("9055"),i=n("beb1");const o="latest_",s={xcode:{value:"xcode",label:"Xcode"},other:{value:"other",label:"Other"}},c={constants:{multipleLinesClass:r["a"]},data(){return{multipleLinesClass:r["a"]}},computed:{hasMultipleLinesAfterAPIChanges:({change:e,changeType:t,$refs:n})=>!(!e&&!t)&&Object(i["a"])(n.apiChangesDiff)}},l={methods:{toVersionRange({platform:e,versions:t}){return`${e} ${t[0]} – ${e} ${t[1]}`},toOptionValue:e=>`${o}${e}`,toScope:e=>e.slice(o.length,e.length),getOptionsForDiffAvailability(e={}){return this.getOptionsForDiffAvailabilities([e])},getOptionsForDiffAvailabilities(e=[]){const t=e.reduce((e,t={})=>Object.keys(t).reduce((e,n)=>({...e,[n]:(e[n]||[]).concat(t[n])}),e),{}),n=Object.keys(t),a=n.reduce((e,n)=>{const a=t[n];return{...e,[n]:a.find(e=>e.platform===s.xcode.label)||a[0]}},{}),r=e=>({label:this.toVersionRange(a[e]),value:this.toOptionValue(e),platform:a[e].platform}),{sdk:i,beta:o,minor:c,major:l,...d}=a,p=[].concat(i?r("sdk"):[]).concat(o?r("beta"):[]).concat(c?r("minor"):[]).concat(l?r("major"):[]).concat(Object.keys(d).map(r));return this.splitOptionsPerPlatform(p)},changesClassesFor(e,t){const n=this.changeFor(e,t);return this.getChangesClasses(n)},getChangesClasses:e=>({["changed changed-"+e]:!!e}),changeFor(e,t){const{change:n}=(t||{})[e]||{};return n},splitOptionsPerPlatform(e){return e.reduce((e,t)=>{const n=t.platform===s.xcode.label?s.xcode.value:s.other.value;return e[n].push(t),e},{[s.xcode.value]:[],[s.other.value]:[]})},getChangeName(e){return a["b"][e]}},computed:{availableOptions({diffAvailability:e={},toOptionValue:t}){return new Set(Object.keys(e).map(t))}}}},6359:function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BaseContentNode",e._b({},"BaseContentNode",e.$props,!1))},r=[],i=n("5677"),o={name:"ContentNode",components:{BaseContentNode:i["default"]},props:i["default"].props,methods:i["default"].methods,BlockType:i["default"].BlockType,InlineType:i["default"].InlineType},s=o,c=(n("3484"),n("2877")),l=Object(c["a"])(s,a,r,!1,null,"7f03310b",null);t["a"]=l.exports},"64cf":function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentNode",{staticClass:"conditional-constraints",attrs:{content:e.content}})},r=[],i=n("6359"),o={name:"ConditionalConstraints",components:{ContentNode:i["a"]},props:{constraints:i["a"].props.content,prefix:i["a"].props.content},computed:{content:({constraints:e,prefix:t,space:n})=>t.concat(n).concat(e),space:()=>({type:i["a"].InlineType.text,text:" "})}},s=o,c=(n("918a"),n("2877")),l=Object(c["a"])(s,a,r,!1,null,"1548fd90",null);t["a"]=l.exports},7395:function(e,t,n){},"83a8":function(e,t,n){"use strict";n("b6f5")},9055:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));const a="has-multiple-lines"},"918a":function(e,t,n){"use strict";n("a2b5")},a0fd:function(e,t,n){"use strict";var a=function(){var e,t=this,n=t.$createElement,a=t._self._c||n;return a("span",{staticClass:"badge",class:(e={},e["badge-"+t.variant]=t.variant,e),attrs:{role:"presentation"}},[t._t("default",(function(){return[t._v(t._s(t.text))]}))],2)},r=[];const i={beta:"Beta",deprecated:"Deprecated"};var o={name:"Badge",props:{variant:{type:String,default:()=>""}},computed:{text:({variant:e})=>i[e]}},s=o,c=(n("5a86"),n("2877")),l=Object(c["a"])(s,a,r,!1,null,"b3052e12",null);t["a"]=l.exports},a2b5:function(e,t,n){},b5cf:function(e,t,n){"use strict";n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return r})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return o}));const a={added:"added",modified:"modified",deprecated:"deprecated"},r=[a.modified,a.added,a.deprecated],i={[a.modified]:"Modified",[a.added]:"Added",[a.deprecated]:"Deprecated"},o={Modified:a.modified,Added:a.added,Deprecated:a.deprecated}},b6f5:function(e,t,n){},beb1:function(e,t,n){"use strict";function a(e){if(!e)return!1;const t=window.getComputedStyle(e.$el||e),n=(e.$el||e).offsetHeight,a=t.lineHeight?parseFloat(t.lineHeight):1,r=t.paddingTop?parseFloat(t.paddingTop):0,i=t.paddingBottom?parseFloat(t.paddingBottom):0,o=t.borderTopWidth?parseFloat(t.borderTopWidth):0,s=t.borderBottomWidth?parseFloat(t.borderBottomWidth):0,c=n-(r+i+o+s),l=c/a;return l>=2}n.d(t,"a",(function(){return a}))},c36f:function(e,t,n){"use strict";n("f8bd")},dcf6:function(e,t,n){"use strict";n("2f04")},e8ea:function(e,t,n){"use strict";var a=function(e,t){var n=t._c;return n("p",{staticClass:"requirement-metadata",class:t.data.staticClass},[n("strong",[t._v("Required.")]),t.props.defaultImplementationsCount?[t._v(" Default implementation"+t._s(t.props.defaultImplementationsCount>1?"s":"")+" provided. ")]:t._e()],2)},r=[],i={name:"RequirementMetadata",props:{defaultImplementationsCount:{type:Number,default:0}}},o=i,s=n("2877"),c=Object(s["a"])(o,a,r,!0,null,null,null);t["a"]=c.exports},f8bd:function(e,t,n){},fab0:function(e,t,n){}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/chunk-vendors.b24b7aaa.js b/XCoordinator.doccarchive/js/chunk-vendors.b24b7aaa.js new file mode 100644 index 00000000..5a983369 --- /dev/null +++ b/XCoordinator.doccarchive/js/chunk-vendors.b24b7aaa.js @@ -0,0 +1,21 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{2877:function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,s){var c,u="function"===typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),a?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},u._ssrRegister=c):o&&(c=s?function(){o.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(u.functional){u._injectStyles=c;var f=u.render;u.render=function(t,e){return c.call(e),f(t,e)}}else{var l=u.beforeCreate;u.beforeCreate=l?[].concat(l,c):[c]}return{exports:t,options:u}}n.d(e,"a",(function(){return r}))},"2b0e":function(t,e,n){"use strict";n.r(e),function(t){ +/*! + * Vue.js v2.6.14 + * (c) 2014-2021 Evan You + * Released under the MIT License. + */ +var n=Object.freeze({});function r(t){return void 0===t||null===t}function o(t){return void 0!==t&&null!==t}function i(t){return!0===t}function a(t){return!1===t}function s(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function c(t){return null!==t&&"object"===typeof t}var u=Object.prototype.toString;function f(t){return"[object Object]"===u.call(t)}function l(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return o(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function h(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function b(t,e){return _.call(t,e)}function w(t){var e=Object.create(null);return function(n){var r=e[n];return r||(e[n]=t(n))}}var C=/-(\w)/g,x=w((function(t){return t.replace(C,(function(t,e){return e?e.toUpperCase():""}))})),A=w((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),$=/\B([A-Z])/g,k=w((function(t){return t.replace($,"-$1").toLowerCase()}));function O(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function S(t,e){return t.bind(e)}var E=Function.prototype.bind?S:O;function T(t,e){e=e||0;var n=t.length-e,r=new Array(n);while(n--)r[n]=t[n+e];return r}function j(t,e){for(var n in e)t[n]=e[n];return t}function R(t){for(var e={},n=0;n0,nt=Z&&Z.indexOf("edge/")>0,rt=(Z&&Z.indexOf("android"),Z&&/iphone|ipad|ipod|ios/.test(Z)||"ios"===Y),ot=(Z&&/chrome\/\d+/.test(Z),Z&&/phantomjs/.test(Z),Z&&Z.match(/firefox\/(\d+)/)),it={}.watch,at=!1;if(G)try{var st={};Object.defineProperty(st,"passive",{get:function(){at=!0}}),window.addEventListener("test-passive",null,st)}catch(Aa){}var ct=function(){return void 0===X&&(X=!G&&!Q&&"undefined"!==typeof t&&(t["process"]&&"server"===t["process"].env.VUE_ENV)),X},ut=G&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ft(t){return"function"===typeof t&&/native code/.test(t.toString())}var lt,pt="undefined"!==typeof Symbol&&ft(Symbol)&&"undefined"!==typeof Reflect&&ft(Reflect.ownKeys);lt="undefined"!==typeof Set&&ft(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var dt=P,ht=0,vt=function(){this.id=ht++,this.subs=[]};vt.prototype.addSub=function(t){this.subs.push(t)},vt.prototype.removeSub=function(t){g(this.subs,t)},vt.prototype.depend=function(){vt.target&&vt.target.addDep(this)},vt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(i&&!b(o,"default"))a=!1;else if(""===a||a===k(t)){var c=ee(String,o.type);(c<0||s0&&(a=Se(a,(e||"")+"_"+n),Oe(a[0])&&Oe(u)&&(f[c]=Ct(u.text+a[0].text),a.shift()),f.push.apply(f,a)):s(a)?Oe(u)?f[c]=Ct(u.text+a):""!==a&&f.push(Ct(a)):Oe(a)&&Oe(u)?f[c]=Ct(u.text+a.text):(i(t._isVList)&&o(a.tag)&&r(a.key)&&o(e)&&(a.key="__vlist"+e+"_"+n+"__"),f.push(a)));return f}function Ee(t){var e=t.$options.provide;e&&(t._provided="function"===typeof e?e.call(t):e)}function Te(t){var e=je(t.$options.inject,t);e&&(Et(!1),Object.keys(e).forEach((function(n){It(t,n,e[n])})),Et(!0))}function je(t,e){if(t){for(var n=Object.create(null),r=pt?Reflect.ownKeys(t):Object.keys(t),o=0;o0,a=t?!!t.$stable:!i,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==n&&s===r.$key&&!i&&!r.$hasNormal)return r;for(var c in o={},t)t[c]&&"$"!==c[0]&&(o[c]=Ne(e,c,t[c]))}else o={};for(var u in e)u in o||(o[u]=De(e,u));return t&&Object.isExtensible(t)&&(t._normalized=o),z(o,"$stable",a),z(o,"$key",s),z(o,"$hasNormal",i),o}function Ne(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});t=t&&"object"===typeof t&&!Array.isArray(t)?[t]:ke(t);var e=t&&t[0];return t&&(!e||1===t.length&&e.isComment&&!Ie(e))?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function De(t,e){return function(){return t[e]}}function Me(t,e){var n,r,i,a,s;if(Array.isArray(t)||"string"===typeof t)for(n=new Array(t.length),r=0,i=t.length;r1?T(n):n;for(var r=T(arguments,1),o='event handler for "'+t+'"',i=0,a=n.length;idocument.createEvent("Event").timeStamp&&(Jn=function(){return Gn.now()})}function Qn(){var t,e;for(Xn=Jn(),zn=!0,Vn.sort((function(t,e){return t.id-e.id})),Wn=0;WnWn&&Vn[n].id>t.id)n--;Vn.splice(n+1,0,t)}else Vn.push(t);qn||(qn=!0,ve(Qn))}}var nr=0,rr=function(t,e,n,r,o){this.vm=t,o&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++nr,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new lt,this.newDepIds=new lt,this.expression="","function"===typeof e?this.getter=e:(this.getter=K(e),this.getter||(this.getter=P)),this.value=this.lazy?void 0:this.get()};rr.prototype.get=function(){var t;mt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(Aa){if(!this.user)throw Aa;ne(Aa,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&me(t),gt(),this.cleanupDeps()}return t},rr.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},rr.prototype.cleanupDeps=function(){var t=this.deps.length;while(t--){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},rr.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():er(this)},rr.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user){var n='callback for watcher "'+this.expression+'"';re(this.cb,this.vm,[t,e],this.vm,n)}else this.cb.call(this.vm,t,e)}}},rr.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},rr.prototype.depend=function(){var t=this.deps.length;while(t--)this.deps[t].depend()},rr.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);var t=this.deps.length;while(t--)this.deps[t].removeSub(this);this.active=!1}};var or={enumerable:!0,configurable:!0,get:P,set:P};function ir(t,e,n){or.get=function(){return this[e][n]},or.set=function(t){this[e][n]=t},Object.defineProperty(t,n,or)}function ar(t){t._watchers=[];var e=t.$options;e.props&&sr(t,e.props),e.methods&&vr(t,e.methods),e.data?cr(t):Pt(t._data={},!0),e.computed&&lr(t,e.computed),e.watch&&e.watch!==it&&yr(t,e.watch)}function sr(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[],i=!t.$parent;i||Et(!1);var a=function(i){o.push(i);var a=Gt(i,e,n,t);It(r,i,a),i in t||ir(t,"_props",i)};for(var s in e)a(s);Et(!0)}function cr(t){var e=t.$options.data;e=t._data="function"===typeof e?ur(e,t):e||{},f(e)||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);while(o--){var i=n[o];0,r&&b(r,i)||q(i)||ir(t,"_data",i)}Pt(e,!0)}function ur(t,e){mt();try{return t.call(e,e)}catch(Aa){return ne(Aa,e,"data()"),{}}finally{gt()}}var fr={lazy:!0};function lr(t,e){var n=t._computedWatchers=Object.create(null),r=ct();for(var o in e){var i=e[o],a="function"===typeof i?i:i.get;0,r||(n[o]=new rr(t,a||P,P,fr)),o in t||pr(t,o,i)}}function pr(t,e,n){var r=!ct();"function"===typeof n?(or.get=r?dr(e):hr(n),or.set=P):(or.get=n.get?r&&!1!==n.cache?dr(e):hr(n.get):P,or.set=n.set||P),Object.defineProperty(t,e,or)}function dr(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),vt.target&&e.depend(),e.value}}function hr(t){return function(){return t.call(this,this)}}function vr(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeof e[n]?P:E(e[n],t)}function yr(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o-1)return this;var n=T(arguments,1);return n.unshift(this),"function"===typeof t.install?t.install.apply(t,n):"function"===typeof t&&t.apply(null,n),e.push(t),this}}function kr(t){t.mixin=function(t){return this.options=Xt(this.options,t),this}}function Or(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name;var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Xt(n.options,t),a["super"]=n,a.options.props&&Sr(a),a.options.computed&&Er(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,U.forEach((function(t){a[t]=n[t]})),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=j({},a.options),o[r]=a,a}}function Sr(t){var e=t.options.props;for(var n in e)ir(t.prototype,"_props",n)}function Er(t){var e=t.options.computed;for(var n in e)pr(t.prototype,n,e[n])}function Tr(t){U.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&f(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"===typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function jr(t){return t&&(t.Ctor.options.name||t.tag)}function Rr(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function Pr(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&Ir(n,i,r,o)}}}function Ir(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,g(n,e)}br(Ar),gr(Ar),Tn(Ar),In(Ar),bn(Ar);var Lr=[String,RegExp,Array],Nr={name:"keep-alive",abstract:!0,props:{include:Lr,exclude:Lr,max:[String,Number]},methods:{cacheVNode:function(){var t=this,e=t.cache,n=t.keys,r=t.vnodeToCache,o=t.keyToCache;if(r){var i=r.tag,a=r.componentInstance,s=r.componentOptions;e[o]={name:jr(s),tag:i,componentInstance:a},n.push(o),this.max&&n.length>parseInt(this.max)&&Ir(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Ir(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Pr(t,(function(t){return Rr(e,t)}))})),this.$watch("exclude",(function(e){Pr(t,(function(t){return!Rr(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=An(t),n=e&&e.componentOptions;if(n){var r=jr(n),o=this,i=o.include,a=o.exclude;if(i&&(!r||!Rr(i,r))||a&&r&&Rr(a,r))return e;var s=this,c=s.cache,u=s.keys,f=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;c[f]?(e.componentInstance=c[f].componentInstance,g(u,f),u.push(f)):(this.vnodeToCache=e,this.keyToCache=f),e.data.keepAlive=!0}return e||t&&t[0]}},Dr={KeepAlive:Nr};function Mr(t){var e={get:function(){return B}};Object.defineProperty(t,"config",e),t.util={warn:dt,extend:j,mergeOptions:Xt,defineReactive:It},t.set=Lt,t.delete=Nt,t.nextTick=ve,t.observable=function(t){return Pt(t),t},t.options=Object.create(null),U.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,j(t.options.components,Dr),$r(t),kr(t),Or(t),Tr(t)}Mr(Ar),Object.defineProperty(Ar.prototype,"$isServer",{get:ct}),Object.defineProperty(Ar.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Ar,"FunctionalRenderContext",{value:Ze}),Ar.version="2.6.14";var Fr=y("style,class"),Ur=y("input,textarea,option,select,progress"),Vr=function(t,e,n){return"value"===n&&Ur(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Br=y("contenteditable,draggable,spellcheck"),Hr=y("events,caret,typing,plaintext-only"),qr=function(t,e){return Jr(e)||"false"===e?"false":"contenteditable"===t&&Hr(e)?e:"true"},zr=y("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Wr="http://www.w3.org/1999/xlink",Kr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Xr=function(t){return Kr(t)?t.slice(6,t.length):""},Jr=function(t){return null==t||!1===t};function Gr(t){var e=t.data,n=t,r=t;while(o(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(e=Qr(r.data,e));while(o(n=n.parent))n&&n.data&&(e=Qr(e,n.data));return Yr(e.staticClass,e.class)}function Qr(t,e){return{staticClass:Zr(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function Yr(t,e){return o(t)||o(e)?Zr(t,to(e)):""}function Zr(t,e){return t?e?t+" "+e:t:e||""}function to(t){return Array.isArray(t)?eo(t):c(t)?no(t):"string"===typeof t?t:""}function eo(t){for(var e,n="",r=0,i=t.length;r-1?co[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:co[t]=/HTMLUnknownElement/.test(e.toString())}var fo=y("text,number,password,search,email,tel,url");function lo(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function po(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function ho(t,e){return document.createElementNS(ro[t],e)}function vo(t){return document.createTextNode(t)}function yo(t){return document.createComment(t)}function mo(t,e,n){t.insertBefore(e,n)}function go(t,e){t.removeChild(e)}function _o(t,e){t.appendChild(e)}function bo(t){return t.parentNode}function wo(t){return t.nextSibling}function Co(t){return t.tagName}function xo(t,e){t.textContent=e}function Ao(t,e){t.setAttribute(e,"")}var $o=Object.freeze({createElement:po,createElementNS:ho,createTextNode:vo,createComment:yo,insertBefore:mo,removeChild:go,appendChild:_o,parentNode:bo,nextSibling:wo,tagName:Co,setTextContent:xo,setStyleScope:Ao}),ko={create:function(t,e){Oo(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Oo(t,!0),Oo(e))},destroy:function(t){Oo(t,!0)}};function Oo(t,e){var n=t.data.ref;if(o(n)){var r=t.context,i=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?g(a[n],i):a[n]===i&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(i)<0&&a[n].push(i):a[n]=[i]:a[n]=i}}var So=new _t("",{},[]),Eo=["create","activate","update","remove","destroy"];function To(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&(t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&jo(t,e)||i(t.isAsyncPlaceholder)&&r(e.asyncFactory.error))}function jo(t,e){if("input"!==t.tag)return!0;var n,r=o(n=t.data)&&o(n=n.attrs)&&n.type,i=o(n=e.data)&&o(n=n.attrs)&&n.type;return r===i||fo(r)&&fo(i)}function Ro(t,e,n){var r,i,a={};for(r=e;r<=n;++r)i=t[r].key,o(i)&&(a[i]=r);return a}function Po(t){var e,n,a={},c=t.modules,u=t.nodeOps;for(e=0;ev?(l=r(n[g+1])?null:n[g+1].elm,x(t,l,n,h,g,i)):h>g&&$(e,p,v)}function S(t,e,n,r){for(var i=n;i-1?qo(t,e,n):zr(e)?Jr(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Br(e)?t.setAttribute(e,qr(e,n)):Kr(e)?Jr(n)?t.removeAttributeNS(Wr,Xr(e)):t.setAttributeNS(Wr,e,n):qo(t,e,n)}function qo(t,e,n){if(Jr(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var zo={create:Bo,update:Bo};function Wo(t,e){var n=e.elm,i=e.data,a=t.data;if(!(r(i.staticClass)&&r(i.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var s=Gr(e),c=n._transitionClasses;o(c)&&(s=Zr(s,to(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ko,Xo={create:Wo,update:Wo},Jo="__r",Go="__c";function Qo(t){if(o(t[Jo])){var e=tt?"change":"input";t[e]=[].concat(t[Jo],t[e]||[]),delete t[Jo]}o(t[Go])&&(t.change=[].concat(t[Go],t.change||[]),delete t[Go])}function Yo(t,e,n){var r=Ko;return function o(){var i=e.apply(null,arguments);null!==i&&ei(t,o,n,r)}}var Zo=se&&!(ot&&Number(ot[1])<=53);function ti(t,e,n,r){if(Zo){var o=Xn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Ko.addEventListener(t,e,at?{capture:n,passive:r}:n)}function ei(t,e,n,r){(r||Ko).removeEventListener(t,e._wrapper||e,n)}function ni(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},o=t.data.on||{};Ko=e.elm,Qo(n),we(n,o,ti,ei,Yo,e.context),Ko=void 0}}var ri,oi={create:ni,update:ni};function ii(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,i,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in o(c.__ob__)&&(c=e.data.domProps=j({},c)),s)n in c||(a[n]="");for(n in c){if(i=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=i;var u=r(i)?"":String(i);ai(a,u)&&(a.value=u)}else if("innerHTML"===n&&io(a.tagName)&&r(a.innerHTML)){ri=ri||document.createElement("div"),ri.innerHTML=""+i+"";var f=ri.firstChild;while(a.firstChild)a.removeChild(a.firstChild);while(f.firstChild)a.appendChild(f.firstChild)}else if(i!==s[n])try{a[n]=i}catch(Aa){}}}}function ai(t,e){return!t.composing&&("OPTION"===t.tagName||si(t,e)||ci(t,e))}function si(t,e){var n=!0;try{n=document.activeElement!==t}catch(Aa){}return n&&t.value!==e}function ci(t,e){var n=t.value,r=t._vModifiers;if(o(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}var ui={create:ii,update:ii},fi=w((function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function li(t){var e=pi(t.style);return t.staticStyle?j(t.staticStyle,e):e}function pi(t){return Array.isArray(t)?R(t):"string"===typeof t?fi(t):t}function di(t,e){var n,r={};if(e){var o=t;while(o.componentInstance)o=o.componentInstance._vnode,o&&o.data&&(n=li(o.data))&&j(r,n)}(n=li(t.data))&&j(r,n);var i=t;while(i=i.parent)i.data&&(n=li(i.data))&&j(r,n);return r}var hi,vi=/^--/,yi=/\s*!important$/,mi=function(t,e,n){if(vi.test(e))t.style.setProperty(e,n);else if(yi.test(n))t.style.setProperty(k(e),n.replace(yi,""),"important");else{var r=_i(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(Ci).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Ai(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Ci).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function $i(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&j(e,ki(t.name||"v")),j(e,t),e}return"string"===typeof t?ki(t):void 0}}var ki=w((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),Oi=G&&!et,Si="transition",Ei="animation",Ti="transition",ji="transitionend",Ri="animation",Pi="animationend";Oi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ti="WebkitTransition",ji="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ri="WebkitAnimation",Pi="webkitAnimationEnd"));var Ii=G?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Li(t){Ii((function(){Ii(t)}))}function Ni(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),xi(t,e))}function Di(t,e){t._transitionClasses&&g(t._transitionClasses,e),Ai(t,e)}function Mi(t,e,n){var r=Ui(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Si?ji:Pi,c=0,u=function(){t.removeEventListener(s,f),n()},f=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n=Si,f=a,l=i.length):e===Ei?u>0&&(n=Ei,f=u,l=c.length):(f=Math.max(a,u),n=f>0?a>u?Si:Ei:null,l=n?n===Si?i.length:c.length:0);var p=n===Si&&Fi.test(r[Ti+"Property"]);return{type:n,timeout:f,propCount:l,hasTransform:p}}function Vi(t,e){while(t.length1}function Ki(t,e){!0!==e.data.show&&Hi(e)}var Xi=G?{create:Ki,activate:Ki,remove:function(t,e){!0!==t.data.show?qi(t,e):e()}}:{},Ji=[zo,Xo,oi,ui,wi,Xi],Gi=Ji.concat(Vo),Qi=Po({nodeOps:$o,modules:Gi});et&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&ia(t,"input")}));var Yi={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?Ce(n,"postpatch",(function(){Yi.componentUpdated(t,e,n)})):Zi(t,e,n.context),t._vOptions=[].map.call(t.options,na)):("textarea"===n.tag||fo(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",ra),t.addEventListener("compositionend",oa),t.addEventListener("change",oa),et&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Zi(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,na);if(o.some((function(t,e){return!N(t,r[e])}))){var i=t.multiple?e.value.some((function(t){return ea(t,o)})):e.value!==e.oldValue&&ea(e.value,o);i&&ia(t,"change")}}}};function Zi(t,e,n){ta(t,e,n),(tt||nt)&&setTimeout((function(){ta(t,e,n)}),0)}function ta(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,a,s=0,c=t.options.length;s-1,a.selected!==i&&(a.selected=i);else if(N(na(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function ea(t,e){return e.every((function(e){return!N(e,t)}))}function na(t){return"_value"in t?t._value:t.value}function ra(t){t.target.composing=!0}function oa(t){t.target.composing&&(t.target.composing=!1,ia(t.target,"input"))}function ia(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function aa(t){return!t.componentInstance||t.data&&t.data.transition?t:aa(t.componentInstance._vnode)}var sa={bind:function(t,e,n){var r=e.value;n=aa(n);var o=n.data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Hi(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value,o=e.oldValue;if(!r!==!o){n=aa(n);var i=n.data&&n.data.transition;i?(n.data.show=!0,r?Hi(n,(function(){t.style.display=t.__vOriginalDisplay})):qi(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}},ca={model:Yi,show:sa},ua={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function fa(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?fa(An(e.children)):t}function la(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[x(i)]=o[i];return e}function pa(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function da(t){while(t=t.parent)if(t.data.transition)return!0}function ha(t,e){return e.key===t.key&&e.tag===t.tag}var va=function(t){return t.tag||Ie(t)},ya=function(t){return"show"===t.name},ma={name:"transition",props:ua,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(va),n.length)){0;var r=this.mode;0;var o=n[0];if(da(this.$vnode))return o;var i=fa(o);if(!i)return o;if(this._leaving)return pa(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var c=(i.data||(i.data={})).transition=la(this),u=this._vnode,f=fa(u);if(i.data.directives&&i.data.directives.some(ya)&&(i.data.show=!0),f&&f.data&&!ha(i,f)&&!Ie(f)&&(!f.componentInstance||!f.componentInstance._vnode.isComment)){var l=f.data.transition=j({},c);if("out-in"===r)return this._leaving=!0,Ce(l,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),pa(t,o);if("in-out"===r){if(Ie(i))return u;var p,d=function(){p()};Ce(c,"afterEnter",d),Ce(c,"enterCancelled",d),Ce(l,"delayLeave",(function(t){p=t}))}}return o}}},ga=j({tag:String,moveClass:String},ua);delete ga.mode;var _a={props:ga,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Rn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=la(this),s=0;s=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}function T(t){return t.replace(/\/\//g,"/")}var j=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},R=Q,P=M,I=F,L=B,N=G,D=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function M(t,e){var n,r=[],o=0,i=0,a="",s=e&&e.delimiter||"/";while(null!=(n=D.exec(t))){var c=n[0],u=n[1],f=n.index;if(a+=t.slice(i,f),i=f+c.length,u)a+=u[1];else{var l=t[i],p=n[2],d=n[3],h=n[4],v=n[5],y=n[6],m=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=l&&l!==p,_="+"===y||"*"===y,b="?"===y||"*"===y,w=n[2]||s,C=h||v;r.push({name:d||o++,prefix:p||"",delimiter:w,optional:b,repeat:_,partial:g,asterisk:!!m,pattern:C?q(C):m?".*":"[^"+H(w)+"]+?"})}}return i1||!A.length)return 0===A.length?t():t("span",{},A)}if("a"===this.tag)x.on=w,x.attrs={href:c,"aria-current":g};else{var $=st(this.$slots.default);if($){$.isStatic=!1;var k=$.data=o({},$.data);for(var O in k.on=k.on||{},k.on){var S=k.on[O];O in w&&(k.on[O]=Array.isArray(S)?S:[S])}for(var E in w)E in k.on?k.on[E].push(w[E]):k.on[E]=_;var T=$.data.attrs=o({},$.data.attrs);T.href=c,T["aria-current"]=g}else x.on=w}return t(this.tag,x,this.$slots.default)}};function at(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function st(t){if(t)for(var e,n=0;n-1&&(s.params[l]=n.params[l]);return s.path=Z(u.path,s.params,'named route "'+c+'"'),p(u,s,a)}if(s.path){s.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}var Ft={redirected:2,aborted:4,cancelled:8,duplicated:16};function Ut(t,e){return qt(t,e,Ft.redirected,'Redirected when going from "'+t.fullPath+'" to "'+Wt(e)+'" via a navigation guard.')}function Vt(t,e){var n=qt(t,e,Ft.duplicated,'Avoided redundant navigation to current location: "'+t.fullPath+'".');return n.name="NavigationDuplicated",n}function Bt(t,e){return qt(t,e,Ft.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function Ht(t,e){return qt(t,e,Ft.aborted,'Navigation aborted from "'+t.fullPath+'" to "'+e.fullPath+'" via a navigation guard.')}function qt(t,e,n,r){var o=new Error(r);return o._isRouter=!0,o.from=t,o.to=e,o.type=n,o}var zt=["params","query","hash"];function Wt(t){if("string"===typeof t)return t;if("path"in t)return t.path;var e={};return zt.forEach((function(n){n in t&&(e[n]=t[n])})),JSON.stringify(e,null,2)}function Kt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Xt(t,e){return Kt(t)&&t._isRouter&&(null==e||t.type===e)}function Jt(t){return function(e,n,r){var o=!1,i=0,a=null;Gt(t,(function(t,e,n,s){if("function"===typeof t&&void 0===t.cid){o=!0,i++;var c,u=te((function(e){Zt(e)&&(e=e.default),t.resolved="function"===typeof e?e:et.extend(e),n.components[s]=e,i--,i<=0&&r()})),f=te((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Kt(t)?t:new Error(e),r(a))}));try{c=t(u,f)}catch(p){f(p)}if(c)if("function"===typeof c.then)c.then(u,f);else{var l=c.component;l&&"function"===typeof l.then&&l.then(u,f)}}})),o||r()}}function Gt(t,e){return Qt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Qt(t){return Array.prototype.concat.apply([],t)}var Yt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Zt(t){return t.__esModule||Yt&&"Module"===t[Symbol.toStringTag]}function te(t){var e=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var ee=function(t,e){this.router=t,this.base=ne(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function ne(t){if(!t)if(ut){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function re(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=Lt&&n;r&&this.listeners.push(xt());var o=function(){var n=t.current,o=pe(t.base);t.current===m&&o===t._startLocation||t.transitionTo(o,(function(t){r&&At(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Nt(T(r.base+t.fullPath)),At(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Dt(T(r.base+t.fullPath)),At(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(pe(this.base)!==this.current.fullPath){var e=T(this.base+this.current.fullPath);t?Nt(e):Dt(e)}},e.prototype.getCurrentLocation=function(){return pe(this.base)},e}(ee);function pe(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(T(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var de=function(t){function e(e,n,r){t.call(this,e,n),r&&he(this.base)||ve()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,n=e.options.scrollBehavior,r=Lt&&n;r&&this.listeners.push(xt());var o=function(){var e=t.current;ve()&&t.transitionTo(ye(),(function(n){r&&At(t.router,n,e,!0),Lt||_e(n.fullPath)}))},i=Lt?"popstate":"hashchange";window.addEventListener(i,o),this.listeners.push((function(){window.removeEventListener(i,o)}))}},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){ge(t.fullPath),At(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){_e(t.fullPath),At(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;ye()!==e&&(t?ge(e):_e(e))},e.prototype.getCurrentLocation=function(){return ye()},e}(ee);function he(t){var e=pe(t);if(!/^\/#/.test(e))return window.location.replace(T(t+"/#"+e)),!0}function ve(){var t=ye();return"/"===t.charAt(0)||(_e("/"+t),!1)}function ye(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function me(t){var e=window.location.href,n=e.indexOf("#"),r=n>=0?e.slice(0,n):e;return r+"#"+t}function ge(t){Lt?Nt(me(t)):window.location.hash=t}function _e(t){Lt?Dt(me(t)):window.location.replace(me(t))}var be=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Xt(t,Ft.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ee),we=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ht(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Lt&&!1!==t.fallback,this.fallback&&(e="hash"),ut||(e="abstract"),this.mode=e,e){case"history":this.history=new le(this,t.base);break;case"hash":this.history=new de(this,t.base,this.fallback);break;case"abstract":this.history=new be(this,t.base);break;default:0}},Ce={currentRoute:{configurable:!0}};function xe(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function Ae(t,e,n){var r="hash"===n?"#"+e:e;return t?T(t+"/"+r):r}we.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Ce.currentRoute.get=function(){return this.history&&this.history.current},we.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof le||n instanceof de){var r=function(t){var r=n.current,o=e.options.scrollBehavior,i=Lt&&o;i&&"fullPath"in t&&At(e,t,r,!1)},o=function(t){n.setupListeners(),r(t)};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},we.prototype.beforeEach=function(t){return xe(this.beforeHooks,t)},we.prototype.beforeResolve=function(t){return xe(this.resolveHooks,t)},we.prototype.afterEach=function(t){return xe(this.afterHooks,t)},we.prototype.onReady=function(t,e){this.history.onReady(t,e)},we.prototype.onError=function(t){this.history.onError(t)},we.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},we.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},we.prototype.go=function(t){this.history.go(t)},we.prototype.back=function(){this.go(-1)},we.prototype.forward=function(){this.go(1)},we.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},we.prototype.resolve=function(t,e,n){e=e||this.history.current;var r=tt(t,e,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath,a=this.history.base,s=Ae(a,i,this.mode);return{location:r,route:o,href:s,normalizedTo:r,resolved:o}},we.prototype.getRoutes=function(){return this.matcher.getRoutes()},we.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},we.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(we.prototype,Ce),we.install=ct,we.version="3.5.2",we.isNavigationFailure=Xt,we.NavigationFailureType=Ft,we.START_LOCATION=m,ut&&window.Vue&&window.Vue.use(we),e["a"]=we},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},e7a5:function(t,e,n){(function(e){(function(e,n){t.exports=n(e)})("undefined"!=typeof e?e:this,(function(t){if(t.CSS&&t.CSS.escape)return t.CSS.escape;var e=function(t){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.");var e,n=String(t),r=n.length,o=-1,i="",a=n.charCodeAt(0);while(++o=1&&e<=31||127==e||0==o&&e>=48&&e<=57||1==o&&e>=48&&e<=57&&45==a?"\\"+e.toString(16)+" ":(0!=o||1!=r||45!=e)&&(e>=128||45==e||95==e||e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122)?n.charAt(o):"\\"+n.charAt(o):"�";return i};return t.CSS||(t.CSS={}),t.CSS.escape=e,e}))}).call(this,n("c8ba"))}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/documentation-topic.2ed269e3.js b/XCoordinator.doccarchive/js/documentation-topic.2ed269e3.js new file mode 100644 index 00000000..b53a2bd3 --- /dev/null +++ b/XCoordinator.doccarchive/js/documentation-topic.2ed269e3.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["documentation-topic"],{"087c":function(e,t,n){},"0b72":function(e,t,n){},"0f49":function(e,t,n){},"0ff0":function(e,t,n){"use strict";n("713d")},"115d":function(e,t,n){"use strict";n("20dd")},1347:function(e,t,n){"use strict";n("367e")},"18f4":function(e,t,n){},"1c02":function(e,t,n){"use strict";n("0f49")},"1f24":function(e,t,n){},2059:function(e,t,n){},"20dd":function(e,t,n){},"218b":function(e,t,n){"use strict";n("9d52")},"21ff":function(e,t,n){"use strict";n("fd6e")},"228b":function(e,t,n){"use strict";n("7cb7")},"22f6":function(e,t,n){},2521:function(e,t,n){},"252c":function(e,t,n){"use strict";(function(e){function i(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var a=e.indexOf("Edge/");return a>0?parseInt(e.substring(a+5,e.indexOf(".",a)),10):-1}n.d(t,"a",(function(){return r}));var a=void 0;function s(){s.init||(s.init=!0,a=-1!==i())}var r={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!a&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;s(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",a&&this.$el.appendChild(t),t.data="about:blank",a||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()}};function o(e){e.component("resize-observer",r),e.component("ResizeObserver",r)}var l={version:"0.4.5",install:o},c=null;"undefined"!==typeof window?c=window.Vue:"undefined"!==typeof e&&(c=e.Vue),c&&c.use(l)}).call(this,n("c8ba"))},"260a":function(e,t,n){"use strict";n("9a8a")},2822:function(e,t,n){"use strict";n("2521")},"2ca2":function(e,t,n){"use strict";n("98e2")},"2dc5":function(e,t,n){"use strict";n("649a")},"2efe":function(e,t,n){"use strict";n("8541")},"2f87":function(e,t,n){"use strict";n("b0a0")},3377:function(e,t,n){},3396:function(e,t,n){"use strict";n("cdce")},"34e5":function(e,t,n){"use strict";n("087c")},"367e":function(e,t,n){},"370f":function(e,t,n){},"374e":function(e,t,n){"use strict";n("0b72")},"37dc":function(e,t,n){},"3a47":function(e,t,n){},"3a72":function(e,t,n){"use strict";n("3a47")},"3fc1":function(e,t,n){},4125:function(e,t,n){},4281:function(e,t,n){"use strict";n("f0dd")},"447f":function(e,t,n){"use strict";n("1f24")},4539:function(e,t,n){"use strict";n("7db8")},"46c5":function(e,t,n){"use strict";n("dff0")},4737:function(e,t,n){},"4b9a":function(e,t,n){"use strict";n("8df2")},"4de6":function(e,t,n){"use strict";n("9dbb")},5079:function(e,t,n){},"533e":function(e,t,n){},5550:function(e,t,n){"use strict";n("73e2")},"56bb":function(e,t,n){},"58d9":function(e,t,n){},"5c33":function(e,t,n){"use strict";n("4737")},"5c57":function(e,t,n){"use strict";n("f0ff")},"649a":function(e,t,n){},"696e":function(e,t,n){},"69ba":function(e,t,n){"use strict";n("2059")},"6c70":function(e,t,n){},"713d":function(e,t,n){},"719b":function(e,t,n){"use strict";n("8b3c")},"73e2":function(e,t,n){},7649:function(e,t,n){"use strict";n("37dc")},"7a2c":function(e,t,n){"use strict";n("c4c1")},"7cb7":function(e,t,n){},"7d0e":function(e,t,n){"use strict";n("696e")},"7d10":function(e,t,n){},"7db8":function(e,t,n){},"83ed":function(e,t,n){"use strict";n("b8c2")},8541:function(e,t,n){},"85fe":function(e,t,n){"use strict";(function(e){function i(e){return i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=function(r){for(var l=arguments.length,c=new Array(l>1?l-1:0),d=1;d1){var i=e.find((function(e){return e.isIntersecting}));i&&(t=i)}if(n.callback){var a=t.isIntersecting&&t.intersectionRatio>=n.threshold;if(a===n.oldResult)return;n.oldResult=a,n.callback(a,t)}}),this.options.intersection),t.context.$nextTick((function(){n.observer&&n.observer.observe(n.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}]),e}();function f(e,t,n){var i=t.value;if(i)if("undefined"===typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var a=new g(e,i,n);e._vue_visibilityState=a}}function m(e,t,n){var i=t.value,a=t.oldValue;if(!p(i,a)){var s=e._vue_visibilityState;i?s?s.createObserver(i,n):f(e,{value:i},n):y(e)}}function y(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var v={bind:f,update:m,unbind:y};function b(e){e.directive("observe-visibility",v)}var T={version:"0.4.6",install:b},_=null;"undefined"!==typeof window?_=window.Vue:"undefined"!==typeof e&&(_=e.Vue),_&&_.use(T)}).call(this,n("c8ba"))},"87ff":function(e,t,n){"use strict";n("d840")},"89ec":function(e,t,n){},"8b3c":function(e,t,n){},"8b7a":function(e,t,n){"use strict";n("89ec")},"8df2":function(e,t,n){},"96a4":function(e,t,n){"use strict";n("58d9")},"98e2":function(e,t,n){},"9a8a":function(e,t,n){},"9d52":function(e,t,n){},"9dbb":function(e,t,n){},a40c:function(e,t,n){"use strict";n("c33d")},a780:function(e,t,n){"use strict";n("a7c6")},a7c6:function(e,t,n){},a91f:function(e,t,n){"use strict";n("6c70")},ac53:function(e,t,n){"use strict";n("d573")},ad1a:function(e,t,n){},b0a0:function(e,t,n){},b39c:function(e,t,n){"use strict";n("18f4")},b831:function(e,t,n){"use strict";n("533e")},b8c2:function(e,t,n){},bab5:function(e,t,n){"use strict";n("f0aa")},bcfb:function(e,t,n){"use strict";n("e4ea")},c2c8:function(e,t,n){"use strict";n("ad1a")},c33d:function(e,t,n){},c3a6:function(e,t,n){"use strict";n("7d10")},c4c1:function(e,t,n){},ca3d:function(e,t,n){"use strict";n("5079")},cdce:function(e,t,n){},d1b4:function(e,t,n){"use strict";n("4125")},d573:function(e,t,n){},d6cc:function(e,t,n){"use strict";n("3fc1")},d790:function(e,t,n){"use strict";n("56bb")},d840:function(e,t,n){},dff0:function(e,t,n){},e3c9:function(e,t,n){"use strict";n("3377")},e4ea:function(e,t,n){},e508:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return M})),n.d(t,"b",(function(){return W})),n.d(t,"c",(function(){return U}));var i=n("252c"),a=n("85fe"),s=n("ed83"),r=n.n(s),o=n("2b0e"),l={itemsLimit:1e3};function c(e){return c="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function h(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a,s=!0,r=!1;return{s:function(){i=e[Symbol.iterator]()},n:function(){var e=i.next();return s=e.done,e},e:function(e){r=!0,a=e},f:function(){try{s||null==i.return||i.return()}finally{if(r)throw a}}}}var m={items:{type:Array,required:!0},keyField:{type:String,default:"id"},direction:{type:String,default:"vertical",validator:function(e){return["vertical","horizontal"].includes(e)}}};function y(){return this.items.length&&"object"!==c(this.items[0])}var v=!1;if("undefined"!==typeof window){v=!1;try{var b=Object.defineProperty({},"passive",{get:function(){v=!0}});window.addEventListener("test",null,b)}catch(Y){}}var T=0,_={name:"RecycleScroller",components:{ResizeObserver:i["a"]},directives:{ObserveVisibility:a["a"]},props:h({},m,{itemSize:{type:Number,default:null},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:"size"},typeField:{type:String,default:"type"},buffer:{type:Number,default:200},pageMode:{type:Boolean,default:!1},prerender:{type:Number,default:0},emitUpdate:{type:Boolean,default:!1}}),data:function(){return{pool:[],totalSize:0,ready:!1,hoverKey:null}},computed:{sizes:function(){if(null===this.itemSize){for(var e,t={"-1":{accumulator:0}},n=this.items,i=this.sizeField,a=this.minItemSize,s=1e4,r=0,o=0,l=n.length;o1&&void 0!==arguments[1]&&arguments[1],n=this.$_unusedViews,i=e.nr.type,a=n.get(i);a||(a=[],n.set(i,a)),a.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;this.$_scrollDirty||(this.$_scrollDirty=!0,requestAnimationFrame((function(){t.$_scrollDirty=!1;var e=t.updateVisibleItems(!1,!0),n=e.continuous;n||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))})))},handleVisibilityChange:function(e,t){var n=this;this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((function(){n.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems:function(e){var t,n,i,a,s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.itemSize,o=this.$_computedMinItemSize,c=this.typeField,d=this.simpleArray?null:this.keyField,u=this.items,h=u.length,p=this.sizes,g=this.$_views,f=this.$_unusedViews,m=this.pool;if(h)if(this.$_prerender)t=0,n=this.prerender,i=null;else{var y=this.getScroll();if(s){var v=y.start-this.$_lastUpdateScrollPosition;if(v<0&&(v=-v),null===r&&vy.start&&(C=k),k=~~((S+C)/2)}while(k!==_);for(k<0&&(k=0),t=k,i=p[h-1].accumulator,n=k;nh&&(n=h))}else t=~~(y.start/r),n=Math.ceil(y.end/r),t<0&&(t=0),n>h&&(n=h),i=h*r}else t=n=i=0;n-t>l.itemsLimit&&this.itemsLimitError(),this.totalSize=i;var w=t<=this.$_endIndex&&n>=this.$_startIndex;if(this.$_continuous!==w){if(w){g.clear(),f.clear();for(var I=0,O=m.length;I=n)&&this.unuseView(a));for(var P,$,A,L,N=w?null:new Map,j=t;j=A.length)&&(a=this.addView(m,j,P,E,$),this.unuseView(a,!0),A=f.get($)),a=A[L],a.item=P,a.nr.used=!0,a.nr.index=j,a.nr.key=E,a.nr.type=$,N.set($,L+1),L++),g.set(E,a)),a.position=null===r?p[j-1].accumulator:j*r):a&&this.unuseView(a)}return this.$_startIndex=t,this.$_endIndex=n,this.emitUpdate&&this.$emit("update",t,n),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,300),{continuous:w}},getListenerTarget:function(){var e=r()(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e,t=this.$el,n=this.direction,i="vertical"===n;if(this.pageMode){var a=t.getBoundingClientRect(),s=i?a.height:a.width,r=-(i?a.top:a.left),o=i?window.innerHeight:window.innerWidth;r<0&&(o+=r,r=0),r+o>s&&(o=s-r),e={start:r,end:r+o}}else e=i?{start:t.scrollTop,end:t.scrollTop+t.clientHeight}:{start:t.scrollLeft,end:t.scrollLeft+t.clientWidth};return e},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!v&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t;t=null===this.itemSize?e>0?this.sizes[e-1].accumulator:0:e*this.itemSize,this.scrollToPosition(t)},scrollToPosition:function(e){"vertical"===this.direction?this.$el.scrollTop=e:this.$el.scrollLeft=e},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")},sortViews:function(){this.pool.sort((function(e,t){return e.nr.index-t.nr.index}))}}};function S(e,t,n,i,a,s,r,o,l,c){"boolean"!==typeof r&&(l=o,o=r,r=!1);const d="function"===typeof n?n.options:n;let u;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,a&&(d.functional=!0)),i&&(d._scopeId=i),s?(u=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(s)},d._ssrRegister=u):t&&(u=r?function(e){t.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,o(e))}),u)if(d.functional){const e=d.render;d.render=function(t,n){return u.call(n),e(t,n)}}else{const e=d.beforeCreate;d.beforeCreate=e?[].concat(e,u):[u]}return n}const C=_;var k=function(){var e,t,n=this,i=n.$createElement,a=n._self._c||i;return a("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:n.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:n.ready,"page-mode":n.pageMode},e["direction-"+n.direction]=!0,e),on:{"&scroll":function(e){return n.handleScroll(e)}}},[n.$slots.before?a("div",{staticClass:"vue-recycle-scroller__slot"},[n._t("before")],2):n._e(),n._v(" "),a("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===n.direction?"minHeight":"minWidth"]=n.totalSize+"px",t)},n._l(n.pool,(function(e){return a("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",class:{hover:n.hoverKey===e.nr.key},style:n.ready?{transform:"translate"+("vertical"===n.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(t){n.hoverKey=e.nr.key},mouseleave:function(e){n.hoverKey=null}}},[n._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),n._v(" "),n.$slots.after?a("div",{staticClass:"vue-recycle-scroller__slot"},[n._t("after")],2):n._e(),n._v(" "),a("ResizeObserver",{on:{notify:n.handleResize}})],1)},w=[];k._withStripped=!0;const I=void 0,O=void 0,x=void 0,D=!1,P=S({render:k,staticRenderFns:w},I,C,O,D,x,!1,void 0,void 0,void 0);var $={name:"DynamicScroller",components:{RecycleScroller:P},inheritAttrs:!1,provide:function(){return"undefined"!==typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,n=f(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(i.target){var a=new CustomEvent("resize",{detail:{contentRect:i.contentRect}});i.target.dispatchEvent(a)}}}catch(s){n.e(s)}finally{n.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:h({},m,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:y,itemsWithSize:function(){for(var e=[],t=this.items,n=this.keyField,i=this.simpleArray,a=this.vscrollData.sizes,s=0;s0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[n]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;var n=function n(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(n)}))};requestAnimationFrame(n)}))}}}};const A=$;var L=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item,i=t.index,a=t.active;return[e._t("default",null,null,{item:n.item,index:i,active:a,itemWithSize:n})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),n("template",{slot:"before"},[e._t("before")],2),e._v(" "),n("template",{slot:"after"},[e._t("after")],2)],2)},N=[];L._withStripped=!0;const j=void 0,E=void 0,B=void 0,R=!1,M=S({render:L,staticRenderFns:N},j,A,E,R,B,!1,void 0,void 0,void 0);var K={name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var n in this.sizeDependencies)t(n);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var n=t.$el.offsetWidth,i=t.$el.offsetHeight;t.applySize(n,i)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var n=Math.round("vertical"===this.vscrollParent.direction?t:e);n&&this.size!==n&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,n),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,n=t.width,i=t.height;this.applySize(n,i)}},render:function(e){return e(this.tag,this.$slots.default)}};const z=K,F=void 0,q=void 0,H=void 0,V=void 0,W=S({},F,z,q,V,H,!1,void 0,void 0,void 0);function U(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.idProp,n=void 0===t?function(e){return e.item.id}:t,i={},a=new o["default"]({data:function(){return{store:i}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"===typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"===typeof t){var n=t.call(this,this);return a.$set(i,e,n),this.$_id=e,n}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(i[e]||this.$_idStateInit(e),this.idState=i[e])}}}}function G(e,t){e.component("".concat(t,"recycle-scroller"),P),e.component("".concat(t,"RecycleScroller"),P),e.component("".concat(t,"dynamic-scroller"),M),e.component("".concat(t,"DynamicScroller"),M),e.component("".concat(t,"dynamic-scroller-item"),W),e.component("".concat(t,"DynamicScrollerItem"),W)}var Q={version:"1.0.10",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var i in n)"undefined"!==typeof n[i]&&(l[i]=n[i]);n.installComponents&&G(e,n.componentsPrefix)}},X=null;"undefined"!==typeof window?X=window.Vue:"undefined"!==typeof e&&(X=e.Vue),X&&X.use(Q)}).call(this,n("c8ba"))},e5a5:function(e,t,n){"use strict";n("f0a3")},e81e:function(e,t,n){"use strict";n("370f")},ed83:function(e,t,n){var i,a,s;(function(n,r){a=[],i=r,s="function"===typeof i?i.apply(t,a):i,void 0===s||(e.exports=s)})(0,(function(){var e=/(auto|scroll)/,t=function(e,n){return null===e.parentNode?n:t(e.parentNode,n.concat([e]))},n=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},i=function(e){return n(e,"overflow")+n(e,"overflow-y")+n(e,"overflow-x")},a=function(t){return e.test(i(t))},s=function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var n=t(e.parentNode,[]),i=0;i({"~0":"~","~1":"/"}[e]||e))}function*o(e){const t=1;if(e.lengtht)throw new Error("invalid array index "+e);return n}function*p(e,t,n={strict:!1}){let i=e;for(const a of o(t)){if(n.strict&&!Object.prototype.hasOwnProperty.call(i,a))throw new u(t);i=i[a],yield{node:i,token:a}}}function g(e,t){let n=e;for(const{node:i}of p(e,t,{strict:!0}))n=i;return n}function f(e,t,n){let i=null,a=e,s=null;for(const{node:o,token:l}of p(e,t))i=a,a=o,s=l;if(!i)throw new u(t);if(Array.isArray(i))try{const e=h(s,i);i.splice(e,0,n)}catch(r){throw new u(t)}else Object.assign(i,{[s]:n});return e}function m(e,t){let n=null,i=e,a=null;for(const{node:r,token:o}of p(e,t))n=i,i=r,a=o;if(!n)throw new u(t);if(Array.isArray(n))try{const e=h(a,n);n.splice(e,1)}catch(s){throw new u(t)}else{if(!i)throw new u(t);delete n[a]}return e}function y(e,t,n){return m(e,t),f(e,t,n),e}function v(e,t,n){const i=g(e,t);return m(e,t),f(e,n,i),e}function b(e,t,n){return f(e,n,g(e,t)),e}function T(e,t,n){function i(e,t){const n=typeof e,a=typeof t;if(n!==a)return!1;switch(n){case d:{const n=Object.keys(e),a=Object.keys(t);return n.length===a.length&&n.every((n,s)=>n===a[s]&&i(e[n],t[n]))}default:return e===t}}const a=g(e,t);if(!i(n,a))throw new Error("test failed");return e}const _={add:(e,{path:t,value:n})=>f(e,t,n),copy:(e,{from:t,path:n})=>b(e,t,n),move:(e,{from:t,path:n})=>v(e,t,n),remove:(e,{path:t})=>m(e,t),replace:(e,{path:t,value:n})=>y(e,t,n),test:(e,{path:t,value:n})=>T(e,t,n)};function S(e,{op:t,...n}){const i=_[t];if(!i)throw new Error("unknown operation");return i(e,n)}function C(e,t){return t.reduce(S,e)}var k=n("66cd"),w=n("25a9"),I=n("2b88"),O=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"doc-topic",class:{"with-on-this-page":e.enableOnThisPageNav&&e.isOnThisPageNavVisible}},[n("main",{staticClass:"main",attrs:{id:"main",role:"main",tabindex:"0"}},[n("DocumentationHero",{attrs:{role:e.role,enhanceBackground:e.enhanceBackground,shortHero:e.shortHero,shouldShowLanguageSwitcher:e.shouldShowLanguageSwitcher,iconOverride:e.references[e.pageIcon]},scopedSlots:e._u([{key:"above-content",fn:function(){return[e._t("above-hero-content")]},proxy:!0}],null,!0)},[e._t("above-title"),e.shouldShowLanguageSwitcher?n("LanguageSwitcher",{attrs:{interfaceLanguage:e.interfaceLanguage,objcPath:e.objcPath,swiftPath:e.swiftPath}}):e._e(),e.enableMinimized?e._e():n("Title",{attrs:{eyebrow:e.roleHeading}},[n(e.titleBreakComponent,{tag:"component"},[e._v(e._s(e.title))]),e.isSymbolDeprecated||e.isSymbolBeta?n("small",{class:e.tagName,attrs:{slot:"after","data-tag-name":e.tagName},slot:"after"}):e._e()],1),e.abstract?n("Abstract",{attrs:{content:e.abstract}}):e._e(),e.sampleCodeDownload?n("div",[n("DownloadButton",{staticClass:"sample-download",attrs:{action:e.sampleCodeDownload.action}})],1):e._e(),e.shouldShowAvailability?n("Availability",{attrs:{platforms:e.platforms,technologies:e.technologies}}):e._e()],2),n("div",{staticClass:"doc-content-wrapper"},[n("div",{staticClass:"doc-content",class:{"no-primary-content":!e.hasPrimaryContent}},[e.hasPrimaryContent?n("div",{staticClass:"container"},[n("div",{staticClass:"description",class:{"after-enhanced-hero":e.enhanceBackground}},[e.isRequirement?n("RequirementMetadata",{attrs:{defaultImplementationsCount:e.defaultImplementationsCount}}):e._e(),e.deprecationSummary&&e.deprecationSummary.length?n("Aside",{attrs:{kind:"deprecated"}},[n("ContentNode",{attrs:{content:e.deprecationSummary}})],1):e._e(),e.downloadNotAvailableSummary&&e.downloadNotAvailableSummary.length?n("Aside",{attrs:{kind:"note"}},[n("ContentNode",{attrs:{content:e.downloadNotAvailableSummary}})],1):e._e()],1),e.primaryContentSections&&e.primaryContentSections.length?n("PrimaryContent",{class:{"with-border":!e.enhanceBackground&&!e.enableMinimized},attrs:{conformance:e.conformance,source:e.remoteSource,sections:e.primaryContentSections}}):e._e()],1):e._e(),e.shouldRenderTopicSection?n("Topics",{attrs:{sections:e.topicSections,isSymbolDeprecated:e.isSymbolDeprecated,isSymbolBeta:e.isSymbolBeta,topicStyle:e.topicSectionsStyle}}):e._e(),e.defaultImplementationsSections&&!e.enableMinimized?n("DefaultImplementations",{attrs:{sections:e.defaultImplementationsSections,isSymbolDeprecated:e.isSymbolDeprecated,isSymbolBeta:e.isSymbolBeta}}):e._e(),e.relationshipsSections&&!e.enableMinimized?n("Relationships",{attrs:{sections:e.relationshipsSections}}):e._e(),e.seeAlsoSections&&!e.enableMinimized?n("SeeAlso",{attrs:{sections:e.seeAlsoSections}}):e._e()],1),e.enableOnThisPageNav?[n("OnThisPageStickyContainer",{directives:[{name:"show",rawName:"v-show",value:e.isOnThisPageNavVisible,expression:"isOnThisPageNavVisible"}]},[e.topicState.onThisPageSections.length>2?n("OnThisPageNav"):e._e()],1)]:e._e()],2),!e.isTargetIDE&&e.hasBetaContent?n("BetaLegalText"):e._e()],1),n("div",{staticClass:"visuallyhidden",attrs:{"aria-live":"polite"}},[e._v(" Current page is "+e._s(e.pageTitle)+" ")])])},x=[],D=n("8649"),P=n("bf08"),$=n("e3ab"),A=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"betainfo"},[n("div",{staticClass:"betainfo-container"},[n("GridRow",[n("GridColumn",{attrs:{span:{large:12}}},[n("p",{staticClass:"betainfo-label"},[e._v("Beta Software")]),n("div",{staticClass:"betainfo-content"},[e._t("content",(function(){return[n("p",[e._v("This documentation refers to beta software and may be changed.")])]}))],2),e._t("after")],2)],1)],1)])},L=[],N=n("0f00"),j=n("620a"),E={name:"BetaLegalText",components:{GridColumn:j["a"],GridRow:N["a"]}},B=E,R=(n("5c33"),n("2877")),M=Object(R["a"])(B,A,L,!1,null,"0f5e5efb",null),K=M.exports,z=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Section",{staticClass:"language",attrs:{role:"complementary","aria-label":"Language"}},[n("Title",[e._v("Language: ")]),n("div",{staticClass:"language-list"},[n("LanguageSwitcherLink",{staticClass:"language-option swift",class:{active:e.swift.active},attrs:{url:e.swift.active?null:e.swift.url},on:{click:function(t){return e.chooseLanguage(e.swift)}}},[e._v(" "+e._s(e.swift.name)+" ")]),n("LanguageSwitcherLink",{staticClass:"language-option objc",class:{active:e.objc.active},attrs:{url:e.objc.active?null:e.objc.url},on:{click:function(t){return e.chooseLanguage(e.objc)}}},[e._v(" "+e._s(e.objc.name)+" ")])],1)],1)},F=[],q=n("d26a"),H=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.url?n("a",{attrs:{href:e.url},on:{click:function(t){return t.preventDefault(),e.$emit("click")}}},[e._t("default")],2):n("span",[e._t("default")],2)},V=[],W={name:"LanguageSwitcherLink",props:{url:[String,Object]}},U=W,G=Object(R["a"])(U,H,V,!1,null,null,null),Q=G.exports,X=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"summary-section"},[e._t("default")],2)},Y=[],J={name:"Section"},Z=J,ee=(n("1347"),Object(R["a"])(Z,X,Y,!1,null,"3aa6f694",null)),te=ee.exports,ne=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",{staticClass:"title"},[e._t("default")],2)},ie=[],ae={name:"Title"},se=ae,re=(n("ede5"),Object(R["a"])(se,ne,ie,!1,null,"6796f6ea",null)),oe=re.exports,le={name:"LanguageSwitcher",components:{LanguageSwitcherLink:Q,Section:te,Title:oe},inject:{isTargetIDE:{default:()=>!1},store:{default(){return{setPreferredLanguage(){}}}}},props:{interfaceLanguage:{type:String,required:!0},objcPath:{type:String,required:!0},swiftPath:{type:String,required:!0}},computed:{objc:({interfaceLanguage:e,normalizePath:t,objcPath:n,$route:{query:i}})=>({...D["a"].objectiveC,active:D["a"].objectiveC.key.api===e,url:Object(q["b"])(t(n),{...i,language:D["a"].objectiveC.key.url})}),swift:({interfaceLanguage:e,normalizePath:t,swiftPath:n,$route:{query:i}})=>({...D["a"].swift,active:D["a"].swift.key.api===e,url:Object(q["b"])(t(n),{...i,language:void 0})})},methods:{chooseLanguage(e){this.isTargetIDE||this.store.setPreferredLanguage(e.key.url),this.$router.push(e.url)},normalizePath(e){return e.startsWith("/")?e:"/"+e}}},ce=le,de=(n("4539"),Object(R["a"])(ce,z,F,!1,null,"0de98d61",null)),ue=de.exports,he=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["documentation-hero",{"documentation-hero--disabled":!e.enhanceBackground,"theme-dark":e.enhanceBackground}],style:e.styles},[n("div",{staticClass:"icon"},[e.enhanceBackground?n("TopicTypeIcon",{key:"first",staticClass:"background-icon first-icon",attrs:{type:e.type,"image-override":e.iconOverride,"with-colors":""}}):e._e()],1),n("div",{staticClass:"documentation-hero__above-content"},[e._t("above-content")],2),n("div",{staticClass:"documentation-hero__content",class:{"short-hero":e.shortHero,"extra-bottom-padding":e.shouldShowLanguageSwitcher}},[e._t("default")],2)])},pe=[],ge=n("f12c"),fe=n("31d4"),me=n("2cae"),ye={name:"DocumentationHero",components:{TopicTypeIcon:ge["a"]},props:{role:{type:String,required:!0},enhanceBackground:{type:Boolean,required:!0},shortHero:{type:Boolean,required:!0},shouldShowLanguageSwitcher:{type:Boolean,required:!0},iconOverride:{type:Object,required:!1}},computed:{color:({type:e})=>me["b"][fe["a"][e]||e]||me["a"].teal,styles:({color:e})=>({"--accent-color":`var(--color-documentation-intro-accent, var(--color-type-icon-${e}, var(--color-figure-gray-secondary)))`}),type:({role:e})=>{switch(e){case k["a"].collection:return fe["b"].module;case k["a"].collectionGroup:return fe["b"].collection;default:return e}}}},ve=ye,be=(n("e3c9"),Object(R["a"])(ve,he,pe,!1,null,"3ec838d1",null)),Te=be.exports,_e=n("7b1f"),Se=n("12b1"),Ce=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"OnThisPageNav"},[n("ul",{staticClass:"items"},e._l(e.onThisPageSections,(function(t){return n("li",{key:t.anchor,class:e.getItemClasses(t)},[n("router-link",{staticClass:"base-link",attrs:{to:t.url},nativeOn:{click:function(n){return e.handleFocusAndScroll(t.anchor)}}},[n("WordBreak",[e._v(e._s(t.title))])],1)],1)})),0)])},ke=[];function we(e,t){let n,i;return function(...a){const s=this;if(!i)return e.apply(s,a),void(i=Date.now());clearTimeout(n),n=setTimeout(()=>{Date.now()-i>=t&&(e.apply(s,a),i=Date.now())},t-(Date.now()-i))}}var Ie=n("3908"),Oe=n("8a61"),xe={name:"OnThisPageNav",components:{WordBreak:_e["a"]},mixins:[Oe["a"]],inject:{store:{default(){return{state:{onThisPageSections:[],currentPageAnchor:null}}}}},computed:{onThisPageSections:({store:e,$route:t})=>e.state.onThisPageSections.map(e=>({...e,url:Object(q["b"])("#"+e.anchor,t.query)})),currentPageAnchor:({store:e})=>e.state.currentPageAnchor},async mounted(){window.addEventListener("scroll",this.onScroll,!1),this.$once("hook:beforeDestroy",()=>{window.removeEventListener("scroll",this.onScroll)})},watch:{onThisPageSections:{immediate:!0,async handler(){await Object(Ie["b"])(8),this.onScroll()}}},methods:{onScroll:we((function(){const e=this.onThisPageSections.length;if(!e)return;const{scrollY:t,innerHeight:n}=window,{scrollHeight:i}=document.body,a=t+n>=i,s=t<=0,r=.3*n+t;if(s||a){const t=s?0:e-1;return void this.store.setCurrentPageSection(this.onThisPageSections[t].anchor)}let o,l,c=null;for(o=0;ot||Object(it["a"])(e||""),className:()=>at}},rt=st,ot=(n("46c5"),Object(R["a"])(rt,tt,nt,!1,null,"4aae1079",null)),lt=ot.exports,ct=n("2a18"),dt={name:"TopicsTable",inject:{references:{default(){return{}}}},components:{TopicsLinkCardGrid:Ue["a"],WordBreak:_e["a"],ContentTable:et,TopicsLinkBlock:ct["default"],ContentNode:Ne["a"],ContentTableSection:lt,LinkableHeading:Ge["a"]},props:{isSymbolDeprecated:Boolean,isSymbolBeta:Boolean,sections:{type:Array,required:!0},title:{type:String,required:!1,default(){return"Topics"}},anchor:{type:String,required:!1,default(){return"topics"}},wrapTitle:{type:Boolean,default:!1},topicStyle:{type:String,default:Se["a"].list}},computed:{shouldRenderList:({topicStyle:e})=>e===Se["a"].list,sectionsWithTopics(){return this.sections.map(e=>({...e,topics:e.identifiers.reduce((e,t)=>this.references[t]?e.concat(this.references[t]):e,[])}))}}},ut=dt,ht=(n("4b9a"),Object(R["a"])(ut,Ve,We,!1,null,"6cec8012",null)),pt=ht.exports,gt={name:"DefaultImplementations",components:{TopicsTable:pt},computed:{contentSectionData:()=>qe.defaultImplementations},props:{isSymbolDeprecated:Boolean,isSymbolBeta:Boolean,sections:pt.props.sections}},ft=gt,mt=Object(R["a"])(ft,Ke,ze,!1,null,null,null),yt=mt.exports,vt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"primary-content"},e._l(e.sections,(function(t,i){return n(e.componentFor(t),e._b({key:i,tag:"component"},"component",e.propsFor(t),!1))})),1)},bt=[],Tt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("LinkableHeading",{attrs:{anchor:e.contentSectionData.anchor}},[e._v(" "+e._s(e.contentSectionData.title)+" ")]),n("dl",{staticClass:"datalist"},[e._l(e.values,(function(t){return[n("dt",{key:t.name+":name",staticClass:"param-name"},[n("WordBreak",{attrs:{tag:"code"}},[e._v(e._s(t.name))])],1),t.content?n("dd",{key:t.name+":content",staticClass:"value-content"},[n("ContentNode",{attrs:{content:t.content}})],1):e._e()]}))],2)],1)},_t=[],St=n("5677"),Ct={name:"PossibleValues",components:{ContentNode:St["default"],LinkableHeading:Ge["a"],WordBreak:_e["a"]},props:{values:{type:Array,required:!0}},computed:{contentSectionData:()=>He[Fe.possibleValues]}},kt=Ct,wt=(n("719b"),Object(R["a"])(kt,Tt,_t,!1,null,null,null)),It=wt.exports,Ot=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("LinkableHeading",{attrs:{anchor:e.anchor}},[e._v(e._s(e.title))]),n("DeclarationSource",{attrs:{tokens:e.tokens}})],1)},xt=[],Dt=function(){var e,t=this,n=t.$createElement,i=t._self._c||n;return i("pre",{ref:"declarationGroup",staticClass:"source",class:(e={},e[t.multipleLinesClass]=t.hasMultipleLines,e)},[i("code",{ref:"code"},t._l(t.formattedTokens,(function(e,n){return i("Token",t._b({key:n},"Token",t.propsFor(e),!1))})),1)])},Pt=[];function $t(e){const t=e.getElementsByClassName("token-identifier");if(t.length<2)return;const n=e.textContent.indexOf(":")+1;for(let i=1;iObject(jt["c"])(["theme","code","indentationWidth"],Rt),formattedTokens:({language:e,formattedSwiftTokens:t,tokens:n})=>e===D["a"].swift.key.api?t:n,formattedSwiftTokens:({indentationWidth:e,tokens:t})=>{const n=" ".repeat(e);let i=!1;const a=[];let s=0,r=1,o=null,l=null,c=null,d=null,u=0;while(sObject(it["a"])(e)}},Ht=qt,Vt=Object(R["a"])(Ht,Ot,xt,!1,null,null,null),Wt=Vt.exports,Ut=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"declaration"},[n("LinkableHeading",{attrs:{anchor:e.contentSectionData.anchor}},[e._v(" "+e._s(e.contentSectionData.title)+" ")]),e.hasModifiedChanges?[n("DeclarationDiff",{class:[e.changeClasses,e.multipleLinesClass],attrs:{changes:e.declarationChanges,changeType:e.changeType}})]:e._l(e.declarations,(function(t,i){return n("DeclarationGroup",{key:i,class:e.changeClasses,attrs:{declaration:t,shouldCaption:e.hasPlatformVariants,changeType:e.changeType}})})),e.source?n("DeclarationSourceLink",{attrs:{url:e.source.url,fileName:e.source.fileName}}):e._e(),e.conformance?n("ConditionalConstraints",{attrs:{constraints:e.conformance.constraints,prefix:e.conformance.availabilityPrefix}}):e._e()],2)},Gt=[],Qt=n("64cf"),Xt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"apiChangesDiff",staticClass:"declaration-group",class:e.classes},[e.shouldCaption?n("p",{staticClass:"platforms"},[n("strong",[e._v(e._s(e.caption))])]):e._e(),n("Source",{attrs:{tokens:e.declaration.tokens,language:e.interfaceLanguage}})],1)},Yt=[],Jt=n("5d59"),Zt={name:"DeclarationGroup",components:{Source:Ft},mixins:[Jt["a"]],inject:{languages:{default:()=>new Set},interfaceLanguage:{default:()=>D["a"].swift.key.api},symbolKind:{default:()=>{}}},props:{declaration:{type:Object,required:!0},shouldCaption:{type:Boolean,default:!1},changeType:{type:String,required:!1}},computed:{classes:({changeType:e,multipleLinesClass:t,hasMultipleLinesAfterAPIChanges:n})=>({["declaration-group--changed declaration-group--"+e]:e,[t]:n}),caption(){return this.declaration.platforms.join(", ")},isSwift:({interfaceLanguage:e})=>e===D["a"].swift.key.api}},en=Zt,tn=(n("a40c"),Object(R["a"])(en,Xt,Yt,!1,null,"c5ecdd3e",null)),nn=tn.exports,an=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"declaration-diff"},[n("div",{staticClass:"declaration-diff-current"},[n("div",{staticClass:"declaration-diff-version"},[e._v("Current")]),e._l(e.currentDeclarations,(function(t,i){return n("DeclarationGroup",{key:i,attrs:{declaration:t,"should-caption":e.currentDeclarations.length>1,changeType:e.changeType}})}))],2),n("div",{staticClass:"declaration-diff-previous"},[n("div",{staticClass:"declaration-diff-version"},[e._v("Previous")]),e._l(e.previousDeclarations,(function(t,i){return n("DeclarationGroup",{key:i,attrs:{declaration:t,"should-caption":e.previousDeclarations.length>1,changeType:e.changeType}})}))],2)])},sn=[],rn={name:"DeclarationDiff",components:{DeclarationGroup:nn},props:{changes:{type:Object,required:!0},changeType:{type:String,required:!0}},computed:{previousDeclarations:({changes:e})=>e.declaration.previous||[],currentDeclarations:({changes:e})=>e.declaration.new||[]}},on=rn,ln=(n("7a2c"),Object(R["a"])(on,an,sn,!1,null,"b3e21c4a",null)),cn=ln.exports,dn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("a",{staticClass:"declaration-source-link",attrs:{href:e.url,title:"Open source file for "+e.fileName,target:"_blank"}},[e.isSwiftFile?n("SwiftFileIcon",{staticClass:"declaration-icon"}):e._e(),n("WordBreak",[e._v(e._s(e.fileName))])],1)},un=[],hn=n("a88f"),pn={name:"DeclarationSourceLink",components:{WordBreak:_e["a"],SwiftFileIcon:hn["a"]},props:{url:{type:String,required:!0},fileName:{type:String,required:!0}},computed:{isSwiftFile:({fileName:e})=>e.endsWith(".swift")}},gn=pn,fn=(n("2dc5"),Object(R["a"])(gn,dn,un,!1,null,"ad6ea67c",null)),mn=fn.exports,yn=n("b5cf"),vn={name:"Declaration",components:{DeclarationDiff:cn,DeclarationGroup:nn,DeclarationSourceLink:mn,ConditionalConstraints:Qt["a"],LinkableHeading:Ge["a"]},constants:{ChangeTypes:yn["c"],multipleLinesClass:Nt["a"]},inject:["identifier","store"],data:({store:{state:e}})=>({state:e,multipleLinesClass:Nt["a"]}),props:{conformance:{type:Object,required:!1},source:{type:Object,required:!1},declarations:{type:Array,required:!0}},computed:{contentSectionData:()=>He[Fe.declarations],hasPlatformVariants(){return this.declarations.length>1},hasModifiedChanges({declarationChanges:e}){if(!e||!e.declaration)return!1;const t=e.declaration;return!(!(t.new||[]).length||!(t.previous||[]).length)},declarationChanges:({state:{apiChanges:e},identifier:t})=>e&&e[t],changeType:({declarationChanges:e,hasModifiedChanges:t})=>{if(!e)return;const n=e.declaration;return n?t?yn["c"].modified:e.change:e.change===yn["c"].added?yn["c"].added:void 0},changeClasses:({changeType:e})=>({["changed changed-"+e]:e})}},bn=vn,Tn=(n("7d0e"),Object(R["a"])(bn,Ut,Gt,!1,null,"586930aa",null)),_n=Tn.exports,Sn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"details"},[n("LinkableHeading",{attrs:{anchor:e.contentSectionData.anchor}},[e._v(" "+e._s(e.contentSectionData.title)+" ")]),n("dl",[e.isSymbol?[n("dt",{key:e.details.name+":name",staticClass:"detail-type"},[e._v(" Name ")]),n("dd",{key:e.details.ideTitle+":content",staticClass:"detail-content"},[e._v(" "+e._s(e.details.ideTitle)+" ")])]:e._e(),e.isTitle?[n("dt",{key:e.details.name+":key",staticClass:"detail-type"},[e._v(" Key ")]),n("dd",{key:e.details.ideTitle+":content",staticClass:"detail-content"},[e._v(" "+e._s(e.details.name)+" ")])]:e._e(),n("dt",{key:e.details.name+":type",staticClass:"detail-type"},[e._v(" Type ")]),n("dd",{staticClass:"detail-content"},[n("PropertyListKeyType",{attrs:{types:e.details.value}})],1)],2)],1)},Cn=[],kn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"type"},[e._v(e._s(e.typeOutput))])},wn=[],In={name:"PropertyListKeyType",props:{types:{type:Array,required:!0}},computed:{englishTypes(){return this.types.map(({arrayMode:e,baseType:t="*"})=>e?"array of "+this.pluralizeKeyType(t):t)},typeOutput(){return this.englishTypes.length>2?[this.englishTypes.slice(0,this.englishTypes.length-1).join(", "),this.englishTypes[this.englishTypes.length-1]].join(", or "):this.englishTypes.join(" or ")}},methods:{pluralizeKeyType(e){switch(e){case"dictionary":return"dictionaries";case"array":case"number":case"string":return e+"s";default:return e}}}},On=In,xn=(n("f7c0"),Object(R["a"])(On,kn,wn,!1,null,"791bac44",null)),Dn=xn.exports,Pn={name:"PropertyListKeyDetails",components:{PropertyListKeyType:Dn,LinkableHeading:Ge["a"]},props:{details:{type:Object,required:!0}},computed:{contentSectionData:()=>He[Fe.details],isTitle(){return"title"===this.details.titleStyle&&this.details.ideTitle},isSymbol(){return"symbol"===this.details.titleStyle&&this.details.ideTitle}}},$n=Pn,An=(n("c2c8"),Object(R["a"])($n,Sn,Cn,!1,null,"55ba4aa2",null)),Ln=An.exports,Nn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"parameters"},[n("LinkableHeading",{attrs:{anchor:e.contentSectionData.anchor}},[e._v(" "+e._s(e.contentSectionData.title)+" ")]),n("dl",[e._l(e.parameters,(function(t){return[n("dt",{key:t.name+":name",staticClass:"param-name"},[n("code",[e._v(e._s(t.name))])]),n("dd",{key:t.name+":content",staticClass:"param-content"},[n("ContentNode",{attrs:{content:t.content}})],1)]}))],2)],1)},jn=[],En={name:"Parameters",components:{ContentNode:Ne["a"],LinkableHeading:Ge["a"]},props:{parameters:{type:Array,required:!0}},computed:{contentSectionData:()=>He[Fe.parameters]}},Bn=En,Rn=(n("ac53"),Object(R["a"])(Bn,Nn,jn,!1,null,"ac6bef9a",null)),Mn=Rn.exports,Kn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("LinkableHeading",{attrs:{anchor:e.anchor}},[e._v(e._s(e.title))]),n("ParametersTable",{staticClass:"property-table",attrs:{parameters:e.properties,changes:e.propertyChanges},scopedSlots:e._u([{key:"symbol",fn:function(t){var i=t.name,a=t.type,s=t.content,r=t.changes,o=t.deprecated;return[n("div",{staticClass:"property-name",class:{deprecated:o}},[n("WordBreak",{attrs:{tag:"code"}},[e._v(e._s(i))])],1),e.shouldShiftType({name:i,content:s})?e._e():n("PossiblyChangedType",{attrs:{type:a,changes:r.type}})]}},{key:"description",fn:function(t){var i=t.name,a=t.type,s=t.attributes,r=t.content,o=t.required,l=t.changes,c=t.deprecated,d=t.readOnly;return[e.shouldShiftType({name:i,content:r})?n("PossiblyChangedType",{attrs:{type:a,changes:l.type}}):e._e(),c?[n("Badge",{staticClass:"property-deprecated",attrs:{variant:"deprecated"}}),e._v("  ")]:e._e(),n("PossiblyChangedTextAttribute",{attrs:{changes:l.required,value:o}},[e._v("(Required) ")]),n("PossiblyChangedTextAttribute",{attrs:{changes:l.readOnly,value:d}},[e._v("(Read only) ")]),r?n("ContentNode",{attrs:{content:r}}):e._e(),n("ParameterAttributes",{attrs:{attributes:s,changes:l.attributes}})]}}])})],1)},zn=[],Fn={inject:["identifier","store"],data:({store:{state:e}})=>({state:e}),computed:{apiChanges:({state:{apiChanges:e},identifier:t})=>e&&e[t]}},qn=n("a0fd"),Hn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"parameters-table"},e._l(e.parameters,(function(t){return n("Row",{key:t[e.keyBy],staticClass:"param",class:e.changedClasses(t[e.keyBy])},[n("Column",{staticClass:"param-symbol",attrs:{span:{large:3,small:12}}},[e._t("symbol",null,null,e.getProps(t,e.changes[t[e.keyBy]]))],2),n("Column",{staticClass:"param-content",attrs:{span:{large:9,small:12}}},[e._t("description",null,null,e.getProps(t,e.changes[t[e.keyBy]]))],2)],1)})),1)},Vn=[],Wn={name:"ParametersTable",components:{Row:N["a"],Column:j["a"]},props:{parameters:{type:Array,required:!0},changes:{type:Object,default:()=>({})},keyBy:{type:String,default:"name"}},methods:{getProps(e,t={}){return{...e,changes:t}},changedClasses(e){const{changes:t}=this,{change:n}=t[e]||{};return{["changed changed-"+n]:n}}}},Un=Wn,Gn=(n("e5a5"),Object(R["a"])(Un,Hn,Vn,!1,null,"31e03854",null)),Qn=Gn.exports,Xn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"parameter-attributes"},[e.shouldRender(e.AttributeKind.default)?n("ParameterMetaAttribute",e._b({scopedSlots:e._u([{key:"default",fn:function(t){var i=t.attribute;return[e._v(" "+e._s(i.title||"Default")+": "),n("code",[e._v(e._s(i.value))])]}}],null,!1,4247435012)},"ParameterMetaAttribute",{kind:e.AttributeKind.default,attributes:e.attributesObject,changes:e.changes},!1)):e._e(),e.shouldRender(e.AttributeKind.minimum)?n("ParameterMetaAttribute",e._b({scopedSlots:e._u([{key:"default",fn:function(t){var i=t.attribute;return[e._v(" "+e._s(i.title||"Minimum")+": "),n("code",[e._v(e._s(i.value))])]}}],null,!1,455861177)},"ParameterMetaAttribute",{kind:e.AttributeKind.minimum,attributes:e.attributesObject,changes:e.changes},!1)):e._e(),e.shouldRender(e.AttributeKind.minimumExclusive)?n("ParameterMetaAttribute",e._b({scopedSlots:e._u([{key:"default",fn:function(t){var i=t.attribute;return[e._v(" "+e._s(i.title||"Minimum")+": "),n("code",[e._v("> "+e._s(i.value))])]}}],null,!1,3844501612)},"ParameterMetaAttribute",{kind:e.AttributeKind.minimumExclusive,attributes:e.attributesObject,changes:e.changes},!1)):e._e(),e.shouldRender(e.AttributeKind.maximum)?n("ParameterMetaAttribute",e._b({scopedSlots:e._u([{key:"default",fn:function(t){var i=t.attribute;return[e._v(" "+e._s(i.title||"Maximum")+": "),n("code",[e._v(e._s(i.value))])]}}],null,!1,19641767)},"ParameterMetaAttribute",{kind:e.AttributeKind.maximum,attributes:e.attributesObject,changes:e.changes},!1)):e._e(),e.shouldRender(e.AttributeKind.maximumExclusive)?n("ParameterMetaAttribute",e._b({scopedSlots:e._u([{key:"default",fn:function(t){var i=t.attribute;return[e._v(" "+e._s(i.title||"Maximum")+": "),n("code",[e._v("< "+e._s(i.value))])]}}],null,!1,4289558576)},"ParameterMetaAttribute",{kind:e.AttributeKind.maximumExclusive,attributes:e.attributesObject,changes:e.changes},!1)):e._e(),e.shouldRender(e.AttributeKind.allowedTypes)?n("ParameterMetaAttribute",e._b({scopedSlots:e._u([{key:"default",fn:function(t){var i=t.attribute;return[e._v(" "+e._s(e.fallbackToValues(i).length>1?"Possible types":"Type")+": "),n("code",[e._l(e.fallbackToValues(i),(function(t,a){return[e._l(t,(function(t,s){return[n("DeclarationToken",e._b({key:a+"-"+s},"DeclarationToken",t,!1)),a+11?"Possible values":"Value")+": "),n("code",[e._v(e._s(e.fallbackToValues(i).join(", ")))])]}}],null,!1,1507632019)},"ParameterMetaAttribute",{kind:e.AttributeKind.allowedValues,attributes:e.attributesObject,changes:e.changes},!1)):e._e()],1)},Yn=[],Jn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("RenderChanged",{attrs:{value:e.attributes[e.kind],changes:e.changes[e.kind]},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.value;return n("div",{staticClass:"property-metadata"},[e._t("default",null,{attribute:i})],2)}}],null,!0)})},Zn=[];const ei={added:"change-added",removed:"change-removed"};var ti,ni,ii={name:"RenderChanged",constants:{ChangedClasses:ei},props:{changes:{type:Object,default:()=>({new:null,previous:null})},value:{type:[Object,Array,String,Boolean],default:null},wrapChanges:{type:Boolean,default:!0},renderSingleChange:{type:Boolean,default:!1}},render(e){const{value:t,changes:n={},wrapChanges:i,renderSingleChange:a}=this,{new:s,previous:r}=n,o=(t,n)=>{const a=this.$scopedSlots.default({value:t});return n&&i?e("div",{class:n},[a]):a?a[0]:null};if(s||r){const t=o(s,ei.added),n=o(r,ei.removed);return a?s&&!r?t:n:e("div",{class:"property-changegroup"},[s?t:"",r?n:""])}return o(t)}},ai=ii,si=Object(R["a"])(ai,ti,ni,!1,null,null,null),ri=si.exports,oi={name:"ParameterMetaAttribute",components:{RenderChanged:ri},props:{kind:{type:String,required:!0},attributes:{type:Object,required:!0},changes:{type:Object,default:()=>({})}}},li=oi,ci=(n("2822"),Object(R["a"])(li,Jn,Zn,!1,null,"8590589e",null)),di=ci.exports;const ui={allowedTypes:"allowedTypes",allowedValues:"allowedValues",default:"default",maximum:"maximum",maximumExclusive:"maximumExclusive",minimum:"minimum",minimumExclusive:"minimumExclusive"};var hi={name:"ParameterAttributes",components:{ParameterMetaAttribute:di,DeclarationToken:Et["a"]},constants:{AttributeKind:ui},props:{attributes:{type:Array,default:()=>[]},changes:{type:Object,default:()=>({})}},computed:{AttributeKind:()=>ui,attributesObject:({attributes:e})=>e.reduce((e,t)=>({...e,[t.kind]:t}),{})},methods:{shouldRender(e){return Object.prototype.hasOwnProperty.call(this.attributesObject,e)},fallbackToValues:e=>{const t=e||[];return Array.isArray(t)?t:t.values}}},pi=hi,gi=Object(R["a"])(pi,Xn,Yn,!1,null,null,null),fi=gi.exports,mi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("RenderChanged",{attrs:{renderSingleChange:"",value:e.value,changes:e.changes},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.value;return i?n("span",{staticClass:"property-text"},[e._t("default")],2):e._e()}}],null,!0)})},yi=[],vi={name:"PossiblyChangedTextAttribute",components:{RenderChanged:ri},props:{changes:{type:Object,required:!1},value:{type:Boolean,default:!1}}},bi=vi,Ti=(n("5c57"),Object(R["a"])(bi,mi,yi,!1,null,null,null)),_i=Ti.exports,Si=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("RenderChanged",{attrs:{value:e.type,wrapChanges:!1,changes:e.changes},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.value;return n("DeclarationTokenGroup",{staticClass:"property-metadata property-type",attrs:{type:e.getValues(i)}})}}])})},Ci=[],ki=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.type&&e.type.length?n("div",[n("code",e._l(e.type,(function(t,i){return n("DeclarationToken",e._b({key:i},"DeclarationToken",t,!1))})),1)]):e._e()},wi=[],Ii={name:"DeclarationTokenGroup",components:{DeclarationToken:Et["a"]},props:{type:{type:Array,default:()=>[],required:!1}}},Oi=Ii,xi=Object(R["a"])(Oi,ki,wi,!1,null,null,null),Di=xi.exports,Pi={name:"PossiblyChangedType",components:{DeclarationTokenGroup:Di,RenderChanged:ri},props:{type:{type:Array,required:!0},changes:{type:Object,required:!1}},methods:{getValues(e){return Array.isArray(e)?e:e.values}}},$i=Pi,Ai=(n("2f87"),Object(R["a"])($i,Si,Ci,!1,null,"0a648a1e",null)),Li=Ai.exports,Ni={name:"PropertyTable",mixins:[Fn],components:{Badge:qn["a"],WordBreak:_e["a"],PossiblyChangedTextAttribute:_i,PossiblyChangedType:Li,ParameterAttributes:fi,ContentNode:Ne["a"],ParametersTable:Qn,LinkableHeading:Ge["a"]},props:{title:{type:String,required:!0},properties:{type:Array,required:!0}},computed:{anchor:({title:e})=>Object(it["a"])(e),propertyChanges:({apiChanges:e})=>(e||{}).properties},methods:{shouldShiftType:({content:e=[],name:t})=>!e.length&&t}},ji=Ni,Ei=(n("21ff"),Object(R["a"])(ji,Kn,zn,!1,null,"25cd22fa",null)),Bi=Ei.exports,Ri=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("LinkableHeading",{attrs:{anchor:e.anchor}},[e._v(e._s(e.title))]),n("ParametersTable",{attrs:{parameters:[e.bodyParam],changes:e.bodyChanges,keyBy:"key"},scopedSlots:e._u([{key:"symbol",fn:function(t){var i=t.type,a=t.content,s=t.changes,r=t.name;return[e.shouldShiftType({name:r,content:a})?e._e():n("PossiblyChangedType",{attrs:{type:i,changes:s.type}})]}},{key:"description",fn:function(t){var i=t.name,a=t.content,s=t.mimeType,r=t.type,o=t.changes;return[e.shouldShiftType({name:i,content:a})?n("PossiblyChangedType",{attrs:{type:r,changes:o.type}}):e._e(),a?n("ContentNode",{attrs:{content:a}}):e._e(),s?n("PossiblyChangedMimetype",{attrs:{mimetype:s,changes:o.mimetype,change:o.change}}):e._e()]}}])}),e.parts.length?[n("h3",[e._v("Parts")]),n("ParametersTable",{staticClass:"parts",attrs:{parameters:e.parts,changes:e.partsChanges},scopedSlots:e._u([{key:"symbol",fn:function(t){var i=t.name,a=t.type,s=t.content,r=t.changes;return[n("div",{staticClass:"part-name"},[n("WordBreak",{attrs:{tag:"code"}},[e._v(e._s(i))])],1),s?n("PossiblyChangedType",{attrs:{type:a,changes:r.type}}):e._e()]}},{key:"description",fn:function(t){var i=t.content,a=t.mimeType,s=t.required,r=t.type,o=t.attributes,l=t.changes,c=t.readOnly;return[n("div",[i?e._e():n("PossiblyChangedType",{attrs:{type:r,changes:l.type}}),n("PossiblyChangedTextAttribute",{attrs:{changes:l.required,value:s}},[e._v("(Required) ")]),n("PossiblyChangedTextAttribute",{attrs:{changes:l.readOnly,value:c}},[e._v("(Read only) ")]),i?n("ContentNode",{attrs:{content:i}}):e._e(),a?n("PossiblyChangedMimetype",{attrs:{mimetype:a,changes:l.mimetype,change:l.change}}):e._e(),n("ParameterAttributes",{attrs:{attributes:o,changes:l.attributes}})],1)]}}],null,!1,1779956822)})]:e._e()],2)},Mi=[],Ki=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("RenderChanged",{attrs:{changes:e.changeValues,value:e.mimetype},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.value;return n("div",{staticClass:"response-mimetype"},[e._v("Content-Type: "+e._s(i))])}}])})},zi=[],Fi={name:"PossiblyChangedMimetype",components:{RenderChanged:ri},props:{mimetype:{type:String,required:!0},changes:{type:[Object,String],required:!1},change:{type:String,required:!1}},computed:{changeValues({change:e,changes:t}){return e===yn["c"].modified&&"string"!==typeof t?t:void 0}}},qi=Fi,Hi=(n("a91f"),Object(R["a"])(qi,Ki,zi,!1,null,"2faa6020",null)),Vi=Hi.exports;const Wi="restRequestBody";var Ui={name:"RestBody",mixins:[Fn],components:{PossiblyChangedMimetype:Vi,PossiblyChangedTextAttribute:_i,PossiblyChangedType:Li,WordBreak:_e["a"],ParameterAttributes:fi,ContentNode:Ne["a"],ParametersTable:Qn,LinkableHeading:Ge["a"]},constants:{ChangesKey:Wi},props:{bodyContentType:{type:Array,required:!0},content:{type:Array},mimeType:{type:String,required:!0},parts:{type:Array,default:()=>[]},title:{type:String,required:!0}},computed:{anchor:({title:e})=>Object(it["a"])(e),bodyParam:({bodyContentType:e,content:t,mimeType:n})=>({key:Wi,content:t,mimeType:n,type:e}),bodyChanges:({apiChanges:e})=>e||{},partsChanges:({bodyChanges:e})=>(e[Wi]||{}).parts},methods:{shouldShiftType:({content:e=[],name:t})=>!e.length&&t}},Gi=Ui,Qi=(n("3a72"),Object(R["a"])(Gi,Ri,Mi,!1,null,"37777476",null)),Xi=Qi.exports,Yi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("LinkableHeading",{attrs:{anchor:e.anchor}},[e._v(e._s(e.title))]),n("ParametersTable",{attrs:{parameters:e.parameters,changes:e.parameterChanges},scopedSlots:e._u([{key:"symbol",fn:function(t){var i=t.name,a=t.type,s=t.content,r=t.changes,o=t.deprecated;return[n("div",{staticClass:"param-name",class:{deprecated:o}},[n("WordBreak",{attrs:{tag:"code"}},[e._v(e._s(i))])],1),e.shouldShiftType({content:s,name:i})?e._e():n("PossiblyChangedType",{attrs:{type:a,changes:r.type}})]}},{key:"description",fn:function(t){var i=t.name,a=t.type,s=t.content,r=t.required,o=t.attributes,l=t.changes,c=t.deprecated,d=t.readOnly;return[n("div",[e.shouldShiftType({content:s,name:i})?n("PossiblyChangedType",{attrs:{type:a,changes:l.type}}):e._e(),c?[n("Badge",{staticClass:"param-deprecated",attrs:{variant:"deprecated"}}),e._v("  ")]:e._e(),n("PossiblyChangedTextAttribute",{attrs:{changes:l.required,value:r}},[e._v("(Required) ")]),n("PossiblyChangedTextAttribute",{attrs:{changes:l.readOnly,value:d}},[e._v("(Read only) ")]),s?n("ContentNode",{attrs:{content:s}}):e._e(),n("ParameterAttributes",{attrs:{attributes:o,changes:l}})],2)]}}])})],1)},Ji=[],Zi={name:"RestParameters",mixins:[Fn],components:{Badge:qn["a"],PossiblyChangedType:Li,PossiblyChangedTextAttribute:_i,ParameterAttributes:fi,WordBreak:_e["a"],ContentNode:Ne["a"],ParametersTable:Qn,LinkableHeading:Ge["a"]},props:{title:{type:String,required:!0},parameters:{type:Array,required:!0}},computed:{anchor:({title:e})=>Object(it["a"])(e),parameterChanges:({apiChanges:e})=>(e||{}).restParameters},methods:{shouldShiftType:({content:e=[],name:t})=>!e.length&&t}},ea=Zi,ta=(n("83ed"),Object(R["a"])(ea,Yi,Ji,!1,null,"05f57530",null)),na=ta.exports,ia=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",[n("LinkableHeading",{attrs:{anchor:e.anchor}},[e._v(e._s(e.title))]),n("ParametersTable",{attrs:{parameters:e.responses,changes:e.propertyChanges,"key-by":"status"},scopedSlots:e._u([{key:"symbol",fn:function(t){var i=t.status,a=t.type,s=t.reason,r=t.content,o=t.changes;return[n("div",{staticClass:"response-name"},[n("code",[e._v(" "+e._s(i)+" "),n("span",{staticClass:"reason"},[e._v(e._s(s))])])]),e.shouldShiftType({content:r,reason:s,status:i})?e._e():n("PossiblyChangedType",{attrs:{type:a,changes:o.type}})]}},{key:"description",fn:function(t){var i=t.content,a=t.mimetype,s=t.reason,r=t.type,o=t.status,l=t.changes;return[e.shouldShiftType({content:i,reason:s,status:o})?n("PossiblyChangedType",{attrs:{type:r,changes:l.type}}):e._e(),n("div",{staticClass:"response-reason"},[n("code",[e._v(e._s(s))])]),i?n("ContentNode",{attrs:{content:i}}):e._e(),a?n("PossiblyChangedMimetype",{attrs:{mimetype:a,changes:l.mimetype,change:l.change}}):e._e()]}}])})],1)},aa=[],sa={name:"RestResponses",mixins:[Fn],components:{PossiblyChangedMimetype:Vi,PossiblyChangedType:Li,ContentNode:Ne["a"],ParametersTable:Qn,LinkableHeading:Ge["a"]},props:{title:{type:String,required:!0},responses:{type:Array,required:!0}},computed:{anchor:({title:e})=>Object(it["a"])(e),propertyChanges:({apiChanges:e})=>(e||{}).restResponses},methods:{shouldShiftType:({content:e=[],reason:t,status:n})=>!(e.length||t)&&n}},ra=sa,oa=(n("7649"),Object(R["a"])(ra,ia,aa,!1,null,"881189f4",null)),la=oa.exports,ca={name:"PrimaryContent",components:{Declaration:_n,ContentNode:Ne["a"],Parameters:Mn,PropertyListKeyDetails:Ln,PropertyTable:Bi,RestBody:Xi,RestEndpoint:Wt,RestParameters:na,RestResponses:la,PossibleValues:It},constants:{SectionKind:Fe},props:{conformance:{type:Object,required:!1},source:{type:Object,required:!1},sections:{type:Array,required:!0,validator:e=>e.every(({kind:e})=>Object.prototype.hasOwnProperty.call(Fe,e))}},computed:{span(){return{large:9,medium:9,small:12}}},methods:{componentFor(e){return{[Fe.content]:Ne["a"],[Fe.declarations]:_n,[Fe.details]:Ln,[Fe.parameters]:Mn,[Fe.properties]:Bi,[Fe.restBody]:Xi,[Fe.restParameters]:na,[Fe.restHeaders]:na,[Fe.restCookies]:na,[Fe.restEndpoint]:Wt,[Fe.restResponses]:la,[Fe.possibleValues]:It}[e.kind]},propsFor(e){const{conformance:t,source:n}=this,{bodyContentType:i,content:a,declarations:s,details:r,items:o,kind:l,mimeType:c,parameters:d,title:u,tokens:h,values:p}=e;return{[Fe.content]:{content:a},[Fe.declarations]:{conformance:t,source:n,declarations:s},[Fe.details]:{details:r},[Fe.parameters]:{parameters:d},[Fe.possibleValues]:{values:p},[Fe.properties]:{properties:o,title:u},[Fe.restBody]:{bodyContentType:i,content:a,mimeType:c,parts:d,title:u},[Fe.restCookies]:{parameters:o,title:u},[Fe.restEndpoint]:{tokens:h,title:u},[Fe.restHeaders]:{parameters:o,title:u},[Fe.restParameters]:{parameters:o,title:u},[Fe.restResponses]:{responses:o,title:u}}[l]}}},da=ca,ua=(n("96a4"),Object(R["a"])(da,vt,bt,!1,null,"2aa0f0dc",null)),ha=ua.exports,pa=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentTable",{attrs:{anchor:e.contentSectionData.anchor,title:e.contentSectionData.title}},e._l(e.sectionsWithSymbols,(function(e){return n("Section",{key:e.type,attrs:{title:e.title,anchor:e.anchor}},[n("List",{attrs:{symbols:e.symbols,type:e.type}})],1)})),1)},ga=[],fa=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",{ref:"apiChangesDiff",staticClass:"relationships-list",class:e.classes},e._l(e.symbols,(function(t){return n("li",{key:t.identifier,staticClass:"relationships-item"},[t.url?n("router-link",{staticClass:"link",attrs:{to:e.buildUrl(t.url,e.$route.query)}},[n("WordBreak",{attrs:{tag:"code"}},[e._v(e._s(t.title))])],1):n("WordBreak",{attrs:{tag:"code"}},[e._v(e._s(t.title))]),t.conformance?n("ConditionalConstraints",{attrs:{constraints:t.conformance.constraints,prefix:t.conformance.conformancePrefix}}):e._e()],1)})),0)},ma=[];const ya=3,va={conformsTo:"conformance",inheritsFrom:"inheritance",inheritedBy:"inheritedBy"};var ba={name:"RelationshipsList",components:{ConditionalConstraints:Qt["a"],WordBreak:_e["a"]},inject:["store","identifier"],mixins:[Jt["b"],Jt["a"]],props:{symbols:{type:Array,required:!0},type:{type:String,required:!0}},data(){return{state:this.store.state}},computed:{classes({changeType:e,multipleLinesClass:t,hasMultipleLinesAfterAPIChanges:n}){return[{inline:this.shouldDisplayInline,column:!this.shouldDisplayInline,["changed changed-"+e]:!!e,[t]:n}]},hasAvailabilityConstraints(){return this.symbols.some(e=>!!(e.conformance||{}).constraints)},changes({identifier:e,state:{apiChanges:t}}){return(t||{})[e]||{}},changeType({changes:e,type:t}){const n=va[t];if(e.change!==yn["c"].modified)return e.change;const i=e[n];if(!i)return;const a=(e,t)=>e.map((e,n)=>[e,t[n]]),s=a(i.previous,i.new).some(([e,t])=>e.content?0===e.content.length&&t.content.length>0:!!t.content);return s?yn["c"].added:yn["c"].modified},shouldDisplayInline(){const{hasAvailabilityConstraints:e,symbols:t}=this;return t.length<=ya&&!e}},methods:{buildUrl:q["b"]}},Ta=ba,_a=(n("4281"),Object(R["a"])(Ta,fa,ma,!1,null,"6497632e",null)),Sa=_a.exports,Ca={name:"Relationships",inject:{references:{default(){return{}}}},components:{ContentTable:et,List:Sa,Section:lt},props:{sections:{type:Array,required:!0}},computed:{contentSectionData:()=>qe.relationships,sectionsWithSymbols(){return this.sections.map(e=>({...e,symbols:e.identifiers.reduce((e,t)=>this.references[t]?e.concat(this.references[t]):e,[])}))}}},ka=Ca,wa=Object(R["a"])(ka,pa,ga,!1,null,null,null),Ia=wa.exports,Oa=n("e8ea"),xa=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Section",{staticClass:"availability",attrs:{role:"complementary","aria-label":"Availability"}},[e._l(e.technologies,(function(t){return n("Badge",{key:t,staticClass:"technology"},[n("TechnologyIcon",{staticClass:"tech-icon"}),e._v(" "+e._s(t)+" ")],1)})),e._l(e.platforms,(function(t){return n("Badge",{key:t.name,staticClass:"platform",class:e.changesClassesFor(t.name)},[n("AvailabilityRange",{attrs:{deprecatedAt:t.deprecatedAt,introducedAt:t.introducedAt,platformName:t.name}}),t.deprecatedAt?n("span",{staticClass:"deprecated"},[e._v("Deprecated")]):t.beta?n("span",{staticClass:"beta"},[e._v("Beta")]):e._e()],1)}))],2)},Da=[],Pa=n("3024"),$a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{attrs:{role:"text","aria-label":e.ariaLabel,title:e.description}},[e._v(" "+e._s(e.text)+" ")])},Aa=[],La={name:"AvailabilityRange",props:{deprecatedAt:{type:String,required:!1},introducedAt:{type:String,required:!0},platformName:{type:String,required:!0}},computed:{ariaLabel(){const{deprecatedAt:e,description:t,text:n}=this;return[n].concat(e?"Deprecated":[]).concat(t).join(", ")},description(){const{deprecatedAt:e,introducedAt:t,platformName:n}=this;return e?`Introduced in ${n} ${t} and deprecated in ${n} ${e}`:`Available on ${n} ${t} and later`},text(){const{deprecatedAt:e,introducedAt:t,platformName:n}=this;return e?`${n} ${t}–${e}`:`${n} ${t}+`}}},Na=La,ja=Object(R["a"])(Na,$a,Aa,!1,null,null,null),Ea=ja.exports,Ba={name:"Availability",mixins:[Jt["b"]],inject:["identifier","store"],components:{Badge:qn["a"],AvailabilityRange:Ea,Section:te,TechnologyIcon:Pa["a"]},props:{platforms:{type:Array,required:!0},technologies:{type:Array,required:!1}},data(){return{state:this.store.state}},methods:{changeFor(e){const{identifier:t,state:{apiChanges:n}}=this,{availability:i={}}=(n||{})[t]||{},a=i[e];if(a)return a.deprecated?yn["c"].deprecated:a.introduced&&!a.introduced.previous?yn["c"].added:yn["c"].modified}}},Ra=Ba,Ma=(n("d6cc"),Object(R["a"])(Ra,xa,Da,!1,null,"3b784eb3",null)),Ka=Ma.exports,za=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("TopicsTable",{attrs:{anchor:e.contentSectionData.anchor,title:e.contentSectionData.title,isSymbolDeprecated:e.isSymbolDeprecated,isSymbolBeta:e.isSymbolBeta,sections:e.sections}})},Fa=[],qa={name:"SeeAlso",components:{TopicsTable:pt},props:{isSymbolDeprecated:Boolean,isSymbolBeta:Boolean,sections:pt.props.sections},computed:{contentSectionData:()=>qe.seeAlso}},Ha=qa,Va=Object(R["a"])(Ha,za,Fa,!1,null,null,null),Wa=Va.exports,Ua=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"topictitle"},[e.eyebrow?n("span",{staticClass:"eyebrow"},[e._v(e._s(e.eyebrow))]):e._e(),n("h1",{staticClass:"title"},[e._t("default"),e._t("after")],2)])},Ga=[],Qa={name:"Title",props:{eyebrow:{type:String,required:!1}}},Xa=Qa,Ya=(n("3396"),Object(R["a"])(Xa,Ua,Ga,!1,null,"4492c658",null)),Ja=Ya.exports,Za=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("TopicsTable",{attrs:{anchor:e.contentSectionData.anchor,title:e.contentSectionData.title,isSymbolDeprecated:e.isSymbolDeprecated,isSymbolBeta:e.isSymbolBeta,sections:e.sections,topicStyle:e.topicStyle}})},es=[],ts={name:"Topics",components:{TopicsTable:pt},computed:{contentSectionData:()=>qe.topics},props:{isSymbolDeprecated:Boolean,isSymbolBeta:Boolean,sections:pt.props.sections,topicStyle:{type:String,required:!0,validator:e=>Object.hasOwnProperty.call(Se["a"],e)}}},ns=ts,is=Object(R["a"])(ns,Za,es,!1,null,null,null),as=is.exports,ss=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"OnThisPageStickyContainer"},[e._t("default")],2)},rs=[],os={name:"OnThisPageStickyContainer"},ls=os,cs=(n("447f"),Object(R["a"])(ls,ss,rs,!1,null,"08d4053b",null)),ds=cs.exports;const us=1050;var hs={name:"DocumentationTopic",mixins:[P["a"]],constants:{ON_THIS_PAGE_CONTAINER_BREAKPOINT:us},inject:{isTargetIDE:{default(){return!1}},store:{default(){return{reset(){},state:{}}}}},components:{OnThisPageStickyContainer:ds,OnThisPageNav:$e,DocumentationHero:Te,Abstract:Re,Aside:$["a"],BetaLegalText:K,ContentNode:Ne["a"],DefaultImplementations:yt,DownloadButton:Me["a"],LanguageSwitcher:ue,PrimaryContent:ha,Relationships:Ia,RequirementMetadata:Oa["a"],Availability:Ka,SeeAlso:Wa,Title:Ja,Topics:as,WordBreak:_e["a"]},props:{abstract:{type:Array,required:!1},conformance:{type:Object,required:!1},defaultImplementationsSections:{type:Array,required:!1},downloadNotAvailableSummary:{type:Array,required:!1},deprecationSummary:{type:Array,required:!1},diffAvailability:{type:Object,required:!1},modules:{type:Array,required:!1},hierarchy:{type:Object,default:()=>({})},interfaceLanguage:{type:String,required:!0},identifier:{type:String,required:!0},isRequirement:{type:Boolean,default:()=>!1},platforms:{type:Array,required:!1},primaryContentSections:{type:Array,required:!1},references:{type:Object,required:!0},relationshipsSections:{type:Array,required:!1},roleHeading:{type:String,required:!1},title:{type:String,required:!0},topicSections:{type:Array,required:!1},topicSectionsStyle:{type:String,default:Se["a"].list},sampleCodeDownload:{type:Object,required:!1},seeAlsoSections:{type:Array,required:!1},languagePaths:{type:Object,default:()=>({})},tags:{type:Array,required:!0},objcPath:{type:String,required:!1},swiftPath:{type:String,required:!1},isSymbolDeprecated:{type:Boolean,required:!1},isSymbolBeta:{type:Boolean,required:!1},symbolKind:{type:String,default:""},role:{type:String,default:""},remoteSource:{type:Object,required:!1},pageImages:{type:Array,required:!1},enableMinimized:{type:Boolean,default:!1},enableOnThisPageNav:{type:Boolean,default:!1},disableHeroBackground:{type:Boolean,default:!1}},provide(){return{references:this.references,identifier:this.identifier,languages:new Set(Object.keys(this.languagePaths)),interfaceLanguage:this.interfaceLanguage,symbolKind:this.symbolKind}},data(){return{topicState:this.store.state}},computed:{defaultImplementationsCount(){return(this.defaultImplementationsSections||[]).reduce((e,t)=>e+t.identifiers.length,0)},shouldShowAvailability:({platforms:e,technologies:t,enableMinimized:n})=>((e||[]).length||(t||[]).length)&&!n,hasBetaContent:({platforms:e})=>e&&e.length&&e.some(e=>e.beta),pageTitle:({title:e})=>e,pageDescription:({abstract:e,extractFirstParagraphText:t})=>e?t(e):null,shouldShowLanguageSwitcher:({objcPath:e,swiftPath:t,isTargetIDE:n,enableMinimized:i})=>!!(e&&t&&n)&&!i,enhanceBackground:({symbolKind:e,disableHeroBackground:t,topicSectionsStyle:n})=>!t&&n!==Se["a"].compactGrid&&n!==Se["a"].detailedGrid&&(!e||"module"===e),shortHero:({roleHeading:e,abstract:t,sampleCodeDownload:n,hasAvailability:i,shouldShowLanguageSwitcher:a})=>!!e+!!t+!!n+!!i+a<=1,technologies({modules:e=[]}){const t=e.reduce((e,t)=>(e.push(t.name),e.concat(t.relatedModules||[])),[]);return t.length>1?t:[]},titleBreakComponent:({enhanceBackground:e})=>e?"span":_e["a"],hasPrimaryContent:({isRequirement:e,deprecationSummary:t,downloadNotAvailableSummary:n,primaryContentSections:i})=>e||t&&t.length||n&&n.length||i&&i.length,tagName:({isSymbolDeprecated:e})=>e?"Deprecated":"Beta",pageIcon:({pageImages:e=[]})=>{const t=e.find(({type:e})=>"icon"===e);return t?t.identifier:null},shouldRenderTopicSection:({topicSectionsStyle:e,topicSections:t,enableMinimized:n})=>t&&e!==Se["a"].hidden&&!n,isOnThisPageNavVisible:({topicState:e})=>e.contentWidth>us},methods:{normalizePath(e){return e.startsWith("/")?e:"/"+e}},created(){if(this.topicState.preferredLanguage===D["a"].objectiveC.key.url&&this.interfaceLanguage!==D["a"].objectiveC.key.api&&this.objcPath&&this.$route.query.language!==D["a"].objectiveC.key.url){const{query:e}=this.$route;this.$nextTick().then(()=>{this.$router.replace({path:this.normalizePath(this.objcPath),query:{...e,language:D["a"].objectiveC.key.url}})})}this.store.reset()}},ps=hs,gs=(n("1c02"),Object(R["a"])(ps,O,x,!1,null,"666eaa31",null)),fs=gs.exports,ms=n("2b0e");const ys=()=>({[yn["c"].modified]:0,[yn["c"].added]:0,[yn["c"].deprecated]:0});var vs={state:{apiChanges:null,apiChangesCounts:ys(),selectedAPIChangesVersion:null},setAPIChanges(e){this.state.apiChanges=e},setSelectedAPIChangesVersion(e){this.state.selectedAPIChangesVersion=e},resetApiChanges(){this.state.apiChanges=null,this.state.apiChangesCounts=ys()},async updateApiChangesCounts(){await ms["default"].nextTick(),Object.keys(this.state.apiChangesCounts).forEach(e=>{this.state.apiChangesCounts[e]=this.countChangeType(e)})},countChangeType(e){if(document&&document.querySelectorAll){const t=`.changed-${e}:not(.changed-total)`;return document.querySelectorAll(t).length}return 0}},bs={state:{onThisPageSections:[],currentPageAnchor:null},resetPageSections(){this.state.onThisPageSections=[],this.state.currentPageAnchor=null},addOnThisPageSection(e){this.state.onThisPageSections.push(e)},setCurrentPageSection(e){const t=this.state.onThisPageSections.findIndex(({anchor:t})=>t===e);-1!==t&&(this.state.currentPageAnchor=e)}},Ts=n("d369");const{state:_s,...Ss}=vs,{state:Cs,...ks}=bs;var ws={state:{preferredLanguage:Ts["a"].preferredLanguage,contentWidth:0,..._s,...Cs},reset(){this.state.preferredLanguage=Ts["a"].preferredLanguage,this.resetApiChanges()},setPreferredLanguage(e){this.state.preferredLanguage=e,Ts["a"].preferredLanguage=this.state.preferredLanguage},setContentWidth(e){this.state.contentWidth=e},...Ss,...ks},Is=n("8590"),Os=n("66c9"),xs=n("0caf"),Ds=n("146e");const Ps="",$s=32,As="navigator-hide-button";function Ls(e){return e.split("").reduce((e,t)=>(e<<5)-e+t.charCodeAt(0)|0,0)}function Ns(e){const t={},n=e.length;for(let i=0;ie.parent===Ps);const i=t[e];return i?(i.childUIDs||[]).map(e=>t[e]):[]}function Rs(e,t){const n=[],i=[e];let a=null;while(i.length){a=i.pop();const e=t[a];if(!e)return[];n.unshift(e),e.parent&&e.parent!==Ps&&i.push(e.parent)}return n}function Ms(e,t,n){const i=t[e];return i?Bs(i.parent,t,n):[]}var Ks,zs,Fs={name:"NavigatorDataProvider",props:{interfaceLanguage:{type:String,default:D["a"].swift.key.url},technologyUrl:{type:String,required:!0},apiChangesVersion:{type:String,default:""}},data(){return{isFetching:!1,errorFetching:!1,isFetchingAPIChanges:!1,navigationIndex:{[D["a"].swift.key.url]:[]},navigationReferences:{},diffs:null}},computed:{flatChildren:({technologyWithChildren:e={}})=>js(e.children||[],null,0,e.beta),technologyPath:({technologyUrl:e})=>{const t=/(\/documentation\/(?:[^/]+))\/?/.exec(e);return t?t[1]:""},technologyWithChildren({navigationIndex:e,interfaceLanguage:t,technologyPath:n}){let i=e[t]||[];return i.length||(i=e[D["a"].swift.key.url]||[]),i.find(e=>n.toLowerCase()===e.path.toLowerCase())}},created(){this.fetchIndexData()},methods:{async fetchIndexData(){try{this.isFetching=!0;const{interfaceLanguages:e,references:t}=await Object(w["c"])();this.navigationIndex=Object.freeze(e),this.navigationReferences=Object.freeze(t)}catch(e){this.errorFetching=!0}finally{this.isFetching=!1}}},render(){return this.$scopedSlots.default({technology:this.technologyWithChildren,isFetching:this.isFetching,errorFetching:this.errorFetching,isFetchingAPIChanges:this.isFetchingAPIChanges,apiChanges:this.diffs,flatChildren:this.flatChildren,references:this.navigationReferences})}},qs=Fs,Hs=Object(R["a"])(qs,Ks,zs,!1,null,null,null),Vs=Hs.exports,Ws=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("GenericModal",{attrs:{isFullscreen:"",showClose:!1,visible:e.isVisible},on:{"update:visible":function(t){e.isVisible=t}}},[n("div",{staticClass:"quick-navigation",on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.focusNext.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.focusPrev.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.handleKeyEnter.apply(null,arguments)}],click:function(t){return t.target!==t.currentTarget?null:e.closeQuickNavigationModal.apply(null,arguments)}}},[n("div",{staticClass:"quick-navigation__container"},[n("FilterInput",{staticClass:"quick-navigation__filter",attrs:{placeholder:"Search symbols",focusInputWhenCreated:"",focusInputWhenEmpty:""},on:{input:function(t){e.focusedIndex=0}},scopedSlots:e._u([{key:"icon",fn:function(){return[n("div",{staticClass:"quick-navigation__magnifier-icon-container",class:{blue:e.userInput.length}},[n("MagnifierIcon")],1)]},proxy:!0}]),model:{value:e.userInput,callback:function(t){e.userInput=t},expression:"userInput"}}),n("div",{staticClass:"quick-navigation__match-list",class:{active:e.processedUserInput.length}},[e.noResultsWereFound?n("div",{staticClass:"no-results"},[n("p",[e._v(" No results found. ")])]):e._e(),e._l(e.filteredSymbols,(function(t,i){return n("Reference",{key:t.uid,staticClass:"quick-navigation__reference",attrs:{url:t.path},nativeOn:{click:function(t){return e.closeQuickNavigationModal.apply(null,arguments)},focus:function(t){return e.focusIndex(i)}}},[n("div",{ref:"match",refInFor:!0,staticClass:"quick-navigation__symbol-match",class:{selected:i==e.focusedIndex},attrs:{role:"list"}},[n("div",{staticClass:"symbol-info"},[n("div",{staticClass:"symbol-name"},[n("TopicTypeIcon",{staticClass:"navigator-icon",attrs:{type:t.type}}),n("div",{staticClass:"symbol-title"},[n("span",{domProps:{textContent:e._s(e.formatSymbolTitle(t.title,0,t.start))}}),n("QuickNavigationHighlighter",{attrs:{text:t.substring,matcherText:e.processedUserInput}}),n("span",{domProps:{textContent:e._s(e.formatSymbolTitle(t.title,t.start+t.matchLength))}})],1)],1),n("div",{staticClass:"symbol-path"},e._l(t.parents,(function(i,a){return n("div",{key:i.title},[n("span",{staticClass:"parent-path",domProps:{textContent:e._s(i.title)}}),a!==t.parents.length-1?n("span",{staticClass:"parent-path",domProps:{textContent:e._s("/")}}):e._e()])})),0)])])])}))],2)],1)])])},Us=[],Gs=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"filter",class:{focus:e.showSuggestedTags},attrs:{role:"search",tabindex:"0","aria-labelledby":e.searchAriaLabelledBy},on:{"!blur":function(t){return e.handleBlur.apply(null,arguments)},"!focus":function(t){return e.handleFocus.apply(null,arguments)}}},[n("div",{class:["filter__wrapper",{"filter__wrapper--reversed":e.positionReversed}]},[n("div",{staticClass:"filter__top-wrapper"},[n("button",{staticClass:"filter__filter-button",class:{blue:e.inputIsNotEmpty},attrs:{"aria-hidden":"true",tabindex:"-1"},on:{click:e.focusInput,mousedown:function(e){e.preventDefault()}}},[e._t("icon",(function(){return[n("FilterIcon")]}))],2),n("div",{class:["filter__input-box-wrapper",{scrolling:e.isScrolling}],on:{scroll:e.handleScroll}},[e.hasSelectedTags?n("TagList",e._g(e._b({ref:"selectedTags",staticClass:"filter__selected-tags",attrs:{id:e.SelectedTagsId,input:e.input,tags:e.selectedTags,ariaLabel:e.selectedTagsLabel,activeTags:e.activeTags,areTagsRemovable:""},on:{"focus-prev":e.handleFocusPrevOnSelectedTags,"focus-next":e.focusInputFromTags,"reset-filters":e.resetFilters,"prevent-blur":function(t){return e.$emit("update:preventedBlur",!0)}}},"TagList",e.virtualKeyboardBind,!1),e.selectedTagsMultipleSelectionListeners)):e._e(),n("label",{staticClass:"filter__input-label",attrs:{id:"filter-label",for:e.FilterInputId,"data-value":e.modelValue,"aria-label":e.placeholder}},[n("input",e._g(e._b({directives:[{name:"model",rawName:"v-model",value:e.modelValue,expression:"modelValue"}],ref:"input",staticClass:"filter__input",attrs:{id:e.FilterInputId,placeholder:e.hasSelectedTags?"":e.placeholder,"aria-expanded":e.displaySuggestedTags?"true":"false",disabled:e.disabled,type:"text"},domProps:{value:e.modelValue},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),e.downHandler.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),e.upHandler.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])||"button"in t&&0!==t.button?null:e.leftKeyInputHandler.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button?null:e.rightKeyInputHandler.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.deleteHandler.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"a",void 0,t.key,void 0)?null:t.metaKey?(t.preventDefault(),t.stopPropagation(),e.selectInputAndTags.apply(null,arguments)):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"a",void 0,t.key,void 0)?null:t.ctrlKey?(t.preventDefault(),e.selectInputAndTags.apply(null,arguments)):null},function(t){return t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.inputKeydownHandler.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.enterHandler.apply(null,arguments)},function(t){return t.shiftKey?t.ctrlKey||t.altKey||t.metaKey?null:e.inputKeydownHandler.apply(null,arguments):null},function(t){return t.shiftKey&&t.metaKey?t.ctrlKey||t.altKey?null:e.inputKeydownHandler.apply(null,arguments):null},function(t){return t.metaKey?t.ctrlKey||t.shiftKey||t.altKey?null:e.assignEventValues.apply(null,arguments):null},function(t){return t.ctrlKey?t.shiftKey||t.altKey||t.metaKey?null:e.assignEventValues.apply(null,arguments):null}],input:function(t){t.target.composing||(e.modelValue=t.target.value)}}},"input",e.AXinputProperties,!1),e.inputMultipleSelectionListeners))])],1),n("div",{staticClass:"filter__delete-button-wrapper"},[e.input.length||e.displaySuggestedTags||e.hasSelectedTags?n("button",{staticClass:"filter__delete-button",attrs:{"aria-label":"Reset Filter"},on:{click:function(t){return e.resetFilters(!0)},keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.stopPropagation(),e.resetFilters(!0))},mousedown:function(e){e.preventDefault()}}},[n("ClearRoundedIcon")],1):e._e()])]),e.displaySuggestedTags?n("TagList",e._b({ref:"suggestedTags",staticClass:"filter__suggested-tags",attrs:{id:e.SuggestedTagsId,ariaLabel:e.suggestedTagsLabel,input:e.input,tags:e.suggestedTags},on:{"click-tags":function(t){return e.selectTag(t.tagName)},"prevent-blur":function(t){return e.$emit("update:preventedBlur",!0)},"focus-next":function(t){e.positionReversed?e.focusInput():e.$emit("focus-next")},"focus-prev":function(t){e.positionReversed?e.$emit("focus-prev"):e.focusInput()}}},"TagList",e.virtualKeyboardBind,!1)):e._e()],1)])},Qs=[],Xs=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"clear-rounded-icon",attrs:{viewBox:"0 0 16 16",themeId:"clear-rounded"}},[n("title",[e._v("Clear")]),n("path",{attrs:{d:"M14.55,0l1.45,1.45-6.56,6.55,6.54,6.54-1.45,1.45-6.53-6.53L1.47,15.99,.01,14.53l6.52-6.53L0,1.47,1.45,.02l6.55,6.54L14.55,0Z","fill-rule":"evenodd"}})])},Ys=[],Js=n("be08"),Zs={name:"ClearRoundedIcon",components:{SVGIcon:Js["a"]}},er=Zs,tr=Object(R["a"])(er,Xs,Ys,!1,null,null,null),nr=tr.exports;function ir(){if(window.getSelection)try{const{activeElement:e}=document;return e&&e.value?e.value.substring(e.selectionStart,e.selectionEnd):window.getSelection().toString()}catch(e){return""}else if(document.selection&&"Control"!==document.selection.type)return document.selection.createRange().text;return""}function ar(e){if("number"===typeof e.selectionStart)e.selectionStart=e.selectionEnd=e.value.length;else if("undefined"!==typeof e.createTextRange){e.focus();const t=e.createTextRange();t.collapse(!1),t.select()}}function sr(e){e.selectionStart=e.selectionEnd=0}function rr(e){return/^[\w\W\s]$/.test(e)}function or(e){const t=e.match(/(.*)<\/data>/);try{return t?JSON.parse(t[1]):null}catch(n){return null}}function lr(e){return"string"!==typeof e&&(e=JSON.stringify(e)),`${e}`}function cr(e,t,n,i){let a,s;return function(...r){function o(){clearTimeout(a),a=null}function l(){o(),e.apply(s,r)}if(s=this,!a||!n&&!i){if(!n)return o(),void(a=setTimeout(l,t));a=setTimeout(o,t),e.apply(s,r)}}}const dr=280,ur=100;var hr={data(){return{keyboardIsVirtual:!1,activeTags:[],initTagIndex:null,focusedTagIndex:null,metaKey:!1,shiftKey:!1,tabbing:!1,debouncedHandleDeleteTag:null}},constants:{DebounceDelay:dr,VirtualKeyboardThreshold:ur},computed:{virtualKeyboardBind:({keyboardIsVirtual:e})=>({keyboardIsVirtual:e}),allSelectedTagsAreActive:({selectedTags:e,activeTags:t})=>e.every(e=>t.includes(e))},methods:{selectRangeActiveTags(e=this.focusedTagIndex,t=this.selectedTags.length){this.activeTags=this.selectedTags.slice(e,t)},selectTag(e){this.updateSelectedTags([e]),this.clearFilterOnTagSelect&&this.setFilterInput("")},unselectActiveTags(){this.activeTags.length&&(this.deleteTags(this.activeTags),this.resetActiveTags())},async deleteHandler(e){this.activeTags.length>0&&this.setSelectedTags(this.selectedTags.filter(e=>!this.activeTags.includes(e))),this.inputIsSelected()&&this.allSelectedTagsAreActive?(e.preventDefault(),await this.resetFilters()):0===this.$refs.input.selectionEnd&&this.hasSelectedTags&&(e.preventDefault(),this.keyboardIsVirtual?this.setSelectedTags(this.selectedTags.slice(0,-1)):this.$refs.selectedTags.focusLast()),this.unselectActiveTags()},leftKeyInputHandler(e){if(this.assignEventValues(e),this.hasSelectedTags){if(this.activeTags.length&&!this.shiftKey)return e.preventDefault(),void this.$refs.selectedTags.focusTag(this.activeTags[0]);if(this.shiftKey&&0===this.$refs.input.selectionStart&&"forward"!==this.$refs.input.selectionDirection)return null===this.focusedTagIndex&&(this.focusedTagIndex=this.selectedTags.length),this.focusedTagIndex>0&&(this.focusedTagIndex-=1),this.initTagIndex=this.selectedTags.length,void this.selectTagsPressingShift();(0===this.$refs.input.selectionEnd||this.inputIsSelected())&&this.$refs.selectedTags.focusLast()}},rightKeyInputHandler(e){if(this.assignEventValues(e),this.activeTags.length&&this.shiftKey&&this.focusedTagIndex=ur&&(this.keyboardIsVirtual=!0)}),dr),setFilterInput(e){this.$emit("update:input",e)},setSelectedTags(e){this.$emit("update:selectedTags",e)},updateSelectedTags(e){this.setSelectedTags([...new Set([...this.selectedTags,...e])])},handleCopy(e){e.preventDefault();const t=[],n={tags:[],input:ir()};if(this.activeTags.length){const e=this.activeTags;n.tags=e,t.push(e.join(" "))}return t.push(n.input),n.tags.length||n.input.length?(e.clipboardData.setData("text/html",lr(n)),e.clipboardData.setData("text/plain",t.join(" ")),n):n},handleCut(e){e.preventDefault();const{input:t,tags:n}=this.handleCopy(e);if(!t&&!n.length)return;const i=this.selectedTags.filter(e=>!n.includes(e)),a=this.input.replace(t,"");this.setSelectedTags(i),this.setFilterInput(a)},handlePaste(e){e.preventDefault();const{types:t}=e.clipboardData;let n=[],i=e.clipboardData.getData("text/plain");if(t.includes("text/html")){const t=e.clipboardData.getData("text/html"),a=or(t);a&&({tags:n=[],input:i=""}=a)}const a=ir();i=a.length?this.input.replace(a,i):Object(it["f"])(this.input,i,document.activeElement.selectionStart),this.setFilterInput(i.trim()),this.allSelectedTagsAreActive?this.setSelectedTags(n):this.updateSelectedTags(n),this.resetActiveTags()},async handleDeleteTag({tagName:e,event:t={}}){const{key:n}=t;this.activeTags.length||this.deleteTags([e]),this.unselectActiveTags(),await this.$nextTick(),ar(this.$refs.input),this.hasSelectedTags&&(await this.focusInput(),"Backspace"===n&&sr(this.$refs.input))}},mounted(){window.visualViewport&&(window.visualViewport.addEventListener("resize",this.updateKeyboardType),this.$once("hook:beforeDestroy",()=>{window.visualViewport.removeEventListener("resize",this.updateKeyboardType)}))}};const pr=1e3;var gr={constants:{ScrollingDebounceDelay:pr},data(){return{isScrolling:!1,scrollRemovedAt:0}},created(){this.deleteScroll=cr(this.deleteScroll,pr)},methods:{deleteScroll(){this.isScrolling=!1,this.scrollRemovedAt=Date.now()},handleScroll(e){const{target:t}=e;if(0!==t.scrollTop)return t.scrollTop=0,void e.preventDefault();const n=150,i=t.offsetWidth,a=i+n;if(t.scrollWidth0?this.focusIndex(this.focusedIndex-1):this.startingPointHook())},focusNext({metaKey:e,ctrlKey:t,shiftKey:n}){(e||t)&&n||(this.externalFocusChange=!1,this.focusedIndex0}},kr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{staticClass:"tag",attrs:{role:"presentation"}},[n("button",{ref:"button",class:{focus:e.isActiveTag},attrs:{role:"option","aria-selected":e.ariaSelected,"aria-roledescription":"tag"},on:{focus:function(t){return e.$emit("focus",{event:t,tagName:e.name})},click:function(t){return t.preventDefault(),e.$emit("click",{event:t,tagName:e.name})},dblclick:function(t){t.preventDefault(),!e.keyboardIsVirtual&&e.deleteTag()},keydown:[function(t){return t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.$emit("keydown",{event:t,tagName:e.name})},function(t){return t.shiftKey?t.ctrlKey||t.altKey||t.metaKey?null:e.$emit("keydown",{event:t,tagName:e.name}):null},function(t){return t.shiftKey&&t.metaKey?t.ctrlKey||t.altKey?null:e.$emit("keydown",{event:t,tagName:e.name}):null},function(t){return t.metaKey?t.ctrlKey||t.shiftKey||t.altKey?null:e.$emit("keydown",{event:t,tagName:e.name}):null},function(t){return t.ctrlKey?t.shiftKey||t.altKey||t.metaKey?null:e.$emit("keydown",{event:t,tagName:e.name}):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:(t.preventDefault(),e.deleteTag.apply(null,arguments))}],mousedown:function(t){return t.preventDefault(),e.focusButton.apply(null,arguments)},copy:e.handleCopy}},[e.isRemovableTag?e._e():n("span",{staticClass:"visuallyhidden"},[e._v(" Add tag - ")]),e._v(" "+e._s(e.name)+" "),e.isRemovableTag?n("span",{staticClass:"visuallyhidden"},[e._v(" – Tag. Select to remove from list. ")]):e._e()])])},wr=[],Ir={name:"Tag",props:{name:{type:String,required:!0},isFocused:{type:Boolean,default:()=>!1},isRemovableTag:{type:Boolean,default:!1},isActiveTag:{type:Boolean,default:!1},activeTags:{type:Array,required:!1},keyboardIsVirtual:{type:Boolean,default:!1}},watch:{isFocused(e){e&&this.focusButton()}},mounted(){document.addEventListener("copy",this.handleCopy),document.addEventListener("cut",this.handleCut),document.addEventListener("paste",this.handlePaste),this.$once("hook:beforeDestroy",()=>{document.removeEventListener("copy",this.handleCopy),document.removeEventListener("cut",this.handleCut),document.removeEventListener("paste",this.handlePaste)})},methods:{isCurrentlyActiveElement(){return document.activeElement===this.$refs.button},handleCopy(e){if(!this.isCurrentlyActiveElement())return;e.preventDefault();let t=[];t=this.activeTags.length>0?this.activeTags:[this.name],e.clipboardData.setData("text/html",lr({tags:t})),e.clipboardData.setData("text/plain",t.join(" "))},handleCut(e){this.isCurrentlyActiveElement()&&this.isRemovableTag&&(this.handleCopy(e),this.deleteTag(e))},handlePaste(e){this.isCurrentlyActiveElement()&&this.isRemovableTag&&(e.preventDefault(),this.deleteTag(e),this.$emit("paste-content",e))},deleteTag(e){this.$emit("delete-tag",{tagName:this.name,event:e}),this.$emit("prevent-blur")},focusButton(e={}){this.keyboardIsVirtual||this.$refs.button.focus(),0===e.buttons&&this.isFocused&&this.deleteTag(e)}},computed:{ariaSelected:({isActiveTag:e,isRemovableTag:t})=>t?e?"true":"false":null}},Or=Ir,xr=(n("bcfb"),Object(R["a"])(Or,kr,wr,!1,null,"3b809bfa",null)),Dr=xr.exports,Pr={name:"Tags",mixins:[gr,Cr],props:{tags:{type:Array,default:()=>[]},activeTags:{type:Array,default:()=>[]},ariaLabel:{type:String,required:!1},id:{type:String,required:!1},input:{type:String,default:null},areTagsRemovable:{type:Boolean,default:!1},keyboardIsVirtual:{type:Boolean,default:!1}},components:{Tag:Dr},methods:{focusTag(e){this.focusIndex(this.tags.indexOf(e))},startingPointHook(){this.$emit("focus-prev")},handleFocus(e,t){this.focusIndex(t),this.isScrolling=!1,this.$emit("focus",e)},endingPointHook(){this.$emit("focus-next")},resetScroll(){this.$refs["scroll-wrapper"].scrollLeft=0},handleKeydown(e){const{key:t}=e,n=this.tags[this.focusedIndex];rr(t)&&n&&this.$emit("delete-tag",{tagName:n.label||n,event:e})}},computed:{totalItemsToNavigate:({tags:e})=>e.length}},$r=Pr,Ar=(n("8b7a"),Object(R["a"])($r,_r,Sr,!1,null,"4b231516",null)),Lr=Ar.exports;const Nr=5,jr="filter-input",Er="selected-tags",Br="suggested-tags",Rr={autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"combobox","aria-haspopup":"true","aria-autocomplete":"none","aria-owns":"suggestedTags","aria-controls":"suggestedTags"};var Mr,Kr,zr={name:"FilterInput",mixins:[gr,hr],constants:{FilterInputId:jr,SelectedTagsId:Er,SuggestedTagsId:Br,AXinputProperties:Rr,TagLimit:Nr},components:{TagList:Lr,ClearRoundedIcon:nr,FilterIcon:Tr},props:{positionReversed:{type:Boolean,default:()=>!1},tags:{type:Array,default:()=>[]},selectedTags:{type:Array,default:()=>[]},preventedBlur:{type:Boolean,default:()=>!1},placeholder:{type:String,default:()=>"Filter"},disabled:{type:Boolean,default:()=>!1},value:{type:String,default:()=>""},shouldTruncateTags:{type:Boolean,default:!1},focusInputWhenCreated:{type:Boolean,default:!1},focusInputWhenEmpty:{type:Boolean,default:!1},clearFilterOnTagSelect:{type:Boolean,default:!0}},data(){return{resetedTagsViaDeleteButton:!1,FilterInputId:jr,SelectedTagsId:Er,SuggestedTagsId:Br,AXinputProperties:Rr,showSuggestedTags:!1}},computed:{tagsText:({suggestedTags:e})=>Object(it["g"])({en:{one:"tag",other:"tags"}},e.length),selectedTagsLabel:({tagsText:e})=>"Selected "+e,suggestedTagsLabel:({tagsText:e})=>"Suggested "+e,hasSuggestedTags:({suggestedTags:e})=>e.length,hasSelectedTags:({selectedTags:e})=>e.length,inputIsNotEmpty:({input:e,hasSelectedTags:t})=>e.length||t,searchAriaLabelledBy:({hasSelectedTags:e})=>e?jr.concat(" ",Er):jr,modelValue:{get:({value:e})=>e,set(e){this.$emit("input",e)}},input:({value:e})=>e,suggestedTags:({tags:e,selectedTags:t,shouldTruncateTags:n})=>{const i=e.filter(e=>!t.includes(e));return n?i.slice(0,Nr):i},displaySuggestedTags:({showSuggestedTags:e,suggestedTags:t})=>e&&t.length>0,inputMultipleSelectionListeners:({resetActiveTags:e,handleCopy:t,handleCut:n,handlePaste:i})=>({click:e,copy:t,cut:n,paste:i}),selectedTagsMultipleSelectionListeners:({handleSingleTagClick:e,selectInputAndTags:t,handleDeleteTag:n,selectedTagsKeydownHandler:i,focusTagHandler:a,handlePaste:s})=>({"click-tags":e,"select-all":t,"delete-tag":n,keydown:i,focus:a,"paste-tags":s})},watch:{async selectedTags(){this.resetedTagsViaDeleteButton?this.resetedTagsViaDeleteButton=!1:this.$el.contains(document.activeElement)&&await this.focusInput(),this.displaySuggestedTags&&this.hasSuggestedTags&&this.$refs.suggestedTags.resetScroll()},suggestedTags:{immediate:!0,handler(e){this.$emit("suggested-tags",e)}},showSuggestedTags(e){this.$emit("show-suggested-tags",e)}},methods:{async focusInput(){await this.$nextTick(),this.$refs.input.focus(),!this.input&&this.resetActiveTags&&this.resetActiveTags()},async resetFilters(e=!1){if(this.setFilterInput(""),this.setSelectedTags([]),!e)return this.$emit("update:preventedBlur",!0),this.resetActiveTags&&this.resetActiveTags(),void await this.focusInput();this.resetedTagsViaDeleteButton=!0,this.showSuggestedTags=!1,this.$refs.input.blur()},focusFirstTag(e=(()=>{})){this.showSuggestedTags||(this.showSuggestedTags=!0),this.hasSuggestedTags&&this.$refs.suggestedTags?this.$refs.suggestedTags.focusFirst():e()},setFilterInput(e){this.$emit("input",e)},setSelectedTags(e){this.$emit("update:selectedTags",e)},deleteTags(e){this.setSelectedTags(this.selectedTags.filter(t=>!e.includes(t)))},async handleBlur(e){const t=e.relatedTarget;t&&t.matches&&t.matches("button, input, ul")&&this.$el.contains(t)||(await this.$nextTick(),this.resetActiveTags(),this.preventedBlur?this.$emit("update:preventedBlur",!1):this.showSuggestedTags=!1)},downHandler(e){const t=()=>this.$emit("focus-next",e);this.positionReversed?t():this.focusFirstTag(t)},upHandler(e){const t=()=>this.$emit("focus-prev",e);this.positionReversed?this.focusFirstTag(t):t()},handleFocusPrevOnSelectedTags(){this.positionReversed?this.focusFirstTag(()=>this.$emit("focus-prev")):this.$emit("focus-prev")},handleFocus(){this.showSuggestedTags=!0}},created(){this.focusInputWhenCreated&&document.activeElement!==this.$refs.input&&(this.inputIsNotEmpty||this.focusInputWhenEmpty)&&this.focusInput()}},Fr=zr,qr=(n("228b"),Object(R["a"])(Fr,Gs,Qs,!1,null,"449fced2",null)),Hr=qr.exports,Vr=n("c161"),Wr={name:"QuickNavigationHighlighter",props:{text:{type:String,required:!0},matcherText:{type:String,default:""}},render(e){const{matcherText:t,text:n}=this,i=[];let a=0;return t?([...t].forEach(t=>{const s=n.toLowerCase().indexOf(t.toLowerCase(),a);a&&i.push(e("span",n.slice(a,s)));const r=s+1;i.push(e("span",{class:"match"},n.slice(s,r))),a=r}),e("p",{class:"highlight"},i)):e("span",{class:"highlight"},n)}},Ur=Wr,Gr=(n("ca3d"),Object(R["a"])(Ur,Mr,Kr,!1,null,"1c4190f0",null)),Qr=Gr.exports,Xr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"magnifier-icon",attrs:{viewBox:"0 0 14 14",themeId:"magnifier"}},[n("path",{attrs:{d:"M15.0013 14.0319L10.9437 9.97424C11.8165 8.88933 12.2925 7.53885 12.2929 6.14645C12.2929 2.75841 9.53449 0 6.14645 0C2.75841 0 0 2.75841 0 6.14645C0 9.53449 2.75841 12.2929 6.14645 12.2929C7.57562 12.2929 8.89486 11.7932 9.94425 10.9637L14.0019 15.0213L15.0013 14.0319ZM6.13645 11.0736C4.83315 11.071 3.58399 10.5521 2.66241 9.63048C1.74084 8.70891 1.22194 7.45974 1.2193 6.15644C1.2193 3.44801 3.41802 1.23928 6.13645 1.23928C8.85488 1.23928 11.0536 3.44801 11.0536 6.15644C11.0636 8.86488 8.85488 11.0736 6.13645 11.0736Z"}})])},Yr=[],Jr={name:"MagnifierIcon",components:{SVGIcon:Js["a"]}},Zr=Jr,eo=Object(R["a"])(Zr,Xr,Yr,!1,null,null,null),to=eo.exports,no=n("86d8"),io={name:"QuickNavigationModal",components:{FilterInput:Hr,GenericModal:Vr["a"],MagnifierIcon:to,TopicTypeIcon:ge["a"],QuickNavigationHighlighter:Qr,Reference:no["a"]},mixins:[Cr],data(){return{debouncedInput:"",userInput:""}},props:{children:{type:Array,required:!0},showQuickNavigationModal:{type:Boolean,required:!0}},computed:{childrenMap({children:e}){return Ns(e)},filteredSymbols:({constructFuzzyRegex:e,children:t,fuzzyMatch:n,processedUserInput:i,childrenMap:a,orderSymbolsByPriority:s})=>{const r=t.filter(e=>"groupMarker"!==e.type&&null!=e.title);if(!i)return[];const o=n({inputLength:i.length,symbols:r,processedInputRegex:new RegExp(e(i),"i"),childrenMap:a}),l=[...new Map(o.map(e=>[e.path,e])).values()];return s(l).slice(0,20)},isVisible:{get:({showQuickNavigationModal:e})=>e,set(e){this.$emit("update:showQuickNavigationModal",e)}},noResultsWereFound:({processedUserInput:e,totalItemsToNavigate:t})=>e.length&&!t,processedUserInput:({debouncedInput:e})=>e.replace(/\s/g,""),totalItemsToNavigate:({filteredSymbols:e})=>e.length},watch:{userInput:"debounceInput",focusedIndex:"scrollIntoView"},methods:{closeQuickNavigationModal(){this.$emit("update:showQuickNavigationModal",!1)},constructFuzzyRegex(e){return[...e].reduce((t,n,i)=>t.concat(`[${n}]`).concat(i{const a=n.exec(t.title);if(!a)return!1;const s=a[0].length;return!(s>3*e)&&{uid:t.uid,title:t.title,path:t.path,parents:Rs(t.parent,i),type:t.type,inputLengthDifference:t.title.length-e,matchLength:s,matchLengthDifference:s-e,start:a.index,substring:a[0]}}).filter(Boolean)},handleKeyEnter(){!this.noResultsWereFound&&this.userInput.length&&(this.$router.push(this.filteredSymbols[this.focusedIndex].path),this.closeQuickNavigationModal())},orderSymbolsByPriority(e){return e.sort((e,t)=>e.matchLengthDifference>t.matchLengthDifference?1:e.matchLengthDifferencet.start?1:e.startt.inputLengthDifference?1:e.inputLengthDifference{const n=Math.min(t,vo);return Math.floor(Math.min(n*(e/100),n))},So={medium:30,large:20},Co={medium:50,large:50},ko="sidebar-scroll-lock";var wo={name:"AdjustableSidebarWidth",constants:{SCROLL_LOCK_ID:ko},components:{BreakpointEmitter:uo["a"]},inject:["store"],props:{shownOnMobile:{type:Boolean,default:!1},hiddenOnLarge:{type:Boolean,default:!1},fixedWidth:{type:Number,default:null}},data(){const e=window.innerWidth,t=window.innerHeight,n=ho["b"].large,i=_o(So[n]),a=_o(Co[n]),s=e>=vo?bo:Math.round((i+a)/2),r=co["c"].get(yo,s);return{isDragging:!1,width:this.fixedWidth||Math.min(Math.max(r,i),a),isTouch:!1,windowWidth:e,windowHeight:t,breakpoint:n,noTransition:!1,isTransitioning:!1,isOpeningOnLarge:!1,focusTrapInstance:null,mobileTopOffset:0,topOffset:0}},computed:{minWidthPercent:({breakpoint:e})=>So[e]||0,maxWidthPercent:({breakpoint:e})=>Co[e]||100,maxWidth:({maxWidthPercent:e,windowWidth:t,fixedWidth:n})=>Math.max(n,_o(e,t)),minWidth:({minWidthPercent:e,windowWidth:t,fixedWidth:n})=>Math.min(n||t,_o(e,t)),widthInPx:({width:e})=>e+"px",hiddenOnLargeThreshold:({minWidth:e})=>e/2,events:({isTouch:e})=>e?To.touch:To.mouse,asideStyles:({widthInPx:e,mobileTopOffset:t,topOffset:n,windowHeight:i})=>({width:e,"--top-offset":n?n+"px":null,"--top-offset-mobile":t+"px","--app-height":i+"px"}),asideClasses:({isDragging:e,shownOnMobile:t,noTransition:n,isTransitioning:i,hiddenOnLarge:a,mobileTopOffset:s,isOpeningOnLarge:r})=>({dragging:e,"show-on-mobile":t,"hide-on-large":a,"is-opening-on-large":r,"no-transition":n,"sidebar-transitioning":i,"has-mobile-top-offset":s}),scrollLockID:()=>ko,BreakpointScopes:()=>ho["c"]},async mounted(){window.addEventListener("keydown",this.onEscapeKeydown),window.addEventListener("resize",this.storeWindowSize,{passive:!0}),window.addEventListener("orientationchange",this.storeWindowSize,{passive:!0}),this.storeTopOffset(),0===this.topOffset&&0===window.scrollY||window.addEventListener("scroll",this.storeTopOffset,{passive:!0}),this.$once("hook:beforeDestroy",()=>{window.removeEventListener("keydown",this.onEscapeKeydown),window.removeEventListener("resize",this.storeWindowSize),window.removeEventListener("orientationchange",this.storeWindowSize),window.removeEventListener("scroll",this.storeTopOffset),this.shownOnMobile&&this.toggleScrollLock(!1),this.focusTrapInstance&&this.focusTrapInstance.destroy()}),await this.$nextTick(),this.focusTrapInstance=new go["a"](this.$refs.aside)},watch:{$route:"closeMobileSidebar",width:{immediate:!0,handler:we((function(e){this.emitEventChange(e)}),150)},windowWidth:"getWidthInCheck",async breakpoint(e){this.getWidthInCheck(),e===ho["b"].large&&this.closeMobileSidebar(),this.noTransition=!0,await Object(Ie["b"])(5),this.noTransition=!1},shownOnMobile:"handleExternalOpen",isTransitioning(e){e||this.updateContentWidthInStore()},hiddenOnLarge(){this.isTransitioning=!0}},methods:{getWidthInCheck:cr((function(){this.width>this.maxWidth?this.width=this.maxWidth:this.widththis.maxWidth&&(i=this.maxWidth),this.hiddenOnLarge&&i>=this.hiddenOnLargeThreshold&&(this.$emit("update:hiddenOnLarge",!1),this.isOpeningOnLarge=!0),this.width=Math.max(i,this.minWidth),i<=this.hiddenOnLargeThreshold&&this.$emit("update:hiddenOnLarge",!0)},stopDrag(e){e.preventDefault(),this.isDragging&&(this.isDragging=!1,co["c"].set(yo,this.width),document.removeEventListener(this.events.move,this.handleDrag),document.removeEventListener(this.events.end,this.stopDrag),this.emitEventChange(this.width))},emitEventChange(e){this.$emit("width-change",e),this.updateContentWidthInStore()},getTopOffset(){const e=document.getElementById(mo["e"]);if(!e)return 0;const{y:t}=e.getBoundingClientRect();return Math.max(t,0)},handleExternalOpen(e){e&&(this.mobileTopOffset=this.getTopOffset()),this.toggleScrollLock(e)},async updateContentWidthInStore(){await this.$nextTick(),this.store.setContentWidth(this.$refs.content.offsetWidth)},async toggleScrollLock(e){const t=document.getElementById(this.scrollLockID);e?(await this.$nextTick(),po["a"].lockScroll(t),this.focusTrapInstance.start(),fo["a"].hide(this.$refs.aside)):(po["a"].unlockScroll(t),this.focusTrapInstance.stop(),fo["a"].show(this.$refs.aside))},storeTopOffset:we((function(){this.topOffset=this.getTopOffset()}),60),trackTransitionStart({propertyName:e}){"width"!==e&&"transform"!==e||(this.isTransitioning=!0)},trackTransitionEnd({propertyName:e}){"width"!==e&&"transform"!==e||(this.isTransitioning=!1,this.isOpeningOnLarge=!1)}}},Io=wo,Oo=(n("c3a6"),Object(R["a"])(Io,oo,lo,!1,null,"8b4eac40",null)),xo=Oo.exports,Do=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("nav",{staticClass:"navigator",attrs:{"aria-labelledby":e.INDEX_ROOT_KEY}},[e.isFetching?n("LoadingNavigatorCard",e._b({on:{close:function(t){return e.$emit("close")}}},"LoadingNavigatorCard",e.technologyProps,!1)):n("NavigatorCard",e._b({attrs:{type:e.type,children:e.flatChildren,"active-path":e.activePath,scrollLockID:e.scrollLockID,"error-fetching":e.errorFetching,"render-filter-on-top":e.renderFilterOnTop,"api-changes":e.apiChanges,"allow-hiding":e.allowHiding,"navigator-references":e.navigatorReferences},on:{close:function(t){return e.$emit("close")}}},"NavigatorCard",e.technologyProps,!1)),n("div",{staticClass:"visuallyhidden",attrs:{"aria-live":"polite"}},[e._v(" Navigator is "+e._s(e.isFetching?"loading":"ready")+" ")])],1)},Po=[],$o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BaseNavigatorCard",e._b({class:{"filter-on-top":e.renderFilterOnTop},on:{close:function(t){return e.$emit("close")},"head-click-alt":e.toggleAllNodes},scopedSlots:e._u([{key:"body",fn:function(t){var i=t.className;return[e._t("post-head"),n("div",{class:i,on:{"!keydown":[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:t.altKey?(t.preventDefault(),e.focusFirst.apply(null,arguments)):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:t.altKey?(t.preventDefault(),e.focusLast.apply(null,arguments)):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.focusPrev.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.focusNext.apply(null,arguments))}]}},[n("DynamicScroller",{directives:[{name:"show",rawName:"v-show",value:e.hasNodes,expression:"hasNodes"}],ref:"scroller",staticClass:"scroller",attrs:{id:e.scrollLockID,"aria-label":"Documentation Navigator",items:e.nodesToRender,"min-item-size":e.itemSize,"emit-update":"","key-field":"uid"},on:{update:e.handleScrollerUpdate,"!keydown":[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:t.altKey?(t.preventDefault(),e.focusFirst.apply(null,arguments)):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:t.altKey?(t.preventDefault(),e.focusLast.apply(null,arguments)):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.focusPrev.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.focusNext.apply(null,arguments))}]},nativeOn:{focusin:function(t){return e.handleFocusIn.apply(null,arguments)},focusout:function(t){return e.handleFocusOut.apply(null,arguments)}},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,a=t.active,s=t.index;return[n("DynamicScrollerItem",e._b({},"DynamicScrollerItem",{active:a,item:i,dataIndex:s},!1),[n("NavigatorCardItem",{attrs:{item:i,isRendered:a,"filter-pattern":e.filterPattern,"is-active":i.uid===e.activeUID,"is-bold":e.activePathMap[i.uid],expanded:e.openNodes[i.uid],"api-change":e.apiChangesObject[i.path],isFocused:e.focusedIndex===s,enableFocus:!e.externalFocusChange,"navigator-references":e.navigatorReferences},on:{toggle:e.toggle,"toggle-full":e.toggleFullTree,"toggle-siblings":e.toggleSiblings,navigate:e.handleNavigationChange,"focus-parent":e.focusNodeParent}})],1)]}}],null,!0)}),n("div",{staticClass:"visuallyhidden",attrs:{"aria-live":"polite"}},[e._v(" "+e._s(e.politeAriaLive)+" ")]),n("div",{staticClass:"no-items-wrapper",attrs:{"aria-live":"assertive"}},[n("p",{staticClass:"no-items"},[e._v(" "+e._s(e.assertiveAriaLive)+" ")])])],1),e.errorFetching?e._e():n("div",{staticClass:"filter-wrapper"},[n("div",{staticClass:"navigator-filter"},[n("div",{staticClass:"input-wrapper"},[n("FilterInput",{staticClass:"filter-component",attrs:{tags:e.availableTags,"selected-tags":e.selectedTagsModelValue,placeholder:"Filter","should-keep-open-on-blur":!1,"position-reversed":!e.renderFilterOnTop,"clear-filter-on-tag-select":!1},on:{"update:selectedTags":function(t){e.selectedTagsModelValue=t},"update:selected-tags":function(t){e.selectedTagsModelValue=t},clear:e.clearFilters},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1)])])]}}],null,!0)},"BaseNavigatorCard",{technology:e.technology,isTechnologyBeta:e.isTechnologyBeta,technologyPath:e.technologyPath},!1))},Ao=[],Lo=n("e508");function No(e){const t=Object(it["h"])(Object(it["d"])(e));return new RegExp(t,"ig")}var jo,Eo,Bo=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BaseNavigatorCardItem",{staticClass:"navigator-card-item",class:{expanded:e.expanded,active:e.isActive,"is-group":e.isGroupMarker},style:{"--nesting-index":e.item.depth},attrs:{"data-nesting-index":e.item.depth,id:"container-"+e.item.uid,"aria-hidden":e.isRendered?null:"true",hideNavigatorIcon:e.isGroupMarker},nativeOn:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])||"button"in t&&0!==t.button?null:(t.preventDefault(),e.handleLeftKeydown.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.handleRightKeydown.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.clickReference.apply(null,arguments))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])?null:t.altKey?"button"in t&&2!==t.button?null:(t.preventDefault(),e.toggleEntireTree.apply(null,arguments)):null}]},scopedSlots:e._u([{key:"depth-spacer",fn:function(){return[n("span",{attrs:{hidden:"",id:e.usageLabel}},[e._v(" To navigate the symbols, press Up Arrow, Down Arrow, Left Arrow or Right Arrow ")]),e.isParent?n("button",{staticClass:"tree-toggle",attrs:{tabindex:"-1","aria-labelledby":e.item.uid,"aria-expanded":e.expanded?"true":"false","aria-describedby":e.ariaDescribedBy},on:{click:[function(t){return t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.toggleTree.apply(null,arguments))},function(t){return t.altKey?(t.preventDefault(),e.toggleEntireTree.apply(null,arguments)):null},function(t){return t.metaKey?(t.preventDefault(),e.toggleSiblings.apply(null,arguments)):null}]}},[n("InlineChevronRightIcon",{staticClass:"icon-inline chevron",class:{rotate:e.expanded,animating:e.idState.isOpening}})],1):e._e()]},proxy:!0},{key:"navigator-icon",fn:function(t){var i,a=t.className;return[e.apiChange?n("span",{class:[(i={},i["changed changed-"+e.apiChange]=e.apiChange,i),a]}):n("TopicTypeIcon",{key:e.item.uid,class:a,attrs:{type:e.item.type,"image-override":e.item.icon?e.navigatorReferences[e.item.icon]:null,shouldCalculateOptimalWidth:!1}})]}},{key:"title-container",fn:function(){return[e.isParent?n("span",{attrs:{hidden:"",id:e.parentLabel}},[e._v(", containing "+e._s(e.item.childUIDs.length)+" symbols")]):e._e(),n("span",{attrs:{id:e.siblingsLabel,hidden:""}},[e._v(" "+e._s(e.item.index+1)+" of "+e._s(e.item.siblingsCount)+" symbols inside ")]),n(e.refComponent,{ref:"reference",tag:"component",staticClass:"leaf-link",class:{bolded:e.isBold},attrs:{id:e.item.uid,url:e.isGroupMarker?null:e.item.path||"",tabindex:e.isFocused?"0":"-1","aria-describedby":e.ariaDescribedBy+" "+e.usageLabel},nativeOn:{click:[function(t){return t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.handleClick.apply(null,arguments)},function(t){return t.altKey?(t.preventDefault(),e.toggleEntireTree.apply(null,arguments)):null}]}},[n("HighlightMatches",{attrs:{text:e.item.title,matcher:e.filterPattern}})],1),e.isDeprecated?n("Badge",{attrs:{variant:"deprecated"}}):e.isBeta?n("Badge",{attrs:{variant:"beta"}}):e._e()]},proxy:!0}])})},Ro=[],Mo=n("34b0"),Ko=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"navigator-card-item"},[n("div",{staticClass:"head-wrapper"},[n("div",{staticClass:"depth-spacer"},[e._t("depth-spacer")],2),e.hideNavigatorIcon?e._e():n("div",{staticClass:"navigator-icon-wrapper"},[e._t("navigator-icon",null,{className:"navigator-icon"})],2),n("div",{staticClass:"title-container"},[e._t("title-container")],2)])])},zo=[],Fo={name:"BaseNavigatorCardItem",props:{hideNavigatorIcon:{type:Boolean,default:()=>!1}}},qo=Fo,Ho=(n("b39c"),Object(R["a"])(qo,Ko,zo,!1,null,"0b9fe514",null)),Vo=Ho.exports,Wo={name:"HighlightMatch",props:{text:{type:String,required:!0},matcher:{type:RegExp,default:void 0}},render(e){const{matcher:t,text:n}=this;if(!t)return e("p",{class:"highlight"},n);const i=[];let a=0,s=null;const r=new RegExp(t,"gi");while(null!==(s=r.exec(n))){const t=s[0].length,r=s.index+t,o=n.slice(a,s.index);o&&i.push(e("span",o));const l=n.slice(s.index,r);l&&i.push(e("span",{class:"match"},l)),a=r}const o=n.slice(a,n.length);return o&&i.push(e("span",o)),e("p",{class:"highlight"},i)}},Uo=Wo,Go=(n("b831"),Object(R["a"])(Uo,jo,Eo,!1,null,"d75876e2",null)),Qo=Go.exports,Xo={name:"NavigatorCardItem",mixins:[Object(Lo["c"])({idProp:e=>e.item.uid})],components:{BaseNavigatorCardItem:Vo,HighlightMatches:Qo,TopicTypeIcon:ge["a"],InlineChevronRightIcon:Mo["a"],Reference:no["a"],Badge:qn["a"]},props:{isRendered:{type:Boolean,default:!1},item:{type:Object,required:!0},expanded:{type:Boolean,default:!1},filterPattern:{type:RegExp,default:void 0},isActive:{type:Boolean,default:!1},isBold:{type:Boolean,default:!1},apiChange:{type:String,default:null,validator:e=>yn["d"].includes(e)},isFocused:{type:Boolean,default:()=>!1},enableFocus:{type:Boolean,default:!0},navigatorReferences:{type:Object,default:()=>({})}},idState(){return{isOpening:!1}},computed:{isGroupMarker:({item:{type:e}})=>e===fe["b"].groupMarker,isParent:({item:e,isGroupMarker:t})=>!!e.childUIDs.length&&!t,parentLabel:({item:e})=>"label-parent-"+e.uid,siblingsLabel:({item:e})=>"label-"+e.uid,usageLabel:({item:e})=>"usage-"+e.uid,ariaDescribedBy({item:e,siblingsLabel:t,parentLabel:n,isParent:i}){const a=`${t} ${e.parent}`;return i?`${a} ${n}`:""+a},isBeta:({item:{beta:e}})=>!!e,isDeprecated:({item:{deprecated:e}})=>!!e,refComponent:({isGroupMarker:e})=>e?"h3":no["a"]},methods:{toggleTree(){this.idState.isOpening=!0,this.$emit("toggle",this.item)},toggleEntireTree(){this.idState.isOpening=!0,this.$emit("toggle-full",this.item)},toggleSiblings(){this.idState.isOpening=!0,this.$emit("toggle-siblings",this.item)},handleLeftKeydown(){this.expanded?this.toggleTree():this.$emit("focus-parent",this.item)},handleRightKeydown(){!this.expanded&&this.isParent&&this.toggleTree()},clickReference(){(this.$refs.reference.$el||this.$refs.reference).click()},focusReference(){(this.$refs.reference.$el||this.$refs.reference).focus()},handleClick(){this.isGroupMarker||this.$emit("navigate",this.item.uid)}},watch:{async isFocused(e){await Object(Ie["b"])(8),e&&this.isRendered&&this.enableFocus&&this.focusReference()},async expanded(){await Object(Ie["b"])(9),this.idState.isOpening=!1}}},Yo=Xo,Jo=(n("bab5"),Object(R["a"])(Yo,Bo,Ro,!1,null,"08a89c9e",null)),Zo=Jo.exports,el=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"navigator-card"},[n("div",{staticClass:"navigator-card-full-height"},[n("div",{staticClass:"navigator-card-inner"},[n("div",{staticClass:"head-wrapper"},[n("div",{staticClass:"head-inner"},[n("button",{staticClass:"close-card",class:{"hide-on-large":!e.allowHiding},attrs:{id:e.SIDEBAR_HIDE_BUTTON_ID,"aria-label":"Close documentation navigator"},on:{click:e.handleHideClick}},[n("SidenavIcon",{staticClass:"icon-inline close-icon"})],1),n("Reference",{staticClass:"navigator-head",attrs:{id:e.INDEX_ROOT_KEY,url:e.technologyPath},nativeOn:{click:function(t){return t.altKey?(t.preventDefault(),e.$emit("head-click-alt")):null}}},[n("h2",{staticClass:"card-link"},[e._v(" "+e._s(e.technology)+" ")]),e.isTechnologyBeta?n("Badge",{attrs:{variant:"beta"}}):e._e()],1)],1)]),e._t("body",null,{className:"card-body"})],2)])])},tl=[],nl=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"sidenav-icon",attrs:{viewBox:"0 0 14 14",height:"14",themeId:"sidenav"}},[n("path",{attrs:{d:"M6.533 1.867h-6.533v10.267h14v-10.267zM0.933 11.2v-8.4h4.667v8.4zM13.067 11.2h-6.533v-8.4h6.533z"}}),n("path",{attrs:{d:"M1.867 5.133h2.8v0.933h-2.8z"}}),n("path",{attrs:{d:"M1.867 7.933h2.8v0.933h-2.8z"}})])},il=[],al={name:"SidenavIcon",components:{SVGIcon:Js["a"]}},sl=al,rl=Object(R["a"])(sl,nl,il,!1,null,null,null),ol=rl.exports,ll={name:"BaseNavigatorCard",components:{SidenavIcon:ol,Reference:no["a"],Badge:qn["a"]},props:{allowHiding:{type:Boolean,default:!0},technologyPath:{type:String,default:""},technology:{type:String,required:!0},isTechnologyBeta:{type:Boolean,default:!1}},data(){return{SIDEBAR_HIDE_BUTTON_ID:As,INDEX_ROOT_KEY:Ps}},methods:{async handleHideClick(){this.$emit("close"),await this.$nextTick();const e=document.getElementById(mo["d"]);e&&e.focus()}}},cl=ll,dl=(n("4de6"),Object(R["a"])(cl,el,tl,!1,null,"4a898368",null)),ul=dl.exports;const hl=e=>e[e.length-1],pl=(e,t)=>JSON.stringify(e)===JSON.stringify(t),gl="navigator.state",fl="No results found.",ml="No data available.",yl="There was an error fetching the data.",vl="items were found. Tab back to navigate through them.",bl={sampleCode:"sampleCode",tutorials:"tutorials",articles:"articles"},Tl={[bl.sampleCode]:"Sample Code",[bl.tutorials]:"Tutorials",[bl.articles]:"Articles"},_l=Object.fromEntries(Object.entries(Tl).map(([e,t])=>[t,e])),Sl={[fe["b"].article]:bl.articles,[fe["b"].learn]:bl.tutorials,[fe["b"].overview]:bl.tutorials,[fe["b"].resources]:bl.tutorials,[fe["b"].sampleCode]:bl.sampleCode,[fe["b"].section]:bl.tutorials,[fe["b"].tutorial]:bl.tutorials,[fe["b"].project]:bl.tutorials},Cl="Hide Deprecated";var kl={name:"NavigatorCard",constants:{STORAGE_KEY:gl,FILTER_TAGS:bl,FILTER_TAGS_TO_LABELS:Tl,FILTER_LABELS_TO_TAGS:_l,TOPIC_TYPE_TO_TAG:Sl,NO_RESULTS:fl,NO_CHILDREN:ml,ERROR_FETCHING:yl,ITEMS_FOUND:vl,HIDE_DEPRECATED_TAG:Cl},components:{FilterInput:Hr,NavigatorCardItem:Zo,DynamicScroller:Lo["a"],DynamicScrollerItem:Lo["b"],BaseNavigatorCard:ul},props:{...ul.props,children:{type:Array,required:!0},activePath:{type:Array,required:!0},type:{type:String,required:!0},scrollLockID:{type:String,default:""},errorFetching:{type:Boolean,default:!1},apiChanges:{type:Object,default:null},isTechnologyBeta:{type:Boolean,default:!1},navigatorReferences:{type:Object,default:()=>{}},renderFilterOnTop:{type:Boolean,default:!1}},mixins:[Cr],data(){return{filter:"",debouncedFilter:"",selectedTags:[],openNodes:Object.freeze({}),nodesToRender:Object.freeze([]),activeUID:null,lastFocusTarget:null,NO_RESULTS:fl,NO_CHILDREN:ml,ERROR_FETCHING:yl,ITEMS_FOUND:vl,allNodesToggled:!1}},computed:{politeAriaLive:({hasNodes:e,nodesToRender:t})=>e?[t.length,vl].join(" "):"",assertiveAriaLive:({hasNodes:e,hasFilter:t,errorFetching:n})=>e?"":t?fl:n?yl:ml,availableTags:({selectedTags:e,renderableChildNodesMap:t,apiChangesObject:n})=>{if(e.length)return[];const i=new Set(Object.values(n)),a=new Set(Object.values(Tl)),s=new Set([Cl]);i.size&&s.delete(Cl);const r={type:[],changes:[],other:[]};for(const o in t){if(!Object.hasOwnProperty.call(t,o))continue;if(!a.size&&!i.size&&!s.size)break;const{type:e,path:l,deprecated:c}=t[o],d=Tl[Sl[e]],u=n[l];a.has(d)&&(r.type.push(d),a.delete(d)),u&&i.has(u)&&(r.changes.push(yn["b"][u]),i.delete(u)),c&&s.has(Cl)&&(r.other.push(Cl),s.delete(Cl))}return r.type.concat(r.changes,r.other)},selectedTagsModelValue:{get:({selectedTags:e})=>e.map(e=>Tl[e]||yn["b"][e]||e),set(e){(this.selectedTags.length||e.length)&&(this.selectedTags=e.map(e=>_l[e]||yn["a"][e]||e))}},filterPattern:({debouncedFilter:e})=>e?new RegExp(No(e),"i"):null,itemSize:()=>$s,childrenMap({children:e}){return Ns(e)},activePathChildren({activeUID:e,childrenMap:t}){return e&&t[e]?Rs(e,t):[]},activePathMap:({activePathChildren:e})=>Object.fromEntries(e.map(({uid:e})=>[e,!0])),activeIndex:({activeUID:e,nodesToRender:t})=>t.findIndex(t=>t.uid===e),filteredChildren({hasFilter:e,children:t,filterPattern:n,selectedTags:i,apiChanges:a}){if(!e)return[];const s=new Set(i);return t.filter(({title:e,path:t,type:i,deprecated:r,deprecatedChildrenCount:o,childUIDs:l})=>{const c=r||o===l.length,d=!n||n.test(e);let u=!0;s.size&&(u=s.has(Sl[i]),a&&!u&&(u=s.has(a[t])),!c&&s.has(Cl)&&(u=!0));const h=!a||!!a[t];return d&&u&&h})},renderableChildNodesMap({hasFilter:e,childrenMap:t,deprecatedHidden:n,filteredChildren:i,removeDeprecated:a}){if(!e)return t;const s=i.length-1,r=new Set([]);for(let o=s;o>=0;o-=1){const e=i[o],s=t[e.groupMarkerUID];if(s&&r.add(s),r.has(e))continue;if(r.has(t[e.parent])&&e.type!==fe["b"].groupMarker){r.add(e);continue}let l=[];e.childUIDs.length&&(l=a(Es(e.uid,t),n)),l.concat(Rs(e.uid,t)).forEach(e=>r.add(e))}return Ns([...r])},nodeChangeDeps:({filteredChildren:e,activePathChildren:t,debouncedFilter:n,selectedTags:i})=>[e,t,n,i],hasFilter({debouncedFilter:e,selectedTags:t,apiChanges:n}){return Boolean(e.length||t.length||n)},deprecatedHidden:({selectedTags:e})=>e[0]===Cl,apiChangesObject(){return this.apiChanges||{}},hasNodes:({nodesToRender:e})=>!!e.length,totalItemsToNavigate:({nodesToRender:e})=>e.length,lastActivePathItem:({activePath:e})=>hl(e)},created(){this.restorePersistedState()},watch:{filter:"debounceInput",nodeChangeDeps:"trackOpenNodes",activePath:"handleActivePathChange",apiChanges(e){e||(this.selectedTags=this.selectedTags.filter(e=>!yn["b"][e]))}},methods:{toggleAllNodes(){const e=this.children.filter(e=>e.parent===Ps&&e.type!==fe["b"].groupMarker&&e.childUIDs.length);this.allNodesToggled=!this.allNodesToggled,this.allNodesToggled&&(this.openNodes={},this.generateNodesToRender()),e.forEach(e=>{this.toggleFullTree(e)})},clearFilters(){this.filter="",this.debouncedFilter="",this.selectedTags=[]},scrollToFocus(){this.$refs.scroller.scrollToItem(this.focusedIndex)},debounceInput:cr((function(e){this.debouncedFilter=e,this.lastFocusTarget=null}),200),trackOpenNodes([e,t,n,i],[,a=[],s="",r=[]]=[]){if(n!==s&&!s&&this.getFromStorage("filter")||!pl(i,r)&&!r.length&&this.getFromStorage("selectedTags",[]).length)return;const o=!pl(a,t),{childrenMap:l}=this;let c=t;if(!(this.deprecatedHidden&&!this.debouncedFilter.length||o&&this.hasFilter)&&this.hasFilter){const t=new Set,n=e.length-1;for(let i=n;i>=0;i-=1){const n=e[i];t.has(l[n.parent])||t.has(n)||Rs(n.uid,l).slice(0,-1).forEach(e=>t.add(e))}c=[...t]}const d=o?{...this.openNodes}:{},u=c.reduce((e,t)=>(e[t.uid]=!0,e),d);this.openNodes=Object.freeze(u),this.generateNodesToRender(),this.updateFocusIndexExternally()},toggle(e){const t=this.openNodes[e.uid];let n=[],i=[];if(t){const t=Object(w["a"])(this.openNodes),n=Es(e.uid,this.childrenMap);n.forEach(({uid:e})=>{delete t[e]}),this.openNodes=Object.freeze(t),i=n.slice(1)}else this.openNodes=Object.freeze({...this.openNodes,[e.uid]:!0}),n=Bs(e.uid,this.childrenMap,this.children).filter(e=>this.renderableChildNodesMap[e.uid]);this.augmentRenderNodes({uid:e.uid,include:n,exclude:i})},toggleFullTree(e){const t=this.openNodes[e.uid],n=Object(w["a"])(this.openNodes),i=Es(e.uid,this.childrenMap);let a=[],s=[];i.forEach(({uid:e})=>{t?delete n[e]:n[e]=!0}),t?a=i.slice(1):s=i.slice(1).filter(e=>this.renderableChildNodesMap[e.uid]),this.openNodes=Object.freeze(n),this.augmentRenderNodes({uid:e.uid,exclude:a,include:s})},toggleSiblings(e){const t=this.openNodes[e.uid],n=Object(w["a"])(this.openNodes),i=Ms(e.uid,this.childrenMap,this.children);i.forEach(({uid:e,childUIDs:i,type:a})=>{if(i.length&&a!==fe["b"].groupMarker)if(t){const t=Es(e,this.childrenMap);t.forEach(e=>{delete n[e.uid]}),delete n[e],this.augmentRenderNodes({uid:e,exclude:t.slice(1),include:[]})}else{n[e]=!0;const t=Bs(e,this.childrenMap,this.children).filter(e=>this.renderableChildNodesMap[e.uid]);this.augmentRenderNodes({uid:e,exclude:[],include:t})}}),this.openNodes=Object.freeze(n),this.persistState()},removeDeprecated(e,t){return t?e.filter(({deprecated:e})=>!e):e},generateNodesToRender(){const{children:e,openNodes:t,renderableChildNodesMap:n}=this;this.nodesToRender=Object.freeze(e.filter(e=>n[e.uid]&&(e.parent===Ps||t[e.parent]))),this.persistState(),this.scrollToElement()},augmentRenderNodes({uid:e,include:t=[],exclude:n=[]}){const i=this.nodesToRender.findIndex(t=>t.uid===e);if(t.length){const e=t.filter(e=>!this.nodesToRender.includes(e)),n=this.nodesToRender.slice(0);n.splice(i+1,0,...e),this.nodesToRender=Object.freeze(n)}else if(n.length){const e=new Set(n);this.nodesToRender=Object.freeze(this.nodesToRender.filter(t=>!e.has(t)))}this.persistState()},getFromStorage(e,t=null){const n=co["b"].get(gl,{}),i=n[this.technologyPath];return i?e?i[e]||t:i:t},persistState(){const e={path:this.lastActivePathItem},{path:t}=this.activeUID&&this.childrenMap[this.activeUID]||e,n={technology:this.technology,path:t,hasApiChanges:!!this.apiChanges,openNodes:Object.keys(this.openNodes).map(Number),nodesToRender:this.nodesToRender.map(({uid:e})=>e),activeUID:this.activeUID,filter:this.filter,selectedTags:this.selectedTags},i={...co["b"].get(gl,{}),[this.technologyPath]:n};co["b"].set(gl,i)},clearPersistedState(){const e={...co["b"].get(gl,{}),[this.technologyPath]:{}};co["b"].set(gl,e)},restorePersistedState(){const e=this.getFromStorage();if(!e||e.path!==this.lastActivePathItem)return this.clearPersistedState(),void this.handleActivePathChange(this.activePath);const{technology:t,nodesToRender:n=[],filter:i="",hasAPIChanges:a=!1,activeUID:s=null,selectedTags:r=[],openNodes:o}=e;if(!n.length&&!i&&!r.length)return this.clearPersistedState(),void this.handleActivePathChange(this.activePath);const{childrenMap:l}=this,c=n.every(e=>l[e]),d=s?(this.childrenMap[s]||{}).path===this.lastActivePathItem:1===this.activePath.length;if(t!==this.technology||!c||a!==Boolean(this.apiChanges)||!d||s&&!i&&!r.length&&!n.includes(s))return this.clearPersistedState(),void this.handleActivePathChange(this.activePath);this.openNodes=Object.freeze(Object.fromEntries(o.map(e=>[e,!0]))),this.nodesToRender=Object.freeze(n.map(e=>l[e])),this.selectedTags=r,this.filter=i,this.debouncedFilter=this.filter,this.activeUID=s,this.scrollToElement()},async scrollToElement(){if(await Object(Ie["b"])(1),!this.$refs.scroller)return;if(this.hasFilter&&!this.deprecatedHidden)return void this.$refs.scroller.scrollToItem(0);const e=document.getElementById(this.activeUID);if(e&&0===this.getChildPositionInScroller(e))return;const t=this.nodesToRender.findIndex(e=>e.uid===this.activeUID);-1!==t&&this.$refs.scroller.scrollToItem(t)},getChildPositionInScroller(e){if(!e)return 0;const{paddingTop:t,paddingBottom:n}=getComputedStyle(this.$refs.scroller.$el),i={top:parseInt(t,10)||0,bottom:parseInt(n,10)||0},{y:a,height:s}=this.$refs.scroller.$el.getBoundingClientRect(),{y:r}=e.getBoundingClientRect(),o=e.offsetParent.offsetHeight,l=r-a-i.top;return l<0?-1:l+o>=s-i.bottom?1:0},isInsideScroller(e){return this.$refs.scroller.$el.contains(e)},handleFocusIn({target:e}){this.lastFocusTarget=e;const t=this.getChildPositionInScroller(e);if(0===t)return;const{offsetHeight:n}=e.offsetParent;this.$refs.scroller.$el.scrollBy({top:n*t,left:0})},handleFocusOut(e){e.relatedTarget&&(this.isInsideScroller(e.relatedTarget)||(this.lastFocusTarget=null))},handleScrollerUpdate:cr((async function(){await Object(Ie["a"])(300),this.lastFocusTarget&&this.isInsideScroller(this.lastFocusTarget)&&document.activeElement!==this.lastFocusTarget&&this.lastFocusTarget.focus({preventScroll:!0})}),50),setActiveUID(e){this.activeUID=e},handleNavigationChange(e){this.childrenMap[e].path.startsWith(this.technologyPath)&&this.setActiveUID(e)},pathsToFlatChildren(e){const t=e.slice(0).reverse(),{childrenMap:n}=this;let i=this.children;const a=[];while(t.length){const e=t.pop(),s=i.find(t=>t.path===e);if(!s)break;a.push(s),t.length&&(i=s.childUIDs.map(e=>n[e]))}return a},handleActivePathChange(e){const t=this.childrenMap[this.activeUID],n=hl(e);if(t){if(n===t.path)return;const e=Ms(this.activeUID,this.childrenMap,this.children),i=Bs(this.activeUID,this.childrenMap,this.children),a=Rs(this.activeUID,this.childrenMap),s=[...i,...e,...a].find(e=>e.path===n);if(s)return void this.setActiveUID(s.uid)}const i=this.pathsToFlatChildren(e);i.length?this.setActiveUID(i[i.length-1].uid):this.activeUID?this.setActiveUID(null):this.trackOpenNodes(this.nodeChangeDeps)},updateFocusIndexExternally(){this.externalFocusChange=!0,this.activeIndex>0?this.focusIndex(this.activeIndex):this.focusIndex(0)},focusNodeParent(e){const t=this.childrenMap[e.parent];if(!t)return;const n=this.nodesToRender.findIndex(e=>e.uid===t.uid);-1!==n&&this.focusIndex(n)}}},wl=kl,Il=(n("87ff"),Object(R["a"])(wl,$o,Ao,!1,null,"a440d59c",null)),Ol=Il.exports,xl=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BaseNavigatorCard",e._b({on:{close:function(t){return e.$emit("close")}},scopedSlots:e._u([{key:"body",fn:function(t){var i=t.className;return[n("transition",{attrs:{name:"delay-visibility"}},[n("div",{staticClass:"loading-navigator",class:i,attrs:{"aria-hidden":"true"}},e._l(e.LOADER_ROWS,(function(e,t){return n("LoadingNavigatorItem",{key:t,attrs:{index:t,width:e.width,hideNavigatorIcon:e.hideNavigatorIcon}})})),1)])]}}])},"BaseNavigatorCard",e.$props,!1))},Dl=[],Pl=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BaseNavigatorCardItem",{staticClass:"loading-navigator-item",style:"--index: "+e.index+";",attrs:{hideNavigatorIcon:e.hideNavigatorIcon},scopedSlots:e._u([{key:"navigator-icon",fn:function(e){var t=e.className;return[n("div",{class:t})]}},{key:"title-container",fn:function(){return[n("div",{staticClass:"loader",style:{width:e.width}})]},proxy:!0}])})},$l=[],Al={name:"LoadingNavigatorItem",components:{BaseNavigatorCardItem:Vo},props:{...Vo.props,index:{type:Number,default:0},width:{type:String,default:"50%"}}},Ll=Al,Nl=(n("d1b4"),Object(R["a"])(Ll,Pl,$l,!1,null,"0de29914",null)),jl=Nl.exports;const El=[{width:"30%",hideNavigatorIcon:!0},{width:"80%"},{width:"50%"}];var Bl={name:"LoadingNavigatorCard",components:{BaseNavigatorCard:ul,LoadingNavigatorItem:jl},props:{...ul.props},data(){return{LOADER_ROWS:El}}},Rl=Bl,Ml=(n("115d"),Object(R["a"])(Rl,xl,Dl,!1,null,"4b6d345f",null)),Kl=Ml.exports,zl={name:"Navigator",components:{NavigatorCard:Ol,LoadingNavigatorCard:Kl},data(){return{INDEX_ROOT_KEY:Ps}},props:{flatChildren:{type:Array,required:!0},parentTopicIdentifiers:{type:Array,required:!0},technology:{type:Object,required:!0},isFetching:{type:Boolean,default:!1},references:{type:Object,default:()=>{}},navigatorReferences:{type:Object,default:()=>{}},scrollLockID:{type:String,default:""},errorFetching:{type:Boolean,default:!1},renderFilterOnTop:{type:Boolean,default:!1},apiChanges:{type:Object,default:null},allowHiding:{type:Boolean,default:!0}},computed:{parentTopicReferences({references:e,parentTopicIdentifiers:t}){return t.reduce((t,n)=>{const i=e[n];return i?t.concat(i):(console.error(`Reference for "${n}" is missing`),t)},[])},activePath({parentTopicReferences:e,$route:{path:t}}){if(t=t.replace(/\/$/,"").toLowerCase(),!e.length)return[t];let n=1;return"technologies"===e[0].kind&&(n=2),e.slice(n).map(e=>e.url).concat(t)},type:()=>fe["b"].module,technologyProps:({technology:e})=>({technology:e.title,technologyPath:e.path||e.url,isTechnologyBeta:e.beta})}},Fl=zl,ql=(n("0ff0"),Object(R["a"])(Fl,Do,Po,!1,null,"048fdefe",null)),Hl=ql.exports,Vl=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("NavBase",{staticClass:"documentation-nav",attrs:{breakpoint:e.BreakpointName.medium,hasOverlay:!1,hasSolidBackground:"",hasNoBorder:e.hasNoBorder,isDark:e.isDark,isWideFormat:"",hasFullWidthBorder:"","aria-label":"API Reference"},scopedSlots:e._u([e.displaySidenav?{key:"pre-title",fn:function(t){var i=t.closeNav,a=t.isOpen,s=t.currentBreakpoint,r=t.className;return[n("div",{class:r},[n("transition",{attrs:{name:"sidenav-toggle"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.sidenavHiddenOnLarge,expression:"sidenavHiddenOnLarge"}],staticClass:"sidenav-toggle-wrapper"},[n("button",{staticClass:"sidenav-toggle",attrs:{"aria-label":"Open documentation navigator",id:e.baseNavOpenSidenavButtonId,tabindex:a?-1:null},on:{click:function(t){return t.preventDefault(),e.handleSidenavToggle(i,s)}}},[n("span",{staticClass:"sidenav-icon-wrapper"},[n("SidenavIcon",{staticClass:"icon-inline sidenav-icon"})],1)]),n("span",{staticClass:"sidenav-toggle__separator"})])])],1)]}}:null,{key:"tray",fn:function(t){var i=t.closeNav;return[n("Hierarchy",{attrs:{currentTopicTitle:e.title,isSymbolDeprecated:e.isSymbolDeprecated,isSymbolBeta:e.isSymbolBeta,parentTopicIdentifiers:e.hierarchyItems,currentTopicTags:e.currentTopicTags,references:e.references}}),n("NavMenuItems",{staticClass:"nav-menu-settings",attrs:{previousSiblingChildren:e.breadcrumbCount}},[e.interfaceLanguage&&(e.swiftPath||e.objcPath)?n("LanguageToggle",{attrs:{interfaceLanguage:e.interfaceLanguage,objcPath:e.objcPath,swiftPath:e.swiftPath,closeNav:i}}):e._e(),e._t("menu-items")],2),e._t("tray-after",null,null,{breadcrumbCount:e.breadcrumbCount})]}}],null,!0)},[n("template",{slot:"default"},[e._t("title",(function(){return[e.rootLink?n("router-link",{staticClass:"nav-title-link",attrs:{to:e.rootLink}},[e._v(" Documentation ")]):n("span",{staticClass:"nav-title-link inactive"},[e._v("Documentation")])]}),null,{rootLink:e.rootLink,linkClass:"nav-title-link",inactiveClass:"inactive"})],2),n("template",{slot:"after-content"},[e._t("after-content")],2)],2)},Wl=[],Ul=n("cbcf"),Gl=n("9b30"),Ql=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("NavMenuItems",{staticClass:"hierarchy",class:{"has-badge":e.hasBadge},attrs:{"aria-label":"Breadcrumbs"}},[e.root?n("HierarchyItem",{key:e.root.title,staticClass:"root-hierarchy",attrs:{url:e.addQueryParamsToUrl(e.root.url)}},[e._v(" "+e._s(e.root.title)+" ")]):e._e(),e._l(e.collapsibleItems,(function(t){return n("HierarchyItem",{key:t.title,attrs:{isCollapsed:"",url:e.addQueryParamsToUrl(t.url)}},[e._v(" "+e._s(t.title)+" ")])})),e.collapsibleItems.length?n("HierarchyCollapsedItems",{attrs:{topics:e.collapsibleItems}}):e._e(),e._l(e.nonCollapsibleItems,(function(t){return n("HierarchyItem",{key:t.title,attrs:{url:e.addQueryParamsToUrl(t.url)}},[e._v(" "+e._s(t.title)+" ")])})),n("HierarchyItem",[e._v(" "+e._s(e.currentTopicTitle)+" "),n("template",{slot:"tags"},[e.isSymbolDeprecated?n("Badge",{attrs:{variant:"deprecated"}}):e.isSymbolBeta?n("Badge",{attrs:{variant:"beta"}}):e._e(),e._l(e.currentTopicTags,(function(t){return n("Badge",{key:t.type+"-"+t.text,attrs:{variant:t.type}},[e._v(" "+e._s(t.text)+" ")])}))],2)],2)],2)},Xl=[],Yl=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{staticClass:"hierarchy-collapsed-items"},[n("span",{staticClass:"hierarchy-item-icon icon-inline"},[e._v("/")]),n("button",{ref:"btn",staticClass:"toggle",class:{focused:!e.collapsed},on:{click:e.toggleCollapsed}},[n("span",{staticClass:"indicator"},[n("EllipsisIcon",{staticClass:"icon-inline toggle-icon"})],1)]),n("ul",{ref:"dropdown",staticClass:"dropdown",class:{collapsed:e.collapsed}},e._l(e.topicsWithUrls,(function(t){return n("li",{key:t.title,staticClass:"dropdown-item"},[n("router-link",{staticClass:"nav-menu-link",attrs:{to:t.url}},[e._v(e._s(t.title))])],1)})),0)])},Jl=[],Zl=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"ellipsis-icon",attrs:{viewBox:"0 0 14 14",themeId:"ellipsis"}},[n("path",{attrs:{d:"m12.439 7.777v-1.554h-1.554v1.554zm-4.662 0v-1.554h-1.554v1.554zm-4.662 0v-1.554h-1.554v1.554z"}})])},ec=[],tc={name:"EllipsisIcon",components:{SVGIcon:Js["a"]}},nc=tc,ic=Object(R["a"])(nc,Zl,ec,!1,null,null,null),ac=ic.exports,sc={name:"HierarchyCollapsedItems",components:{EllipsisIcon:ac},data:()=>({collapsed:!0}),props:{topics:{type:Array,required:!0}},watch:{collapsed(e,t){t&&!e?document.addEventListener("click",this.handleDocumentClick,!1):!t&&e&&document.removeEventListener("click",this.handleDocumentClick,!1)}},beforeDestroy(){document.removeEventListener("click",this.handleDocumentClick,!1)},computed:{topicsWithUrls:({$route:e,topics:t})=>t.map(t=>({...t,url:Object(q["b"])(t.url,e.query)}))},methods:{handleDocumentClick(e){const{target:t}=e,{collapsed:n,$refs:{btn:i,dropdown:a}}=this,s=!i.contains(t)&&!a.contains(t);!n&&s&&(this.collapsed=!0)},toggleCollapsed(){this.collapsed=!this.collapsed}}},rc=sc,oc=(n("2ca2"),Object(R["a"])(rc,Yl,Jl,!1,null,"74906830",null)),lc=oc.exports,cc=function(e,t){var n=t._c;return n(t.$options.components.NavMenuItemBase,{tag:"component",staticClass:"hierarchy-item",class:[{collapsed:t.props.isCollapsed},t.data.staticClass]},[n("span",{staticClass:"hierarchy-item-icon icon-inline"},[t._v("/")]),t.props.url?n("router-link",{staticClass:"parent item nav-menu-link",attrs:{to:t.props.url}},[t._t("default")],2):[n("span",{staticClass:"current item"},[t._t("default")],2),t._t("tags")]],2)},dc=[],uc=n("863d"),hc={name:"HierarchyItem",components:{NavMenuItemBase:uc["a"],InlineChevronRightIcon:Mo["a"]},props:{isCollapsed:Boolean,url:{type:String,required:!1}}},pc=hc,gc=(n("260a"),Object(R["a"])(pc,cc,dc,!0,null,"382bf39e",null)),fc=gc.exports;const mc=3;var yc={name:"Hierarchy",components:{Badge:qn["a"],NavMenuItems:Gl["a"],HierarchyCollapsedItems:lc,HierarchyItem:fc},constants:{MaxVisibleLinks:mc},inject:["store"],props:{isSymbolDeprecated:Boolean,isSymbolBeta:Boolean,references:Object,currentTopicTitle:{type:String,required:!0},parentTopicIdentifiers:{type:Array,default:()=>[]},currentTopicTags:{type:Array,default:()=>[]}},computed:{windowWidth:({store:e})=>e.state.contentWidth,parentTopics(){return this.parentTopicIdentifiers.reduce((e,t)=>{const n=this.references[t];if(n){const{title:t,url:i}=n;return e.concat({title:t,url:i})}return console.error(`Reference for "${t}" is missing`),e},[])},root:({parentTopics:e,windowWidth:t})=>t<=1e3?null:e[0],firstItemSlice:({root:e})=>e?1:0,linksAfterCollapse:({windowWidth:e,hasBadge:t})=>{const n=t?1:0;return e>1200?mc-n:e>1e3?mc-1-n:e>=800?mc-2-n:0},collapsibleItems:({parentTopics:e,linksAfterCollapse:t,firstItemSlice:n})=>t?e.slice(n,-t):e.slice(n),nonCollapsibleItems:({parentTopics:e,linksAfterCollapse:t,firstItemSlice:n})=>t?e.slice(n).slice(-t):[],hasBadge:({isSymbolDeprecated:e,isSymbolBeta:t,currentTopicTags:n})=>e||t||n.length},methods:{addQueryParamsToUrl(e){return Object(q["b"])(e,this.$route.query)}}},vc=yc,bc=(n("a780"),Object(R["a"])(vc,Ql,Xl,!1,null,"42bf934a",null)),Tc=bc.exports,_c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("NavMenuItemBase",{staticClass:"nav-menu-setting language-container"},[n("div",{class:{"language-toggle-container":e.hasLanguages}},[n("select",{ref:"language-sizer",staticClass:"language-dropdown language-sizer",attrs:{"aria-hidden":"true",tabindex:"-1"}},[n("option",{key:e.currentLanguage.name,attrs:{selected:""}},[e._v(e._s(e.currentLanguage.name))])]),n("label",{staticClass:"nav-menu-setting-label",attrs:{for:e.hasLanguages?"language-toggle":null}},[e._v("Language:")]),e.hasLanguages?n("select",{directives:[{name:"model",rawName:"v-model",value:e.languageModel,expression:"languageModel"}],staticClass:"language-dropdown nav-menu-link",style:"width: "+e.adjustedWidth+"px",attrs:{id:"language-toggle"},on:{change:[function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.languageModel=t.target.multiple?n:n[0]},function(t){return e.pushRoute(e.currentLanguage.route)}]}},e._l(e.languages,(function(t){return n("option",{key:t.api,domProps:{value:t.api}},[e._v(" "+e._s(t.name)+" ")])})),0):n("span",{staticClass:"nav-menu-toggle-none current-language",attrs:{"aria-current":"page"}},[e._v(e._s(e.currentLanguage.name))]),e.hasLanguages?n("InlineChevronDownIcon",{staticClass:"toggle-icon icon-inline"}):e._e()],1),e.hasLanguages?n("div",{staticClass:"language-list-container"},[n("span",{staticClass:"nav-menu-setting-label"},[e._v("Language:")]),n("ul",{staticClass:"language-list"},e._l(e.languages,(function(t){return n("li",{key:t.api,staticClass:"language-list-item"},[t.api===e.languageModel?n("span",{staticClass:"current-language",attrs:{"data-language":t.api,"aria-current":"page"}},[e._v(" "+e._s(t.name)+" ")]):n("a",{staticClass:"nav-menu-link",attrs:{href:"#"},on:{click:function(n){return n.preventDefault(),e.pushRoute(t.route)}}},[e._v(" "+e._s(t.name)+" ")])])})),0)]):e._e()])},Sc=[],Cc=n("7948"),kc={name:"LanguageToggle",components:{InlineChevronDownIcon:Cc["a"],NavMenuItemBase:uc["a"]},inject:{store:{default(){return{setPreferredLanguage(){}}}}},props:{interfaceLanguage:{type:String,required:!0},objcPath:{type:String,required:!1},swiftPath:{type:String,required:!1},closeNav:{type:Function,default:()=>{}}},data(){return{languageModel:null,adjustedWidth:0}},mounted(){const e=we(async()=>{await Object(Ie["b"])(3),this.calculateSelectWidth()},150);window.addEventListener("resize",e),window.addEventListener("orientationchange",e),this.$once("hook:beforeDestroy",()=>{window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e)})},watch:{interfaceLanguage:{immediate:!0,handler(e){this.languageModel=e}},currentLanguage:{immediate:!0,handler:"calculateSelectWidth"}},methods:{getRoute(e){const t=e.query===D["a"].swift.key.url?void 0:e.query;return{query:{...this.$route.query,language:t},path:this.isCurrentPath(e.path)?null:this.normalizePath(e.path)}},async pushRoute(e){await this.closeNav(),this.store.setPreferredLanguage(e.query),this.$router.push(this.getRoute(e))},isCurrentPath(e){return this.$route.path.replace(/^\//,"")===e},normalizePath(e){return e.startsWith("/")?e:"/"+e},async calculateSelectWidth(){await this.$nextTick(),this.adjustedWidth=this.$refs["language-sizer"].clientWidth+6}},computed:{languages(){return[{name:D["a"].swift.name,api:D["a"].swift.key.api,route:{path:this.swiftPath,query:D["a"].swift.key.url}},{name:D["a"].objectiveC.name,api:D["a"].objectiveC.key.api,route:{path:this.objcPath,query:D["a"].objectiveC.key.url}}]},currentLanguage:({languages:e,languageModel:t})=>e.find(e=>e.api===t),hasLanguages:({objcPath:e,swiftPath:t})=>t&&e}},wc=kc,Ic=(n("34e5"),Object(R["a"])(wc,_c,Sc,!1,null,"005af823",null)),Oc=Ic.exports,xc={name:"DocumentationNav",components:{SidenavIcon:ol,NavBase:Ul["a"],NavMenuItems:Gl["a"],Hierarchy:Tc,LanguageToggle:Oc},props:{title:{type:String,required:!1},parentTopicIdentifiers:{type:Array,required:!1},isSymbolBeta:{type:Boolean,required:!1},isSymbolDeprecated:{type:Boolean,required:!1},isDark:{type:Boolean,default:!1},hasNoBorder:{type:Boolean,default:!1},currentTopicTags:{type:Array,required:!0},references:{type:Object,default:()=>({})},interfaceLanguage:{type:String,required:!1},objcPath:{type:String,required:!1},swiftPath:{type:String,required:!1},sidenavHiddenOnLarge:{type:Boolean,default:!1},displaySidenav:{type:Boolean,default:!1}},computed:{baseNavOpenSidenavButtonId:()=>mo["d"],BreakpointName:()=>ho["b"],breadcrumbCount:({hierarchyItems:e})=>e.length+1,rootHierarchyReference:({parentTopicIdentifiers:e,references:t})=>t[e[0]]||{},isRootTechnologyLink:({rootHierarchyReference:{kind:e}})=>"technologies"===e,rootLink:({isRootTechnologyLink:e,rootHierarchyReference:t,$route:n})=>e?{path:t.url,query:n.query}:null,hierarchyItems:({parentTopicIdentifiers:e,isRootTechnologyLink:t})=>t?e.slice(1):e},methods:{async handleSidenavToggle(e,t){await e(),this.$emit("toggle-sidenav",t),await this.$nextTick();const n=document.getElementById(As);n&&n.focus()}}},Dc=xc,Pc=(n("69ba"),Object(R["a"])(Dc,Vl,Wl,!1,null,"136c3ca6",null)),$c=Pc.exports,Ac=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"StaticContentWidth"},[e._t("default")],2)},Lc=[],Nc={name:"StaticContentWidth",inject:["store"],mounted(){const e=we(async()=>{await this.$nextTick(),this.store.setContentWidth(this.$el.offsetWidth)},150);window.addEventListener("resize",e),window.addEventListener("orientationchange",e),this.$once("hook:beforeDestroy",()=>{window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e)}),e()}},jc=Nc,Ec=Object(R["a"])(jc,Ac,Lc,!1,null,null,null),Bc=Ec.exports,Rc=n("3bdd"),Mc=n("4009"),Kc={watch:{topicData:{immediate:!0,handler:"extractOnThisPageSections"}},methods:{shouldRegisterContentSection(e){return e.type===St["BlockType"].heading&&e.level<4},extractOnThisPageSections(e){if(!e)return;this.store.resetPageSections();const{metadata:{title:t},primaryContentSections:n,topicSections:i,defaultImplementationsSections:a,relationshipsSections:s,seeAlsoSections:r}=e;this.store.addOnThisPageSection({title:t,anchor:Mc["a"],level:1}),n&&n.forEach(e=>{switch(e.kind){case Fe.content:Ne["a"].methods.forEach.call(e,e=>{this.shouldRegisterContentSection(e)&&this.store.addOnThisPageSection({title:e.text,anchor:e.anchor||Object(it["a"])(e.text),level:e.level})});break;case Fe.properties:case Fe.restBody:case Fe.restCookies:case Fe.restEndpoint:case Fe.restHeaders:case Fe.restParameters:case Fe.restResponses:this.store.addOnThisPageSection({title:e.title,anchor:Object(it["a"])(e.title),level:2});break;default:this.store.addOnThisPageSection(He[e.kind])}}),i&&this.store.addOnThisPageSection(qe.topics),a&&this.store.addOnThisPageSection(qe.defaultImplementations),s&&this.store.addOnThisPageSection(qe.relationships),r&&this.store.addOnThisPageSection(qe.seeAlso)}}};const zc="0.3.0",Fc="navigator-hidden-large";var qc={name:"DocumentationTopicView",constants:{MIN_RENDER_JSON_VERSION_WITH_INDEX:zc,NAVIGATOR_HIDDEN_ON_LARGE_KEY:Fc},components:{Navigator:Hl,AdjustableSidebarWidth:xo,StaticContentWidth:Bc,NavigatorDataProvider:Vs,Topic:fs,CodeTheme:Is["a"],Nav:$c,QuickNavigationModal:ro,PortalTarget:I["PortalTarget"],MagnifierIcon:to},mixins:[xs["a"],Ds["a"],Kc],props:{enableMinimized:{type:Boolean,default:!1}},data(){return{topicDataDefault:null,topicDataObjc:null,sidenavVisibleOnMobile:!1,sidenavHiddenOnLarge:co["c"].get(Fc,!1),showQuickNavigationModal:!1,store:ws,BreakpointName:ho["b"]}},computed:{objcOverrides:({topicData:e})=>{const{variantOverrides:t=[]}=e||{},n=({interfaceLanguage:e})=>e===D["a"].objectiveC.key.api,i=({traits:e})=>e.some(n),a=t.find(i);return a?a.patch:null},enableQuickNavigation:({isTargetIDE:e})=>!e&&Object(jt["c"])(["features","docs","quickNavigation","enable"],!0),topicData:{get(){return this.topicDataObjc?this.topicDataObjc:this.topicDataDefault},set(e){this.topicDataDefault=e}},topicKey:({$route:e,topicProps:t})=>[e.path,t.interfaceLanguage].join(),topicProps(){const{abstract:e,defaultImplementationsSections:t,deprecationSummary:n,downloadNotAvailableSummary:i,diffAvailability:a,hierarchy:s,identifier:{interfaceLanguage:r,url:o},metadata:{conformance:l,modules:c,platforms:d,required:u=!1,roleHeading:h,title:p="",tags:g=[],role:f,symbolKind:m="",remoteSource:y,images:v=[]}={},primaryContentSections:b,relationshipsSections:T,references:_={},sampleCodeDownload:S,topicSectionsStyle:C,topicSections:k,seeAlsoSections:w,variantOverrides:I}=this.topicData;return{abstract:e,conformance:l,defaultImplementationsSections:t,deprecationSummary:n,downloadNotAvailableSummary:i,diffAvailability:a,hierarchy:s,role:f,identifier:o,interfaceLanguage:r,isRequirement:u,modules:c,platforms:d,primaryContentSections:b,relationshipsSections:T,references:_,roleHeading:h,sampleCodeDownload:S,title:p,topicSections:k,topicSectionsStyle:C,seeAlsoSections:w,variantOverrides:I,symbolKind:m,tags:g.slice(0,1),remoteSource:y,pageImages:v}},parentTopicIdentifiers:({topicProps:{hierarchy:{paths:e=[]},references:t},$route:n})=>e.length?e.find(e=>{const i=e.find(e=>t[e]&&"technologies"!==t[e].kind),a=i&&t[i];return a&&n.path.toLowerCase().startsWith(a.url.toLowerCase())})||e[0]:[],technology:({$route:e,topicProps:{identifier:t,references:n,role:i,title:a},parentTopicIdentifiers:s})=>{const r={title:a,url:e.path},o=n[t];if(!s.length)return o||r;const l=n[s[0]];return l&&"technologies"!==l.kind?l:(i!==k["a"].collection||o)&&(l&&n[s[1]]||o)||r},languagePaths:({topicData:{variants:e=[]}})=>e.reduce((e,t)=>t.traits.reduce((e,n)=>n.interfaceLanguage?{...e,[n.interfaceLanguage]:(e[n.interfaceLanguage]||[]).concat(t.paths)}:e,e),{}),objcPath:({languagePaths:{[D["a"].objectiveC.key.api]:[e]=[]}={}})=>e,swiftPath:({languagePaths:{[D["a"].swift.key.api]:[e]=[]}={}})=>e,isSymbolBeta:({topicProps:{platforms:e}})=>!!(e&&e.length&&e.every(e=>e.beta)),isSymbolDeprecated:({topicProps:{platforms:e,deprecationSummary:t}})=>!!(t&&t.length>0||e&&e.length&&e.every(e=>e.deprecatedAt)),enableNavigator:({isTargetIDE:e,topicDataDefault:t})=>!e&&Object(Rc["b"])(Object(Rc["a"])(t.schemaVersion),zc)>=0,enableOnThisPageNav:({isTargetIDE:e})=>!Object(jt["c"])(["features","docs","onThisPageNavigator","disable"],!1)&&!e,sidebarProps:({sidenavVisibleOnMobile:e,enableNavigator:t,sidenavHiddenOnLarge:n})=>t?{shownOnMobile:e,hiddenOnLarge:n}:{},sidebarListeners(){return this.enableNavigator?{"update:shownOnMobile":this.toggleMobileSidenav,"update:hiddenOnLarge":this.toggleLargeSidenav}:{}}},methods:{applyObjcOverrides(){this.topicDataObjc=C(Object(w["a"])(this.topicData),this.objcOverrides)},handleCodeColorsChange(e){Os["a"].updateCodeColors(e)},handleToggleSidenav(e){e===ho["b"].large?this.toggleLargeSidenav():this.toggleMobileSidenav()},openQuickNavigationModal(){this.sidenavVisibleOnMobile||(this.showQuickNavigationModal=!0)},toggleLargeSidenav(e=!this.sidenavHiddenOnLarge){this.sidenavHiddenOnLarge=e,co["c"].set(Fc,e)},toggleMobileSidenav(e=!this.sidenavVisibleOnMobile){this.sidenavVisibleOnMobile=e},onQuickNavigationKeydown(e){("/"===e.key||"o"===e.key&&e.shiftKey&&e.metaKey)&&this.enableNavigator&&"input"!==e.target.tagName.toLowerCase()&&(this.openQuickNavigationModal(),e.preventDefault())}},mounted(){this.$bridge.on("contentUpdate",this.handleContentUpdateFromBridge),this.$bridge.on("codeColors",this.handleCodeColorsChange),this.$bridge.send({type:"requestCodeColors"}),this.enableQuickNavigation&&window.addEventListener("keydown",this.onQuickNavigationKeydown)},provide(){return{store:this.store}},inject:{isTargetIDE:{default(){return!1}}},beforeDestroy(){this.$bridge.off("contentUpdate",this.handleContentUpdateFromBridge),this.$bridge.off("codeColors",this.handleCodeColorsChange),this.enableQuickNavigation&&window.removeEventListener("keydown",this.onQuickNavigationKeydown)},beforeRouteEnter(e,t,n){e.meta.skipFetchingData?n(e=>e.newContentMounted()):Object(w["b"])(e,t,n).then(t=>n(n=>{n.topicData=t,e.query.language===D["a"].objectiveC.key.url&&n.objcOverrides&&n.applyObjcOverrides()})).catch(n)},beforeRouteUpdate(e,t,n){e.path===t.path&&e.query.language===D["a"].objectiveC.key.url&&this.objcOverrides?(this.applyObjcOverrides(),n()):Object(w["d"])(e,t)?Object(w["b"])(e,t,n).then(t=>{this.topicDataObjc=null,this.topicData=t,e.query.language===D["a"].objectiveC.key.url&&this.objcOverrides&&this.applyObjcOverrides(),n()}).catch(n):n()},created(){this.store.reset()},watch:{topicData(){this.$nextTick(()=>{this.newContentMounted()})}}},Hc=qc,Vc=(n("5550"),Object(R["a"])(Hc,i,a,!1,null,"3f2e5486",null));t["default"]=Vc.exports},fd6e:function(e,t,n){}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/documentation-topic~topic.900fc80c.js b/XCoordinator.doccarchive/js/documentation-topic~topic.900fc80c.js new file mode 100644 index 00000000..3367be6f --- /dev/null +++ b/XCoordinator.doccarchive/js/documentation-topic~topic.900fc80c.js @@ -0,0 +1,20 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["documentation-topic~topic"],{"2b88":function(t,e,n){"use strict"; +/*! + * portal-vue © Thorsten Lünborg, 2019 + * + * Version: 2.1.7 + * + * LICENCE: MIT + * + * https://github.com/linusborg/portal-vue + * + */function s(t){return t&&"object"===typeof t&&"default"in t?t["default"]:t}Object.defineProperty(e,"__esModule",{value:!0});var r=s(n("2b0e"));function o(t){return o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t){return i(t)||l(t)||c()}function i(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:{};return t.reduce((function(t,n){var s=n.passengers[0],r="function"===typeof s?s(e):n.passengers;return t.concat(r)}),[])}function f(t,e){return t.map((function(t,e){return[e,t]})).sort((function(t,n){return e(t[1],n[1])||t[0]-n[0]})).map((function(t){return t[1]}))}function p(t,e){return e.reduce((function(e,n){return t.hasOwnProperty(n)&&(e[n]=t[n]),e}),{})}var m={},g={},y={},b=r.extend({data:function(){return{transports:m,targets:g,sources:y,trackInstances:u}},methods:{open:function(t){if(u){var e=t.to,n=t.from,s=t.passengers,o=t.order,a=void 0===o?1/0:o;if(e&&n&&s){var i={to:e,from:n,passengers:h(s),order:a},l=Object.keys(this.transports);-1===l.indexOf(e)&&r.set(this.transports,e,[]);var c=this.$_getTransportIndex(i),d=this.transports[e].slice(0);-1===c?d.push(i):d[c]=i,this.transports[e]=f(d,(function(t,e){return t.order-e.order}))}}},close:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.to,s=t.from;if(n&&(s||!1!==e)&&this.transports[n])if(e)this.transports[n]=[];else{var r=this.$_getTransportIndex(t);if(r>=0){var o=this.transports[n].slice(0);o.splice(r,1),this.transports[n]=o}}},registerTarget:function(t,e,n){u&&(this.trackInstances&&!n&&this.targets[t]&&console.warn("[portal-vue]: Target ".concat(t," already exists")),this.$set(this.targets,t,Object.freeze([e])))},unregisterTarget:function(t){this.$delete(this.targets,t)},registerSource:function(t,e,n){u&&(this.trackInstances&&!n&&this.sources[t]&&console.warn("[portal-vue]: source ".concat(t," already exists")),this.$set(this.sources,t,Object.freeze([e])))},unregisterSource:function(t){this.$delete(this.sources,t)},hasTarget:function(t){return!(!this.targets[t]||!this.targets[t][0])},hasSource:function(t){return!(!this.sources[t]||!this.sources[t][0])},hasContentFor:function(t){return!!this.transports[t]&&!!this.transports[t].length},$_getTransportIndex:function(t){var e=t.to,n=t.from;for(var s in this.transports[e])if(this.transports[e][s].from===n)return+s;return-1}}}),v=new b(m),T=1,S=r.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(T++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var t=this;this.$nextTick((function(){v.registerSource(t.name,t)}))},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){v.unregisterSource(this.name),this.clear()},watch:{to:function(t,e){e&&e!==t&&this.clear(e),this.sendUpdate()}},methods:{clear:function(t){var e={from:this.name,to:t||this.to};v.close(e)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(t){return"function"===typeof t?t(this.slotProps):t},sendUpdate:function(){var t=this.normalizeSlots();if(t){var e={from:this.name,to:this.to,passengers:a(t),order:this.order};v.open(e)}else this.clear()}},render:function(t){var e=this.$slots.default||this.$scopedSlots.default||[],n=this.tag;return e&&this.disabled?e.length<=1&&this.slim?this.normalizeOwnChildren(e)[0]:t(n,[this.normalizeOwnChildren(e)]):this.slim?t():t(n,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),w=r.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:v.transports,firstRender:!0}},created:function(){var t=this;this.$nextTick((function(){v.registerTarget(t.name,t)}))},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(t,e){v.unregisterTarget(e),v.registerTarget(t,this)}},mounted:function(){var t=this;this.transition&&this.$nextTick((function(){t.firstRender=!1}))},beforeDestroy:function(){v.unregisterTarget(this.name)},computed:{ownTransports:function(){var t=this.transports[this.name]||[];return this.multiple?t:0===t.length?[]:[t[t.length-1]]},passengers:function(){return d(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var t=this.slim&&!this.transition;return t&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),t}},render:function(t){var e=this.noWrapper(),n=this.children(),s=this.transition||this.tag;return e?n[0]:this.slim&&!s?t():t(s,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},n)}}),C=0,$=["disabled","name","order","slim","slotProps","tag","to"],x=["multiple","transition"],k=r.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(C++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!==typeof document){var t=document.querySelector(this.mountTo);if(t){var e=this.$props;if(v.targets[e.name])e.bail?console.warn("[portal-vue]: Target ".concat(e.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=v.targets[e.name];else{var n=e.append;if(n){var s="string"===typeof n?n:"DIV",r=document.createElement(s);t.appendChild(r),t=r}var o=p(this.$props,x);o.slim=this.targetSlim,o.tag=this.targetTag,o.slotProps=this.targetSlotProps,o.name=this.to,this.portalTarget=new w({el:t,parent:this.$parent||this,propsData:o})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var t=this.portalTarget;if(this.append){var e=t.$el;e.parentNode.removeChild(e)}t.$destroy()},render:function(t){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),t();if(!this.$scopedSlots.manual){var e=p(this.$props,$);return t(S,{props:e,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var n=this.$scopedSlots.manual({to:this.to});return Array.isArray(n)&&(n=n[0]),n||t()}});function I(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.component(e.portalName||"Portal",S),t.component(e.portalTargetName||"PortalTarget",w),t.component(e.MountingPortalName||"MountingPortal",k)}var P={install:I};e.default=P,e.Portal=S,e.PortalTarget=w,e.MountingPortal=k,e.Wormhole=v},"5ebf":function(t,e,n){"use strict";n("bc3d")},"66c9":function(t,e,n){"use strict";e["a"]={state:{codeColors:null},reset(){this.state.codeColors=null},updateCodeColors(t){const e=t=>t?`rgba(${t.red}, ${t.green}, ${t.blue}, ${t.alpha})`:null;this.state.codeColors=Object.entries(t).reduce((t,[n,s])=>({...t,[n]:e(s)}),{})}}},7948:function(t,e,n){"use strict";var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("SVGIcon",{staticClass:"inline-chevron-down-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-chevron-down"}},[n("path",{attrs:{d:"M12.634 2.964l0.76 0.649-6.343 7.426-6.445-7.423 0.755-0.655 5.683 6.545 5.59-6.542z"}})])},r=[],o=n("be08"),a={name:"InlineChevronDownIcon",components:{SVGIcon:o["a"]}},i=a,l=n("2877"),c=Object(l["a"])(i,s,r,!1,null,null,null);e["a"]=c.exports},8590:function(t,e,n){"use strict";var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{style:t.codeStyle},[t._t("default")],2)},r=[],o=n("66c9");const a=0,i=255;function l(t){const e=t.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d+\.?\d*|\.\d+)\s*\)/);if(!e)throw new Error("invalid rgba() input");const n=10;return{r:parseInt(e[1],n),g:parseInt(e[2],n),b:parseInt(e[3],n),a:parseFloat(e[4])}}function c(t){const{r:e,g:n,b:s}=l(t);return.2126*e+.7152*n+.0722*s}function u(t,e){const n=Math.round(i*e),s=l(t),{a:r}=s,[o,c,u]=[s.r,s.g,s.b].map(t=>Math.max(a,Math.min(i,t+n)));return`rgba(${o}, ${c}, ${u}, ${r})`}function h(t,e){return u(t,e)}function d(t,e){return u(t,-1*e)}var f={name:"CodeTheme",data(){return{codeThemeState:o["a"].state}},computed:{codeStyle(){const{codeColors:t}=this.codeThemeState;return t?{"--text":t.text,"--background":t.background,"--line-highlight":t.lineHighlight,"--url":t.commentURL,"--syntax-comment":t.comment,"--syntax-quote":t.comment,"--syntax-keyword":t.keyword,"--syntax-literal":t.keyword,"--syntax-selector-tag":t.keyword,"--syntax-string":t.stringLiteral,"--syntax-bullet":t.stringLiteral,"--syntax-meta":t.keyword,"--syntax-number":t.stringLiteral,"--syntax-symbol":t.stringLiteral,"--syntax-tag":t.stringLiteral,"--syntax-attr":t.typeAnnotation,"--syntax-built_in":t.typeAnnotation,"--syntax-builtin-name":t.typeAnnotation,"--syntax-class":t.typeAnnotation,"--syntax-params":t.typeAnnotation,"--syntax-section":t.typeAnnotation,"--syntax-title":t.typeAnnotation,"--syntax-type":t.typeAnnotation,"--syntax-attribute":t.keyword,"--syntax-identifier":t.text,"--syntax-subst":t.text,"--color-syntax-param-internal-name":this.internalParamNameColor}:null},internalParamNameColor(){const{background:t,text:e}=this.codeThemeState.codeColors;try{const n=c(t),s=nObject.keys(y).includes(t),default:y.light},codeBackgroundColorOverride:{type:String,default:""},width:{type:String,default:null},showClose:{type:Boolean,default:!0}},data(){return{lastFocusItem:null,prefersDarkStyle:!1,focusTrapInstance:null}},computed:{isVisible:{get:({visible:t})=>t,set(t){this.$emit("update:visible",t)}},modalColors(){return{"--background":this.codeBackgroundColorOverride}},themeClass({theme:t,prefersDarkStyle:e,isThemeDynamic:n}){let s={};return n&&(s={"theme-light":!e,"theme-dark":e}),["theme-"+t,s]},stateClasses:({isFullscreen:t,isVisible:e,showClose:n})=>({"modal-fullscreen":t,"modal-standard":!t,"modal-open":e,"modal-with-close":n}),isThemeDynamic:({theme:t})=>t===y.dynamic||t===y.code},watch:{isVisible(t){t?this.onShow():this.onHide()}},mounted(){if(this.focusTrapInstance=new a["a"],document.addEventListener("keydown",this.onKeydown),this.isThemeDynamic){const t=window.matchMedia("(prefers-color-scheme: dark)");t.addListener(this.onColorSchemePreferenceChange),this.$once("hook:beforeDestroy",()=>{t.removeListener(this.onColorSchemePreferenceChange)}),this.onColorSchemePreferenceChange(t)}},beforeDestroy(){this.isVisible&&o["a"].unlockScroll(this.$refs.container),document.removeEventListener("keydown",this.onKeydown),this.focusTrapInstance.destroy()},methods:{async onShow(){await this.$nextTick(),o["a"].lockScroll(this.$refs.container),await this.focusCloseButton(),this.focusTrapInstance.updateFocusContainer(this.$refs.container),this.focusTrapInstance.start(),i["a"].hide(this.$refs.container)},onHide(){o["a"].unlockScroll(this.$refs.container),this.focusTrapInstance.stop(),this.lastFocusItem&&(this.lastFocusItem.focus({preventScroll:!0}),this.lastFocusItem=null),this.$emit("close"),i["a"].show(this.$refs.container)},closeModal(){this.isVisible=!1},selectContent(){window.getSelection().selectAllChildren(this.$refs.content)},onClickOutside(){this.closeModal()},onKeydown(t){const{metaKey:e=!1,ctrlKey:n=!1,key:s}=t;this.isVisible&&("a"===s&&(e||n)&&(t.preventDefault(),this.selectContent()),"Escape"===s&&(t.preventDefault(),this.closeModal()))},onColorSchemePreferenceChange({matches:t}){this.prefersDarkStyle=t},async focusCloseButton(){this.lastFocusItem=document.activeElement,await this.$nextTick(),this.$refs.close&&this.$refs.close.focus(),this.$emit("open")}}},v=b,T=(n("5ebf"),Object(p["a"])(v,s,r,!1,null,"f5b28690",null));e["a"]=T.exports},c8e2:function(t,e,n){"use strict";function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,"a",(function(){return o}));var r=n("0cb0");class o{constructor(t){s(this,"focusContainer",null),s(this,"tabTargets",[]),s(this,"firstTabTarget",null),s(this,"lastTabTarget",null),s(this,"lastFocusedElement",null),this.focusContainer=t,this.onFocus=this.onFocus.bind(this)}updateFocusContainer(t){this.focusContainer=t}start(){this.collectTabTargets(),this.firstTabTarget?this.focusContainer.contains(document.activeElement)&&r["a"].isTabbableElement(document.activeElement)||this.firstTabTarget.focus():console.warn("There are no focusable elements. FocusTrap needs at least one."),this.lastFocusedElement=document.activeElement,document.addEventListener("focus",this.onFocus,!0)}stop(){document.removeEventListener("focus",this.onFocus,!0)}collectTabTargets(){this.tabTargets=r["a"].getTabbableElements(this.focusContainer),this.firstTabTarget=this.tabTargets[0],this.lastTabTarget=this.tabTargets[this.tabTargets.length-1]}onFocus(t){if(this.focusContainer.contains(t.target))this.lastFocusedElement=t.target;else{if(t.preventDefault(),this.collectTabTargets(),this.lastFocusedElement===this.lastTabTarget||!this.lastFocusedElement||!document.contains(this.lastFocusedElement))return this.firstTabTarget.focus(),void(this.lastFocusedElement=this.firstTabTarget);this.lastFocusedElement===this.firstTabTarget&&(this.lastTabTarget.focus(),this.lastFocusedElement=this.lastTabTarget)}}destroy(){this.stop(),this.focusContainer=null,this.tabTargets=[],this.firstTabTarget=null,this.lastTabTarget=null,this.lastFocusedElement=null}}}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/documentation-topic~topic~tutorials-overview.5b27b87b.js b/XCoordinator.doccarchive/js/documentation-topic~topic~tutorials-overview.5b27b87b.js new file mode 100644 index 00000000..a28e3647 --- /dev/null +++ b/XCoordinator.doccarchive/js/documentation-topic~topic~tutorials-overview.5b27b87b.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["documentation-topic~topic~tutorials-overview"],{"018a":function(e,t,n){"use strict";n("0e40")},"05a1":function(e,t,n){},"0c95":function(e,t,n){"use strict";n("d34b")},"0caf":function(e,t,n){"use strict";t["a"]={inject:{performanceMetricsEnabled:{default:!1},isTargetIDE:{default:!1}},methods:{newContentMounted(){let e;this.performanceMetricsEnabled&&(e=Math.round(window.performance.now()),window.renderedTimes||(window.renderedTimes=[]),window.renderedTimes.push(e)),this.$bridge.send({type:"rendered",data:{time:e}})},handleContentUpdateFromBridge(e){this.topicData=e}}}},"0cb0":function(e,t,n){"use strict";const i=["input","select","textarea","button","optgroup","option","menuitem","fieldset","object","a[href]","*[tabindex]","*[contenteditable]"],r=i.join(",");t["a"]={getTabbableElements(e){const t=e.querySelectorAll(r),n=t.length;let i;const a=[];for(i=0;i=0},isFocusableElement(e){const t=e.nodeName.toLowerCase(),n=i.includes(t);return!("a"!==t||!e.getAttribute("href"))||(n?!e.disabled:"true"===e.getAttribute("contenteditable")||!Number.isNaN(parseFloat(e.getAttribute("tabindex"))))}}},"0d7b":function(e,t,n){},"0da1":function(e,t,n){"use strict";n("5c97")},"0e19":function(e,t,n){},"0e40":function(e,t,n){},"0f00":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"row"},[e._t("default")],2)},r=[],a={name:"GridRow"},s=a,o=(n("2224"),n("2877")),l=Object(o["a"])(s,i,r,!1,null,"be73599c",null);t["a"]=l.exports},1020:function(e,t){var n={exports:{}};function i(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((function(t){var n=e[t];"object"!=typeof n||Object.isFrozen(n)||i(n)})),e}n.exports=i,n.exports.default=i;var r=n.exports;class a{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function s(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function o(e,...t){const n=Object.create(null);for(const i in e)n[i]=e[i];return t.forEach((function(e){for(const t in e)n[t]=e[t]})),n}const l="",c=e=>!!e.kind,u=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${"_".repeat(t+1)}`)].join(" ")}return`${t}${e}`};class d{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=s(e)}openNode(e){if(!c(e))return;let t=e.kind;t=e.sublanguage?"language-"+t:u(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){c(e)&&(this.buffer+=l)}value(){return this.buffer}span(e){this.buffer+=``}}class p{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every(e=>"string"===typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{p._collapse(e)}))}}class h extends p{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){const e=new d(this,this.options);return e.value()}finalize(){return!0}}function m(e){return e?"string"===typeof e?e:e.source:null}function f(e){return v("(?=",e,")")}function g(e){return v("(?:",e,")*")}function b(e){return v("(?:",e,")?")}function v(...e){const t=e.map(e=>m(e)).join("");return t}function y(e){const t=e[e.length-1];return"object"===typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function w(...e){const t=y(e),n="("+(t.capture?"":"?:")+e.map(e=>m(e)).join("|")+")";return n}function _(e){return new RegExp(e.toString()+"|").exec("").length-1}function x(e,t){const n=e&&e.exec(t);return n&&0===n.index}const k=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function C(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;const t=n;let i=m(e),r="";while(i.length>0){const e=k.exec(i);if(!e){r+=i;break}r+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+String(Number(e[1])+t):(r+=e[0],"("===e[0]&&n++)}return r}).map(e=>`(${e})`).join(t)}const S=/\b\B/,j="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",O="\\b\\d+(\\.\\d+)?",I="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",T="\\b(0b[01]+)",A="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",B=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=v(t,/.*\b/,e.binary,/\b.*/)),o({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},L={begin:"\\\\[\\s\\S]",relevance:0},N={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[L]},M={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[L]},$={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},R=function(e,t,n={}){const i=o({scope:"comment",begin:e,end:t,contains:[]},n);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=w("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:v(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},P=R("//","$"),V=R("/\\*","\\*/"),D=R("#","$"),G={scope:"number",begin:O,relevance:0},z={scope:"number",begin:I,relevance:0},q={scope:"number",begin:T,relevance:0},U={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[L,{begin:/\[/,end:/\]/,relevance:0,contains:[L]}]}]},W={scope:"title",begin:j,relevance:0},H={scope:"title",begin:E,relevance:0},F={begin:"\\.\\s*"+E,relevance:0},K=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var Z=Object.freeze({__proto__:null,MATCH_NOTHING_RE:S,IDENT_RE:j,UNDERSCORE_IDENT_RE:E,NUMBER_RE:O,C_NUMBER_RE:I,BINARY_NUMBER_RE:T,RE_STARTERS_RE:A,SHEBANG:B,BACKSLASH_ESCAPE:L,APOS_STRING_MODE:N,QUOTE_STRING_MODE:M,PHRASAL_WORDS_MODE:$,COMMENT:R,C_LINE_COMMENT_MODE:P,C_BLOCK_COMMENT_MODE:V,HASH_COMMENT_MODE:D,NUMBER_MODE:G,C_NUMBER_MODE:z,BINARY_NUMBER_MODE:q,REGEXP_MODE:U,TITLE_MODE:W,UNDERSCORE_TITLE_MODE:H,METHOD_GUARD:F,END_SAME_AS_BEGIN:K});function Y(e,t){const n=e.input[e.index-1];"."===n&&t.ignoreMatch()}function X(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function J(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Y,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function Q(e,t){Array.isArray(e.illegal)&&(e.illegal=w(...e.illegal))}function ee(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function te(e,t){void 0===e.relevance&&(e.relevance=1)}const ne=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=v(n.beforeMatch,f(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},ie=["of","and","for","in","not","or","if","then","parent","list","value"],re="keyword";function ae(e,t,n=re){const i=Object.create(null);return"string"===typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((function(n){Object.assign(i,ae(e[n],t,n))})),i;function r(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach((function(t){const n=t.split("|");i[n[0]]=[e,se(n[0],n[1])]}))}}function se(e,t){return t?Number(t):oe(e)?0:1}function oe(e){return ie.includes(e.toLowerCase())}const le={},ce=e=>{console.error(e)},ue=(e,...t)=>{console.log("WARN: "+e,...t)},de=(e,t)=>{le[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),le[`${e}/${t}`]=!0)},pe=new Error;function he(e,t,{key:n}){let i=0;const r=e[n],a={},s={};for(let o=1;o<=t.length;o++)s[o+i]=r[o],a[o+i]=!0,i+=_(t[o-1]);e[n]=s,e[n]._emit=a,e[n]._multi=!0}function me(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw ce("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),pe;if("object"!==typeof e.beginScope||null===e.beginScope)throw ce("beginScope must be object"),pe;he(e,e.begin,{key:"beginScope"}),e.begin=C(e.begin,{joinWith:""})}}function fe(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw ce("skip, excludeEnd, returnEnd not compatible with endScope: {}"),pe;if("object"!==typeof e.endScope||null===e.endScope)throw ce("endScope must be object"),pe;he(e,e.end,{key:"endScope"}),e.end=C(e.end,{joinWith:""})}}function ge(e){e.scope&&"object"===typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}function be(e){ge(e),"string"===typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"===typeof e.endScope&&(e.endScope={_wrap:e.endScope}),me(e),fe(e)}function ve(e){function t(t,n){return new RegExp(m(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=_(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=t(C(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex((e,t)=>t>0&&void 0!==e),i=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function r(e){const t=new i;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}function a(n,i){const s=n;if(n.isCompiled)return s;[X,ee,be,ne].forEach(e=>e(n,i)),e.compilerExtensions.forEach(e=>e(n,i)),n.__beforeBegin=null,[J,Q,te].forEach(e=>e(n,i)),n.isCompiled=!0;let o=null;return"object"===typeof n.keywords&&n.keywords.$pattern&&(n.keywords=Object.assign({},n.keywords),o=n.keywords.$pattern,delete n.keywords.$pattern),o=o||/\w+/,n.keywords&&(n.keywords=ae(n.keywords,e.case_insensitive)),s.keywordPatternRe=t(o,!0),i&&(n.begin||(n.begin=/\B|\b/),s.beginRe=t(s.begin),n.end||n.endsWithParent||(n.end=/\B|\b/),n.end&&(s.endRe=t(s.end)),s.terminatorEnd=m(s.end)||"",n.endsWithParent&&i.terminatorEnd&&(s.terminatorEnd+=(n.end?"|":"")+i.terminatorEnd)),n.illegal&&(s.illegalRe=t(n.illegal)),n.contains||(n.contains=[]),n.contains=[].concat(...n.contains.map((function(e){return we("self"===e?n:e)}))),n.contains.forEach((function(e){a(e,s)})),n.starts&&a(n.starts,i),s.matcher=r(s),s}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=o(e.classNameAliases||{}),a(e)}function ye(e){return!!e&&(e.endsWithParent||ye(e.starts))}function we(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return o(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:ye(e)?o(e,{starts:e.starts?o(e.starts):null}):Object.isFrozen(e)?o(e):e}var _e="11.3.1";class xe extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const ke=s,Ce=o,Se=Symbol("nomatch"),je=7,Ee=function(e){const t=Object.create(null),n=Object.create(null),i=[];let s=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:h};function u(e){return c.noHighlightRe.test(e)}function d(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=c.languageDetectRe.exec(t);if(n){const t=N(n[1]);return t||(ue(o.replace("{}",n[1])),ue("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>u(e)||N(e))}function p(e,t,n){let i="",r="";"object"===typeof t?(i=e,n=t.ignoreIllegals,r=t.language):(de("10.7.0","highlight(lang, code, ...args) has been deprecated."),de("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),r=e,i=t),void 0===n&&(n=!0);const a={code:i,language:r};V("before:highlight",a);const s=a.result?a.result:m(a.language,a.code,n);return s.code=a.code,V("after:highlight",s),s}function m(e,n,i,r){const l=Object.create(null);function u(e,t){return e.keywords[t]}function d(){if(!I.keywords)return void A.addText(B);let e=0;I.keywordPatternRe.lastIndex=0;let t=I.keywordPatternRe.exec(B),n="";while(t){n+=B.substring(e,t.index);const i=j.case_insensitive?t[0].toLowerCase():t[0],r=u(I,i);if(r){const[e,a]=r;if(A.addText(n),n="",l[i]=(l[i]||0)+1,l[i]<=je&&(L+=a),e.startsWith("_"))n+=t[0];else{const n=j.classNameAliases[e]||e;A.addKeyword(t[0],n)}}else n+=t[0];e=I.keywordPatternRe.lastIndex,t=I.keywordPatternRe.exec(B)}n+=B.substr(e),A.addText(n)}function p(){if(""===B)return;let e=null;if("string"===typeof I.subLanguage){if(!t[I.subLanguage])return void A.addText(B);e=m(I.subLanguage,B,!0,T[I.subLanguage]),T[I.subLanguage]=e._top}else e=_(B,I.subLanguage.length?I.subLanguage:null);I.relevance>0&&(L+=e.relevance),A.addSublanguage(e._emitter,e.language)}function h(){null!=I.subLanguage?p():d(),B=""}function f(e,t){let n=1;while(void 0!==t[n]){if(!e._emit[n]){n++;continue}const i=j.classNameAliases[e[n]]||e[n],r=t[n];i?A.addKeyword(r,i):(B=r,d(),B=""),n++}}function g(e,t){return e.scope&&"string"===typeof e.scope&&A.openNode(j.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(A.addKeyword(B,j.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),B=""):e.beginScope._multi&&(f(e.beginScope,t),B="")),I=Object.create(e,{parent:{value:I}}),I}function b(e,t,n){let i=x(e.endRe,n);if(i){if(e["on:end"]){const n=new a(e);e["on:end"](t,n),n.isMatchIgnored&&(i=!1)}if(i){while(e.endsParent&&e.parent)e=e.parent;return e}}if(e.endsWithParent)return b(e.parent,t,n)}function v(e){return 0===I.matcher.regexIndex?(B+=e[0],1):(R=!0,0)}function y(e){const t=e[0],n=e.rule,i=new a(n),r=[n.__beforeBegin,n["on:begin"]];for(const a of r)if(a&&(a(e,i),i.isMatchIgnored))return v(t);return n.skip?B+=t:(n.excludeBegin&&(B+=t),h(),n.returnBegin||n.excludeBegin||(B=t)),g(n,e),n.returnBegin?0:t.length}function w(e){const t=e[0],i=n.substr(e.index),r=b(I,e,i);if(!r)return Se;const a=I;I.endScope&&I.endScope._wrap?(h(),A.addKeyword(t,I.endScope._wrap)):I.endScope&&I.endScope._multi?(h(),f(I.endScope,e)):a.skip?B+=t:(a.returnEnd||a.excludeEnd||(B+=t),h(),a.excludeEnd&&(B=t));do{I.scope&&A.closeNode(),I.skip||I.subLanguage||(L+=I.relevance),I=I.parent}while(I!==r.parent);return r.starts&&g(r.starts,e),a.returnEnd?0:t.length}function k(){const e=[];for(let t=I;t!==j;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>A.openNode(e))}let C={};function S(t,r){const a=r&&r[0];if(B+=t,null==a)return h(),0;if("begin"===C.type&&"end"===r.type&&C.index===r.index&&""===a){if(B+=n.slice(r.index,r.index+1),!s){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=C.rule,t}return 1}if(C=r,"begin"===r.type)return y(r);if("illegal"===r.type&&!i){const e=new Error('Illegal lexeme "'+a+'" for mode "'+(I.scope||"")+'"');throw e.mode=I,e}if("end"===r.type){const e=w(r);if(e!==Se)return e}if("illegal"===r.type&&""===a)return 1;if($>1e5&&$>3*r.index){const e=new Error("potential infinite loop, way more iterations than matches");throw e}return B+=a,a.length}const j=N(e);if(!j)throw ce(o.replace("{}",e)),new Error('Unknown language: "'+e+'"');const E=ve(j);let O="",I=r||E;const T={},A=new c.__emitter(c);k();let B="",L=0,M=0,$=0,R=!1;try{for(I.matcher.considerAll();;){$++,R?R=!1:I.matcher.considerAll(),I.matcher.lastIndex=M;const e=I.matcher.exec(n);if(!e)break;const t=n.substring(M,e.index),i=S(t,e);M=e.index+i}return S(n.substr(M)),A.closeAllNodes(),A.finalize(),O=A.toHTML(),{language:e,value:O,relevance:L,illegal:!1,_emitter:A,_top:I}}catch(P){if(P.message&&P.message.includes("Illegal"))return{language:e,value:ke(n),illegal:!0,relevance:0,_illegalBy:{message:P.message,index:M,context:n.slice(M-100,M+100),mode:P.mode,resultSoFar:O},_emitter:A};if(s)return{language:e,value:ke(n),illegal:!1,relevance:0,errorRaised:P,_emitter:A,_top:I};throw P}}function y(e){const t={value:ke(e),illegal:!1,relevance:0,_top:l,_emitter:new c.__emitter(c)};return t._emitter.addText(e),t}function _(e,n){n=n||c.languages||Object.keys(t);const i=y(e),r=n.filter(N).filter($).map(t=>m(t,e,!1));r.unshift(i);const a=r.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1;if(N(t.language).supersetOf===e.language)return-1}return 0}),[s,o]=a,l=s;return l.secondBest=o,l}function k(e,t,i){const r=t&&n[t]||i;e.classList.add("hljs"),e.classList.add("language-"+r)}function C(e){let t=null;const n=d(e);if(u(n))return;if(V("before:highlightElement",{el:e,language:n}),e.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/issues/2886"),console.warn(e)),c.throwUnescapedHTML)){const t=new xe("One of your code blocks includes unescaped HTML.",e.innerHTML);throw t}t=e;const i=t.textContent,r=n?p(i,{language:n,ignoreIllegals:!0}):_(i);e.innerHTML=r.value,k(e,n,r.language),e.result={language:r.language,re:r.relevance,relevance:r.relevance},r.secondBest&&(e.secondBest={language:r.secondBest.language,relevance:r.secondBest.relevance}),V("after:highlightElement",{el:e,result:r,text:i})}function S(e){c=Ce(c,e)}const j=()=>{I(),de("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function E(){I(),de("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let O=!1;function I(){if("loading"===document.readyState)return void(O=!0);const e=document.querySelectorAll(c.cssSelector);e.forEach(C)}function T(){O&&I()}function A(n,i){let r=null;try{r=i(e)}catch(a){if(ce("Language definition for '{}' could not be registered.".replace("{}",n)),!s)throw a;ce(a),r=l}r.name||(r.name=n),t[n]=r,r.rawDefinition=i.bind(null,e),r.aliases&&M(r.aliases,{languageName:n})}function B(e){delete t[e];for(const t of Object.keys(n))n[t]===e&&delete n[t]}function L(){return Object.keys(t)}function N(e){return e=(e||"").toLowerCase(),t[e]||t[n[e]]}function M(e,{languageName:t}){"string"===typeof e&&(e=[e]),e.forEach(e=>{n[e.toLowerCase()]=t})}function $(e){const t=N(e);return t&&!t.disableAutodetect}function R(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}function P(e){R(e),i.push(e)}function V(e,t){const n=e;i.forEach((function(e){e[n]&&e[n](t)}))}function D(e){return de("10.7.0","highlightBlock will be removed entirely in v12.0"),de("10.7.0","Please use highlightElement now."),C(e)}"undefined"!==typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",T,!1),Object.assign(e,{highlight:p,highlightAuto:_,highlightAll:I,highlightElement:C,highlightBlock:D,configure:S,initHighlighting:j,initHighlightingOnLoad:E,registerLanguage:A,unregisterLanguage:B,listLanguages:L,getLanguage:N,registerAliases:M,autoDetection:$,inherit:Ce,addPlugin:P}),e.debugMode=function(){s=!1},e.safeMode=function(){s=!0},e.versionString=_e,e.regex={concat:v,lookahead:f,either:w,optional:b,anyNumberOfTimes:g};for(const a in Z)"object"===typeof Z[a]&&r(Z[a]);return Object.assign(e,Z),e};var Oe=Ee({});e.exports=Oe,Oe.HighlightJS=Oe,Oe.default=Oe},"12b1":function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));const i={list:"list",compactGrid:"compactGrid",detailedGrid:"detailedGrid",hidden:"hidden"}},1417:function(e,t,n){var i={"./markdown":["84cb","highlight-js-custom-markdown"],"./markdown.js":["84cb","highlight-js-custom-markdown"],"./swift":["81c8","highlight-js-custom-swift"],"./swift.js":["81c8","highlight-js-custom-swift"]};function r(e){if(!n.o(i,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=i[e],r=t[0];return n.e(t[1]).then((function(){return n(r)}))}r.keys=function(){return Object.keys(i)},r.id="1417",e.exports=r},"146e":function(e,t,n){"use strict";var i=n("e425"),r=n("dd18"),a=n("8a61");function s(e){return new Promise((t,n)=>{e.complete?t():(e.addEventListener("load",t,{once:!0}),e.addEventListener("error",n,{once:!0}))})}function o(){return Promise.allSettled([...document.getElementsByTagName("img")].map(s))}t["a"]={mixins:[a["a"]],mounted(){this.scrollToElementIfAnchorPresent()},updated(){this.scrollToElementIfAnchorPresent()},methods:{async scrollToElementIfAnchorPresent(){const{hash:e}=this.$route;if(!e)return;const{imageLoadingStrategy:t}=i["a"].state;i["a"].setImageLoadingStrategy(r["a"].eager),await this.$nextTick(),await o(),this.scrollToElement(e),i["a"].setImageLoadingStrategy(t)}}}},"161e":function(e,t,n){},"1d9f":function(e,t,n){"use strict";n("30d0")},"20ea":function(e,t,n){},2224:function(e,t,n){"use strict";n("b392")},2368:function(e,t,n){"use strict";n("0e19")},"25a9":function(e,t,n){"use strict";n.d(t,"b",(function(){return p})),n.d(t,"d",(function(){return h})),n.d(t,"a",(function(){return m})),n.d(t,"c",(function(){return f}));var i=n("748c"),r=n("d26a"),a=n("3bdd"),s=n("6842");class o extends Error{constructor({location:e,response:t}){super("Request redirected"),this.location=e,this.response=t}}class l extends Error{constructor(e){super("Unable to fetch data"),this.route=e}}async function c(e,t={}){function n(e){return("ide"!==Object({NODE_ENV:"production",VUE_APP_TITLE:"Documentation",BASE_URL:"{{BASE_PATH}}/"}).VUE_APP_TARGET||0!==e.status)&&!e.ok}const i=new URL(e,window.location.href),s=Object(r["c"])(t);s&&(i.search=s);const l=await fetch(i.href);if(n(l))throw l;if(l.redirected)throw new o({location:l.url,response:l});const c=await l.json();return Object(a["c"])(c.schemaVersion),c}function u(e){const t=e.replace(/\/$/,"");return Object(i["d"])([s["a"],"data",t])+".json"}function d(e){const{pathname:t,search:n}=new URL(e),i=/\/data(\/.*).json$/,r=i.exec(t);return r?r[1]+n:t+n}async function p(e,t,n){const i=u(e.path);let r;try{r=await c(i,e.query)}catch(a){if("ide"===Object({NODE_ENV:"production",VUE_APP_TITLE:"Documentation",BASE_URL:"{{BASE_PATH}}/"}).VUE_APP_TARGET)throw console.error(a),!1;if(a instanceof o)throw d(a.location);a.status&&404===a.status?n({name:"not-found",params:[e.path]}):n(new l(e))}return r}function h(e,t){return!Object(r["a"])(e,t)}function m(e){return JSON.parse(JSON.stringify(e))}async function f(){const e=new URL(""+Object(i["d"])([s["a"],"index/index.json"]),window.location.href);return c(e)}},"287e":function(e,t,n){},"2ab3":function(e,t,n){var i={"./bash":["f0f8","highlight-js-bash"],"./bash.js":["f0f8","highlight-js-bash"],"./c":["1fe5","highlight-js-c"],"./c.js":["1fe5","highlight-js-c"],"./cpp":["0209","highlight-js-cpp"],"./cpp.js":["0209","highlight-js-cpp"],"./css":["ee8c","highlight-js-css"],"./css.js":["ee8c","highlight-js-css"],"./diff":["48b8","highlight-js-diff"],"./diff.js":["48b8","highlight-js-diff"],"./http":["c01d","highlight-js-http"],"./http.js":["c01d","highlight-js-http"],"./java":["332f","highlight-js-java"],"./java.js":["332f","highlight-js-java"],"./javascript":["4dd1","highlight-js-javascript"],"./javascript.js":["4dd1","highlight-js-javascript"],"./json":["5ad2","highlight-js-json"],"./json.js":["5ad2","highlight-js-json"],"./llvm":["7c30","highlight-js-llvm"],"./llvm.js":["7c30","highlight-js-llvm"],"./markdown":["04b0","highlight-js-markdown"],"./markdown.js":["04b0","highlight-js-markdown"],"./objectivec":["9bf2","highlight-js-objectivec"],"./objectivec.js":["9bf2","highlight-js-objectivec"],"./perl":["6a51","highlight-js-perl"],"./perl.js":["6a51","highlight-js-perl"],"./php":["2907","highlight-js-php"],"./php.js":["2907","highlight-js-php"],"./python":["9510","highlight-js-python"],"./python.js":["9510","highlight-js-python"],"./ruby":["82cb","highlight-js-ruby"],"./ruby.js":["82cb","highlight-js-ruby"],"./scss":["6113","highlight-js-scss"],"./scss.js":["6113","highlight-js-scss"],"./shell":["b65b","highlight-js-shell"],"./shell.js":["b65b","highlight-js-shell"],"./swift":["2a39","highlight-js-swift"],"./swift.js":["2a39","highlight-js-swift"],"./xml":["8dcb","highlight-js-xml"],"./xml.js":["8dcb","highlight-js-xml"]};function r(e){if(!n.o(i,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=i[e],r=t[0];return n.e(t[1]).then((function(){return n.t(r,7)}))}r.keys=function(){return Object.keys(i)},r.id="2ab3",e.exports=r},"2bdf":function(e,t,n){"use strict";n("3f7f")},"2cae":function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return s}));var i=n("31d4"),r=n("66cd");const a={blue:"blue",teal:"teal",orange:"orange",purple:"purple",green:"green",sky:"sky",pink:"pink"},s={[i["b"].article]:a.teal,[i["b"].init]:a.blue,[i["b"].case]:a.orange,[i["b"].class]:a.purple,[i["b"].collection]:a.pink,[r["a"].collectionGroup]:a.teal,[i["b"].dictionarySymbol]:a.purple,[i["b"].enum]:a.orange,[i["b"].extension]:a.orange,[i["b"].func]:a.green,[i["b"].op]:a.green,[i["b"].httpRequest]:a.green,[i["b"].module]:a.sky,[i["b"].method]:a.blue,[i["b"].macro]:a.pink,[i["b"].protocol]:a.purple,[i["b"].property]:a.teal,[i["b"].propertyListKey]:a.green,[i["b"].propertyListKeyReference]:a.green,[i["b"].sampleCode]:a.purple,[i["b"].struct]:a.purple,[i["b"].subscript]:a.blue,[i["b"].typealias]:a.orange,[i["b"].union]:a.purple,[i["b"].var]:a.purple}},3024:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"technology-icon",attrs:{viewBox:"0 0 14 14",themeId:"technology"}},[n("path",{attrs:{d:"M3.39,9l3.16,1.84.47.28.47-.28L10.61,9l.45.26,1.08.63L7,12.91l-5.16-3,1.08-.64L3.39,9M7,0,0,4.1,2.47,5.55,0,7,2.47,8.44,0,9.9,7,14l7-4.1L11.53,8.45,14,7,11.53,5.56,14,4.1ZM7,7.12,5.87,6.45l-1.54-.9L3.39,5,1.85,4.1,7,1.08l5.17,3L10.6,5l-.93.55-1.54.91ZM7,10,3.39,7.9,1.85,7,3.4,6.09,4.94,7,7,8.2,9.06,7,10.6,6.1,12.15,7l-1.55.9Z"}})])},r=[],a=n("be08"),s={name:"TechnologyIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},"308e":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"column",style:e.style},[e._t("default")],2)},r=[],a={name:"Column",props:{span:{type:Number,default:null}},computed:{style:({span:e})=>({"--col-span":e})}},s=a,o=(n("fe08"),n("2877")),l=Object(o["a"])(s,i,r,!1,null,"0f654188",null);t["a"]=l.exports},"30b0":function(e,t,n){},"30d0":function(e,t,n){},"31d4":function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return r}));const i={article:"article",associatedtype:"associatedtype",buildSetting:"buildSetting",case:"case",collection:"collection",class:"class",container:"container",dictionarySymbol:"dictionarySymbol",enum:"enum",extension:"extension",func:"func",groupMarker:"groupMarker",httpRequest:"httpRequest",init:"init",languageGroup:"languageGroup",learn:"learn",macro:"macro",method:"method",module:"module",op:"op",overview:"overview",project:"project",property:"property",propertyListKey:"propertyListKey",propertyListKeyReference:"propertyListKeyReference",protocol:"protocol",resources:"resources",root:"root",sampleCode:"sampleCode",section:"section",struct:"struct",subscript:"subscript",symbol:"symbol",tutorial:"tutorial",typealias:"typealias",union:"union",var:"var"},r={[i.init]:i.method,[i.case]:i.enum,[i.propertyListKeyReference]:i.propertyListKey,[i.project]:i.tutorial}},"34b0":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"inline-chevron-right-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-chevron-right"}},[n("path",{attrs:{d:"M2.964 1.366l0.649-0.76 7.426 6.343-7.423 6.445-0.655-0.755 6.545-5.683-6.542-5.59z"}})])},r=[],a=n("be08"),s={name:"InlineChevronRightIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},"3b96":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"curly-brackets-icon",attrs:{viewBox:"0 0 14 14",themeId:"curly-brackets"}},[n("path",{attrs:{d:"M9.987 14h-0.814v-0.916h0.36c0.137 0 0.253-0.038 0.349-0.116 0.099-0.080 0.179-0.188 0.239-0.318 0.064-0.134 0.11-0.298 0.139-0.483 0.031-0.186 0.045-0.38 0.045-0.58v-2.115c0-0.417 0.046-0.781 0.139-1.083 0.092-0.3 0.2-0.554 0.322-0.754 0.127-0.203 0.246-0.353 0.366-0.458 0.087-0.076 0.155-0.131 0.207-0.169-0.052-0.037-0.12-0.093-0.207-0.167-0.12-0.105-0.239-0.255-0.366-0.459-0.122-0.2-0.23-0.453-0.322-0.754-0.093-0.3-0.139-0.665-0.139-1.082v-2.13c0-0.199-0.014-0.392-0.045-0.572-0.029-0.182-0.076-0.345-0.139-0.483-0.060-0.137-0.141-0.246-0.239-0.328-0.095-0.076-0.212-0.115-0.349-0.115h-0.36v-0.916h0.814c0.442 0 0.788 0.18 1.030 0.538 0.238 0.352 0.358 0.826 0.358 1.407v2.236c0 0.3 0.015 0.597 0.044 0.886 0.030 0.287 0.086 0.544 0.164 0.765 0.077 0.216 0.184 0.392 0.318 0.522 0.129 0.124 0.298 0.188 0.503 0.188h0.058v0.916h-0.058c-0.206 0-0.374 0.064-0.503 0.188-0.134 0.129-0.242 0.305-0.318 0.521-0.078 0.223-0.134 0.48-0.164 0.766-0.029 0.288-0.044 0.587-0.044 0.884v2.236c0 0.582-0.12 1.055-0.358 1.409-0.242 0.358-0.588 0.538-1.030 0.538z"}}),n("path",{attrs:{d:"M4.827 14h-0.814c-0.442 0-0.788-0.18-1.030-0.538-0.238-0.352-0.358-0.825-0.358-1.409v-2.221c0-0.301-0.015-0.599-0.045-0.886-0.029-0.287-0.085-0.544-0.163-0.764-0.077-0.216-0.184-0.393-0.318-0.522-0.131-0.127-0.296-0.188-0.503-0.188h-0.058v-0.916h0.058c0.208 0 0.373-0.063 0.503-0.188 0.135-0.129 0.242-0.304 0.318-0.522 0.078-0.22 0.134-0.477 0.163-0.765 0.030-0.286 0.045-0.585 0.045-0.886v-2.251c0-0.582 0.12-1.055 0.358-1.407 0.242-0.358 0.588-0.538 1.030-0.538h0.814v0.916h-0.36c-0.138 0-0.252 0.038-0.349 0.116-0.099 0.079-0.179 0.189-0.239 0.327-0.064 0.139-0.11 0.302-0.141 0.483-0.029 0.18-0.044 0.373-0.044 0.572v2.13c0 0.417-0.046 0.782-0.138 1.082-0.092 0.302-0.201 0.556-0.324 0.754-0.123 0.201-0.246 0.356-0.366 0.459-0.086 0.074-0.153 0.13-0.206 0.167 0.052 0.038 0.12 0.093 0.206 0.169 0.12 0.103 0.243 0.258 0.366 0.458s0.232 0.453 0.324 0.754c0.092 0.302 0.138 0.666 0.138 1.083v2.115c0 0.2 0.015 0.394 0.044 0.58 0.030 0.186 0.077 0.349 0.139 0.482 0.062 0.132 0.142 0.239 0.241 0.32 0.096 0.079 0.21 0.116 0.349 0.116h0.36z"}})])},r=[],a=n("be08"),s={name:"CurlyBracketsIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},"3bdd":function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return d}));const i={major:0,minor:3,patch:0};function r({major:e,minor:t,patch:n}){return[e,t,n].join(".")}function a(e){const[t=0,n=0,i=0]=e.split(".");return[Number(t),Number(n),Number(i)]}function s(e,t){const n=a(e),i=a(t);for(let r=0;ri[r])return 1;if(n[r]`[Swift-DocC-Render] The render node version for this page (${e}) has a different major version component than Swift-DocC-Render supports (${o}). Compatibility is not guaranteed.`;function u(e){const{major:t,minor:n}=e,{major:a,minor:s}=i;return t!==a?c(r(e)):n>s?l(r(e)):""}function d(e){if(!e)return;const t=u(e);t&&console.warn(t)}},"3f7f":function(e,t,n){},"43fe":function(e,t,n){"use strict";n("4573")},4573:function(e,t,n){},"47cc":function(e,t,n){},"49e3":function(e,t,n){},"4d50":function(e,t,n){"use strict";n("0d7b")},"50fa":function(e,t,n){},"517a":function(e,t,n){"use strict";n("8222")},"52e4":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("WordBreak",{attrs:{tag:"code"}},[e._t("default")],2)},r=[],a=n("7b1f"),s={name:"CodeVoice",components:{WordBreak:a["a"]}},o=s,l=(n("8c92"),n("2877")),c=Object(l["a"])(o,i,r,!1,null,"05f4a5b7",null);t["a"]=c.exports},5677:function(e,t,n){"use strict";n.r(t),n.d(t,"BlockType",(function(){return bt}));var i=n("e3ab"),r=n("7b69"),a=n("5dcc"),s=n("52e4"),o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"DictionaryExample"},[e._t("default"),n("CollapsibleCodeListing",{attrs:{content:e.example.content,showLineNumbers:""}})],2)},l=[],c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"collapsible-code-listing",class:{"single-line":1===e.content[0].code.length}},[n("pre",[n("div",e._l(this.content,(function(t,i){return n("div",{key:i,class:["container-general",{collapsible:!0===t.collapsible},{collapsed:!0===t.collapsible&&e.collapsed}]},e._l(t.code,(function(t,i){return n("code",{key:i,staticClass:"code-line-container"},[e._v("\n "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showLineNumbers,expression:"showLineNumbers"}],staticClass:"code-number"}),e._v("\n "),n("div",{staticClass:"code-line"},[e._v(e._s(t))]),e._v("\n ")])})),0)})),0)])])},u=[],d={name:"CollapsibleCodeListing",props:{collapsed:{type:Boolean,required:!1},content:{type:Array,required:!0},showLineNumbers:{type:Boolean,default:()=>!0}}},p=d,h=(n("9975"),n("2877")),m=Object(h["a"])(p,c,u,!1,null,"d68ae420",null),f=m.exports,g={name:"DictionaryExample",components:{CollapsibleCodeListing:f},props:{example:{type:Object,required:!0}}},b=g,v=Object(h["a"])(b,o,l,!1,null,null,null),y=v.exports,w=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Row",{staticClass:"endpoint-example"},[n("Column",{staticClass:"example-code"},[e._t("default"),n("Tabnav",{model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[n("TabnavItem",{attrs:{value:e.Tab.request}},[e._v(e._s(e.Tab.request))]),n("TabnavItem",{attrs:{value:e.Tab.response}},[e._v(e._s(e.Tab.response))])],1),n("div",{staticClass:"output"},[e.isCurrent(e.Tab.request)?n("div",{staticClass:"code"},[n("CollapsibleCodeListing",e._b({attrs:{collapsed:e.isCollapsed,showLineNumbers:""}},"CollapsibleCodeListing",e.request,!1))],1):e._e(),e.isCurrent(e.Tab.response)?n("div",{staticClass:"code"},[n("CollapsibleCodeListing",e._b({attrs:{collapsed:e.isCollapsed,showLineNumbers:""}},"CollapsibleCodeListing",e.response,!1))],1):e._e()]),e.isCollapsible?n("div",{staticClass:"controls"},[e.isCollapsed?n("a",{staticClass:"toggle",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showMore.apply(null,arguments)}}},[n("InlinePlusCircleSolidIcon",{staticClass:"control-icon icon-inline"}),e._v(" More ")],1):n("a",{staticClass:"toggle",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showLess.apply(null,arguments)}}},[n("InlineMinusCircleSolidIcon",{staticClass:"control-icon icon-inline"}),e._v(" Less ")],1)]):e._e()],2)],1)},_=[],x=n("0f00"),k=n("620a"),C=function(){var e,t=this,n=t.$createElement,i=t._self._c||n;return i("nav",{staticClass:"tabnav",class:(e={},e["tabnav--"+t.position]=t.position,e["tabnav--vertical"]=t.vertical,e)},[i("ul",{staticClass:"tabnav-items"},[t._t("default")],2)])},S=[];const j="tabnavData";var E={name:"Tabnav",constants:{ProvideKey:j},provide(){const e={selectTab:this.selectTab};return Object.defineProperty(e,"activeTab",{enumerable:!0,get:()=>this.value}),{[j]:e}},props:{position:{type:String,required:!1,validator:e=>new Set(["start","center","end"]).has(e)},vertical:{type:Boolean,default:!1},value:{type:[String,Number],required:!0}},methods:{selectTab(e){this.$emit("input",e)}}},O=E,I=(n("fb8e"),Object(h["a"])(O,C,S,!1,null,"5283512a",null)),T=I.exports,A=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{staticClass:"tabnav-item"},[n("a",{staticClass:"tabnav-link",class:{active:e.isActive},attrs:{href:"#","aria-current":e.isActive?"true":"false"},on:{click:function(t){return t.preventDefault(),e.tabnavData.selectTab(e.value)}}},[e._t("default")],2)])},B=[],L={name:"TabnavItem",inject:{tabnavData:{default:{activeTab:null,selectTab:()=>{}}}},props:{value:{type:[String,Number],default:null}},computed:{isActive({tabnavData:e,value:t}){return e.activeTab===t}}},N=L,M=(n("6869"),Object(h["a"])(N,A,B,!1,null,"6aa9882a",null)),$=M.exports,R=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"inline-plus-circle-solid-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-plus-circle-solid"}},[n("path",{attrs:{d:"M7.005 0.5h-0.008c-1.791 0.004-3.412 0.729-4.589 1.9l0-0c-1.179 1.177-1.908 2.803-1.908 4.6 0 3.59 2.91 6.5 6.5 6.5s6.5-2.91 6.5-6.5c0-3.587-2.906-6.496-6.492-6.5h-0zM4.005 7.52v-1h2.5v-2.51h1v2.51h2.5v1h-2.501v2.49h-1v-2.49z"}})])},P=[],V=n("be08"),D={name:"InlinePlusCircleSolidIcon",components:{SVGIcon:V["a"]}},G=D,z=Object(h["a"])(G,R,P,!1,null,null,null),q=z.exports,U=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"inline-minus-circle-solid-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-minus-circle-solid"}},[n("path",{attrs:{d:"m6.98999129.48999129c3.58985091 0 6.50000001 2.91014913 6.50000001 6.5 0 3.58985091-2.9101491 6.50000001-6.50000001 6.50000001-3.58985087 0-6.5-2.9101491-6.5-6.50000001 0-3.58985087 2.91014913-6.5 6.5-6.5zm3 6.02001742h-6v1h6z","fill-rule":"evenodd"}})])},W=[],H={name:"InlineMinusCircleSolidIcon",components:{SVGIcon:V["a"]}},F=H,K=Object(h["a"])(F,U,W,!1,null,null,null),Z=K.exports;const Y={request:"Request",response:"Response"};var X={name:"EndpointExample",components:{InlineMinusCircleSolidIcon:Z,InlinePlusCircleSolidIcon:q,TabnavItem:$,Tabnav:T,CollapsibleCodeListing:f,Row:x["a"],Column:k["a"]},constants:{Tab:Y},props:{request:{type:Object,required:!0},response:{type:Object,required:!0}},data(){return{isCollapsed:!0,currentTab:Y.request}},computed:{Tab:()=>Y,isCollapsible:({response:e,request:t,currentTab:n})=>{const i={[Y.request]:t.content,[Y.response]:e.content}[n]||[];return i.some(({collapsible:e})=>e)}},methods:{isCurrent(e){return this.currentTab===e},showMore(){this.isCollapsed=!1},showLess(){this.isCollapsed=!0}}},J=X,Q=(n("9a2b"),Object(h["a"])(J,w,_,!1,null,"6197ce3f",null)),ee=Q.exports,te=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("figure",{attrs:{id:e.anchor}},[e._t("default")],2)},ne=[],ie={name:"Figure",props:{anchor:{type:String,required:!1}}},re=ie,ae=(n("f9e6"),Object(h["a"])(re,te,ne,!1,null,"4baaf006",null)),se=ae.exports,oe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("figcaption",{staticClass:"caption",class:{centered:e.centered}},[e.title?n("strong",[e._v(e._s(e.title))]):e._e(),e._v(" "),e._t("default")],2)},le=[],ce={name:"FigureCaption",props:{title:{type:String,required:!1},centered:{type:Boolean,default:!1}}},ue=ce,de=(n("f785"),Object(h["a"])(ue,oe,le,!1,null,"969dceb4",null)),pe=de.exports,he=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ImageAsset",{attrs:{alt:e.alt,variants:e.variants}})},me=[],fe=n("8bd9"),ge={name:"InlineImage",components:{ImageAsset:fe["a"]},props:{alt:{type:String,default:""},variants:{type:Array,required:!0}}},be=ge,ve=(n("cb92"),Object(h["a"])(be,he,me,!1,null,"3a939631",null)),ye=ve.exports,we=n("86d8"),_e=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"table-wrapper"},[n("table",{class:{spanned:e.spanned}},[e._t("default")],2)])},xe=[],ke={name:"Table",props:{spanned:{type:Boolean,default:!1}}},Ce=ke,Se=(n("59ce"),Object(h["a"])(Ce,_e,xe,!1,null,"9a297d5c",null)),je=Se.exports,Ee=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("s",[e._t("default")],2)},Oe=[],Ie={name:"StrikeThrough"},Te=Ie,Ae=(n("830f"),Object(h["a"])(Te,Ee,Oe,!1,null,"eb91ce54",null)),Be=Ae.exports,Le=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("small",[e._t("default")],2)},Ne=[],Me={name:"Small"},$e=Me,Re=(n("b0f5"),Object(h["a"])($e,Le,Ne,!1,null,"77035f61",null)),Pe=Re.exports,Ve=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Asset",{attrs:{identifier:e.identifier,"video-autoplays":!1,"video-muted":!1,showsReplayButton:!e.isClientMobile,showsVideoControls:e.isClientMobile}})},De=[],Ge=n("80e4"),ze=n("7689"),qe={name:"BlockVideo",mixins:[ze["a"]],components:{Asset:Ge["a"]},props:{identifier:{type:String,required:!0}}},Ue=qe,We=(n("1d9f"),Object(h["a"])(Ue,Ve,De,!1,null,"40d6d180",null)),He=We.exports,Fe=n("308e"),Ke=n("ee9e"),Ze=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"TabNavigator",class:[{"tabs--vertical":e.vertical}]},[n("Tabnav",e._b({model:{value:e.currentTitle,callback:function(t){e.currentTitle=t},expression:"currentTitle"}},"Tabnav",{position:e.position,vertical:e.vertical},!1),e._l(e.titles,(function(t){return n("TabnavItem",{key:t,attrs:{value:t}},[e._v(" "+e._s(t)+" ")])})),1),n("div",{staticClass:"tabs-content"},[n("div",{staticClass:"tabs-content-container"},[n("transition",{attrs:{name:"fade"}},[n("div",{key:e.currentTitle},[e._t(e.currentTitle)],2)])],1)])],1)},Ye=[],Xe={name:"TabNavigator",components:{TabnavItem:$,Tabnav:T},props:{vertical:{type:Boolean,default:!1},position:{type:String,default:"start",validator:e=>new Set(["start","center","end"]).has(e)},titles:{type:Array,required:!0,default:()=>[]}},data(){return{currentTitle:this.titles[0]}}},Je=Xe,Qe=(n("7c9f"),Object(h["a"])(Je,Ze,Ye,!1,null,"9b66ac4e",null)),et=Qe.exports,tt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",{staticClass:"tasklist"},e._l(e.tasks,(function(t,i){return n("li",{key:i},[e.showCheckbox(t)?n("input",{attrs:{type:"checkbox",disabled:""},domProps:{checked:t.checked}}):e._e(),e._t("task",null,{task:t})],2)})),0)},nt=[];const it="checked",rt=e=>Object.hasOwnProperty.call(e,it);var at={name:"TaskList",props:{tasks:{required:!0,type:Array,validator:e=>e.some(rt)}},methods:{showCheckbox:rt}},st=at,ot=(n("c3da"),Object(h["a"])(st,tt,nt,!1,null,"6a56a858",null)),lt=ot.exports,ct=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isListStyle?n("div",{staticClass:"links-block"},e._l(e.items,(function(e){return n("TopicsLinkBlock",{key:e.identifier,staticClass:"topic-link-block",attrs:{topic:e}})})),1):n("TopicsLinkCardGrid",{staticClass:"links-block",attrs:{items:e.items,"topic-style":e.blockStyle}})},ut=[],dt=n("70fb"),pt=n("12b1"),ht={name:"LinksBlock",inject:["references"],components:{TopicsLinkBlock:()=>n.e("chunk-384ef189").then(n.bind(null,"2a18")),TopicsLinkCardGrid:dt["a"]},props:{identifiers:{type:Array,required:!0},blockStyle:{type:String,default:pt["a"].compactGrid}},computed:{isListStyle:({blockStyle:e})=>e===pt["a"].list,items:({identifiers:e,references:t})=>e.reduce((e,n)=>t[n]?e.concat(t[n]):e,[])}},mt=ht,ft=(n("0c95"),Object(h["a"])(mt,ct,ut,!1,null,"81ecd99a",null)),gt=ft.exports;const bt={aside:"aside",codeListing:"codeListing",endpointExample:"endpointExample",heading:"heading",orderedList:"orderedList",paragraph:"paragraph",table:"table",termList:"termList",unorderedList:"unorderedList",dictionaryExample:"dictionaryExample",small:"small",video:"video",row:"row",tabNavigator:"tabNavigator",links:"links"},vt={codeVoice:"codeVoice",emphasis:"emphasis",image:"image",inlineHead:"inlineHead",link:"link",newTerm:"newTerm",reference:"reference",strong:"strong",text:"text",superscript:"superscript",subscript:"subscript",strikethrough:"strikethrough"},yt={both:"both",column:"column",none:"none",row:"row"},wt={left:"left",right:"right",center:"center",unset:"unset"},_t=5;function xt(e,t){const n=n=>n.map(xt(e,t)),o=t=>t.map(t=>e("li",{},n(t.content))),l=(t,i,r,a,s,o,l)=>{const{colspan:c,rowspan:u}=o[`${s}_${a}`]||{};if(0===c||0===u)return null;const d=l[a]||wt.unset;let p=null;return d!==wt.unset&&(p=d+"-cell"),e(t,{attrs:{...i,colspan:c,rowspan:u},class:p},n(r))},c=(t,n=yt.none,i={},r=[])=>{switch(n){case yt.both:{const[n,...a]=t;return[e("thead",{},[e("tr",{},n.map((e,t)=>l("th",{scope:"col"},e,t,0,i,r)))]),e("tbody",{},a.map(([t,...n],a)=>e("tr",{},[l("th",{scope:"row"},t,0,a+1,i,r),...n.map((e,t)=>l("td",{},e,t+1,a+1,i,r))])))]}case yt.column:return[e("tbody",{},t.map(([t,...n],a)=>e("tr",{},[l("th",{scope:"row"},t,0,a,i,r),...n.map((e,t)=>l("td",{},e,t+1,a,i,r))])))];case yt.row:{const[n,...a]=t;return[e("thead",{},[e("tr",{},n.map((e,t)=>l("th",{scope:"col"},e,t,0,i,r)))]),e("tbody",{},a.map((t,n)=>e("tr",{},t.map((e,t)=>l("td",{},e,t,n+1,i,r)))))]}default:return[e("tbody",{},t.map((t,n)=>e("tr",{},t.map((e,t)=>l("td",{},e,t,n,i,r)))))]}},u=({metadata:{abstract:t=[],anchor:i,title:r},...a})=>{const s=[n([a])];return(r&&t.length||t.length)&&s.splice(r?0:1,0,e(pe,{props:{title:r,centered:!r}},n(t))),e(se,{props:{anchor:i}},s)};return function(l){switch(l.type){case bt.aside:{const t={kind:l.style,name:l.name};return e(i["a"],{props:t},n(l.content))}case bt.codeListing:{if(l.metadata&&l.metadata.anchor)return u(l);const t={syntax:l.syntax,fileType:l.fileType,content:l.code,showLineNumbers:l.showLineNumbers};return e(r["a"],{props:t})}case bt.endpointExample:{const t={request:l.request,response:l.response};return e(ee,{props:t},n(l.summary||[]))}case bt.heading:{const t={anchor:l.anchor,level:l.level};return e(a["a"],{props:t},l.text)}case bt.orderedList:return e("ol",{attrs:{start:l.start}},o(l.items));case bt.paragraph:{const t=1===l.inlineContent.length&&l.inlineContent[0].type===vt.image,i=t?{class:["inline-image-container"]}:{};return e("p",i,n(l.inlineContent))}case bt.table:return l.metadata&&l.metadata.anchor?u(l):e(je,{props:{spanned:!!l.extendedData}},c(l.rows,l.header,l.extendedData,l.alignments));case bt.termList:return e("dl",{},l.items.map(({term:t,definition:i})=>[e("dt",{},n(t.inlineContent)),e("dd",{},n(i.content))]));case bt.unorderedList:{const t=e=>lt.props.tasks.validator(e.items);return t(l)?e(lt,{props:{tasks:l.items},scopedSlots:{task:e=>n(e.task.content)}}):e("ul",{},o(l.items))}case bt.dictionaryExample:{const t={example:l.example};return e(y,{props:t},n(l.summary||[]))}case bt.small:return e("p",{},[e(Pe,{},n(l.inlineContent))]);case bt.video:return l.metadata&&l.metadata.abstract?u(l):t[l.identifier]?e(He,{props:{identifier:l.identifier}}):null;case bt.row:{const t=l.numberOfColumns?{large:l.numberOfColumns}:void 0;return e(Ke["a"],{props:{columns:t}},l.columns.map(t=>e(Fe["a"],{props:{span:t.size}},n(t.content))))}case bt.tabNavigator:{const t=l.tabs.length>_t,i=l.tabs.map(e=>e.title),r=l.tabs.reduce((e,t)=>({...e,[t.title]:()=>n(t.content)}),{});return e(et,{props:{titles:i,vertical:t},scopedSlots:r})}case bt.links:return e(gt,{props:{blockStyle:l.style,identifiers:l.items}});case vt.codeVoice:return e(s["a"],{},l.code);case vt.emphasis:case vt.newTerm:return e("em",n(l.inlineContent));case vt.image:{if(l.metadata&&(l.metadata.anchor||l.metadata.abstract))return u(l);const n=t[l.identifier];return n?e(ye,{props:{alt:n.alt,variants:n.variants}}):null}case vt.link:return e("a",{attrs:{href:l.destination}},l.title);case vt.reference:{const i=t[l.identifier];if(!i)return null;const r=l.overridingTitleInlineContent||i.titleInlineContent,a=l.overridingTitle||i.title;return e(we["a"],{props:{url:i.url,kind:i.kind,role:i.role,isActive:l.isActive,ideTitle:i.ideTitle,titleStyle:i.titleStyle}},r?n(r):a)}case vt.strong:case vt.inlineHead:return e("strong",n(l.inlineContent));case vt.text:return l.text;case vt.superscript:return e("sup",n(l.inlineContent));case vt.subscript:return e("sub",n(l.inlineContent));case vt.strikethrough:return e(Be,n(l.inlineContent));default:return null}}}var kt,Ct,St={name:"ContentNode",constants:{TableHeaderStyle:yt,TableColumnAlignments:wt},render:function(e){return e(this.tag,{class:"content"},this.content.map(xt(e,this.references),this))},inject:{references:{default(){return{}}}},props:{content:{type:Array,required:!0},tag:{type:String,default:()=>"div"}},methods:{map(e){function t(n=[]){return n.map(n=>{switch(n.type){case bt.aside:return e({...n,content:t(n.content)});case bt.dictionaryExample:return e({...n,summary:t(n.summary)});case bt.paragraph:case vt.emphasis:case vt.strong:case vt.inlineHead:case vt.superscript:case vt.subscript:case vt.strikethrough:case vt.newTerm:return e({...n,inlineContent:t(n.inlineContent)});case bt.orderedList:case bt.unorderedList:return e({...n,items:n.items.map(e=>({...e,content:t(e.content)}))});case bt.table:return e({...n,rows:n.rows.map(e=>e.map(t))});case bt.termList:return e({...n,items:n.items.map(e=>({...e,term:{inlineContent:t(e.term.inlineContent)},definition:{content:t(e.definition.content)}}))});default:return e(n)}})}return t(this.content)},forEach(e){function t(n=[]){n.forEach(n=>{switch(e(n),n.type){case bt.aside:t(n.content);break;case bt.paragraph:case vt.emphasis:case vt.strong:case vt.inlineHead:case vt.newTerm:case vt.superscript:case vt.subscript:case vt.strikethrough:t(n.inlineContent);break;case bt.orderedList:case bt.unorderedList:n.items.forEach(e=>t(e.content));break;case bt.dictionaryExample:t(n.summary);break;case bt.table:n.rows.forEach(e=>{e.forEach(t)});break;case bt.termList:n.items.forEach(e=>{t(e.term.inlineContent),t(e.definition.content)});break}})}return t(this.content)},reduce(e,t){let n=t;return this.forEach(t=>{n=e(n,t)}),n}},computed:{plaintext(){return this.reduce((e,t)=>t.type===bt.paragraph?e+"\n":t.type===vt.text?`${e}${t.text}`:e,"").trim()}},BlockType:bt,InlineType:vt},jt=St,Et=Object(h["a"])(jt,kt,Ct,!1,null,null,null);t["default"]=Et.exports},"598a":function(e,t,n){},"59ce":function(e,t,n){"use strict";n("c212")},"5b99":function(e,t,n){"use strict";n("605b")},"5c97":function(e,t,n){},"5da3":function(e,t,n){e.exports=n.p+"img/no-image@2x.df2a0a50.png"},"5dcc":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("h"+e.level,{tag:"component",attrs:{id:e.anchor}},[e.anchor&&!e.isTargetIDE?n("router-link",{staticClass:"header-anchor",attrs:{to:{hash:"#"+e.anchor},"aria-label":"Scroll to section"},on:{click:function(t){return e.handleFocusAndScroll(e.anchor)}}},[e._t("default"),n("LinkIcon",{staticClass:"icon",attrs:{"aria-hidden":"true"}})],2):[e._t("default")]],2)},r=[],a=n("8a61"),s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"link-icon",attrs:{viewBox:"0 0 20 20"}},[n("path",{attrs:{d:"M19.34,4.88L15.12,.66c-.87-.87-2.3-.87-3.17,0l-3.55,3.56-1.38,1.38-1.4,1.4c-.47,.47-.68,1.09-.64,1.7,.02,.29,.09,.58,.21,.84,.11,.23,.24,.44,.43,.63l4.22,4.22h0l.53-.53,.53-.53h0l-4.22-4.22c-.29-.29-.29-.77,0-1.06l1.4-1.4,.91-.91,.58-.58,.55-.55,2.9-2.9c.29-.29,.77-.29,1.06,0l4.22,4.22c.29,.29,.29,.77,0,1.06l-2.9,2.9c.14,.24,.24,.49,.31,.75,.08,.32,.11,.64,.09,.96l3.55-3.55c.87-.87,.87-2.3,0-3.17Z"}}),n("path",{attrs:{d:"M14.41,9.82s0,0,0,0l-4.22-4.22h0l-.53,.53-.53,.53h0l4.22,4.22c.29,.29,.29,.77,0,1.06l-1.4,1.4-.91,.91-.58,.58-.55,.55h0l-2.9,2.9c-.29,.29-.77,.29-1.06,0L1.73,14.04c-.29-.29-.29-.77,0-1.06l2.9-2.9c-.14-.24-.24-.49-.31-.75-.08-.32-.11-.64-.09-.97L.68,11.93c-.87,.87-.87,2.3,0,3.17l4.22,4.22c.87,.87,2.3,.87,3.17,0l3.55-3.55,1.38-1.38,1.4-1.4c.47-.47,.68-1.09,.64-1.7-.02-.29-.09-.58-.21-.84-.11-.22-.24-.44-.43-.62Z"}})])},o=[],l=n("be08"),c={name:"LinkIcon",components:{SVGIcon:l["a"]}},u=c,d=n("2877"),p=Object(d["a"])(u,s,o,!1,null,null,null),h=p.exports,m={name:"LinkableHeading",mixins:[a["a"]],components:{LinkIcon:h},props:{anchor:{type:String,required:!1},level:{type:Number,default:()=>2,validator:e=>e>=1&&e<=6}},inject:{isTargetIDE:{default:()=>!1}}},f=m,g=(n("2368"),Object(d["a"])(f,i,r,!1,null,"635e28c1",null));t["a"]=g.exports},6058:function(e,t,n){},"605b":function(e,t,n){},"620a":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col",class:e.classes},[e._t("default")],2)},r=[];const a=0,s=12,o=new Set(["large","medium","small"]),l=e=>({type:Object,default:()=>({}),validator:t=>Object.keys(t).every(n=>o.has(n)&&e(t[n]))}),c=l(e=>"boolean"===typeof e),u=l(e=>"number"===typeof e&&e>=a&&e<=s);var d={name:"GridColumn",props:{isCentered:c,isUnCentered:c,span:{...u,default:()=>({large:s})}},computed:{classes:function(){return{["large-"+this.span.large]:void 0!==this.span.large,["medium-"+this.span.medium]:void 0!==this.span.medium,["small-"+this.span.small]:void 0!==this.span.small,"large-centered":!!this.isCentered.large,"medium-centered":!!this.isCentered.medium,"small-centered":!!this.isCentered.small,"large-uncentered":!!this.isUnCentered.large,"medium-uncentered":!!this.isUnCentered.medium,"small-uncentered":!!this.isUnCentered.small}}}},p=d,h=(n("6e4a"),n("2877")),m=Object(h["a"])(p,i,r,!1,null,"2ee3ad8b",null);t["a"]=m.exports},"661b":function(e,t,n){},6667:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"diagonal-arrow",attrs:{viewBox:"0 0 14 14",themeId:"diagonal-arrow"}},[n("path",{attrs:{d:"M0.010 12.881l10.429-10.477-3.764 0.824-0.339-1.549 7.653-1.679-1.717 7.622-1.546-0.349 0.847-3.759-10.442 10.487z"}})])},r=[],a=n("be08"),s={name:"DiagonalArrowIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},"66cd":function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));const i={article:"article",codeListing:"codeListing",collection:"collection",collectionGroup:"collectionGroup",containerSymbol:"containerSymbol",devLink:"devLink",dictionarySymbol:"dictionarySymbol",generic:"generic",link:"link",media:"media",pseudoCollection:"pseudoCollection",pseudoSymbol:"pseudoSymbol",restRequestSymbol:"restRequestSymbol",sampleCode:"sampleCode",symbol:"symbol",table:"table",learn:"learn",overview:"overview",project:"project",tutorial:"tutorial",resources:"resources"}},6869:function(e,t,n){"use strict";n("9649")},"690a":function(e,t,n){},"6e4a":function(e,t,n){"use strict";n("05a1")},"70fb":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"TopicsLinkCardGrid"},[n("Row",{attrs:{columns:{large:e.compactCards?3:2,medium:2}}},e._l(e.items,(function(t){return n("Column",{key:t.title},[n("TopicsLinkCardGridItem",{attrs:{item:t,compact:e.compactCards}})],1)})),1)],1)},r=[],a=n("ee9e"),s=n("308e"),o=n("12b1"),l=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Card",{staticClass:"reference-card-grid-item",attrs:{url:e.item.url,image:e.imageReferences.card,title:e.item.title,"floating-style":"",size:e.cardSize,"link-text":e.linkText},scopedSlots:e._u([e.imageReferences.card?null:{key:"cover",fn:function(t){var i=t.classes;return[n("div",{staticClass:"reference-card-grid-item__image",class:i},[n("TopicTypeIcon",{staticClass:"reference-card-grid-item__icon",attrs:{type:e.item.role,"image-override":e.references[e.imageReferences.icon]}})],1)]}}],null,!0)},[e.compact?e._e():n("ContentNode",{attrs:{content:e.item.abstract}})],1)},c=[],u=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Reference",e._b({staticClass:"card",class:e.classes,attrs:{url:e.url}},"Reference",e.linkAriaTags,!1),[n("CardCover",{attrs:{variants:e.imageVariants,rounded:e.floatingStyle,"aria-hidden":"true"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._t("cover",null,null,t)]}}],null,!0)}),n("div",{staticClass:"details",attrs:{"aria-hidden":"true"}},[e.eyebrow?n("div",{staticClass:"eyebrow",attrs:{id:e.eyebrowId,"aria-label":e.formatAriaLabel("- "+e.eyebrow)}},[e._v(" "+e._s(e.eyebrow)+" ")]):e._e(),n("div",{staticClass:"title",attrs:{id:e.titleId}},[e._v(" "+e._s(e.title)+" ")]),e.$slots.default?n("div",{staticClass:"card-content",attrs:{id:e.contentId}},[e._t("default")],2):e._e(),e.linkText?n(e.hasButton?"ButtonLink":"div",{tag:"component",staticClass:"link"},[e._v(" "+e._s(e.linkText)+" "),e.showExternalLinks?n("DiagonalArrowIcon",{staticClass:"icon-inline link-icon"}):e.hasButton?e._e():n("InlineChevronRightIcon",{staticClass:"icon-inline link-icon"})],1):e._e()],1)],1)},d=[],p=n("76ab"),h=n("34b0"),m=n("6667"),f=n("86d8"),g={small:"small",large:"large"},b=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"card-cover-wrap",class:{rounded:e.rounded}},[e._t("default",(function(){return[n("ImageAsset",{staticClass:"card-cover",attrs:{variants:e.variants}})]}),{classes:"card-cover"})],2)},v=[],y=n("8bd9"),w={name:"CardCover",components:{ImageAsset:y["a"]},props:{variants:{type:Array,required:!0},rounded:{type:Boolean,default:!1}}},_=w,x=(n("4d50"),n("2877")),k=Object(x["a"])(_,b,v,!1,null,"74d84342",null),C=k.exports,S={name:"Card",components:{Reference:f["a"],DiagonalArrowIcon:m["a"],InlineChevronRightIcon:h["a"],CardCover:C,ButtonLink:p["a"]},constants:{CardSize:g},inject:{references:{default:()=>({})}},computed:{titleId:({_uid:e})=>"card_title_"+e,contentId:({_uid:e})=>"card_content_"+e,eyebrowId:({_uid:e})=>"card_eyebrow_"+e,linkAriaTags:({titleId:e,eyebrowId:t,contentId:n,eyebrow:i,$slots:r})=>({"aria-labelledby":e.concat(i?" "+t:""),"aria-describedby":r.default?""+n:null}),classes:({size:e,floatingStyle:t})=>[e,{"floating-style":t}],imageReference:({image:e,references:t})=>t[e]||{},imageVariants:({imageReference:e})=>e.variants||[]},props:{linkText:{type:String,required:!1},url:{type:String,required:!1,default:""},eyebrow:{type:String,required:!1},image:{type:String,required:!1},size:{type:String,validator:e=>Object.prototype.hasOwnProperty.call(g,e)},title:{type:String,required:!0},hasButton:{type:Boolean,default:()=>!1},floatingStyle:{type:Boolean,default:!1},showExternalLinks:{type:Boolean,default:!1},formatAriaLabel:{type:Function,default:e=>e}}},j=S,E=(n("5b99"),Object(x["a"])(j,u,d,!1,null,"3c69339c",null)),O=E.exports,I=n("f12c"),T=n("66cd");const A={[T["a"].article]:"Read article",[T["a"].overview]:"Start tutorial",[T["a"].collection]:"View API collection",[T["a"].symbol]:"View symbol",[T["a"].sampleCode]:"View sample code"};var B={name:"TopicsLinkCardGridItem",components:{TopicTypeIcon:I["a"],Card:O,ContentNode:()=>Promise.resolve().then(n.bind(null,"5677"))},inject:["references"],props:{item:{type:Object,required:!0},compact:{type:Boolean,default:!0}},computed:{imageReferences:({item:e})=>(e.images||[]).reduce((e,t)=>(e[t.type]=t.identifier,e),{icon:null,card:null}),linkText:({compact:e,item:t})=>e?"":A[t.role]||"Learn more",cardSize:({compact:e})=>e?void 0:g.large}},L=B,N=(n("c942"),Object(x["a"])(L,l,c,!1,null,"15b5139b",null)),M=N.exports,$={name:"TopicsLinkCardGrid",components:{TopicsLinkCardGridItem:M,Column:s["a"],Row:a["a"]},props:{items:{type:Array,required:!0},topicStyle:{type:String,default:o["a"].compactGrid,validator:e=>e===o["a"].compactGrid||e===o["a"].detailedGrid}},computed:{compactCards:({topicStyle:e})=>e===o["a"].compactGrid}},R=$,P=Object(x["a"])(R,i,r,!1,null,null,null);t["a"]=P.exports},"72e7":function(e,t,n){"use strict";const i={up:"up",down:"down"};t["a"]={constants:{IntersectionDirections:i},data(){return{intersectionObserver:null,intersectionPreviousScrollY:0,intersectionScrollDirection:i.down}},computed:{intersectionThreshold(){const e=[];for(let t=0;t<=1;t+=.01)e.push(t);return e},intersectionRoot(){return null},intersectionRootMargin(){return"0px 0px 0px 0px"},intersectionObserverOptions(){return{root:this.intersectionRoot,rootMargin:this.intersectionRootMargin,threshold:this.intersectionThreshold}}},async mounted(){await n.e("chunk-2d0d3105").then(n.t.bind(null,"5abe",7)),this.intersectionObserver=new IntersectionObserver(e=>{this.detectIntersectionScrollDirection();const t=this.onIntersect;t?e.forEach(t):console.warn("onIntersect not implemented")},this.intersectionObserverOptions),this.getIntersectionTargets().forEach(e=>{this.intersectionObserver.observe(e)})},beforeDestroy(){this.intersectionObserver&&this.intersectionObserver.disconnect()},methods:{getIntersectionTargets(){return[this.$el]},detectIntersectionScrollDirection(){window.scrollYthis.intersectionPreviousScrollY&&(this.intersectionScrollDirection=i.up),this.intersectionPreviousScrollY=window.scrollY}}}},7689:function(e,t,n){"use strict";t["a"]={computed:{isClientMobile(){let e=!1;return e="maxTouchPoints"in navigator||"msMaxTouchPoints"in navigator?Boolean(navigator.maxTouchPoints||navigator.msMaxTouchPoints):window.matchMedia?window.matchMedia("(pointer:coarse)").matches:"orientation"in window,e}}}},"76ab":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(e.resolvedComponent,e._b({tag:"component",staticClass:"button-cta",class:{"is-dark":e.isDark}},"component",e.componentProps,!1),[e._t("default")],2)},r=[],a=n("86d8"),s={name:"ButtonLink",components:{Reference:a["a"]},props:{url:{type:String,required:!1},isDark:{type:Boolean,default:!1}},computed:{resolvedComponent:({url:e})=>e?a["a"]:"button",componentProps:({url:e})=>e?{url:e}:{}}},o=s,l=(n("0da1"),n("2877")),c=Object(l["a"])(o,i,r,!1,null,"c9c81868",null);t["a"]=c.exports},"7b1f":function(e,t,n){"use strict";var i,r,a={functional:!0,name:"WordBreak",render(e,{props:t,slots:n,data:i}){const r=n().default||[],a=r.filter(e=>e.text&&!e.tag);if(0===a.length||a.length!==r.length)return e(t.tag,i,r);const s=a.map(({text:e})=>e).join(),o=[];let l=null,c=0;while(null!==(l=t.safeBoundaryPattern.exec(s))){const t=l.index+1;o.push(s.slice(c,t)),o.push(e("wbr",{key:l.index})),c=t}return o.push(s.slice(c,s.length)),e(t.tag,i,o)},props:{safeBoundaryPattern:{type:RegExp,default:()=>/([a-z](?=[A-Z])|(:)\w|\w(?=[._]\w))/g},tag:{type:String,default:()=>"span"}}},s=a,o=n("2877"),l=Object(o["a"])(s,i,r,!1,null,null,null);t["a"]=l.exports},"7b69":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"code-listing",class:{"single-line":1===e.syntaxHighlightedLines.length},attrs:{"data-syntax":e.syntaxNameNormalized}},[e.fileName?n("Filename",{attrs:{isActionable:e.isFileNameActionable,fileType:e.fileType},on:{click:function(t){return e.$emit("file-name-click")}}},[e._v(e._s(e.fileName)+" ")]):e._e(),n("div",{staticClass:"container-general"},[n("pre",[n("code",e._l(e.syntaxHighlightedLines,(function(t,i){return n("span",{key:i,class:["code-line-container",{highlighted:e.isHighlighted(i)}]},[n("span",{directives:[{name:"show",rawName:"v-show",value:e.showLineNumbers,expression:"showLineNumbers"}],staticClass:"code-number",attrs:{"data-line-number":e.lineNumberFor(i)}}),e._v("\n"),n("span",{staticClass:"code-line",domProps:{innerHTML:e._s(t)}})])})),0)])])],1)},r=[],a=n("002d"),s=n("8649"),o=n("1020"),l=n.n(o);const c={objectivec:["objective-c"]},u={bash:["sh","zsh"],c:["h"],cpp:["cc","c++","h++","hpp","hh","hxx","cxx"],css:[],diff:["patch"],http:["https"],java:["jsp"],javascript:["js","jsx","mjs","cjs"],json:[],llvm:[],markdown:["md","mkdown","mkd"],objectivec:["mm","objc","obj-c"].concat(c.objectivec),perl:["pl","pm"],php:[],python:["py","gyp","ipython"],ruby:["rb","gemspec","podspec","thor","irb"],scss:[],shell:["console","shellsession"],swift:[],xml:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"]},d=new Set(["markdown","swift"]),p=Object.entries(u),h=new Set(Object.keys(u)),m=new Map;async function f(e){const t=[e];try{return await t.reduce(async(e,t)=>{let i;await e,i=d.has(t)?await n("1417")("./"+t):await n("2ab3")("./"+t),l.a.registerLanguage(t,i.default)},Promise.resolve()),!0}catch(i){return console.error(`Could not load ${e} file`),!1}}function g(e){if(h.has(e))return e;const t=p.find(([,t])=>t.includes(e));return t?t[0]:null}function b(e){if(m.has(e))return m.get(e);const t=g(e);return m.set(e,t),t}l.a.configure({classPrefix:"syntax-",languages:[...h]});const v=async e=>{const t=b(e);return!(!t||l.a.listLanguages().includes(t))&&f(t)},y=/\r\n|\r|\n/g,w=/syntax-/;function _(e){return 0===e.length?[]:e.split(y)}function x(e){return(e.trim().match(y)||[]).length}function k(e){const t=document.createElement("template");return t.innerHTML=e,t.content.childNodes}function C(e){const{className:t}=e;if(!w.test(t))return null;const n=_(e.innerHTML).reduce((e,n)=>`${e}${n||"\n\n"}\n`,"");return k(n.trim())}function S(e){return Array.from(e.childNodes).forEach(e=>{if(x(e.textContent))try{const t=e.childNodes.length?S(e):C(e);t&&e.replaceWith(...t)}catch(t){console.error(t)}}),C(e)}function j(e,t){const n=g(t);if(!l.a.getLanguage(n))throw new Error("Unsupported language for syntax highlighting: "+t);return l.a.highlight(e,{language:n,ignoreIllegals:!0}).value}function E(e,t){const n=e.join("\n"),i=j(n,t),r=document.createElement("code");return r.innerHTML=i,S(r),_(r.innerHTML)}var O=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"filename"},[e.isActionable?n("a",{attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.$emit("click")}}},[n("FileIcon",{attrs:{fileType:e.fileType}}),e._t("default")],2):n("span",[n("FileIcon",{attrs:{fileType:e.fileType}}),e._t("default")],2)])},I=[],T=function(){var e=this,t=e.$createElement,n=e._self._c||t;return"swift"===e.fileType?n("SwiftFileIcon",{staticClass:"file-icon"}):n("GenericFileIcon",{staticClass:"file-icon"})},A=[],B=n("a88f"),L=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"generic-file-icon",attrs:{viewBox:"0 0 14 14",themeId:"generic-file"}},[n("path",{attrs:{d:"M8.033 1l3.967 4.015v7.985h-10v-12zM7.615 2h-4.615v10h8v-6.574z"}}),n("path",{attrs:{d:"M7 1h1v4h-1z"}}),n("path",{attrs:{d:"M7 5h5v1h-5z"}})])},N=[],M=n("be08"),$={name:"GenericFileIcon",components:{SVGIcon:M["a"]}},R=$,P=n("2877"),V=Object(P["a"])(R,L,N,!1,null,null,null),D=V.exports,G={name:"CodeListingFileIcon",components:{SwiftFileIcon:B["a"],GenericFileIcon:D},props:{fileType:String}},z=G,q=(n("e6db"),Object(P["a"])(z,T,A,!1,null,"7c381064",null)),U=q.exports,W={name:"CodeListingFilename",components:{FileIcon:U},props:{isActionable:{type:Boolean,default:()=>!1},fileType:String}},H=W,F=(n("8608"),Object(P["a"])(H,O,I,!1,null,"c8c40662",null)),K=F.exports,Z={name:"CodeListing",components:{Filename:K},data(){return{syntaxHighlightedLines:[]}},props:{fileName:String,isFileNameActionable:{type:Boolean,default:()=>!1},syntax:String,fileType:String,content:{type:Array,required:!0},startLineNumber:{type:Number,default:()=>1},highlights:{type:Array,default:()=>[]},showLineNumbers:{type:Boolean,default:()=>!1}},computed:{escapedContent:({content:e})=>e.map(a["c"]),highlightedLineNumbers(){return new Set(this.highlights.map(({line:e})=>e))},syntaxNameNormalized(){const e={occ:s["a"].objectiveC.key.url};return e[this.syntax]||this.syntax}},watch:{content:{handler:"syntaxHighlightLines",immediate:!0}},methods:{isHighlighted(e){return this.highlightedLineNumbers.has(this.lineNumberFor(e))},lineNumberFor(e){return this.startLineNumber+e},async syntaxHighlightLines(){let e;try{await v(this.syntaxNameNormalized),e=E(this.content,this.syntaxNameNormalized)}catch(t){e=this.escapedContent}this.syntaxHighlightedLines=e.map(e=>""===e?"\n":e)}}},Y=Z,X=(n("c15f"),Object(P["a"])(Y,i,r,!1,null,"12727242",null));t["a"]=X.exports},"7c9f":function(e,t,n){"use strict";n("20ea")},"80c2":function(e,t,n){},"80c8":function(e,t,n){},"80e4":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"asset"},[n(e.assetComponent,e._g(e._b({tag:"component"},"component",e.assetProps,!1),e.assetListeners))],1)},r=[],a=n("8bd9"),s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("video",{attrs:{controls:e.showsControls,autoplay:e.autoplays,poster:e.normalisedPosterPath,width:e.optimalWidth,playsinline:""},domProps:{muted:e.muted},on:{playing:function(t){return e.$emit("playing")},pause:function(t){return e.$emit("pause")},ended:function(t){return e.$emit("ended")}}},[n("source",{attrs:{src:e.normalizeAssetUrl(e.videoAttributes.url)}})])},o=[],l=n("748c"),c=n("e425"),u=n("821b"),d={name:"VideoAsset",props:{variants:{type:Array,required:!0},showsControls:{type:Boolean,default:()=>!0},autoplays:{type:Boolean,default:()=>!0},posterVariants:{type:Array,required:!1,default:()=>[]},muted:{type:Boolean,default:!0}},data:()=>({appState:c["a"].state,optimalWidth:null}),computed:{preferredColorScheme:({appState:e})=>e.preferredColorScheme,systemColorScheme:({appState:e})=>e.systemColorScheme,userPrefersDark:({preferredColorScheme:e,systemColorScheme:t})=>e===u["a"].dark.value||e===u["a"].auto.value&&t===u["a"].dark.value,shouldShowDarkVariant:({darkVideoVariantAttributes:e,userPrefersDark:t})=>e&&t,defaultVideoAttributes(){return this.videoVariantsGroupedByAppearance.light[0]||this.darkVideoVariantAttributes||{}},darkVideoVariantAttributes(){return this.videoVariantsGroupedByAppearance.dark[0]},videoVariantsGroupedByAppearance(){return Object(l["e"])(this.variants)},posterVariantsGroupedByAppearance(){const{light:e,dark:t}=Object(l["e"])(this.posterVariants);return{light:Object(l["a"])(e),dark:Object(l["a"])(t)}},defaultPosterAttributes:({posterVariantsGroupedByAppearance:e,userPrefersDark:t})=>t&&e.dark.length?e.dark[0]:e.light[0]||{},normalisedPosterPath:({defaultPosterAttributes:e})=>Object(l["c"])(e.src),videoAttributes:({darkVideoVariantAttributes:e,defaultVideoAttributes:t,shouldShowDarkVariant:n})=>n?e:t},watch:{normalisedPosterPath:{immediate:!0,handler:"getPosterDimensions"}},methods:{normalizeAssetUrl:l["c"],async getPosterDimensions(e){if(!e)return void(this.optimalWidth=null);const{density:t}=this.defaultPosterAttributes,n=parseInt(t.match(/\d+/)[0],10),{width:i}=await Object(l["b"])(e);this.optimalWidth=i/n}}},p=d,h=n("2877"),m=Object(h["a"])(p,s,o,!1,null,null,null),f=m.exports,g=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"video-replay-container"},[n("VideoAsset",{ref:"asset",attrs:{variants:e.variants,autoplays:e.autoplays,showsControls:e.showsControls,muted:e.muted,posterVariants:e.posterVariants},on:{pause:e.onPause,playing:e.onVideoPlaying,ended:e.onVideoEnd}}),n("a",{staticClass:"replay-button",class:{visible:this.showsReplayButton},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.replay.apply(null,arguments)}}},[e._v(" "+e._s(e.text)+" "),e.played?n("InlineReplayIcon",{staticClass:"replay-icon icon-inline"}):n("PlayIcon",{staticClass:"replay-icon icon-inline"})],1)],1)},b=[],v=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"inline-replay-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-replay"}},[n("path",{attrs:{d:"M2.254 10.201c-1.633-2.613-0.838-6.056 1.775-7.689 2.551-1.594 5.892-0.875 7.569 1.592l0.12 0.184-0.848 0.53c-1.34-2.145-4.166-2.797-6.311-1.457s-2.797 4.166-1.457 6.311 4.166 2.797 6.311 1.457c1.006-0.629 1.71-1.603 2.003-2.723l0.056-0.242 0.98 0.201c-0.305 1.487-1.197 2.792-2.51 3.612-2.613 1.633-6.056 0.838-7.689-1.775z"}}),n("path",{attrs:{d:"M10.76 1.355l0.984-0.18 0.851 4.651-4.56-1.196 0.254-0.967 3.040 0.796z"}})])},y=[],w=n("be08"),_={name:"InlineReplayIcon",components:{SVGIcon:w["a"]}},x=_,k=Object(h["a"])(x,v,y,!1,null,null,null),C=k.exports,S=n("c4dd"),j={name:"ReplayableVideoAsset",components:{PlayIcon:S["a"],InlineReplayIcon:C,VideoAsset:f},props:{variants:{type:Array,required:!0},showsControls:{type:Boolean,default:()=>!0},autoplays:{type:Boolean,default:()=>!0},muted:{type:Boolean,default:!0},posterVariants:{type:Array,default:()=>[]}},computed:{text:({played:e})=>e?"Replay":"Play"},data(){return{showsReplayButton:!(this.autoplays&&this.muted),played:!1}},methods:{async replay(){const e=this.$refs.asset.$el;e&&(await e.play(),this.showsReplayButton=!1)},onVideoEnd(){this.showsReplayButton=!0,this.played=!0},onVideoPlaying(){this.showsReplayButton=!1},onPause(){this.showsControls||this.showsReplayButton||(this.showsReplayButton=!0)}}},E=j,O=(n("018a"),Object(h["a"])(E,g,b,!1,null,"5ff7ec6e",null)),I=O.exports;const T={video:"video",image:"image"};var A={name:"Asset",components:{ImageAsset:a["a"],VideoAsset:f},constants:{AssetTypes:T},inject:["references"],props:{identifier:{type:String,required:!0},showsReplayButton:{type:Boolean,default:()=>!1},showsVideoControls:{type:Boolean,default:()=>!0},videoAutoplays:{type:Boolean,default:()=>!0},videoMuted:{type:Boolean,default:!0}},computed:{rawAsset(){return this.references[this.identifier]||{}},isRawAssetVideo:({rawAsset:e})=>e.type===T.video,videoPoster(){return this.isRawAssetVideo&&this.references[this.rawAsset.poster]},asset(){return this.isRawAssetVideo&&this.prefersReducedMotion&&this.videoPoster||this.rawAsset},assetComponent(){switch(this.asset.type){case T.image:return a["a"];case T.video:return this.showsReplayButton?I:f;default:return}},prefersReducedMotion(){return window.matchMedia("(prefers-reduced-motion)").matches},assetProps(){return{[T.image]:this.imageProps,[T.video]:this.videoProps}[this.asset.type]},imageProps(){return{alt:this.asset.alt,variants:this.asset.variants}},videoProps(){return{variants:this.asset.variants,showsControls:this.showsVideoControls,muted:this.videoMuted,autoplays:!this.prefersReducedMotion&&this.videoAutoplays,posterVariants:this.videoPoster?this.videoPoster.variants:[]}},assetListeners(){return{[T.image]:null,[T.video]:{ended:()=>this.$emit("videoEnded")}}[this.asset.type]}}},B=A,L=(n("d9a3"),Object(h["a"])(B,i,r,!1,null,"72c01652",null));t["a"]=L.exports},8222:function(e,t,n){},"830f":function(e,t,n){"use strict";n("30b0")},"83b9":function(e,t,n){"use strict";n("50fa")},8608:function(e,t,n){"use strict";n("a7f3")},"863d":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{staticClass:"nav-menu-item",class:{"nav-menu-item--animated":e.animate}},[e._t("default")],2)},r=[],a={name:"NavMenuItemBase",props:{animate:{type:Boolean,default:!0}}},s=a,o=(n("43fe"),n("2877")),l=Object(o["a"])(s,i,r,!1,null,"66cbfe4c",null);t["a"]=l.exports},8649:function(e,t,n){"use strict";t["a"]={objectiveC:{name:"Objective-C",key:{api:"occ",url:"objc"}},swift:{name:"Swift",key:{api:"swift",url:"swift"}}}},"86d8":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(e.refComponent,{tag:"component",attrs:{url:e.urlWithParams,"is-active":e.isActiveComputed}},[e._t("default")],2)},r=[],a=n("d26a"),s=n("66cd"),o=n("9895"),l=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isActive?n("a",{attrs:{href:e.url}},[e._t("default")],2):n("span",[e._t("default")],2)},c=[],u={name:"ReferenceExternal",props:{url:{type:String,required:!0},isActive:{type:Boolean,default:!0}}},d=u,p=n("2877"),h=Object(p["a"])(d,l,c,!1,null,null,null),m=h.exports,f=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ReferenceInternal",e._b({},"ReferenceInternal",e.$props,!1),[n("CodeVoice",[e._t("default")],2)],1)},g=[],b=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isActive?n("router-link",{attrs:{to:e.url}},[e._t("default")],2):n("span",[e._t("default")],2)},v=[],y={name:"ReferenceInternal",props:{url:{type:String,required:!0},isActive:{type:Boolean,default:!0}}},w=y,_=Object(p["a"])(w,b,v,!1,null,null,null),x=_.exports,k=n("52e4"),C={name:"ReferenceInternalSymbol",props:x.props,components:{ReferenceInternal:x,CodeVoice:k["a"]}},S=C,j=Object(p["a"])(S,f,g,!1,null,null,null),E=j.exports,O={name:"Reference",computed:{isInternal({url:e}){if(!e.startsWith("/")&&!e.startsWith("#"))return!1;const{resolved:{name:t}={}}=this.$router.resolve(e)||{};return t!==o["b"]},isSymbolReference(){return"symbol"===this.kind&&(this.role===s["a"].symbol||this.role===s["a"].dictionarySymbol)},isDisplaySymbol({isSymbolReference:e,titleStyle:t,ideTitle:n}){return n?e&&"symbol"===t:e},refComponent(){return this.isInternal?this.isDisplaySymbol?E:x:m},urlWithParams({isInternal:e}){return e?Object(a["b"])(this.url,this.$route.query):this.url},isActiveComputed({url:e,isActive:t}){return!(!e||!t)}},props:{url:{type:String,required:!0},kind:{type:String,required:!1},role:{type:String,required:!1},isActive:{type:Boolean,required:!1,default:!0},ideTitle:{type:String,required:!1},titleStyle:{type:String,required:!1}}},I=O,T=Object(p["a"])(I,i,r,!1,null,null,null);t["a"]=T.exports},"8a61":function(e,t,n){"use strict";var i=n("3908");t["a"]={methods:{async scrollToElement(e){await Object(i["b"])(8);const t=this.$router.resolve({hash:e}),{selector:n,offset:r}=await this.$router.options.scrollBehavior(t.route),a=document.querySelector(n);return a?(a.scrollIntoView(),window.scrollY+window.innerHeight`${Object(a["c"])(e.src)} ${e.density}`).join(", "),n=e[0],i={srcSet:t,src:Object(a["c"])(n.src)},{width:r}=n.size||{width:null};return r&&(i.width=r,i.height="auto"),i}var h={name:"ImageAsset",mixins:[s],data:()=>({appState:o["a"].state,fallbackImageSrcSet:null,optimalWidth:null}),computed:{allVariants:({lightVariants:e=[],darkVariants:t=[]})=>e.concat(t),defaultAttributes:({lightVariantAttributes:e,darkVariantAttributes:t})=>e||t,darkVariantAttributes:({darkVariants:e})=>p(e),lightVariantAttributes:({lightVariants:e})=>p(e),loading:({appState:e})=>e.imageLoadingStrategy,preferredColorScheme:({appState:e})=>e.preferredColorScheme,prefersAuto:({preferredColorScheme:e})=>e===l["a"].auto.value,prefersDark:({preferredColorScheme:e})=>e===l["a"].dark.value},props:{alt:{type:String,default:""},variants:{type:Array,required:!0},shouldCalculateOptimalWidth:{type:Boolean,default:!0}},methods:{handleImageLoadError(){this.fallbackImageSrcSet=u.a+" 2x"},async calculateOptimalWidth(){const{$refs:{img:{currentSrc:e}},allVariants:t}=this,{density:n}=t.find(({src:t})=>e.endsWith(t)),i=parseInt(n.match(/\d+/)[0],d),r=await Object(a["b"])(e),s=r.width/i;return s},async optimizeImageSize(){if(!this.defaultAttributes.width&&this.$refs.img)try{this.optimalWidth=await this.calculateOptimalWidth()}catch{console.error("Unable to calculate optimal image width")}}},mounted(){this.shouldCalculateOptimalWidth&&this.$refs.img.addEventListener("load",this.optimizeImageSize)}},m=h,f=n("2877"),g=Object(f["a"])(m,i,r,!1,null,null,null);t["a"]=g.exports},"8c92":function(e,t,n){"use strict";n("80c8")},"8d2d":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"tutorial-icon",attrs:{viewBox:"0 0 14 14",themeId:"tutorial"}},[n("path",{attrs:{d:"M0.933 6.067h3.733v1.867h-3.733v-1.867z"}}),n("path",{attrs:{d:"M0.933 1.867h3.733v1.867h-3.733v-1.867z"}}),n("path",{attrs:{d:"M13.067 1.867v10.267h-7.467v-10.267zM12.133 2.8h-5.6v8.4h5.6z"}}),n("path",{attrs:{d:"M0.933 10.267h3.733v1.867h-3.733v-1.867z"}})])},r=[],a=n("be08"),s={name:"TutorialIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},"92fe":function(e,t,n){},"95da":function(e,t,n){"use strict";var i=n("0cb0");const r="data-original-",a="aria-hidden",s="tabindex";function o(e,t){const n=r+t;if(e.getAttribute(n))return;const i=e.getAttribute(t)||"";e.setAttribute(n,i)}function l(e,t){const n=r+t;if(!e.hasAttribute(n))return;const i=e.getAttribute(n);e.removeAttribute(n),i.length?e.setAttribute(t,i):e.removeAttribute(t)}function c(e,t){const n=document.body;let i=e,r=e;while(i=i.previousElementSibling)t(i);while(r=r.nextElementSibling)t(r);e.parentElement&&e.parentElement!==n&&c(e.parentElement,t)}const u=e=>{o(e,a),o(e,s),e.setAttribute(a,"true"),e.setAttribute(s,"-1");const t=i["a"].getTabbableElements(e);let n=t.length-1;while(n>=0)o(t[n],s),t[n].setAttribute(s,"-1"),n-=1},d=e=>{l(e,a),l(e,s);const t=e.querySelectorAll(`[${r+s}]`);let n=t.length-1;while(n>=0)l(t[n],s),n-=1};t["a"]={hide(e){c(e,u)},show(e){c(e,d)}}},9649:function(e,t,n){},"97a4":function(e,t,n){},9975:function(e,t,n){"use strict";n("287e")},"9a2b":function(e,t,n){"use strict";n("dce7")},"9b30":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",{staticClass:"nav-menu-items",attrs:{"data-previous-menu-children-count":e.previousSiblingChildren}},[e._t("default")],2)},r=[],a={name:"NavMenuItems",props:{previousSiblingChildren:{type:Number,default:0}}},s=a,o=(n("517a"),n("2877")),l=Object(o["a"])(s,i,r,!1,null,"67c1c0a5",null);t["a"]=l.exports},a295:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{attrs:{viewBox:"0 0 14 14",themeId:"path"}},[n("path",{attrs:{d:"M0 0.948h2.8v2.8h-2.8z"}}),n("path",{attrs:{d:"M11.2 10.252h2.8v2.8h-2.8z"}}),n("path",{attrs:{d:"M6.533 1.852h0.933v10.267h-0.933z"}}),n("path",{attrs:{d:"M2.8 1.852h4.667v0.933h-4.667z"}}),n("path",{attrs:{d:"M6.533 11.186h4.667v0.933h-4.667z"}})])},r=[],a=n("be08"),s={name:"PathIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},a7d8:function(e,t,n){},a7f3:function(e,t,n){},a88f:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"swift-file-icon",attrs:{viewBox:"0 0 15 14",themeId:"swift-file"}},[n("path",{attrs:{d:"M14.93,13.56A2.15,2.15,0,0,0,15,13a5.37,5.37,0,0,0-1.27-3.24A6.08,6.08,0,0,0,14,7.91,9.32,9.32,0,0,0,9.21.31a8.51,8.51,0,0,1,1.78,5,6.4,6.4,0,0,1-.41,2.18A45.06,45.06,0,0,1,3.25,1.54,44.57,44.57,0,0,0,7.54,6.9,45.32,45.32,0,0,1,1.47,2.32,35.69,35.69,0,0,0,8.56,9.94a6.06,6.06,0,0,1-3.26.85A9.48,9.48,0,0,1,0,8.91a10,10,0,0,0,8.1,4.72c2.55,0,3.25-1.2,4.72-1.2a2.09,2.09,0,0,1,1.91,1.15C14.79,13.69,14.88,13.75,14.93,13.56Z"}})])},r=[],a=n("be08"),s={name:"SwiftFileIcon",components:{SVGIcon:a["a"]}},o=s,l=(n("c3e5"),n("2877")),c=Object(l["a"])(o,i,r,!1,null,"c01a6890",null);t["a"]=c.exports},a97e:function(e,t,n){"use strict";var i=n("63b8");const r=e=>e?`(max-width: ${e}px)`:"",a=e=>e?`(min-width: ${e}px)`:"";function s({minWidth:e,maxWidth:t}){return["only screen",a(e),r(t)].filter(Boolean).join(" and ")}function o({maxWidth:e,minWidth:t}){return window.matchMedia(s({minWidth:t,maxWidth:e}))}var l,c,u={name:"BreakpointEmitter",constants:{BreakpointAttributes:i["a"],BreakpointName:i["b"],BreakpointScopes:i["c"]},props:{scope:{type:String,default:()=>i["c"].default,validator:e=>e in i["c"]}},render(){return this.$scopedSlots.default?this.$scopedSlots.default({matchingBreakpoint:this.matchingBreakpoint}):null},data:()=>({matchingBreakpoint:null}),methods:{initMediaQuery(e,t){const n=o(t),i=t=>this.handleMediaQueryChange(t,e);n.addListener(i),this.$once("hook:beforeDestroy",()=>{n.removeListener(i)}),i(n)},handleMediaQueryChange(e,t){e.matches&&(this.matchingBreakpoint=t,this.$emit("change",t))}},mounted(){const e=i["a"][this.scope]||{};Object.entries(e).forEach(([e,t])=>{this.initMediaQuery(e,t)})}},d=u,p=n("2877"),h=Object(p["a"])(d,l,c,!1,null,null,null);t["a"]=h.exports},a9f1:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"article-icon",attrs:{viewBox:"0 0 14 14",themeId:"article"}},[n("path",{attrs:{d:"M8.033 1l3.967 4.015v7.985h-10v-12zM7.615 2h-4.615v10h8v-6.574z"}}),n("path",{attrs:{d:"M7 1h1v4h-1z"}}),n("path",{attrs:{d:"M7 5h5v1h-5z"}})])},r=[],a=n("be08"),s={name:"ArticleIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},aea0:function(e,t,n){},b0f5:function(e,t,n){"use strict";n("49e3")},b37f:function(e,t,n){"use strict";n("97a4")},b392:function(e,t,n){},be08:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("svg",{staticClass:"svg-icon",attrs:{"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}},[e.themeOverrideURL?n("use",{attrs:{href:e.themeOverrideURL+"#"+e.themeId,width:"100%",height:"100%"}}):e._t("default")],2)},r=[],a=n("6842"),s={name:"SVGIcon",props:{themeId:{type:String,required:!1},iconUrl:{type:String,default:null}},computed:{themeOverrideURL:({iconUrl:e,themeId:t})=>e||Object(a["c"])(["theme","icons",t],void 0)}},o=s,l=(n("c2c4"),n("2877")),c=Object(l["a"])(o,i,r,!1,null,"33d3200a",null);t["a"]=c.exports},bf08:function(e,t,n){"use strict";var i=n("6842"),r=n("d26a");const a=Object(i["c"])(["meta","title"],"Documentation"),s=({title:e,description:t,url:n})=>[{name:"description",content:t},{property:"og:locale",content:"en_US"},{property:"og:site_name",content:a},{property:"og:type",content:"website"},{property:"og:title",content:e},{property:"og:description",content:t},{property:"og:url",content:n},{property:"og:image",content:Object(r["d"])("/developer-og.jpg")},{name:"twitter:image",content:Object(r["d"])("/developer-og-twitter.jpg")},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:description",content:t},{name:"twitter:title",content:e},{name:"twitter:url",content:n}],o=e=>[e,a].filter(Boolean).join(" | "),l=e=>{const{content:t}=e,n=e.property?"property":"name",i=e[n],r=document.querySelector(`meta[${n}="${i}"]`);if(r&&t)r.setAttribute("content",t);else if(r&&!t)r.remove();else if(t){const t=document.createElement("meta");t.setAttribute(n,e[n]),t.setAttribute("content",e.content),document.getElementsByTagName("head")[0].appendChild(t)}},c=e=>{document.title=e};function u({title:e,description:t,url:n}){const i=o(e);c(i),s({title:i,description:t,url:n}).forEach(e=>l(e))}var d=n("002d"),p=n("5677");t["a"]={methods:{extractFirstParagraphText(e=[]){const t=p["default"].computed.plaintext.bind({...p["default"].methods,content:e})();return Object(d["e"])(t)}},computed:{pagePath:({$route:{path:e="/"}={}})=>e,pageURL:({pagePath:e="/"})=>Object(r["d"])(e)},mounted(){u({title:this.pageTitle,description:this.pageDescription,url:this.pageURL})}}},c081:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.action?n("DestinationDataProvider",{attrs:{destination:e.action},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.url,r=t.title;return n("ButtonLink",{attrs:{url:i,isDark:e.isDark}},[e._v(" "+e._s(r)+" ")])}}],null,!1,1264376715)}):e._e()},r=[],a=n("76ab"),s=n("c7ea"),o={name:"CallToActionButton",components:{DestinationDataProvider:s["a"],ButtonLink:a["a"]},props:{action:{type:Object,required:!0},isDark:{type:Boolean,default:!1}}},l=o,c=n("2877"),u=Object(c["a"])(l,i,r,!1,null,null,null);t["a"]=u.exports},c15f:function(e,t,n){"use strict";n("e67f")},c212:function(e,t,n){},c2c4:function(e,t,n){"use strict";n("161e")},c3da:function(e,t,n){"use strict";n("fda2")},c3e5:function(e,t,n){"use strict";n("aea0")},c4dd:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"play-icon",attrs:{viewBox:"0 0 14 14",themeId:"play"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5v0c0-3.59 2.91-6.5 6.5-6.5v0zM7 1.5c-3.038 0-5.5 2.462-5.5 5.5s2.462 5.5 5.5 5.5c3.038 0 5.5-2.462 5.5-5.5v0c0-3.038-2.462-5.5-5.5-5.5v0z"}}),n("path",{attrs:{d:"M10.195 7.010l-5 3v-6l5 3z"}})])},r=[],a=n("be08"),s={name:"PlayIcon",components:{SVGIcon:a["a"]}},o=s,l=n("2877"),c=Object(l["a"])(o,i,r,!1,null,null,null);t["a"]=c.exports},c7ea:function(e,t,n){"use strict";const i={link:"link",reference:"reference",text:"text"};var r,a,s={name:"DestinationDataProvider",props:{destination:{type:Object,required:!0,default:()=>({})}},inject:{references:{default:()=>({})},isTargetIDE:{default:()=>!1}},constants:{DestinationType:i},computed:{isExternal:({reference:e,destination:t})=>e.type===i.link||t.type===i.link,shouldAppendOpensInBrowser:({isExternal:e,isTargetIDE:t})=>e&&t,reference:({references:e,destination:t})=>e[t.identifier]||{},linkUrl:({destination:e,reference:t})=>({[i.link]:e.destination,[i.reference]:t.url,[i.text]:e.text}[e.type]),linkTitle:({reference:e,destination:t})=>({[i.link]:t.title,[i.reference]:t.overridingTitle||e.title,[i.text]:""}[t.type])},methods:{formatAriaLabel(e){return this.shouldAppendOpensInBrowser?e+" (opens in browser)":e}},render(){return this.$scopedSlots.default({url:this.linkUrl||"",title:this.linkTitle||"",formatAriaLabel:this.formatAriaLabel,isExternal:this.isExternal})}},o=s,l=n("2877"),c=Object(l["a"])(o,r,a,!1,null,null,null);t["a"]=c.exports},c942:function(e,t,n){"use strict";n("80c2")},cb92:function(e,t,n){"use strict";n("598a")},cbcf:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("nav",{ref:"nav",staticClass:"nav",class:e.rootClasses,attrs:{role:"navigation"}},[n("div",{ref:"wrapper",staticClass:"nav__wrapper"},[n("div",{staticClass:"nav__background"}),e.hasOverlay?n("div",{staticClass:"nav-overlay",on:{click:e.closeNav}}):e._e(),n("div",{staticClass:"nav-content"},[e._t("pre-title",null,{className:"pre-title"},{closeNav:e.closeNav,inBreakpoint:e.inBreakpoint,currentBreakpoint:e.currentBreakpoint,isOpen:e.isOpen}),e.$slots.default?n("div",{staticClass:"nav-title"},[e._t("default")],2):e._e(),e._t("after-title"),n("div",{staticClass:"nav-menu"},[n("a",{ref:"axToggle",staticClass:"nav-ax-toggle",attrs:{href:"#",role:"button"},on:{click:function(t){return t.preventDefault(),e.toggleNav.apply(null,arguments)}}},[n("span",{staticClass:"visuallyhidden"},[e.isOpen?[e._v("Close Menu")]:[e._v("Open Menu")]],2)]),n("div",{ref:"tray",staticClass:"nav-menu-tray",on:{transitionend:function(t){return t.target!==t.currentTarget?null:e.onTransitionEnd.apply(null,arguments)},click:e.handleTrayClick}},[e._t("tray",(function(){return[n("NavMenuItems",[e._t("menu-items")],2)]}),{closeNav:e.closeNav})],2)]),n("div",{staticClass:"nav-actions"},[n("a",{ref:"toggle",staticClass:"nav-menucta",attrs:{href:"#",tabindex:"-1","aria-hidden":"true"},on:{click:function(t){return t.preventDefault(),e.toggleNav.apply(null,arguments)}}},[n("span",{staticClass:"nav-menucta-chevron"})])])],2),e._t("after-content")],2),n("BreakpointEmitter",{attrs:{scope:e.BreakpointScopes.nav},on:{change:e.onBreakpointChange}})],1)},r=[],a=n("72e7"),s=n("9b30"),o=n("a97e"),l=n("f2af"),c=n("942d"),u=n("63b8"),d=n("95da"),p=n("3908");const{noClose:h}=c["a"],{BreakpointName:m,BreakpointScopes:f}=o["a"].constants,g=8,b={isDark:"theme-dark",isOpen:"nav--is-open",inBreakpoint:"nav--in-breakpoint-range",isTransitioning:"nav--is-transitioning",isSticking:"nav--is-sticking",hasSolidBackground:"nav--solid-background",hasNoBorder:"nav--noborder",hasFullWidthBorder:"nav--fullwidth-border",isWideFormat:"nav--is-wide-format",noBackgroundTransition:"nav--no-bg-transition"};var v={name:"NavBase",components:{NavMenuItems:s["a"],BreakpointEmitter:o["a"]},constants:{NavStateClasses:b,NoBGTransitionFrames:g},props:{breakpoint:{type:String,default:m.small},hasOverlay:{type:Boolean,default:!0},hasSolidBackground:{type:Boolean,default:!1},hasNoBorder:{type:Boolean,default:!1},hasFullWidthBorder:{type:Boolean,default:!1},isDark:{type:Boolean,default:!1},isWideFormat:{type:Boolean,default:!1}},mixins:[a["a"]],data(){return{isOpen:!1,isTransitioning:!1,isSticking:!1,noBackgroundTransition:!0,currentBreakpoint:m.large}},computed:{BreakpointScopes:()=>f,inBreakpoint:({currentBreakpoint:e,breakpoint:t})=>!Object(u["d"])(e,t),rootClasses:({isOpen:e,inBreakpoint:t,isTransitioning:n,isSticking:i,hasSolidBackground:r,hasNoBorder:a,hasFullWidthBorder:s,isDark:o,isWideFormat:l,noBackgroundTransition:c})=>({[b.isDark]:o,[b.isOpen]:e,[b.inBreakpoint]:t,[b.isTransitioning]:n,[b.isSticking]:i,[b.hasSolidBackground]:r,[b.hasNoBorder]:a,[b.hasFullWidthBorder]:s,[b.isWideFormat]:l,[b.noBackgroundTransition]:c})},watch:{isOpen(e){this.$emit("change",e),e?this.onExpand():this.onClose()}},async mounted(){window.addEventListener("keydown",this.onEscape),window.addEventListener("popstate",this.closeNav),window.addEventListener("orientationchange",this.closeNav),document.addEventListener("click",this.handleClickOutside),this.handleFlashOnMount(),await this.$nextTick()},beforeDestroy(){window.removeEventListener("keydown",this.onEscape),window.removeEventListener("popstate",this.closeNav),window.removeEventListener("orientationchange",this.closeNav),document.removeEventListener("click",this.handleClickOutside),this.isOpen&&this.toggleScrollLock(!1)},methods:{getIntersectionTargets(){return[document.getElementById(c["e"])||this.$el]},toggleNav(){this.isOpen=!this.isOpen,this.isTransitioning=!0},closeNav(){const e=this.isOpen;return this.isOpen=!1,this.resolveOnceTransitionsEnd(e)},resolveOnceTransitionsEnd(e){return e&&this.inBreakpoint?(this.isTransitioning=!0,new Promise(e=>{const t=this.$watch("isTransitioning",()=>{e(),t()})})):Promise.resolve()},async onTransitionEnd({propertyName:e}){"max-height"===e&&(this.$emit("changed",this.isOpen),this.isTransitioning=!1,this.isOpen?(this.$emit("opened"),this.toggleScrollLock(!0)):this.$emit("closed"))},onBreakpointChange(e){this.currentBreakpoint=e,this.inBreakpoint||this.closeNav()},onIntersect({intersectionRatio:e}){window.scrollY<0||(this.isSticking=1!==e)},onEscape({key:e}){"Escape"===e&&this.isOpen&&(this.closeNav(),this.$refs.axToggle.focus())},handleTrayClick({target:e}){e.href&&!e.classList.contains(h)&&this.closeNav()},handleClickOutside({target:e}){this.$refs.nav.contains(e)||this.closeNav()},toggleScrollLock(e){e?l["a"].lockScroll(this.$refs.tray):l["a"].unlockScroll(this.$refs.tray)},onExpand(){this.$emit("open"),d["a"].hide(this.$refs.wrapper),document.activeElement===this.$refs.toggle&&document.activeElement.blur()},onClose(){this.$emit("close"),this.toggleScrollLock(!1),d["a"].show(this.$refs.wrapper)},async handleFlashOnMount(){await Object(p["b"])(g),this.noBackgroundTransition=!1}}},y=v,w=(n("83b9"),n("2877")),_=Object(w["a"])(y,i,r,!1,null,"0c761cd5",null);t["a"]=_.exports},d34b:function(e,t,n){},d915:function(e,t,n){"use strict";n("e944")},d9a3:function(e,t,n){"use strict";n("92fe")},dce7:function(e,t,n){},e3ab:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("aside",{class:e.kind,attrs:{"aria-label":e.kind}},[n("p",{staticClass:"label"},[e._v(e._s(e.label))]),e._t("default")],2)},r=[];const a={deprecated:"deprecated",experiment:"experiment",important:"important",note:"note",tip:"tip",warning:"warning"};var s={name:"Aside",props:{kind:{type:String,required:!0,validator:e=>Object.prototype.hasOwnProperty.call(a,e)},name:{type:String,required:!1}},computed:{label:({kind:e,name:t})=>t||{[a.deprecated]:"Deprecated",[a.experiment]:"Experiment",[a.important]:"Important",[a.note]:"Note",[a.tip]:"Tip",[a.warning]:"Warning"}[e]}},o=s,l=(n("d915"),n("2877")),c=Object(l["a"])(o,i,r,!1,null,"7696d857",null);t["a"]=c.exports},e67f:function(e,t,n){},e6db:function(e,t,n){"use strict";n("47cc")},e944:function(e,t,n){},ee9e:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"row",class:{"with-columns":e.columns},style:e.style},[e._t("default")],2)},r=[],a=n("63b8"),s={name:"Row",props:{columns:{type:Object,required:!1,validator:e=>Object.entries(e).every(([e,t])=>a["b"][e]&&"number"===typeof t)},gap:{type:Number,required:!1}},computed:{style:({columns:e={},gap:t})=>({"--col-count-large":e.large,"--col-count-medium":e.medium,"--col-count-small":e.small||1,"--col-gap":t&&t+"px"})}},o=s,l=(n("2bdf"),n("2877")),c=Object(l["a"])(o,i,r,!1,null,"7d2946e9",null);t["a"]=c.exports},f12c:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"TopicTypeIcon"},[e.imageOverride?n("OverridableAsset",{staticClass:"icon-inline",style:e.styles,attrs:{imageOverride:e.imageOverride,shouldCalculateOptimalWidth:e.shouldCalculateOptimalWidth}}):n(e.icon,e._b({tag:"component",staticClass:"icon-inline",style:e.styles},"component",e.iconProps,!1))],1)},r=[],a=n("a295"),s=n("3024"),o=n("a9f1"),l=n("8d2d"),c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{attrs:{viewBox:"0 0 14 14",height:"14",themeId:"topic-func"}},[n("path",{attrs:{d:"M13 1v12h-12v-12zM12.077 1.923h-10.154v10.154h10.154z"}}),n("path",{attrs:{d:"M5.191 9.529c0.044 0.002 0.089 0.004 0.133 0.004 0.108 0 0.196-0.025 0.262-0.074s0.122-0.113 0.166-0.188c0.044-0.077 0.078-0.159 0.103-0.247s0.049-0.173 0.074-0.251l0.598-2.186h-0.709l0.207-0.702h0.702l0.288-1.086c0.083-0.384 0.256-0.667 0.517-0.849s0.591-0.273 0.99-0.273c0.108 0 0.212 0.007 0.314 0.022s0.203 0.027 0.306 0.037l-0.207 0.761c-0.054-0.006-0.106-0.011-0.155-0.018s-0.102-0.011-0.155-0.011c-0.108 0-0.196 0.016-0.262 0.048s-0.122 0.075-0.166 0.129-0.080 0.115-0.107 0.185c-0.028 0.068-0.055 0.14-0.085 0.214l-0.222 0.842h0.768l-0.192 0.702h-0.783l-0.628 2.319c-0.059 0.222-0.129 0.419-0.21 0.594s-0.182 0.322-0.303 0.443-0.269 0.214-0.443 0.281-0.385 0.1-0.631 0.1c-0.084 0-0.168-0.004-0.251-0.011s-0.168-0.014-0.251-0.018l0.207-0.768c0.040 0 0.081 0.001 0.126 0.004z"}})])},u=[],d=n("be08"),p={name:"TopicFuncIcon",components:{SVGIcon:d["a"]}},h=p,m=n("2877"),f=Object(m["a"])(h,c,u,!1,null,null,null),g=f.exports,b=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"collection-icon",attrs:{viewBox:"0 0 14 14",themeId:"collection"}},[n("path",{attrs:{d:"m1 1v12h12v-12zm11 11h-10v-10h10z"}}),n("path",{attrs:{d:"m3 4h8v1h-8zm0 2.5h8v1h-8zm0 2.5h8v1h-8z"}}),n("path",{attrs:{d:"m3 4h8v1h-8z"}}),n("path",{attrs:{d:"m3 6.5h8v1h-8z"}}),n("path",{attrs:{d:"m3 9h8v1h-8z"}})])},v=[],y={name:"CollectionIcon",components:{SVGIcon:d["a"]}},w=y,_=Object(m["a"])(w,b,v,!1,null,null,null),x=_.exports,k=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{attrs:{viewBox:"0 0 14 14",height:"14",themeId:"topic-func-op"}},[n("path",{attrs:{d:"M13 13h-12v-12h12zM1.923 12.077h10.154v-10.154h-10.154z"}}),n("path",{attrs:{d:"M5.098 4.968v-1.477h-0.738v1.477h-1.477v0.738h1.477v1.477h0.738v-1.477h1.477v-0.738z"}}),n("path",{attrs:{d:"M8.030 4.807l-2.031 5.538h0.831l2.031-5.538z"}}),n("path",{attrs:{d:"M8.894 8.805v0.923h2.215v-0.923z"}})])},C=[],S={name:"TopicFuncOpIcon",components:{SVGIcon:d["a"]}},j=S,E=Object(m["a"])(j,k,C,!1,null,null,null),O=E.exports,I=n("3b96"),T=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{attrs:{viewBox:"0 0 14 14",height:"14",themeId:"topic-subscript"}},[n("path",{attrs:{d:"M13 13h-12v-12h12zM1.923 12.077h10.154v-10.154h-10.154z"}}),n("path",{attrs:{d:"M4.133 3.633v6.738h1.938v-0.831h-0.923v-5.077h0.923v-0.831z"}}),n("path",{attrs:{d:"M9.856 10.371v-6.738h-1.938v0.831h0.923v5.077h-0.923v0.831z"}})])},A=[],B={name:"TopicSubscriptIcon",components:{SVGIcon:d["a"]}},L=B,N=Object(m["a"])(L,T,A,!1,null,null,null),M=N.exports,$=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"two-letter-icon",attrs:{width:"16px",height:"16px",viewBox:"0 0 16 16",themeId:"two-letter"}},[n("g",{attrs:{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"}},[n("g",{attrs:{transform:"translate(1.000000, 1.000000)"}},[n("rect",{attrs:{stroke:"currentColor",x:"0.5",y:"0.5",width:"13",height:"13"}}),n("text",{attrs:{"font-size":"8","font-weight":"bold",fill:"currentColor"}},[n("tspan",{attrs:{x:"8.2",y:"11"}},[e._v(e._s(e.second))])]),n("text",{attrs:{"font-size":"11","font-weight":"bold",fill:"currentColor"}},[n("tspan",{attrs:{x:"1.7",y:"11"}},[e._v(e._s(e.first))])])])])])},R=[],P={name:"TwoLetterSymbolIcon",components:{SVGIcon:d["a"]},props:{first:{type:String,required:!0},second:{type:String,required:!0}}},V=P,D=Object(m["a"])(V,$,R,!1,null,null,null),G=D.exports,z=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"single-letter-icon",attrs:{width:"16px",height:"16px",viewBox:"0 0 16 16",themeId:"single-letter"}},[n("g",{attrs:{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"}},[n("rect",{attrs:{stroke:"currentColor",x:"1",y:"1",width:"14",height:"14"}}),n("text",{attrs:{"font-size":"11","font-weight":"bold",fill:"currentColor",x:"49%",y:"12","text-anchor":"middle"}},[n("tspan",[e._v(e._s(e.symbol))])])])])},q=[],U={name:"SingleLetterSymbolIcon",components:{SVGIcon:d["a"]},props:{symbol:{type:String,required:!0}}},W=U,H=Object(m["a"])(W,z,q,!1,null,null,null),F=H.exports,K=n("31d4"),Z=n("2cae"),Y=n("fdd9");const X={[K["b"].article]:o["a"],[K["b"].associatedtype]:x,[K["b"].buildSetting]:x,[K["b"].class]:F,[K["b"].collection]:x,[K["b"].dictionarySymbol]:F,[K["b"].container]:x,[K["b"].enum]:F,[K["b"].extension]:G,[K["b"].func]:g,[K["b"].op]:O,[K["b"].httpRequest]:F,[K["b"].languageGroup]:x,[K["b"].learn]:a["a"],[K["b"].method]:F,[K["b"].macro]:F,[K["b"].module]:s["a"],[K["b"].overview]:a["a"],[K["b"].protocol]:G,[K["b"].property]:F,[K["b"].propertyListKey]:F,[K["b"].resources]:a["a"],[K["b"].sampleCode]:I["a"],[K["b"].struct]:F,[K["b"].subscript]:M,[K["b"].symbol]:x,[K["b"].tutorial]:l["a"],[K["b"].typealias]:F,[K["b"].union]:F,[K["b"].var]:F},J={[K["b"].class]:{symbol:"C"},[K["b"].dictionarySymbol]:{symbol:"O"},[K["b"].enum]:{symbol:"E"},[K["b"].extension]:{first:"E",second:"x"},[K["b"].httpRequest]:{symbol:"E"},[K["b"].method]:{symbol:"M"},[K["b"].macro]:{symbol:"#"},[K["b"].protocol]:{first:"P",second:"r"},[K["b"].property]:{symbol:"P"},[K["b"].propertyListKey]:{symbol:"K"},[K["b"].struct]:{symbol:"S"},[K["b"].typealias]:{symbol:"T"},[K["b"].union]:{symbol:"U"},[K["b"].var]:{symbol:"V"}};var Q={name:"TopicTypeIcon",components:{OverridableAsset:Y["a"],SVGIcon:d["a"],SingleLetterSymbolIcon:F},constants:{TopicTypeIcons:X,TopicTypeProps:J},props:{type:{type:String,required:!0},withColors:{type:Boolean,default:!1},imageOverride:{type:Object,default:null},shouldCalculateOptimalWidth:{type:Boolean,default:!0}},computed:{normalisedType:({type:e})=>K["a"][e]||e,icon:({normalisedType:e})=>X[e]||x,iconProps:({normalisedType:e})=>J[e]||{},color:({normalisedType:e})=>Z["b"][e],styles:({color:e,withColors:t})=>t&&e?{color:`var(--color-type-icon-${e})`}:{}}},ee=Q,te=(n("b37f"),Object(m["a"])(ee,i,r,!1,null,"c8b8711e",null));t["a"]=te.exports},f2af:function(e,t,n){"use strict";let i=!1,r=-1,a=0;const s=()=>window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||"MacIntel"===window.navigator.platform&&window.navigator.maxTouchPoints>1);function o(e){e.touches.length>1||e.preventDefault()}const l=e=>!!e&&e.scrollHeight-e.scrollTop<=e.clientHeight;function c(){a=document.body.getBoundingClientRect().top,document.body.style.overflow="hidden scroll",document.body.style.top=a+"px",document.body.style.position="fixed",document.body.style.width="100%"}function u(e){e&&(e.ontouchstart=null,e.ontouchmove=null),document.removeEventListener("touchmove",o)}function d(e,t){const n=e.targetTouches[0].clientY-r;return 0===t.scrollTop&&n>0||l(t)&&n<0?o(e):(e.stopPropagation(),!0)}function p(e){document.addEventListener("touchmove",o,{passive:!1}),e&&(e.ontouchstart=e=>{1===e.targetTouches.length&&(r=e.targetTouches[0].clientY)},e.ontouchmove=t=>{1===t.targetTouches.length&&d(t,e)})}t["a"]={lockScroll(e){i||(s()?p(e):c(),i=!0)},unlockScroll(e){i&&(s()?u(e):(document.body.style.removeProperty("overflow"),document.body.style.removeProperty("top"),document.body.style.removeProperty("position"),document.body.style.removeProperty("width"),window.scrollTo(0,Math.abs(a))),i=!1)}}},f785:function(e,t,n){"use strict";n("690a")},f9e6:function(e,t,n){"use strict";n("661b")},fb8e:function(e,t,n){"use strict";n("6058")},fda2:function(e,t,n){},fdd9:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.shouldUseAsset?n("ImageAsset",e._b({},"ImageAsset",{variants:e.variants,loading:null,shouldCalculateOptimalWidth:e.shouldCalculateOptimalWidth},!1)):n("SVGIcon",{attrs:{"icon-url":e.iconUrl,themeId:e.themeId}})},r=[],a=n("8bd9"),s=n("be08"),o={name:"OverridableAsset",components:{SVGIcon:s["a"],ImageAsset:a["a"]},props:{imageOverride:{type:Object,default:null},shouldCalculateOptimalWidth:{type:Boolean,default:!0}},computed:{variants:({imageOverride:e})=>e?e.variants:[],firstVariant:({variants:e})=>e[0],iconUrl:({firstVariant:e})=>e&&e.url,themeId:({firstVariant:e})=>e&&e.svgID,isSameOrigin:({iconUrl:e,sameOrigin:t})=>t(e),shouldUseAsset:({isSameOrigin:e,themeId:t})=>!e||!t},methods:{sameOrigin(e){if(!e)return!1;const t=new URL(e,window.location),n=new URL(window.location);return t.origin===n.origin}}},l=o,c=n("2877"),u=Object(c["a"])(l,i,r,!1,null,null,null);t["a"]=u.exports},fe08:function(e,t,n){"use strict";n("a7d8")}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-bash.1b52852f.js b/XCoordinator.doccarchive/js/highlight-js-bash.1b52852f.js new file mode 100644 index 00000000..6db17786 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-bash.1b52852f.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-bash"],{f0f8:function(e,s){function t(e){const s=e.regex,t={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={className:"",begin:/\\"/},r={className:"string",begin:/'/,end:/'/},l={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},p=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],d=e.SHEBANG({binary:`(${p.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],u=["true","false"],b={match:/(\/[a-z._-]+)+/},g=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],f=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias"],w=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],k=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:m,literal:u,built_in:[...g,...f,"set","shopt",...w,...k]},contains:[d,e.SHEBANG(),h,l,e.HASH_COMMENT_MODE,i,b,c,o,r,t]}}e.exports=t}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-c.d1db3f17.js b/XCoordinator.doccarchive/js/highlight-js-c.d1db3f17.js new file mode 100644 index 00000000..3bc41acb --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-c.d1db3f17.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-c"],{"1fe5":function(e,n){function s(e){const n=e.regex,s=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),t="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",i="<[^<>]+>",r="("+t+"|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional(i)+")",l={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},s,e.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0},p=n.optional(a)+e.IDENT_RE+"\\s*\\(",m=["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],_=["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],f={keyword:m,type:_,literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},b=[u,l,s,e.C_BLOCK_COMMENT_MODE,d,c],w={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:f,contains:b.concat([{begin:/\(/,end:/\)/,keywords:f,contains:b.concat(["self"]),relevance:0}]),relevance:0},h={begin:"("+r+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:f,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:t,keywords:f,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(g,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[s,e.C_BLOCK_COMMENT_MODE,c,d,l,{begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:["self",s,e.C_BLOCK_COMMENT_MODE,c,d,l]}]},l,s,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C",aliases:["h"],keywords:f,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:u,strings:c,keywords:f}}}e.exports=s}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-cpp.eaddddbe.js b/XCoordinator.doccarchive/js/highlight-js-cpp.eaddddbe.js new file mode 100644 index 00000000..db9fd820 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-cpp.eaddddbe.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-cpp"],{"0209":function(e,t){function n(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="<[^<>]+>",s="(?!struct)("+a+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional(r)+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},p={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},_=t.optional(i)+e.IDENT_RE+"\\s*\\(",m=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],g=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],f=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],b=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],h=["NULL","false","nullopt","nullptr","true"],w=["_Pragma"],y={type:g,keyword:m,literal:h,built_in:w,_type_hints:f},v={className:"function.dispatch",relevance:0,keywords:{_hint:b},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},k=[v,u,c,n,e.C_BLOCK_COMMENT_MODE,d,l],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:y,contains:k.concat([{begin:/\(/,end:/\)/,keywords:y,contains:k.concat(["self"]),relevance:0}]),relevance:0},E={className:"function",begin:"("+s+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:y,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:y,relevance:0},{begin:_,returnBegin:!0,contains:[p],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:y,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,l,d,c,{begin:/\(/,end:/\)/,keywords:y,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,l,d,c]}]},c,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:y,illegal:"",keywords:y,contains:["self",c]},{begin:e.IDENT_RE+"::",keywords:y},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}e.exports=n}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-css.75eab1fe.js b/XCoordinator.doccarchive/js/highlight-js-css.75eab1fe.js new file mode 100644 index 00000000..3d507d0b --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-css.75eab1fe.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-css"],{ee8c:function(e,t){const o=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),i=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],a=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],n=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],l=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-height","max-width","min-height","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function s(e){const t=e.regex,s=o(e),d={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},c="and or not only",g=/@-?\w[\w]*(-\w+)*/,m="[a-zA-Z-][a-zA-Z0-9_-]*",p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[s.BLOCK_COMMENT,d,s.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+m,relevance:0},s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+a.join("|")+")"},{begin:":(:)?("+n.join("|")+")"}]},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+l.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[s.BLOCK_COMMENT,s.HEXCOLOR,s.IMPORTANT,s.CSS_NUMBER_MODE,...p,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},s.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:g},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:c,attribute:r.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...p,s.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+i.join("|")+")\\b"}]}}e.exports=s}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-custom-markdown.7cffc4b3.js b/XCoordinator.doccarchive/js/highlight-js-custom-markdown.7cffc4b3.js new file mode 100644 index 00000000..5271416e --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-custom-markdown.7cffc4b3.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-custom-markdown","highlight-js-markdown"],{"04b0":function(n,e){function a(n){const e=n.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},t={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},c={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},g={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},o={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};g.contains.push(o),o.contains.push(g);let r=[a,l];g.contains=g.contains.concat(r),o.contains=o.contains.concat(r),r=r.concat(g,o);const b={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:r},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:r}]}]},u={className:"quote",begin:"^>\\s+",contains:r,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[b,a,t,g,o,u,s,i,l,c]}}n.exports=a},"84cb":function(n,e,a){"use strict";a.r(e);var i=a("04b0"),s=a.n(i);const t={begin:"",returnBegin:!0,contains:[{className:"link",begin:"doc:",end:">",excludeEnd:!0}]},c={className:"link",begin:/`{2}(?!`)/,end:/`{2}(?!`)/,excludeBegin:!0,excludeEnd:!0},d={begin:"^>\\s+[Note:|Tip:|Important:|Experiment:|Warning:]",end:"$",returnBegin:!0,contains:[{className:"quote",begin:"^>",end:"\\s+"},{className:"type",begin:"Note|Tip|Important|Experiment|Warning",end:":"},{className:"quote",begin:".*",end:"$",endsParent:!0}]},l={begin:"@",end:"[{\\)\\s]",returnBegin:!0,contains:[{className:"title",begin:"@",end:"[\\s+(]",excludeEnd:!0},{begin:":",end:"[,\\)\n\t]",excludeBegin:!0,keywords:{literal:"true false null undefined"},contains:[{className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",endsWithParent:!0,excludeEnd:!0},{className:"string",variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}],endsParent:!0},{className:"link",begin:"http|https",endsWithParent:!0,excludeEnd:!0}]}]};e["default"]=function(n){const e=s()(n),a=e.contains.find(({className:n})=>"code"===n);a.variants=a.variants.filter(({begin:n})=>!n.includes("( {4}|\\t)"));const i=[...e.contains.filter(({className:n})=>"code"!==n),a];return{...e,contains:[c,t,d,l,...i]}}}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-custom-swift.5cda5c20.js b/XCoordinator.doccarchive/js/highlight-js-custom-swift.5cda5c20.js new file mode 100644 index 00000000..d19f9880 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-custom-swift.5cda5c20.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-custom-swift","highlight-js-swift"],{"2a39":function(e,n){function t(e){return e?"string"===typeof e?e:e.source:null}function a(e){return i("(?=",e,")")}function i(...e){const n=e.map(e=>t(e)).join("");return n}function s(e){const n=e[e.length-1];return"object"===typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function c(...e){const n=s(e),a="("+(n.capture?"":"?:")+e.map(e=>t(e)).join("|")+")";return a}const u=e=>i(/\b/,e,/\w$/.test(e)?/\b/:/\B/),o=["Protocol","Type"].map(u),r=["init","self"].map(u),l=["Any","Self"],m=["actor","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],d=["false","nil","true"],p=["assignment","associativity","higherThan","left","lowerThan","none","right"],F=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],b=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],f=c(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),h=c(f,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),w=i(f,h,"*"),y=c(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),g=c(y,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),E=i(y,g,"*"),v=i(/[A-Z]/,g,"*"),A=["autoclosure",i(/convention\(/,c("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",i(/objc\(/,E,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],N=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function k(e){const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),s=[e.C_LINE_COMMENT_MODE,t],f={match:[/\./,c(...o,...r)],className:{2:"keyword"}},y={match:i(/\./,c(...m)),relevance:0},k=m.filter(e=>"string"===typeof e).concat(["_|0"]),C=m.filter(e=>"string"!==typeof e).concat(l).map(u),D={variants:[{className:"keyword",match:c(...C,...r)}]},B={$pattern:c(/\b\w+/,/#\w+/),keyword:k.concat(F),literal:d},_=[f,y,D],S={match:i(/\./,c(...b)),relevance:0},x={className:"built_in",match:i(/\b/,c(...b),/(?=\()/)},M=[S,x],I={match:/->/,relevance:0},$={className:"operator",relevance:0,variants:[{match:w},{match:`\\.(\\.|${h})+`}]},O=[I,$],L="([0-9]_*)+",T="([0-9a-fA-F]_*)+",j={className:"number",relevance:0,variants:[{match:`\\b(${L})(\\.(${L}))?([eE][+-]?(${L}))?\\b`},{match:`\\b0x(${T})(\\.(${T}))?([pP][+-]?(${L}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},K=(e="")=>({className:"subst",variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),P=(e="")=>({className:"subst",match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),z=(e="")=>({className:"subst",label:"interpol",begin:i(/\\/,e,/\(/),end:/\)/}),q=(e="")=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[K(e),P(e),z(e)]}),U=(e="")=>({begin:i(e,/"/),end:i(/"/,e),contains:[K(e),z(e)]}),Z={className:"string",variants:[q(),q("#"),q("##"),q("###"),U(),U("#"),U("##"),U("###")]},V={match:i(/`/,E,/`/)},W={className:"variable",match:/\$\d+/},G={className:"variable",match:`\\$${g}+`},J=[V,W,G],R={match:/(@|#)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:N,contains:[...O,j,Z]}]}},X={className:"keyword",match:i(/@/,c(...A))},H={className:"meta",match:i(/@/,E)},Q=[R,X,H],Y={match:a(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:i(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,g,"+")},{className:"type",match:v,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:i(/\s+&\s+/,a(v)),relevance:0}]},ee={begin://,keywords:B,contains:[...s,..._,...Q,I,Y]};Y.contains.push(ee);const ne={match:i(E,/\s*:/),keywords:"_|0",relevance:0},te={begin:/\(/,end:/\)/,relevance:0,keywords:B,contains:["self",ne,...s,..._,...M,...O,j,Z,...J,...Q,Y]},ae={begin://,contains:[...s,Y]},ie={begin:c(a(i(E,/\s*:/)),a(i(E,/\s+/,E,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:E}]},se={begin:/\(/,end:/\)/,keywords:B,contains:[ie,...s,..._,...O,j,Z,...Q,Y,te],endsParent:!0,illegal:/["']/},ce={match:[/func/,/\s+/,c(V.match,E,w)],className:{1:"keyword",3:"title.function"},contains:[ae,se,n],illegal:[/\[/,/%/]},ue={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[ae,se,n],illegal:/\[|%/},oe={match:[/operator/,/\s+/,w],className:{1:"keyword",3:"title"}},re={begin:[/precedencegroup/,/\s+/,v],className:{1:"keyword",3:"title"},contains:[Y],keywords:[...p,...d],end:/}/};for(const a of Z.variants){const e=a.contains.find(e=>"interpol"===e.label);e.keywords=B;const n=[..._,...M,...O,j,Z,...J];e.contains=[...n,{begin:/\(/,end:/\)/,contains:["self",...n]}]}return{name:"Swift",keywords:B,contains:[...s,ce,ue,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:B,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),..._]},oe,re,{beginKeywords:"import",end:/$/,contains:[...s],relevance:0},..._,...M,...O,j,Z,...J,...Q,Y,te]}}e.exports=k},"81c8":function(e,n,t){"use strict";t.r(n);var a=t("2a39"),i=t.n(a);n["default"]=function(e){const n=i()(e);n.keywords.keyword=[...n.keywords.keyword,"distributed"];const t=({beginKeywords:e=""})=>e.split(" ").includes("class"),a=n.contains.findIndex(t);if(a>=0){const{beginKeywords:e,...t}=n.contains[a];n.contains[a]={...t,begin:/\b(struct|protocol|extension|enum|actor|class\b(?!.*\bfunc))\b/}}return n}}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-diff.62d66733.js b/XCoordinator.doccarchive/js/highlight-js-diff.62d66733.js new file mode 100644 index 00000000..64337fa8 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-diff.62d66733.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-diff"],{"48b8":function(e,n){function a(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}e.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-http.163e45b6.js b/XCoordinator.doccarchive/js/highlight-js-http.163e45b6.js new file mode 100644 index 00000000..14f39a9f --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-http.163e45b6.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-http"],{c01d:function(e,n){function a(e){const n=e.regex,a="HTTP/(2|1\\.[01])",s=/[A-Za-z][A-Za-z0-9-]*/,t={className:"attribute",begin:n.concat("^",s,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},i=[t,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",end:/$/,contains:[{className:"meta",begin:a},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},{begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},e.inherit(t,{relevance:0})]}}e.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-java.8326d9d8.js b/XCoordinator.doccarchive/js/highlight-js-java.8326d9d8.js new file mode 100644 index 00000000..f11ca2a2 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-java.8326d9d8.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-java"],{"332f":function(e,a){var n="[0-9](_*[0-9])*",s=`\\.(${n})`,i="[0-9a-fA-F](_*[0-9a-fA-F])*",t={className:"number",variants:[{begin:`(\\b(${n})((${s})|\\.)?|(${s}))[eE][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(${n})((${s})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${s})[fFdD]?\\b`},{begin:`\\b(${n})[fFdD]\\b`},{begin:`\\b0[xX]((${i})\\.?|(${i})?\\.(${i}))[pP][+-]?(${n})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${i})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function r(e,a,n){return-1===n?"":e.replace(a,s=>r(e,a,n-1))}function c(e){e.regex;const a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=a+r("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),s=["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do"],i=["super","this"],c=["false","true","null"],l=["char","boolean","long","float","int","byte","short","double"],o={keyword:s,literal:c,type:l,built_in:i},b={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},_={className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:[a,/\s+/,a,/\s+/,/=/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword",3:"title.class"},contains:[_,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+n+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,t,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},t,b]}}e.exports=c}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-javascript.acb8a8eb.js b/XCoordinator.doccarchive/js/highlight-js-javascript.acb8a8eb.js new file mode 100644 index 00000000..ac843fc0 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-javascript.acb8a8eb.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-javascript"],{"4dd1":function(e,n){const a="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],s=["true","false","null","undefined","NaN","Infinity"],c=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],r=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],i=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],o=["arguments","this","super","console","window","document","localStorage","module","global"],l=[].concat(i,c,r);function b(e){const n=e.regex,b=(e,{after:n})=>{const a="",end:""},u=/<[A-Za-z0-9\\._:-]+\s*\/>/,m={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,t=e.input[a];if("<"===t||","===t)return void n.ignoreMatch();let s;">"===t&&(b(e,{after:a})||n.ignoreMatch());const c=e.input.substr(a);(s=c.match(/^\s+extends\s+/))&&0===s.index&&n.ignoreMatch()}},E={$pattern:a,keyword:t,literal:s,built_in:l,"variable.language":o},A="[0-9](_?[0-9])*",y=`\\.(${A})`,N="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",f={className:"number",variants:[{begin:`(\\b(${N})((${y})|\\.)?|(${y}))[eE][+-]?(${A})\\b`},{begin:`\\b(${N})\\b((${y})\\b|\\.)?|(${y})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:E,contains:[]},_={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},p={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},v={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},w=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:d+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),S={className:"comment",variants:[w,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},R=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,_,p,v,f];h.contains=R.concat({begin:/\{/,end:/\}/,keywords:E,contains:["self"].concat(R)});const k=[].concat(S,h.contains),O=k.concat([{begin:/\(/,end:/\)/,keywords:E,contains:["self"].concat(k)}]),I={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:O},x={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,n.concat(d,"(",n.concat(/\./,d),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,d],scope:{1:"keyword",3:"title.class"}}]},T={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]+|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+/),className:"title.class",keywords:{_:[...c,...r]}},C={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},M={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[I],illegal:/%/},B={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function $(e){return n.concat("(?!",e.join("|"),")")}const D={match:n.concat(/\b/,$([...i,"super"]),d,n.lookahead(/\(/)),className:"title.function",relevance:0},U={begin:n.concat(/\./,n.lookahead(n.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Z={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},I]},z="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",F={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,n.lookahead(z)],className:{1:"keyword",3:"title.function"},contains:[I]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:E,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:T},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,_,p,v,S,f,T,{className:"attr",begin:d+n.lookahead(":"),relevance:0},F,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:z,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:O}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:g.begin,end:g.end},{match:u},{begin:m.begin,"on:begin":m.isTrulyOpeningTag,end:m.end}],subLanguage:"xml",contains:[{begin:m.begin,end:m.end,skip:!0,contains:["self"]}]}]},M,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[I,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},U,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[I]},D,B,x,Z,{match:/\$[(.]/}]}}e.exports=b}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-json.471128d2.js b/XCoordinator.doccarchive/js/highlight-js-json.471128d2.js new file mode 100644 index 00000000..c87d3c3b --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-json.471128d2.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-json"],{"5ad2":function(n,e){function a(n){const e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},a={match:/[{}[\],:]/,className:"punctuation",relevance:0},s={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[e,a,n.QUOTE_STRING_MODE,s,n.C_NUMBER_MODE,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}n.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-llvm.6100b125.js b/XCoordinator.doccarchive/js/highlight-js-llvm.6100b125.js new file mode 100644 index 00000000..0beb806e --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-llvm.6100b125.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-llvm"],{"7c30":function(e,n){function a(e){const n=e.regex,a=/([-a-zA-Z$._][\w$.-]*)/,t={className:"type",begin:/\bi\d+(?=\s|\b)/},i={className:"operator",relevance:0,begin:/=/},c={className:"punctuation",relevance:0,begin:/,/},l={className:"number",variants:[{begin:/0[xX][a-fA-F0-9]+/},{begin:/-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0},r={className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},s={className:"variable",variants:[{begin:n.concat(/%/,a)},{begin:/%\d+/},{begin:/#\d+/}]},o={className:"title",variants:[{begin:n.concat(/@/,a)},{begin:/@\d+/},{begin:n.concat(/!/,a)},{begin:n.concat(/!\d+/,a)},{begin:/!\d+/}]};return{name:"LLVM IR",keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double",contains:[t,e.COMMENT(/;\s*$/,null,{relevance:0}),e.COMMENT(/;/,/$/),e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:/"/,end:/[^\\]"/}]},o,c,i,s,r,l]}}e.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-markdown.90077643.js b/XCoordinator.doccarchive/js/highlight-js-markdown.90077643.js new file mode 100644 index 00000000..dc8d097c --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-markdown.90077643.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-markdown"],{"04b0":function(n,e){function a(n){const e=n.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},t={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},g=/[A-Za-z][A-Za-z0-9+.-]*/,d={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,g,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},l={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},o={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};l.contains.push(o),o.contains.push(l);let b=[a,d];l.contains=l.contains.concat(b),o.contains=o.contains.concat(b),b=b.concat(l,o);const r={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:b},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:b}]}]},m={className:"quote",begin:"^>\\s+",contains:b,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[r,a,c,l,o,m,s,i,d,t]}}n.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-objectivec.bcdf5156.js b/XCoordinator.doccarchive/js/highlight-js-objectivec.bcdf5156.js new file mode 100644 index 00000000..2456ffc8 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-objectivec.bcdf5156.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-objectivec"],{"9bf2":function(e,n){function _(e){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},_=/[a-zA-Z@][a-zA-Z0-9_]*/,i=["int","float","while","char","export","sizeof","typedef","const","struct","for","union","unsigned","long","volatile","static","bool","mutable","if","do","return","goto","void","enum","else","break","extern","asm","case","short","default","double","register","explicit","signed","typename","this","switch","continue","wchar_t","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","super","unichar","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],t=["false","true","FALSE","TRUE","nil","YES","NO","NULL"],a=["BOOL","dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],o={$pattern:_,keyword:i,literal:t,built_in:a},s={$pattern:_,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:o,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+s.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:s,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}e.exports=_}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-perl.757d7b6f.js b/XCoordinator.doccarchive/js/highlight-js-perl.757d7b6f.js new file mode 100644 index 00000000..a4c74d11 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-perl.757d7b6f.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-perl"],{"6a51":function(e,n){function t(e){const n=e.regex,t=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],s=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/,keyword:t.join(" ")},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},a={begin:/->\{/,end:/\}/},o={variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,r="\\1")=>{const i="\\1"===r?r:n.concat(r,t);return n.concat(n.concat("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,r,s)},d=(e,t,r)=>n.concat(n.concat("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,r,s),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),a,{className:"string",contains:c,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:l("s|tr|y",n.either(...g,{capture:!0}))},{begin:l("s|tr|y","\\(","\\)")},{begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...g,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:r,contains:p}}e.exports=t}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-php.cc8d6c27.js b/XCoordinator.doccarchive/js/highlight-js-php.cc8d6c27.js new file mode 100644 index 00000000..3d12a9c9 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-php.cc8d6c27.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-php"],{2907:function(e,r){function t(e){const r={className:"variable",begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*(?![A-Za-z0-9])(?![$])"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},c={className:"number",variants:[{begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"}],relevance:0},s={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{case_insensitive:!0,keywords:s,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:s,contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,c]}]},{className:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",contains:[e.UNDERSCORE_TITLE_MODE]},l,c]}}e.exports=t}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-python.c214ed92.js b/XCoordinator.doccarchive/js/highlight-js-python.c214ed92.js new file mode 100644 index 00000000..c8d2ed8d --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-python.c214ed92.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-python"],{9510:function(e,n){function a(e){const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s=["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],t=["__debug__","Ellipsis","False","None","NotImplemented","True"],r=["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"],l={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:s,literal:t,type:r},o={className:"meta",begin:/^(>>>|\.\.\.) /},b={className:"subst",begin:/\{/,end:/\}/,keywords:l,illegal:/#/},c={begin:/\{\{/,relevance:0},d={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,o],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,o],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,o,c,b]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,o,c,b]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,c,b]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,b]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},p="[0-9](_?[0-9])*",g=`(\\b(${p}))?\\.(${p})|\\b(${p})\\.`,m={className:"number",relevance:0,variants:[{begin:`(\\b(${p})|(${g}))[eE][+-]?(${p})[jJ]?\\b`},{begin:`(${g})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${p})[jJ]\\b`}]},_={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:l,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},u={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:["self",o,m,d,e.HASH_COMMENT_MODE]}]};return b.contains=[d,m,o],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:l,illegal:/(<\/|->|\?)|=>/,contains:[o,m,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},d,_,e.HASH_COMMENT_MODE,{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[u]},{variants:[{match:[/class/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/class/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[m,u,d]}]}}e.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-ruby.f889d392.js b/XCoordinator.doccarchive/js/highlight-js-ruby.f889d392.js new file mode 100644 index 00000000..a8355da1 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-ruby.f889d392.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-ruby"],{"82cb":function(e,n){function a(e){const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},b={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],r={className:"subst",begin:/#\{/,end:/\}/,keywords:i},d={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,r]})]}]},t="[1-9](_?[0-9])*|0",o="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${t})(\\.(${o}))?([eE][+-]?(${o})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:i},_=[d,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE,relevance:0}]}].concat(c)},{className:"function",begin:n.concat(/def\s+/,n.lookahead(a+"\\s*(\\(|;|$)")),relevance:0,keywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:a}),l].concat(c)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:a}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(b,c),relevance:0}].concat(b,c);r.contains=_,l.contains=_;const w="[>?]>",E="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",N=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta",begin:"^("+w+"|"+E+"|"+u+")(?=[ ])",starts:{end:"$",contains:_}}];return c.unshift(b),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(N).concat(c).concat(_)}}e.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-scss.62ee18da.js b/XCoordinator.doccarchive/js/highlight-js-scss.62ee18da.js new file mode 100644 index 00000000..8f46244f --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-scss.62ee18da.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-scss"],{6113:function(e,t){const i=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),o=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],a=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],n=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],l=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-height","max-width","min-height","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function s(e){const t=i(e),s=n,d=a,c="@[a-z-]+",p="and or not only",g="[a-zA-Z-][a-zA-Z0-9_-]*",m={className:"variable",begin:"(\\$"+g+")\\b"};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+o.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+d.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+s.join("|")+")"},m,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+l.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,m,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT]},{begin:"@(page|font-face)",keywords:{$pattern:c,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:p,attribute:r.join(" ")},contains:[{begin:c,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},m,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}e.exports=s}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-shell.dd7f411f.js b/XCoordinator.doccarchive/js/highlight-js-shell.dd7f411f.js new file mode 100644 index 00000000..999f4527 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-shell.dd7f411f.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-shell"],{b65b:function(s,n){function e(s){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}s.exports=e}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-swift.84f3e88c.js b/XCoordinator.doccarchive/js/highlight-js-swift.84f3e88c.js new file mode 100644 index 00000000..89d1daf1 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-swift.84f3e88c.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-swift"],{"2a39":function(e,n){function a(e){return e?"string"===typeof e?e:e.source:null}function t(e){return i("(?=",e,")")}function i(...e){const n=e.map(e=>a(e)).join("");return n}function s(e){const n=e[e.length-1];return"object"===typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function u(...e){const n=s(e),t="("+(n.capture?"":"?:")+e.map(e=>a(e)).join("|")+")";return t}const c=e=>i(/\b/,e,/\w$/.test(e)?/\b/:/\B/),o=["Protocol","Type"].map(c),r=["init","self"].map(c),l=["Any","Self"],m=["actor","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],p=["false","nil","true"],d=["assignment","associativity","higherThan","left","lowerThan","none","right"],F=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],b=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],h=u(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),f=u(h,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),w=i(h,f,"*"),y=u(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),g=u(y,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),E=i(y,g,"*"),v=i(/[A-Z]/,g,"*"),A=["autoclosure",i(/convention\(/,u("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",i(/objc\(/,E,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],N=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function C(e){const n={match:/\s+/,relevance:0},a=e.COMMENT("/\\*","\\*/",{contains:["self"]}),s=[e.C_LINE_COMMENT_MODE,a],h={match:[/\./,u(...o,...r)],className:{2:"keyword"}},y={match:i(/\./,u(...m)),relevance:0},C=m.filter(e=>"string"===typeof e).concat(["_|0"]),k=m.filter(e=>"string"!==typeof e).concat(l).map(c),D={variants:[{className:"keyword",match:u(...k,...r)}]},B={$pattern:u(/\b\w+/,/#\w+/),keyword:C.concat(F),literal:p},_=[h,y,D],S={match:i(/\./,u(...b)),relevance:0},M={className:"built_in",match:i(/\b/,u(...b),/(?=\()/)},x=[S,M],$={match:/->/,relevance:0},I={className:"operator",relevance:0,variants:[{match:w},{match:`\\.(\\.|${f})+`}]},O=[$,I],L="([0-9]_*)+",T="([0-9a-fA-F]_*)+",j={className:"number",relevance:0,variants:[{match:`\\b(${L})(\\.(${L}))?([eE][+-]?(${L}))?\\b`},{match:`\\b0x(${T})(\\.(${T}))?([pP][+-]?(${L}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},P=(e="")=>({className:"subst",variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),K=(e="")=>({className:"subst",match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),z=(e="")=>({className:"subst",label:"interpol",begin:i(/\\/,e,/\(/),end:/\)/}),q=(e="")=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[P(e),K(e),z(e)]}),U=(e="")=>({begin:i(e,/"/),end:i(/"/,e),contains:[P(e),z(e)]}),Z={className:"string",variants:[q(),q("#"),q("##"),q("###"),U(),U("#"),U("##"),U("###")]},V={match:i(/`/,E,/`/)},W={className:"variable",match:/\$\d+/},G={className:"variable",match:`\\$${g}+`},J=[V,W,G],R={match:/(@|#)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:N,contains:[...O,j,Z]}]}},X={className:"keyword",match:i(/@/,u(...A))},H={className:"meta",match:i(/@/,E)},Q=[R,X,H],Y={match:t(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:i(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,g,"+")},{className:"type",match:v,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:i(/\s+&\s+/,t(v)),relevance:0}]},ee={begin://,keywords:B,contains:[...s,..._,...Q,$,Y]};Y.contains.push(ee);const ne={match:i(E,/\s*:/),keywords:"_|0",relevance:0},ae={begin:/\(/,end:/\)/,relevance:0,keywords:B,contains:["self",ne,...s,..._,...x,...O,j,Z,...J,...Q,Y]},te={begin://,contains:[...s,Y]},ie={begin:u(t(i(E,/\s*:/)),t(i(E,/\s+/,E,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:E}]},se={begin:/\(/,end:/\)/,keywords:B,contains:[ie,...s,..._,...O,j,Z,...Q,Y,ae],endsParent:!0,illegal:/["']/},ue={match:[/func/,/\s+/,u(V.match,E,w)],className:{1:"keyword",3:"title.function"},contains:[te,se,n],illegal:[/\[/,/%/]},ce={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[te,se,n],illegal:/\[|%/},oe={match:[/operator/,/\s+/,w],className:{1:"keyword",3:"title"}},re={begin:[/precedencegroup/,/\s+/,v],className:{1:"keyword",3:"title"},contains:[Y],keywords:[...d,...p],end:/}/};for(const t of Z.variants){const e=t.contains.find(e=>"interpol"===e.label);e.keywords=B;const n=[..._,...x,...O,j,Z,...J];e.contains=[...n,{begin:/\(/,end:/\)/,contains:["self",...n]}]}return{name:"Swift",keywords:B,contains:[...s,ue,ce,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:B,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),..._]},oe,re,{beginKeywords:"import",end:/$/,contains:[...s],relevance:0},..._,...x,...O,j,Z,...J,...Q,Y,ae]}}e.exports=C}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/highlight-js-xml.9c3688c7.js b/XCoordinator.doccarchive/js/highlight-js-xml.9c3688c7.js new file mode 100644 index 00000000..55cc1e27 --- /dev/null +++ b/XCoordinator.doccarchive/js/highlight-js-xml.9c3688c7.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-xml"],{"8dcb":function(e,n){function a(e){const n=e.regex,a=n.concat(/[A-Z_]/,n.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),s=/[A-Za-z0-9._:-]+/,t={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},c=e.inherit(i,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),r=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),g={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,r,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,c,r,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},t,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[g],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[g],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:g}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}e.exports=a}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/index.aa320932.js b/XCoordinator.doccarchive/js/index.aa320932.js new file mode 100644 index 00000000..ae697ace --- /dev/null +++ b/XCoordinator.doccarchive/js/index.aa320932.js @@ -0,0 +1,9 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */(function(e){function t(t){for(var n,i,c=t[0],a=t[1],h=t[2],l=0,u=[];l])/g,i=/^-+/,r=/["'&<>]/g;function s(e){return e.trim().replace(n,"-").replace(i,"").toLowerCase()}function c(e){const t=e=>({'"':""","'":"'","&":"&","<":"<",">":">"}[e]||e);return e.replace(r,t)}const a={zero:"zero",one:"one",two:"two",few:"few",many:"many",other:"other"},h={cardinal:"cardinal",ordinal:"ordinal"};function l(e,t){const{cardinal:o}=h,{one:n,other:i}=a,r="en",s=1===t?n:i;if(!e[r]||!e[r][s])throw new Error("No default choices provided to pluralize using default locale "+r);let c=r,l=s;if("Intl"in window&&"PluralRules"in window.Intl){const n=navigator.languages?navigator.languages:[navigator.language],i=new Intl.PluralRules(n,{type:o}),r=i.select(t),s=i.resolvedOptions().locale;e[s]&&e[s][r]&&(c=s,l=r)}return e[c][l]}function u(e){return e.replace(/#(.*)/,(e,t)=>"#"+CSS.escape(t))}function d(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function g(e){let t,o;const n="\\s*",i=" ",r=e.trim(),s=r.length;if(!s)return i;const c=[];for(t=0;t{t=e});return requestAnimationFrame((function e(){o-=1,o<=0?t():requestAnimationFrame(e)})),n}function i(e){return new Promise(t=>{setTimeout(t,e)})}o.d(t,"b",(function(){return n})),o.d(t,"a",(function(){return i}))},4009:function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));const n="app-top"},"48b1":function(e,t,o){"use strict";o("e487")},"5c0b":function(e,t,o){"use strict";o("9c0c")},"5d2d":function(e,t,o){"use strict";o.d(t,"a",(function(){return s})),o.d(t,"c",(function(){return a})),o.d(t,"b",(function(){return h}));const n="developer.setting.";function i(e=localStorage){return{getItem:t=>{try{return e.getItem(t)}catch(o){return null}},setItem:(t,o)=>{try{e.setItem(t,o)}catch(n){}},removeItem:t=>{try{e.removeItem(t)}catch(o){}}}}function r(e){return{get:(t,o)=>{const i=JSON.parse(e.getItem(n+t));return null!==i?i:o},set:(t,o)=>e.setItem(n+t,JSON.stringify(o)),remove:t=>e.removeItem(n+t)}}const s=i(window.localStorage),c=i(window.sessionStorage),a=r(s),h=r(c)},6131:function(e,t,o){"use strict";o("f8ba")},"613f":function(e,t,o){},"63b8":function(e,t,o){"use strict";o.d(t,"b",(function(){return n})),o.d(t,"c",(function(){return i})),o.d(t,"a",(function(){return r})),o.d(t,"d",(function(){return c}));const n={large:"large",medium:"medium",small:"small"},i={default:"default",nav:"nav"},r={[i.default]:{[n.large]:{minWidth:1069,contentWidth:980},[n.medium]:{minWidth:736,maxWidth:1068,contentWidth:692},[n.small]:{minWidth:320,maxWidth:735,contentWidth:280}},[i.nav]:{[n.large]:{minWidth:1024},[n.medium]:{minWidth:768,maxWidth:1023},[n.small]:{minWidth:320,maxWidth:767}}},s={[n.small]:0,[n.medium]:1,[n.large]:2};function c(e,t){return s[e]>s[t]}},6842:function(e,t,o){"use strict";function n(e,t,o){let n,i=e,r=t;for("string"===typeof r&&(r=[r]),n=0;ne.json()).catch(()=>({}))}const c=(e,t)=>n(i,e,t)},7138:function(e,t,o){"use strict";o("813c")},"748c":function(e,t,o){"use strict";o.d(t,"e",(function(){return i})),o.d(t,"a",(function(){return r})),o.d(t,"d",(function(){return s})),o.d(t,"c",(function(){return c})),o.d(t,"f",(function(){return a})),o.d(t,"b",(function(){return h}));var n=o("6842");function i(e){return e.reduce((e,t)=>(t.traits.includes("dark")?e.dark.push(t):e.light.push(t),e),{light:[],dark:[]})}function r(e){const t=["1x","2x","3x"];return t.reduce((t,o)=>{const n=e.find(e=>e.traits.includes(o));return n?t.concat({density:o,src:n.url,size:n.size}):t},[])}function s(e){const t="/",o=new RegExp(t+"+","g");return e.join(t).replace(o,t)}function c(e){return e&&"string"===typeof e&&!e.startsWith(n["a"])&&e.startsWith("/")?s([n["a"],e]):e}function a(e){return e?`url('${c(e)}')`:void 0}function h(e){return new Promise((t,o)=>{const n=new Image;n.src=e,n.onerror=o,n.onload=()=>t({width:n.width,height:n.height})})}},"813c":function(e,t,o){},"821b":function(e,t,o){"use strict";t["a"]={auto:{label:"Auto",value:"auto"},dark:{label:"Dark",value:"dark"},light:{label:"Light",value:"light"}}},"942d":function(e,t,o){"use strict";o.d(t,"b",(function(){return n})),o.d(t,"c",(function(){return i})),o.d(t,"e",(function(){return r})),o.d(t,"d",(function(){return s})),o.d(t,"a",(function(){return c}));const n=52,i=48,r="nav-sticky-anchor",s="nav-open-navigator",c={noClose:"noclose"}},9895:function(e,t,o){"use strict";o.d(t,"b",(function(){return n})),o.d(t,"a",(function(){return i}));const n="not-found",i="documentation-topic"},"9c0c":function(e,t,o){},a5c6:function(e,t,o){"use strict";o("613f")},d26a:function(e,t,o){"use strict";o.d(t,"c",(function(){return r})),o.d(t,"b",(function(){return s})),o.d(t,"a",(function(){return c})),o.d(t,"d",(function(){return a}));var n=o("748c"),i={input:"input",tags:"tags"};function r(e={}){return Object.entries(e).reduce((e,[t,o])=>o?e.concat(`${encodeURIComponent(t)}=${encodeURIComponent(o)}`):e,[]).join("&")}function s(e,{changes:t,language:o,context:n}={}){const[i,s]=e.split("#"),c=i.match(/\?.*/),a=r({changes:t,language:o,context:n}),h=c?"&":"?",l=s?i:e,u=a?`${h}${a}`:"",d=s?"#"+s:"";return`${l}${u}${d}`}function c(e,t){const{query:{changes:o,[i.input]:n,[i.tags]:r,...s}={}}=e,{query:{changes:c,[i.input]:a,[i.tags]:h,...l}={}}=t;return e.name===t.name&&JSON.stringify({path:e.path,query:s})===JSON.stringify({path:t.path,query:l})}function a(e,t=window.location.origin){return new URL(Object(n["c"])(e),t).href}},d369:function(e,t,o){"use strict";var n=o("5d2d");const i={preferredColorScheme:"developer.setting.preferredColorScheme",preferredLanguage:"docs.setting.preferredLanguage"},r={preferredColorScheme:"docs.setting.preferredColorScheme"};t["a"]=Object.defineProperties({},Object.keys(i).reduce((e,t)=>({...e,[t]:{get:()=>{const e=r[t],o=n["a"].getItem(i[t]);return e?o||n["a"].getItem(e):o},set:e=>n["a"].setItem(i[t],e)}}),{}))},dd18:function(e,t,o){"use strict";t["a"]={eager:"eager",lazy:"lazy"}},e425:function(e,t,o){"use strict";var n=o("821b"),i=o("dd18"),r=o("d369");const s="undefined"!==typeof window.matchMedia&&[n["a"].light.value,n["a"].dark.value,"no-preference"].some(e=>window.matchMedia(`(prefers-color-scheme: ${e})`).matches),c=s?n["a"].auto:n["a"].light;t["a"]={state:{imageLoadingStrategy:i["a"].lazy,preferredColorScheme:r["a"].preferredColorScheme||c.value,supportsAutoColorScheme:s,systemColorScheme:n["a"].light.value},setImageLoadingStrategy(e){this.state.imageLoadingStrategy=e},setPreferredColorScheme(e){this.state.preferredColorScheme=e,r["a"].preferredColorScheme=e},setSystemColorScheme(e){this.state.systemColorScheme=e},syncPreferredColorScheme(){r["a"].preferredColorScheme&&r["a"].preferredColorScheme!==this.state.preferredColorScheme&&(this.state.preferredColorScheme=r["a"].preferredColorScheme)}}},e487:function(e,t,o){},ed96:function(e,t,o){o.p=window.baseUrl},f161:function(e,t,o){"use strict";o.r(t);o("ed96");var n=o("2b0e"),i=o("8c4f"),r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{class:{fromkeyboard:e.fromKeyboard,hascustomheader:e.hasCustomHeader},attrs:{id:"app"}},[o("div",{attrs:{id:e.AppTopID}}),o("a",{attrs:{href:"#main",id:"skip-nav"}},[e._v("Skip Navigation")]),o("InitialLoadingPlaceholder"),e._t("header",(function(){return[e.hasCustomHeader?o("custom-header",{attrs:{"data-color-scheme":e.preferredColorScheme}}):e._e()]}),{isTargetIDE:e.isTargetIDE}),o("div",{attrs:{id:e.baseNavStickyAnchorId}}),e._t("default",(function(){return[o("router-view",{staticClass:"router-content"}),e.hasCustomFooter?o("custom-footer",{attrs:{"data-color-scheme":e.preferredColorScheme}}):e.isTargetIDE?e._e():o("Footer")]}),{isTargetIDE:e.isTargetIDE}),e._t("footer",null,{isTargetIDE:e.isTargetIDE})],2)},s=[],c=o("e425"),a=o("821b"),h=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("footer",{staticClass:"footer"},[o("div",{staticClass:"row"},[o("ColorSchemeToggle")],1)])},l=[],u=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"color-scheme-toggle",attrs:{"aria-label":"Select a color scheme preference",role:"radiogroup"}},e._l(e.options,(function(t){return o("label",{key:t.value},[o("input",{attrs:{type:"radio"},domProps:{checked:t.value==e.preferredColorScheme,value:t.value},on:{input:e.setPreferredColorScheme}}),o("div",{staticClass:"text"},[e._v(e._s(t.label))])])})),0)},d=[],g={name:"ColorSchemeToggle",data:()=>({appState:c["a"].state}),computed:{options:({supportsAutoColorScheme:e})=>[a["a"].light,a["a"].dark,...e?[a["a"].auto]:[]],preferredColorScheme:({appState:e})=>e.preferredColorScheme,supportsAutoColorScheme:({appState:e})=>e.supportsAutoColorScheme},methods:{setPreferredColorScheme:e=>{c["a"].setPreferredColorScheme(e.target.value)}},watch:{preferredColorScheme:{immediate:!0,handler(e){document.body.dataset.colorScheme=e}}}},f=g,m=(o("6131"),o("2877")),p=Object(m["a"])(f,u,d,!1,null,"8890c4d6",null),j=p.exports,v={name:"Footer",components:{ColorSchemeToggle:j}},w=v,b=(o("2de0"),Object(m["a"])(w,h,l,!1,null,"72f2e2dc",null)),y=b.exports,S=function(){var e=this,t=e.$createElement,o=e._self._c||t;return e.loaded?e._e():o("div",{staticClass:"InitialLoadingPlaceholder",attrs:{id:"loading-placeholder"}})},E=[],C={name:"InitialLoadingPlaceholder",data(){return{loaded:!1}},created(){const e=()=>{this.loaded=!0};this.$router.onReady(e,e)}},_=C,P=(o("48b1"),Object(m["a"])(_,S,E,!1,null,"35c356b6",null)),T=P.exports,k=o("942d"),O=o("6842");function A(e,t){return e&&"object"===typeof e&&Object.prototype.hasOwnProperty.call(e,t)&&"string"===typeof e[t]}function I(e,t,o,n){if(!t||"object"!==typeof t||n&&(A(t,"light")||A(t,"dark"))){let i=t;if(A(t,n)&&(i=t[n]),"object"===typeof i)return;o[e]=i}else Object.entries(t).forEach(([t,i])=>{const r=[e,t].join("-");I(r,i,o,n)})}function L(e,t="light"){const o={},n=e||{};return I("-",n,o,t),o}var x=o("4009"),D={name:"CoreApp",components:{Footer:y,InitialLoadingPlaceholder:T},provide(){return{isTargetIDE:this.isTargetIDE,performanceMetricsEnabled:"true"===Object({NODE_ENV:"production",VUE_APP_TITLE:"Documentation",BASE_URL:"{{BASE_PATH}}/"}).VUE_APP_PERFORMANCE_ENABLED}},data(){return{AppTopID:x["a"],appState:c["a"].state,fromKeyboard:!1,isTargetIDE:"ide"===Object({NODE_ENV:"production",VUE_APP_TITLE:"Documentation",BASE_URL:"{{BASE_PATH}}/"}).VUE_APP_TARGET,themeSettings:O["d"],baseNavStickyAnchorId:k["e"]}},computed:{currentColorScheme:({appState:e})=>e.systemColorScheme,preferredColorScheme:({appState:e})=>e.preferredColorScheme,CSSCustomProperties:({currentColorScheme:e,preferredColorScheme:t,themeSettings:o})=>L(o.theme,t===a["a"].auto.value?e:t),hasCustomHeader:()=>!!window.customElements.get("custom-header"),hasCustomFooter:()=>!!window.customElements.get("custom-footer")},props:{enableThemeSettings:{type:Boolean,default:!0}},watch:{CSSCustomProperties:{immediate:!0,handler(e){this.detachStylesFromRoot(e),this.attachStylesToRoot(e)}}},async created(){window.addEventListener("keydown",this.onKeyDown),this.$bridge.on("navigation",this.handleNavigationRequest),this.enableThemeSettings&&Object.assign(this.themeSettings,await Object(O["b"])()),window.addEventListener("pageshow",this.syncPreferredColorScheme),this.$once("hook:beforeDestroy",()=>{window.removeEventListener("pageshow",this.syncPreferredColorScheme)})},mounted(){(document.querySelector(".footer-current-year")||{}).innerText=(new Date).getFullYear(),this.attachColorSchemeListeners()},beforeDestroy(){this.fromKeyboard?window.removeEventListener("mousedown",this.onMouseDown):window.removeEventListener("keydown",this.onKeyDown),this.$bridge.off("navigation",this.handleNavigationRequest),this.detachStylesFromRoot(this.CSSCustomProperties)},methods:{onKeyDown(){this.fromKeyboard=!0,window.addEventListener("mousedown",this.onMouseDown),window.removeEventListener("keydown",this.onKeyDown)},onMouseDown(){this.fromKeyboard=!1,window.addEventListener("keydown",this.onKeyDown),window.removeEventListener("mousedown",this.onMouseDown)},handleNavigationRequest(e){this.$router.push(e)},attachColorSchemeListeners(){if(!window.matchMedia)return;const e=window.matchMedia("(prefers-color-scheme: dark)");e.addListener(this.onColorSchemePreferenceChange),this.$once("hook:beforeDestroy",()=>{e.removeListener(this.onColorSchemePreferenceChange)}),this.onColorSchemePreferenceChange(e)},onColorSchemePreferenceChange({matches:e}){const t=e?a["a"].dark:a["a"].light;c["a"].setSystemColorScheme(t.value)},attachStylesToRoot(e){const t=document.body;Object.entries(e).filter(([,e])=>Boolean(e)).forEach(([e,o])=>{t.style.setProperty(e,o)})},detachStylesFromRoot(e){const t=document.body;Object.entries(e).forEach(([e])=>{t.style.removeProperty(e)})},syncPreferredColorScheme(){c["a"].syncPreferredColorScheme()}}},$=D,N=(o("5c0b"),o("a5c6"),Object(m["a"])($,r,s,!1,null,"0a4c340a",null)),R=N.exports;class U{constructor(){this.$send=()=>{}}send(e){this.$send(e)}}class M{constructor(){const{webkit:{messageHandlers:{bridge:e={}}={}}={}}=window;this.bridge=e;const{postMessage:t=(()=>{})}=e;this.$send=t.bind(e)}send(e){this.$send(e)}}class B{constructor(e=new U){this.backend=e,this.listeners={}}send(e){this.backend.send(e)}receive(e){this.emit(e.type,e.data)}emit(e,t){this.listeners[e]&&this.listeners[e].forEach(e=>e(t))}on(e,t){this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t)}off(e,t){this.listeners[e]&&this.listeners[e].delete(t)}}var W={install(e,t){let o;o=t.performanceMetricsEnabled||"ide"===t.appTarget?new M:new U,e.prototype.$bridge=new B(o)}};function V(e){return"custom-"+e}function q(e){return class extends HTMLElement{constructor(){super();const t=this.attachShadow({mode:"open"}),o=e.content.cloneNode(!0);t.appendChild(o)}}}function F(e){const t=V(e),o=document.getElementById(t);o&&window.customElements.define(t,q(o))}function H(e,t={names:["header","footer"]}){const{names:o}=t;e.config.ignoredElements=/^custom-/,o.forEach(F)}function K(e,t){const{value:o=!1}=t;e.style.display=o?"none":""}var G={hide:K};function z(e,{performanceMetrics:t=!1}={}){e.config.productionTip=!1,e.use(H),e.directive("hide",G.hide),e.use(W,{appTarget:Object({NODE_ENV:"production",VUE_APP_TITLE:"Documentation",BASE_URL:"{{BASE_PATH}}/"}).VUE_APP_TARGET,performanceMetricsEnabled:t}),window.bridge=e.prototype.$bridge,e.config.performance=t}var J=o("9895"),Y=o("63b8"),X=o("3908"),Q=o("002d"),Z=o("d26a");const ee=10;function te(e){const{name:t}=e,o=t.includes(J["a"]);return o?ee:0}function oe(){const{location:e}=window;return e.pathname+e.search+e.hash}function ne(){const e=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0);return ePromise.all([o.e("documentation-topic~topic~tutorials-overview"),o.e("tutorials-overview")]).then(o.bind(null,"f025"))},{path:"/tutorials/:id/*",name:"topic",component:()=>Promise.all([o.e("documentation-topic~topic~tutorials-overview"),o.e("documentation-topic~topic"),o.e("topic")]).then(o.bind(null,"3213"))},{path:"/documentation/*",name:J["a"],component:()=>Promise.all([o.e("documentation-topic~topic~tutorials-overview"),o.e("chunk-384ef189"),o.e("documentation-topic~topic"),o.e("documentation-topic")]).then(o.bind(null,"f8ac"))},{path:"*",name:J["b"],component:Ce},{path:"*",name:"server-error",component:ve}];function Pe(e={}){const t=new i["a"]({mode:"history",base:O["a"],scrollBehavior:ie,...e,routes:e.routes||_e});return t.onReady(()=>{"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual"),re()}),"ide"!==Object({NODE_ENV:"production",VUE_APP_TITLE:"Documentation",BASE_URL:"{{BASE_PATH}}/"}).VUE_APP_TARGET&&t.onError(e=>{const{route:o={path:"/"}}=e;t.replace({name:"server-error",params:[o.path]})}),window.addEventListener("unload",se),t}n["default"].use(z),n["default"].use(i["a"]),new n["default"]({router:Pe(),render:e=>e(R)}).$mount("#app")},f8ba:function(e,t,o){},fb1e:function(e,t,o){}}); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/topic.bb695832.js b/XCoordinator.doccarchive/js/topic.bb695832.js new file mode 100644 index 00000000..7edd0aea --- /dev/null +++ b/XCoordinator.doccarchive/js/topic.bb695832.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["topic"],{"00f4":function(e,t,n){"use strict";n("282f")},"0169":function(e,t,n){"use strict";n("0951")},"0466":function(e,t,n){},"0530":function(e,t,n){"use strict";n("dbeb")},"0951":function(e,t,n){},"0b61":function(e,t,n){},1006:function(e,t,n){"use strict";n("a95e")},"14b7":function(e,t,n){},"1a91":function(e,t,n){"use strict";n("db87")},"1dd5":function(e,t,n){"use strict";n("7b17")},"282f":function(e,t,n){},"2f9d":function(e,t,n){"use strict";n("525c")},"311e":function(e,t,n){},3213:function(e,t,n){"use strict";n.r(t);var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e.topicData?n(e.componentFor(e.topicData),e._b({key:e.topicKey,tag:"component",attrs:{hierarchy:e.hierarchy}},"component",e.propsFor(e.topicData),!1)):e._e()],1)},s=[],r=n("25a9"),o=n("a97e");const{BreakpointName:a}=o["a"].constants;var c,l,u={state:{linkableSections:[],breakpoint:a.large},addLinkableSection(e){const t={...e,visibility:0};t.sectionNumber=this.state.linkableSections.length,this.state.linkableSections.push(t)},reset(){this.state.linkableSections=[],this.state.breakpoint=a.large},updateLinkableSection(e){this.state.linkableSections=this.state.linkableSections.map(t=>e.anchor===t.anchor?{...t,visibility:e.visibility}:t)},updateBreakpoint(e){this.state.breakpoint=e}},d=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"article"},[e.isTargetIDE?e._e():n("NavigationBar",{attrs:{chapters:e.hierarchy.modules,technology:e.metadata.category,topic:e.heroTitle||"",rootReference:e.hierarchy.reference,identifierUrl:e.identifierUrl}}),n("main",{attrs:{id:"main",role:"main",tabindex:"0"}},[e._t("above-hero"),e._l(e.sections,(function(t,i){return n(e.componentFor(t),e._b({key:i,tag:"component"},"component",e.propsFor(t),!1))}))],2),n("PortalTarget",{attrs:{name:"modal-destination",multiple:""}})],1)},p=[],h=n("2b88"),m=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("NavBase",{attrs:{id:"nav","aria-label":e.technology,hasSolidBackground:""}},[n("template",{slot:"default"},[n("ReferenceUrlProvider",{attrs:{reference:e.rootReference},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.urlWithParams;return n("NavTitleContainer",{attrs:{to:i}},[n("template",{slot:"default"},[e._v(e._s(e.technology))]),n("template",{slot:"subhead"},[e._v("Tutorials")])],2)}}])})],1),n("template",{slot:"after-title"},[n("div",{staticClass:"separator"})]),n("template",{slot:"tray"},[n("div",{staticClass:"mobile-dropdown-container"},[n("MobileDropdown",{attrs:{options:e.chapters,sections:e.optionsForSections,currentOption:e.currentSection?e.currentSection.title:""},on:{"select-section":e.onSelectSection}})],1),n("div",{staticClass:"dropdown-container"},[n("PrimaryDropdown",{staticClass:"primary-dropdown",attrs:{options:e.chapters,currentOption:e.topic}}),n("ChevronIcon",{staticClass:"icon-inline"}),e.currentSection?n("SecondaryDropdown",{staticClass:"secondary-dropdown",attrs:{options:e.optionsForSections,currentOption:e.currentSection.title,sectionTracker:e.sectionIndicatorText},on:{"select-section":e.onSelectSection}}):e._e()],1),e._t("tray",null,{siblings:e.chapters.length+e.optionsForSections.length})],2)],2)},f=[],v=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"chevron-icon",attrs:{viewBox:"0 0 14 14",themeId:"chevron"}},[n("path",{attrs:{d:"M3.22 1.184l0.325-0.38 7.235 6.201-7.235 6.19-0.325-0.38 6.792-5.811-6.792-5.82z"}})])},g=[],b=n("be08"),y={name:"ChevronIcon",components:{SVGIcon:b["a"]}},C=y,w=n("2877"),_=Object(w["a"])(C,v,g,!1,null,null,null),k=_.exports,S=n("d26a"),x={name:"ReferenceUrlProvider",inject:{references:{default:()=>({})}},props:{reference:{type:String,required:!0}},computed:{resolvedReference:({references:e,reference:t})=>e[t]||{},url:({resolvedReference:e})=>e.url,title:({resolvedReference:e})=>e.title},render(){return this.$scopedSlots.default({url:this.url,urlWithParams:Object(S["b"])(this.url,this.$route.query),title:this.title,reference:this.resolvedReference})}},T=x,I=Object(w["a"])(T,c,l,!1,null,null,null),A=I.exports,O=n("8a61"),N=n("cbcf"),$=n("653a"),P=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("NavMenuItems",{staticClass:"mobile-dropdown"},e._l(e.options,(function(t){return n("ReferenceUrlProvider",{key:t.reference,attrs:{reference:t.reference},scopedSlots:e._u([{key:"default",fn:function(i){var s=i.title;return n("NavMenuItemBase",{staticClass:"chapter-list",attrs:{role:"group"}},[n("p",{staticClass:"chapter-name"},[e._v(e._s(s))]),n("ul",{staticClass:"tutorial-list"},e._l(t.projects,(function(t){return n("ReferenceUrlProvider",{key:t.reference,attrs:{reference:t.reference},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.url,s=t.urlWithParams,r=t.title;return n("li",{staticClass:"tutorial-list-item"},[n("router-link",{staticClass:"option tutorial",attrs:{to:s,value:r}},[e._v(" "+e._s(r)+" ")]),i===e.$route.path?n("ul",{staticClass:"section-list",attrs:{role:"listbox"}},e._l(e.sections,(function(t){return n("li",{key:t.title},[n("router-link",{class:e.classesFor(t),attrs:{to:{path:t.path,query:e.$route.query},value:t.title},nativeOn:{click:function(n){return e.onClick(t)}}},[e._v(" "+e._s(t.title)+" ")])],1)})),0):e._e()],1)}}],null,!0)})})),1)])}}],null,!0)})})),1)},q=[],D=n("863d"),j=n("9b30"),R={name:"MobileDropdown",components:{NavMenuItems:j["a"],NavMenuItemBase:D["a"],ReferenceUrlProvider:A},props:{options:{type:Array,required:!0},currentOption:{type:String,required:!0},sections:{type:Array,required:!1,default:()=>[]}},methods:{classesFor(e){return["option","section",{active:this.currentOption===e.title},this.depthClass(e)]},depthClass(e){const{depth:t=0}=e;return"depth"+t},onClick(e){this.$emit("select-section",e.path)}}},M=R,B=(n("e688"),Object(w["a"])(M,P,q,!1,null,"154acfbd",null)),E=B.exports,L=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("DropdownCustom",{staticClass:"tutorial-dropdown",attrs:{value:e.currentOption,"aria-label":"Current section",isSmall:""},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.closeAndFocusToggler,s=t.contentClasses,r=t.navigateOverOptions,o=t.OptionClass,a=t.ActiveOptionClass;return[n("ul",{staticClass:"options",class:s,attrs:{role:"listbox",tabindex:"0"}},e._l(e.options,(function(t){return n("router-link",{key:t.title,attrs:{to:{path:t.path,query:e.$route.query},custom:""},scopedSlots:e._u([{key:"default",fn:function(s){var c,l=s.navigate;return[n("li",{class:[o,(c={},c[a]=e.currentOption===t.title,c)],attrs:{role:"option",value:t.title,"aria-selected":e.currentOption===t.title,"aria-current":e.ariaCurrent(t.title),tabindex:-1},on:{click:function(n){return e.setActive(t,l,i,n)},keydown:[function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"enter",13,n.key,"Enter")?null:e.setActive(t,l,i,n)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:i.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"tab",9,t.key,"Tab")?null:i.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),r(t,1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),r(t,-1))}]}},[e._v(" "+e._s(t.title)+" ")])]}}],null,!0)})})),1)]}}])},[n("template",{slot:"toggle-post-content"},[n("span",{staticClass:"section-tracker"},[e._v(e._s(e.sectionTracker))])])],2)},F=[],V=function(){var e,t=this,n=t.$createElement,i=t._self._c||n;return i("BaseDropdown",{staticClass:"dropdown-custom",class:(e={},e[t.OpenedClass]=t.isOpen,e["dropdown-small"]=t.isSmall,e),attrs:{value:t.value},scopedSlots:t._u([{key:"dropdown",fn:function(e){var n=e.dropdownClasses;return[i("span",{staticClass:"visuallyhidden",attrs:{id:"DropdownLabel_"+t._uid}},[t._v(t._s(t.ariaLabel))]),i("button",{ref:"dropdownToggle",staticClass:"form-dropdown-toggle",class:n,attrs:{role:"button",id:"DropdownToggle_"+t._uid,"aria-labelledby":"DropdownLabel_"+t._uid+" DropdownToggle_"+t._uid,"aria-expanded":t.isOpen?"true":"false","aria-haspopup":"true"},on:{click:t.toggleDropdown,keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.openDropdown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.closeAndFocusToggler.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.preventDefault(),t.openDropdown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.preventDefault(),t.openDropdown.apply(null,arguments))}]}},[i("span",{staticClass:"form-dropdown-title"},[t._v(t._s(t.value))]),t._t("toggle-post-content")],2)]}}],null,!0)},[i("template",{slot:"eyebrow"},[t._t("eyebrow")],2),i("template",{slot:"after"},[t._t("default",null,null,{value:t.value,isOpen:t.isOpen,contentClasses:["form-dropdown-content",{"is-open":t.isOpen}],closeDropdown:t.closeDropdown,onChangeAction:t.onChangeAction,closeAndFocusToggler:t.closeAndFocusToggler,navigateOverOptions:t.navigateOverOptions,OptionClass:t.OptionClass,ActiveOptionClass:t.ActiveOptionClass})],2)],2)},U=[],H=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"form-element"},[e._t("dropdown",(function(){return[n("select",e._b({directives:[{name:"model",rawName:"v-model",value:e.modelValue,expression:"modelValue"}],class:e.dropdownClasses,on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.modelValue=t.target.multiple?n:n[0]}}},"select",e.$attrs,!1),[e._t("default")],2)]}),{dropdownClasses:e.dropdownClasses,value:e.value}),n("InlineChevronDownIcon",{staticClass:"form-icon",attrs:{"aria-hidden":"true"}}),e.$slots.eyebrow?n("span",{staticClass:"form-label",attrs:{"aria-hidden":"true"}},[e._t("eyebrow")],2):e._e(),e._t("after")],2)},z=[],G=n("7948"),W={name:"BaseDropdown",inheritAttrs:!1,props:{value:{type:String,default:""}},components:{InlineChevronDownIcon:G["a"]},computed:{modelValue:{get:({value:e})=>e,set(e){this.$emit("input",e)}},dropdownClasses({value:e}){return["form-dropdown",{"form-dropdown-selectnone":""===e,"no-eyebrow":!this.$slots.eyebrow}]}}},Q=W,K=(n("ed71"),Object(w["a"])(Q,H,z,!1,null,"998803d8",null)),X=K.exports;const J="is-open",Y="option",Z="option-active";var ee={name:"DropdownCustom",components:{BaseDropdown:X},constants:{OpenedClass:J,OptionClass:Y,ActiveOptionClass:Z},props:{value:{type:String,default:""},ariaLabel:{type:String,default:""},isSmall:{type:Boolean,default:!1}},data(){return{isOpen:!1,OpenedClass:J,OptionClass:Y,ActiveOptionClass:Z}},mounted(){document.addEventListener("click",this.closeOnLoseFocus)},beforeDestroy(){document.removeEventListener("click",this.closeOnLoseFocus)},methods:{onChangeAction(e){this.$emit("input",e)},toggleDropdown(){this.isOpen?this.closeDropdown():this.openDropdown()},async closeAndFocusToggler(){this.closeDropdown(),await this.$nextTick(),this.$refs.dropdownToggle.focus({preventScroll:!0})},closeDropdown(){this.isOpen=!1,this.$emit("close")},openDropdown(){this.isOpen=!0,this.$emit("open"),this.focusActiveLink()},closeOnLoseFocus(e){!this.$el.contains(e.target)&&this.isOpen&&this.closeDropdown()},navigateOverOptions({target:e},t){const n=this.$el.querySelectorAll("."+Y),i=Array.from(n),s=i.indexOf(e),r=i[s+t];r&&r.focus({preventScroll:!0})},async focusActiveLink(){const e=this.$el.querySelector("."+Z);e&&(await this.$nextTick(),e.focus({preventScroll:!0}))}}},te=ee,ne=(n("e84c"),Object(w["a"])(te,V,U,!1,null,"12dd746a",null)),ie=ne.exports,se={name:"SecondaryDropdown",components:{DropdownCustom:ie},props:{options:{type:Array,required:!0},currentOption:{type:String,required:!0},sectionTracker:{type:String,required:!1}},methods:{ariaCurrent(e){return this.currentOption===e&&"section"},setActive(e,t,n,i){t(i),this.$emit("select-section",e.path),n()}}},re=se,oe=(n("5952"),Object(w["a"])(re,L,F,!1,null,"4a151342",null)),ae=oe.exports,ce=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("DropdownCustom",{staticClass:"tutorial-dropdown",attrs:{value:e.currentOption,"aria-label":"Current tutorial",isSmall:""},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.closeAndFocusToggler,s=t.contentClasses,r=t.closeDropdown,o=t.navigateOverOptions,a=t.OptionClass,c=t.ActiveOptionClass;return[n("ul",{staticClass:"options",class:s,attrs:{tabindex:"0"}},e._l(e.options,(function(t){return n("ReferenceUrlProvider",{key:t.reference,attrs:{reference:t.reference},scopedSlots:e._u([{key:"default",fn:function(s){var l=s.title;return n("li",{staticClass:"chapter-list",attrs:{role:"group"}},[n("p",{staticClass:"chapter-name"},[e._v(e._s(l))]),n("ul",{attrs:{role:"listbox"}},e._l(t.projects,(function(t){return n("ReferenceUrlProvider",{key:t.reference,attrs:{reference:t.reference},scopedSlots:e._u([{key:"default",fn:function(t){var s=t.urlWithParams,l=t.title;return[n("router-link",{attrs:{to:s,custom:""},scopedSlots:e._u([{key:"default",fn:function(t){var s,u=t.navigate,d=t.isActive;return[n("li",{class:(s={},s[a]=!0,s[c]=d,s),attrs:{role:"option",value:l,"aria-selected":d,"aria-current":!!d&&"tutorial",tabindex:-1},on:{click:function(t){return e.setActive(u,r,t)},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.setActive(u,r,t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:i.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"tab",9,t.key,"Tab")?null:i.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),o(t,1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),o(t,-1))}]}},[e._v(" "+e._s(l)+" ")])]}}],null,!0)})]}}],null,!0)})})),1)])}}],null,!0)})})),1)]}}])})},le=[],ue={name:"PrimaryDropdown",components:{DropdownCustom:ie,ReferenceUrlProvider:A},props:{options:{type:Array,required:!0},currentOption:{type:String,required:!0}},methods:{setActive(e,t,n){e(n),t()}}},de=ue,pe=(n("e4e4"),Object(w["a"])(de,ce,le,!1,null,"78dc103f",null)),he=pe.exports;const me={title:"Introduction",url:"#introduction",reference:"introduction",sectionNumber:0,depth:0};var fe={name:"NavigationBar",components:{NavTitleContainer:$["a"],NavBase:N["a"],ReferenceUrlProvider:A,PrimaryDropdown:he,SecondaryDropdown:ae,MobileDropdown:E,ChevronIcon:k},mixins:[O["a"]],inject:["store","references"],props:{chapters:{type:Array,required:!0},technology:{type:String,required:!0},topic:{type:String,required:!0},rootReference:{type:String,required:!0},identifierUrl:{type:String,required:!0}},data(){return{currentSection:me,tutorialState:this.store.state}},watch:{pageSectionWithHighestVisibility(e){e&&(this.currentSection=e)}},computed:{currentProject(){return this.chapters.reduce((e,{projects:t})=>e.concat(t),[]).find(e=>e.reference===this.identifierUrl)},pageSections(){if(!this.currentProject)return[];const e=[me].concat(this.currentProject.sections);return this.tutorialState.linkableSections.map((t,n)=>{const i=e[n],s=this.references[i.reference],{url:r,title:o}=s||i;return{...t,title:o,path:r}})},optionsForSections(){return this.pageSections.map(({depth:e,path:t,title:n})=>({depth:e,path:t,title:n}))},pageSectionWithHighestVisibility(){return[...this.pageSections].sort((e,t)=>t.visibility-e.visibility).find(e=>e.visibility>0)},sectionIndicatorText(){const e=this.tutorialState.linkableSections.length-1,{sectionNumber:t}=this.currentSection||{};if(0!==t)return`(${t} of ${e})`}},methods:{onSelectSection(e){const t=e.split("#")[1];this.handleFocusAndScroll(t)}}},ve=fe,ge=(n("8782"),Object(w["a"])(ve,m,f,!1,null,"af20c2a0",null)),be=ge.exports,ye=n("bf08"),Ce=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"body"},[n("BodyContent",{attrs:{content:e.content}})],1)},we=[],_e=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("article",{staticClass:"body-content"},e._l(e.content,(function(t,i){return n(e.componentFor(t),e._b({key:i,tag:"component",staticClass:"layout"},"component",e.propsFor(t),!1))})),1)},ke=[],Se=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"columns",class:e.classes},[e._l(e.columns,(function(t,i){return[n("Asset",{key:t.media,attrs:{identifier:t.media,videoAutoplays:!1}}),t.content?n("ContentNode",{key:i,attrs:{content:t.content}}):e._e()]}))],2)},xe=[],Te=n("80e4"),Ie=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BaseContentNode",{attrs:{content:e.articleContent}})},Ae=[],Oe=n("5677"),Ne={name:"ContentNode",components:{BaseContentNode:Oe["default"]},props:Oe["default"].props,computed:{articleContent(){return this.map(e=>{switch(e.type){case Oe["default"].BlockType.codeListing:return{...e,showLineNumbers:!0};case Oe["default"].BlockType.heading:{const{anchor:t,...n}=e;return n}default:return e}})}},methods:Oe["default"].methods,BlockType:Oe["default"].BlockType,InlineType:Oe["default"].InlineType},$e=Ne,Pe=(n("cb8d"),Object(w["a"])($e,Ie,Ae,!1,null,"3cfe1c35",null)),qe=Pe.exports,De={name:"Columns",components:{Asset:Te["a"],ContentNode:qe},props:{columns:{type:Array,required:!0}},computed:{classes(){return{"cols-2":2===this.columns.length,"cols-3":3===this.columns.length}}}},je=De,Re=(n("e9b0"),Object(w["a"])(je,Se,xe,!1,null,"30edf911",null)),Me=Re.exports,Be=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"content-and-media",class:e.classes},[n("ContentNode",{attrs:{content:e.content}}),n("Asset",{attrs:{identifier:e.media}})],1)},Ee=[];const Le={leading:"leading",trailing:"trailing"};var Fe={name:"ContentAndMedia",components:{Asset:Te["a"],ContentNode:qe},props:{content:qe.props.content,media:Te["a"].props.identifier,mediaPosition:{type:String,default:()=>Le.trailing,validator:e=>Object.prototype.hasOwnProperty.call(Le,e)}},computed:{classes(){return{"media-leading":this.mediaPosition===Le.leading,"media-trailing":this.mediaPosition===Le.trailing}}},MediaPosition:Le},Ve=Fe,Ue=(n("1006"),Object(w["a"])(Ve,Be,Ee,!1,null,"3fa44f9e",null)),He=Ue.exports,ze=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"full-width"},e._l(e.groups,(function(t,i){return n(e.componentFor(t),e._b({key:i,tag:"component",staticClass:"group"},"component",e.propsFor(t),!1),[n("ContentNode",{attrs:{content:t.content}})],1)})),1)},Ge=[],We=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(e.tag,{tag:"component",attrs:{id:e.anchor}},[e._t("default")],2)},Qe=[],Ke=n("72e7"),Xe={name:"LinkableElement",mixins:[Ke["a"]],inject:{navigationBarHeight:{default(){}},store:{default(){return{addLinkableSection(){},updateLinkableSection(){}}}}},props:{anchor:{type:String,required:!0},depth:{type:Number,default:()=>0},tag:{type:String,default:()=>"div"},title:{type:String,required:!0}},computed:{intersectionRootMargin(){const e=this.navigationBarHeight?`-${this.navigationBarHeight}px`:"0%";return e+" 0% -50% 0%"}},created(){this.store.addLinkableSection({anchor:this.anchor,depth:this.depth,title:this.title,visibility:0})},methods:{onIntersect(e){const t=Math.min(1,e.intersectionRatio);this.store.updateLinkableSection({anchor:this.anchor,depth:this.depth,title:this.title,visibility:t})}}},Je=Xe,Ye=Object(w["a"])(Je,We,Qe,!1,null,null,null),Ze=Ye.exports;const{BlockType:et}=qe;var tt={name:"FullWidth",components:{ContentNode:qe,LinkableElement:Ze},props:qe.props,computed:{groups:({content:e})=>e.reduce((e,t)=>0===e.length||t.type===et.heading?[...e,{heading:t.type===et.heading?t:null,content:[t]}]:[...e.slice(0,e.length-1),{heading:e[e.length-1].heading,content:e[e.length-1].content.concat(t)}],[])},methods:{componentFor(e){return e.heading?Ze:"div"},depthFor(e){switch(e.level){case 1:case 2:return 0;default:return 1}},propsFor(e){return e.heading?{anchor:e.heading.anchor,depth:this.depthFor(e.heading),title:e.heading.text}:{}}}},nt=tt,it=(n("aece"),Object(w["a"])(nt,ze,Ge,!1,null,"1f2be54b",null)),st=it.exports;const rt={columns:"columns",contentAndMedia:"contentAndMedia",fullWidth:"fullWidth"};var ot={name:"BodyContent",props:{content:{type:Array,required:!0,validator:e=>e.every(({kind:e})=>Object.prototype.hasOwnProperty.call(rt,e))}},methods:{componentFor(e){return{[rt.columns]:Me,[rt.contentAndMedia]:He,[rt.fullWidth]:st}[e.kind]},propsFor(e){const{content:t,kind:n,media:i,mediaPosition:s}=e;return{[rt.columns]:{columns:t},[rt.contentAndMedia]:{content:t,media:i,mediaPosition:s},[rt.fullWidth]:{content:t}}[n]}},LayoutKind:rt},at=ot,ct=(n("1dd5"),Object(w["a"])(at,_e,ke,!1,null,"4d5a806e",null)),lt=ct.exports,ut={name:"Body",components:{BodyContent:lt},props:lt.props},dt=ut,pt=(n("5237"),Object(w["a"])(dt,Ce,we,!1,null,"6499e2f2",null)),ht=pt.exports,mt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("TutorialCTA",e._b({},"TutorialCTA",e.$props,!1))},ft=[],vt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BaseCTA",e._b({attrs:{label:"Next"}},"BaseCTA",e.baseProps,!1))},gt=[],bt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"call-to-action"},[n("Row",[n("LeftColumn",[n("span",{staticClass:"label"},[e._v(e._s(e.label))]),n("h2",[e._v(" "+e._s(e.title)+" ")]),e.abstract?n("ContentNode",{staticClass:"description",attrs:{content:[e.abstractParagraph]}}):e._e(),e.action?n("Button",{attrs:{action:e.action}}):e._e()],1),n("RightColumn",{staticClass:"right-column"},[e.media?n("Asset",{staticClass:"media",attrs:{identifier:e.media}}):e._e()],1)],1)],1)},yt=[],Ct=n("0f00"),wt=n("620a"),_t=n("c081"),kt={name:"CallToAction",components:{Asset:Te["a"],Button:_t["a"],ContentNode:Oe["default"],LeftColumn:{render(e){return e(wt["a"],{props:{span:{large:5,small:12}}},this.$slots.default)}},RightColumn:{render(e){return e(wt["a"],{props:{span:{large:6,small:12}}},this.$slots.default)}},Row:Ct["a"]},props:{title:{type:String,required:!0},label:{type:String,required:!0},abstract:{type:Array,required:!1},action:{type:Object,required:!1},media:{type:String,required:!1}},computed:{abstractParagraph(){return{type:"paragraph",inlineContent:this.abstract}}}},St=kt,xt=(n("80f7"),Object(w["a"])(St,bt,yt,!1,null,"2016b288",null)),Tt=xt.exports,It={name:"CallToAction",components:{BaseCTA:Tt},computed:{baseProps(){return{title:this.title,abstract:this.abstract,action:this.action,media:this.media}}},props:{title:{type:String,required:!0},abstract:{type:Array,required:!1},action:{type:Object,required:!1},media:{type:String,required:!1}}},At=It,Ot=Object(w["a"])(At,vt,gt,!1,null,null,null),Nt=Ot.exports,$t={name:"CallToAction",components:{TutorialCTA:Nt},props:Nt.props},Pt=$t,qt=(n("3e1b"),Object(w["a"])(Pt,mt,ft,!1,null,"426a965c",null)),Dt=qt.exports,jt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("TutorialHero",e._b({},"TutorialHero",e.$props,!1))},Rt=[],Mt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("LinkableSection",{staticClass:"tutorial-hero",attrs:{anchor:"introduction",title:e.sectionTitle}},[n("div",{staticClass:"hero dark"},[e.backgroundImageUrl?n("div",{staticClass:"bg",style:e.bgStyle}):e._e(),e._t("above-title"),n("Row",[n("Column",[n("Headline",{attrs:{level:1}},[e.chapter?n("template",{slot:"eyebrow"},[e._v(e._s(e.chapter))]):e._e(),e._v(" "+e._s(e.title)+" ")],2),e.content||e.video?n("div",{staticClass:"intro"},[e.content?n("ContentNode",{attrs:{content:e.content}}):e._e(),e.video?[n("p",[n("a",{staticClass:"call-to-action",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.toggleCallToActionModal.apply(null,arguments)}}},[e._v(" Watch intro video "),n("PlayIcon",{staticClass:"cta-icon icon-inline"})],1)]),n("GenericModal",{attrs:{visible:e.callToActionModalVisible,isFullscreen:"",theme:"dark"},on:{"update:visible":function(t){e.callToActionModalVisible=t}}},[n("Asset",{directives:[{name:"show",rawName:"v-show",value:e.callToActionModalVisible,expression:"callToActionModalVisible"}],ref:"asset",staticClass:"video-asset",attrs:{identifier:e.video},on:{videoEnded:e.handleVideoEnd}})],1)]:e._e()],2):e._e(),n("Metadata",{staticClass:"metadata",attrs:{projectFilesUrl:e.projectFilesUrl,estimatedTimeInMinutes:e.estimatedTimeInMinutes,xcodeRequirement:e.xcodeRequirementData}})],1)],1)],2)])},Bt=[],Et=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"headline"},[e.$slots.eyebrow?n("span",{staticClass:"eyebrow"},[e._t("eyebrow")],2):e._e(),n("Heading",{staticClass:"heading",attrs:{level:e.level}},[e._t("default")],2)],1)},Lt=[];const Ft=1,Vt=6,Ut={type:Number,required:!0,validator:e=>e>=Ft&&e<=Vt},Ht={name:"Heading",render:function(e){return e("h"+this.level,this.$slots.default)},props:{level:Ut}};var zt={name:"Headline",components:{Heading:Ht},props:{level:Ut}},Gt=zt,Wt=(n("323a"),Object(w["a"])(Gt,Et,Lt,!1,null,"1898f592",null)),Qt=Wt.exports,Kt=n("c161"),Xt=n("c4dd"),Jt=n("748c"),Yt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"metadata"},[e.estimatedTimeInMinutes?n("div",{staticClass:"item",attrs:{"aria-label":e.estimatedTimeInMinutes+" minutes estimated time"}},[n("div",{staticClass:"content",attrs:{"aria-hidden":"true"}},[n("div",{staticClass:"duration"},[e._v(" "+e._s(e.estimatedTimeInMinutes)+" "),n("div",{staticClass:"minutes"},[e._v("min")])])]),n("div",{staticClass:"bottom",attrs:{"aria-hidden":"true"}},[e._v("Estimated Time")])]):e._e(),e.projectFilesUrl?n("div",{staticClass:"item"},[n("DownloadIcon",{staticClass:"item-large-icon icon-inline"}),n("div",{staticClass:"content bottom"},[n("a",{staticClass:"content-link project-download",attrs:{href:e.projectFilesUrl}},[e._v(" Project files "),n("InlineDownloadIcon",{staticClass:"small-icon icon-inline"})],1)])],1):e._e(),e.xcodeRequirement?n("div",{staticClass:"item"},[n("XcodeIcon",{staticClass:"item-large-icon icon-inline"}),n("div",{staticClass:"content bottom"},[e.isTargetIDE?n("span",[e._v(e._s(e.xcodeRequirement.title))]):n("a",{staticClass:"content-link",attrs:{href:e.xcodeRequirement.url}},[e._v(" "+e._s(e.xcodeRequirement.title)+" "),n("InlineChevronRightIcon",{staticClass:"icon-inline small-icon xcode-icon"})],1)])],1):e._e()])},Zt=[],en=n("de60"),tn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"xcode-icon",attrs:{viewBox:"0 0 14 14",themeId:"xcode"}},[n("path",{attrs:{d:"M2.668 4.452l-1.338-2.229 0.891-0.891 2.229 1.338 1.338 2.228 3.667 3.666 0.194-0.194 2.933 2.933c0.13 0.155 0.209 0.356 0.209 0.576 0 0.497-0.403 0.9-0.9 0.9-0.22 0-0.421-0.079-0.577-0.209l0.001 0.001-2.934-2.933 0.181-0.181-3.666-3.666z"}}),n("path",{attrs:{d:"M11.824 1.277l-0.908 0.908c-0.091 0.091-0.147 0.216-0.147 0.354 0 0.106 0.033 0.205 0.090 0.286l-0.001-0.002 0.058 0.069 0.185 0.185c0.090 0.090 0.215 0.146 0.353 0.146 0.107 0 0.205-0.033 0.286-0.090l-0.002 0.001 0.069-0.057 0.909-0.908c0.118 0.24 0.187 0.522 0.187 0.82 0 1.045-0.848 1.893-1.893 1.893-0.296 0-0.577-0.068-0.826-0.189l0.011 0.005-5.5 5.5c0.116 0.238 0.184 0.518 0.184 0.813 0 1.045-0.848 1.893-1.893 1.893-0.296 0-0.576-0.068-0.826-0.189l0.011 0.005 0.908-0.909c0.090-0.090 0.146-0.215 0.146-0.353 0-0.107-0.033-0.205-0.090-0.286l0.001 0.002-0.057-0.069-0.185-0.185c-0.091-0.091-0.216-0.147-0.354-0.147-0.106 0-0.205 0.033-0.286 0.090l0.002-0.001-0.069 0.058-0.908 0.908c-0.116-0.238-0.184-0.518-0.184-0.813 0-1.045 0.847-1.892 1.892-1.892 0.293 0 0.571 0.067 0.819 0.186l-0.011-0.005 5.5-5.5c-0.116-0.238-0.184-0.519-0.184-0.815 0-1.045 0.847-1.892 1.892-1.892 0.296 0 0.577 0.068 0.827 0.19l-0.011-0.005z"}})])},nn=[],sn={name:"XcodeIcon",components:{SVGIcon:b["a"]}},rn=sn,on=Object(w["a"])(rn,tn,nn,!1,null,null,null),an=on.exports,cn=n("34b0"),ln=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"inline-download-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-download"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5s2.91-6.5 6.5-6.5zM7 1.5c-3.038 0-5.5 2.462-5.5 5.5s2.462 5.5 5.5 5.5c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5z"}}),n("path",{attrs:{d:"M7.51 2.964l-0.001 5.431 1.308-2.041 0.842 0.539-2.664 4.162-2.633-4.164 0.845-0.534 1.303 2.059 0.001-5.452z"}})])},un=[],dn={name:"InlineDownloadIcon",components:{SVGIcon:b["a"]}},pn=dn,hn=Object(w["a"])(pn,ln,un,!1,null,null,null),mn=hn.exports,fn={name:"HeroMetadata",components:{InlineDownloadIcon:mn,InlineChevronRightIcon:cn["a"],DownloadIcon:en["a"],XcodeIcon:an},inject:["isTargetIDE"],props:{projectFilesUrl:{type:String},estimatedTimeInMinutes:{type:Number},xcodeRequirement:{type:Object,required:!1}}},vn=fn,gn=(n("5356"),Object(w["a"])(vn,Yt,Zt,!1,null,"2fa6f125",null)),bn=gn.exports,yn={name:"Hero",components:{PlayIcon:Xt["a"],GenericModal:Kt["a"],Column:{render(e){return e(wt["a"],{props:{span:{large:7,medium:9,small:12}}},this.$slots.default)}},ContentNode:Oe["default"],Headline:Qt,Metadata:bn,Row:Ct["a"],Asset:Te["a"],LinkableSection:Ze},inject:["references"],props:{title:{type:String,required:!0},chapter:{type:String},content:{type:Array},projectFiles:{type:String},estimatedTimeInMinutes:{type:Number},xcodeRequirement:{type:String,required:!1},video:{type:String},backgroundImage:{type:String}},computed:{backgroundImageUrl(){const e=this.references[this.backgroundImage]||{},{variants:t=[]}=e,n=t.find(e=>e.traits.includes("light"));return(n||{}).url},projectFilesUrl(){return this.projectFiles?Object(Jt["c"])(this.references[this.projectFiles].url):null},bgStyle(){return{backgroundImage:Object(Jt["f"])(this.backgroundImageUrl)}},xcodeRequirementData(){return this.references[this.xcodeRequirement]},sectionTitle(){return"Introduction"}},data(){return{callToActionModalVisible:!1}},methods:{async toggleCallToActionModal(){this.callToActionModalVisible=!0,await this.$nextTick();const e=this.$refs.asset.$el.querySelector("video");if(e)try{await e.play(),e.muted=!1}catch(t){}},handleVideoEnd(){this.callToActionModalVisible=!1}}},Cn=yn,wn=(n("0169"),Object(w["a"])(Cn,Mt,Bt,!1,null,"1a8cd6d3",null)),_n=wn.exports,kn={name:"Hero",components:{TutorialHero:_n},props:_n.props},Sn=kn,xn=(n("2f9d"),Object(w["a"])(Sn,jt,Rt,!1,null,"35a9482f",null)),Tn=xn.exports,In=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("TutorialAssessments",e._b({},"TutorialAssessments",e.$props,!1),[n("p",{attrs:{slot:"success"},slot:"success"},[e._v("Great job, you've answered all the questions for this article.")])])},An=[],On=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("LinkableSection",{staticClass:"assessments-wrapper",attrs:{anchor:e.anchor,title:e.title}},[n("Row",{ref:"assessments",staticClass:"assessments"},[n("MainColumn",[n("Row",{staticClass:"banner"},[n("HeaderColumn",[n("h2",{staticClass:"title"},[e._v(e._s(e.title))])])],1),e.completed?n("div",{staticClass:"success"},[e._t("success",(function(){return[n("p",[e._v(e._s(e.SuccessMessage))])]}))],2):n("div",[n("Progress",e._b({ref:"progress"},"Progress",e.progress,!1)),n("Quiz",{key:e.activeIndex,attrs:{choices:e.activeAssessment.choices,content:e.activeAssessment.content,isLast:e.isLast,title:e.activeAssessment.title},on:{submit:e.onSubmit,advance:e.onAdvance,"see-results":e.onSeeResults}})],1),n("div",{staticClass:"visuallyhidden",attrs:{"aria-live":"assertive"}},[e.completed?e._t("success",(function(){return[e._v(" "+e._s(e.SuccessMessage)+" ")]})):e._e()],2)],1)],1)],1)},Nn=[],$n=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Row",[n("p",{staticClass:"title"},[e._v("Question "+e._s(e.index)+" of "+e._s(e.total))])])},Pn=[],qn={name:"AssessmentsProgress",components:{Row:Ct["a"]},props:{index:{type:Number,required:!0},total:{type:Number,required:!0}}},Dn=qn,jn=(n("0530"),Object(w["a"])(Dn,$n,Pn,!1,null,"8ec95972",null)),Rn=jn.exports,Mn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"quiz"},[n("ContentNode",{staticClass:"title",attrs:{content:e.title}}),e.content?n("ContentNode",{staticClass:"question-content",attrs:{content:e.content}}):e._e(),n("div",{staticClass:"choices"},[e._l(e.choices,(function(t,i){return n("label",{key:i,class:e.choiceClasses[i]},[n(e.getIconComponent(i),{tag:"component",staticClass:"choice-icon"}),n("input",{directives:[{name:"model",rawName:"v-model",value:e.selectedIndex,expression:"selectedIndex"}],attrs:{type:"radio",name:"assessment"},domProps:{value:i,checked:e._q(e.selectedIndex,i)},on:{change:function(t){e.selectedIndex=i}}}),n("ContentNode",{staticClass:"question",attrs:{content:t.content}}),e.userChoices[i].checked?[n("ContentNode",{staticClass:"answer",attrs:{content:t.justification}}),t.reaction?n("p",{staticClass:"answer"},[e._v(e._s(t.reaction))]):e._e()]:e._e()],2)})),n("div",{staticClass:"visuallyhidden",attrs:{"aria-live":"assertive"}},[e._v(" "+e._s(e.ariaLiveText)+" ")])],2),n("div",{staticClass:"controls"},[n("ButtonLink",{staticClass:"check",attrs:{disabled:null===e.selectedIndex||e.showNextQuestion},nativeOn:{click:function(t){return e.submit.apply(null,arguments)}}},[e._v(" Submit ")]),e.isLast?n("ButtonLink",{staticClass:"results",attrs:{disabled:!e.showNextQuestion},nativeOn:{click:function(t){return e.seeResults.apply(null,arguments)}}},[e._v(" Next ")]):n("ButtonLink",{staticClass:"next",attrs:{disabled:!e.showNextQuestion},nativeOn:{click:function(t){return e.advance.apply(null,arguments)}}},[e._v(" Next Question ")])],1)],1)},Bn=[],En=n("76ab"),Ln=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"reset-circle-icon",attrs:{viewBox:"0 0 14 14",themeId:"reset-circle"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5v0c0-3.59 2.91-6.5 6.5-6.5v0zM7 1.5c-3.038 0-5.5 2.462-5.5 5.5s2.462 5.5 5.5 5.5c3.038 0 5.5-2.462 5.5-5.5v0c0-3.038-2.462-5.5-5.5-5.5v0z"}}),n("path",{attrs:{d:"M3.828 4.539l0.707-0.707 5.657 5.657-0.707 0.707-5.657-5.657z"}}),n("path",{attrs:{d:"M3.828 9.489l5.657-5.657 0.707 0.707-5.657 5.657-0.707-0.707z"}})])},Fn=[],Vn={name:"ResetCircleIcon",components:{SVGIcon:b["a"]}},Un=Vn,Hn=Object(w["a"])(Un,Ln,Fn,!1,null,null,null),zn=Hn.exports,Gn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"check-circle-icon",attrs:{viewBox:"0 0 14 14",themeId:"check-circle"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5v0c0-3.59 2.91-6.5 6.5-6.5v0zM7 1.5c-3.038 0-5.5 2.462-5.5 5.5s2.462 5.5 5.5 5.5c3.038 0 5.5-2.462 5.5-5.5v0c0-3.038-2.462-5.5-5.5-5.5v0z"}}),n("path",{attrs:{d:"M9.626 3.719l0.866 0.5-3.5 6.062-3.464-2 0.5-0.866 2.6 1.5z"}})])},Wn=[],Qn={name:"CheckCircleIcon",components:{SVGIcon:b["a"]}},Kn=Qn,Xn=Object(w["a"])(Kn,Gn,Wn,!1,null,null,null),Jn=Xn.exports,Yn={name:"Quiz",components:{CheckCircleIcon:Jn,ResetCircleIcon:zn,ContentNode:Oe["default"],ButtonLink:En["a"]},props:{content:{type:Array,required:!1},choices:{type:Array,required:!0},isLast:{type:Boolean,default:!1},title:{type:Array,required:!0}},data(){return{userChoices:this.choices.map(()=>({checked:!1})),selectedIndex:null,checkedIndex:null}},computed:{correctChoices(){return this.choices.reduce((e,t,n)=>t.isCorrect?e.add(n):e,new Set)},choiceClasses(){return this.userChoices.map((e,t)=>({choice:!0,active:this.selectedIndex===t,disabled:e.checked||this.showNextQuestion,correct:e.checked&&this.choices[t].isCorrect,incorrect:e.checked&&!this.choices[t].isCorrect}))},showNextQuestion(){return Array.from(this.correctChoices).every(e=>this.userChoices[e].checked)},ariaLiveText:({checkedIndex:e,choices:t})=>{if(null===e)return"";const{isCorrect:n}=t[e];return`Answer number ${e+1} is ${n?"correct":"incorrect"}`}},methods:{getIconComponent(e){const t=this.userChoices[e];if(t&&t.checked)return this.choices[e].isCorrect?Jn:zn},submit(){this.$set(this.userChoices,this.selectedIndex,{checked:!0}),this.checkedIndex=this.selectedIndex,this.$emit("submit")},advance(){this.$emit("advance")},seeResults(){this.$emit("see-results")}}},Zn=Yn,ei=(n("5c7b"),Object(w["a"])(Zn,Mn,Bn,!1,null,"455ff2a6",null)),ti=ei.exports;const ni=12,ii="Great job, you've answered all the questions for this tutorial.";var si={name:"Assessments",constants:{SuccessMessage:ii},components:{LinkableSection:Ze,Quiz:ti,Progress:Rn,Row:Ct["a"],HeaderColumn:{render(e){return e(wt["a"],{props:{isCentered:{large:!0},span:{large:10}}},this.$slots.default)}},MainColumn:{render(e){return e(wt["a"],{props:{isCentered:{large:!0},span:{large:10,medium:10,small:12}}},this.$slots.default)}}},props:{assessments:{type:Array,required:!0},anchor:{type:String,required:!0}},inject:["navigationBarHeight"],data(){return{activeIndex:0,completed:!1,SuccessMessage:ii}},computed:{activeAssessment(){return this.assessments[this.activeIndex]},isLast(){return this.activeIndex===this.assessments.length-1},progress(){return{index:this.activeIndex+1,total:this.assessments.length}},title(){return"Check Your Understanding"}},methods:{scrollTo(e,t=0){e.scrollIntoView(!0),window.scrollBy(0,-this.navigationBarHeight-t)},onSubmit(){this.$nextTick(()=>{this.scrollTo(this.$refs.progress.$el,ni)})},onAdvance(){this.activeIndex+=1,this.$nextTick(()=>{this.scrollTo(this.$refs.progress.$el,ni)})},onSeeResults(){this.completed=!0,this.$nextTick(()=>{this.scrollTo(this.$refs.assessments.$el,ni)})}}},ri=si,oi=(n("53b5"),Object(w["a"])(ri,On,Nn,!1,null,"c1de71de",null)),ai=oi.exports,ci={name:"Assessments",components:{TutorialAssessments:ai},props:ai.props},li=ci,ui=(n("f264"),Object(w["a"])(li,In,An,!1,null,"3c94366b",null)),di=ui.exports;const pi={articleBody:"articleBody",callToAction:"callToAction",hero:"hero",assessments:"assessments"};var hi={name:"Article",components:{NavigationBar:be,PortalTarget:h["PortalTarget"]},mixins:[ye["a"]],inject:{isTargetIDE:{default:!1},store:{default(){return{reset(){}}}}},props:{hierarchy:{type:Object,required:!0},metadata:{type:Object,required:!0},references:{type:Object,required:!0},sections:{type:Array,required:!0,validator:e=>e.every(({kind:e})=>Object.prototype.hasOwnProperty.call(pi,e))},identifierUrl:{type:String,required:!0}},computed:{heroSection(){return this.sections.find(this.isHero)},heroTitle(){return(this.heroSection||{}).title},pageTitle(){return this.heroTitle?`${this.heroTitle} — ${this.metadata.category} Tutorials`:void 0},pageDescription:({heroSection:e,extractFirstParagraphText:t})=>e?t(e.content):null},methods:{componentFor(e){const{kind:t}=e;return{[pi.articleBody]:ht,[pi.callToAction]:Dt,[pi.hero]:Tn,[pi.assessments]:di}[t]},isHero(e){return e.kind===pi.hero},propsFor(e){const{abstract:t,action:n,anchor:i,assessments:s,backgroundImage:r,chapter:o,content:a,estimatedTimeInMinutes:c,kind:l,media:u,projectFiles:d,title:p,video:h,xcodeRequirement:m}=e;return{[pi.articleBody]:{content:a},[pi.callToAction]:{abstract:t,action:n,media:u,title:p},[pi.hero]:{backgroundImage:r,chapter:o,content:a,estimatedTimeInMinutes:c,projectFiles:d,title:p,video:h,xcodeRequirement:m},[pi.assessments]:{anchor:i,assessments:s}}[l]}},provide(){return{references:this.references}},created(){this.store.reset()},SectionKind:pi},mi=hi,fi=(n("3a78"),Object(w["a"])(mi,d,p,!1,null,"d9f204d0",null)),vi=fi.exports,gi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"tutorial"},[e.isTargetIDE?e._e():n("NavigationBar",{attrs:{technology:e.metadata.category,chapters:e.hierarchy.modules,topic:e.tutorialTitle||"",rootReference:e.hierarchy.reference,identifierUrl:e.identifierUrl}}),n("main",{attrs:{id:"main",role:"main",tabindex:"0"}},[e._l(e.sections,(function(e,t){return n("Section",{key:t,attrs:{section:e}})})),n("BreakpointEmitter",{on:{change:e.handleBreakpointChange}})],2),n("PortalTarget",{attrs:{name:"modal-destination",multiple:""}})],1)},bi=[],yi=n("66c9"),Ci=n("7689"),wi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sections"},e._l(e.tasks,(function(t,i){return n("Section",e._b({key:i,attrs:{id:t.anchor,sectionNumber:i+1,isRuntimePreviewVisible:e.isRuntimePreviewVisible},on:{"runtime-preview-toggle":e.onRuntimePreviewToggle}},"Section",t,!1))})),1)},_i=[],ki=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("LinkableSection",{staticClass:"section",attrs:{anchor:e.anchor,title:e.introProps.title}},[n("Intro",e._b({},"Intro",e.introProps,!1)),e.stepsSection.length>0?n("Steps",{attrs:{content:e.stepsSection,isRuntimePreviewVisible:e.isRuntimePreviewVisible,sectionNumber:e.sectionNumber},on:{"runtime-preview-toggle":e.onRuntimePreviewToggle}}):e._e()],1)},Si=[],xi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"intro-container"},[n("Row",{class:["intro","intro-"+e.sectionNumber,{ide:e.isTargetIDE}]},[n("Column",{staticClass:"left"},[n("Headline",{attrs:{level:2}},[n("router-link",{attrs:{slot:"eyebrow",to:e.sectionLink},slot:"eyebrow"},[e._v(" Section "+e._s(e.sectionNumber)+" ")]),e._v(" "+e._s(e.title)+" ")],1),n("ContentNode",{attrs:{content:e.content}})],1),n("Column",{staticClass:"right"},[n("div",{staticClass:"media"},[e.media?n("Asset",{attrs:{identifier:e.media,showsReplayButton:!e.isClientMobile,showsVideoControls:e.isClientMobile,videoAutoplays:!e.isClientMobile}}):e._e()],1)])],1),e.expandedSections.length>0?n("ExpandedIntro",{staticClass:"expanded-intro",attrs:{content:e.expandedSections}}):e._e()],1)},Ti=[],Ii={name:"SectionIntro",inject:{isClientMobile:{default:()=>!1},isTargetIDE:{default:()=>!1}},components:{Asset:Te["a"],ContentNode:Oe["default"],ExpandedIntro:lt,Headline:Qt,Row:Ct["a"],Column:{render(e){return e(wt["a"],{props:{span:{large:6,small:12}}},this.$slots.default)}}},props:{sectionAnchor:{type:String,required:!0},content:{type:Array,required:!0},media:{type:String,required:!0},title:{type:String,required:!0},sectionNumber:{type:Number,required:!0},expandedSections:{type:Array,default:()=>[]}},methods:{focus(){this.$emit("focus",this.media)}},computed:{sectionLink(){return{path:this.$route.path,hash:this.sectionAnchor,query:this.$route.query}}}},Ai=Ii,Oi=(n("4896"),Object(w["a"])(Ai,xi,Ti,!1,null,"54daa228",null)),Ni=Oi.exports,$i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"steps"},[n("div",{staticClass:"content-container"},e._l(e.contentNodes,(function(t,i){return n(t.component,e._b({key:i,ref:"contentNodes",refInFor:!0,tag:"component",class:e.contentClass(i),attrs:{currentIndex:e.activeStep}},"component",t.props,!1))})),1),e.isBreakpointSmall?e._e():n("BackgroundTheme",{staticClass:"asset-container",class:e.assetContainerClasses},[n("transition",{attrs:{name:"fade"}},[e.visibleAsset.media?n("div",{key:e.visibleAsset.media,class:["asset-wrapper",{ide:e.isTargetIDE}]},[n("Asset",{ref:"asset",staticClass:"step-asset",attrs:{identifier:e.visibleAsset.media,showsReplayButton:"",showsVideoControls:!1}})],1):e._e(),e.visibleAsset.code?n("CodePreview",{attrs:{code:e.visibleAsset.code,preview:e.visibleAsset.runtimePreview,isRuntimePreviewVisible:e.isRuntimePreviewVisible},on:{"runtime-preview-toggle":e.onRuntimePreviewToggle}},[e.visibleAsset.runtimePreview?n("transition",{attrs:{name:"fade"}},[n("Asset",{key:e.visibleAsset.runtimePreview,attrs:{identifier:e.visibleAsset.runtimePreview}})],1):e._e()],1):e._e()],1)],1)],1)},Pi=[],qi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["code-preview",{ide:e.isTargetIDE}]},[n("CodeTheme",[e.code?n("CodeListing",e._b({attrs:{showLineNumbers:""}},"CodeListing",e.codeProps,!1)):e._e()],1),n("div",{staticClass:"runtime-preview",class:e.runtimePreviewClasses,style:e.previewStyles},[n("div",{staticClass:"runtimve-preview__container"},[n("button",{staticClass:"header",attrs:{disabled:!e.hasRuntimePreview,title:e.runtimePreviewTitle},on:{click:e.togglePreview}},[n("span",{staticClass:"runtime-preview-label",attrs:{"aria-label":e.textAriaLabel}},[e._v(e._s(e.togglePreviewText))]),n("DiagonalArrowIcon",{staticClass:"icon-inline preview-icon",class:[e.shouldDisplayHideLabel?"preview-hide":"preview-show"]})],1),n("transition",{on:{leave:e.handleLeave}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.shouldDisplayHideLabel,expression:"shouldDisplayHideLabel"}],staticClass:"runtime-preview-asset"},[e._t("default")],2)])],1)])],1)},Di=[],ji=n("7b69"),Ri=n("6667"),Mi=n("8590");const{BreakpointName:Bi}=o["a"].constants;function Ei({width:e,height:t},n=1){const i=400,s=e<=i?1.75:3;return{width:e/(s/n),height:t/(s/n)}}var Li={name:"CodePreview",inject:["references","isTargetIDE","store"],components:{DiagonalArrowIcon:Ri["a"],CodeListing:ji["a"],CodeTheme:Mi["a"]},props:{code:{type:String,required:!0},preview:{type:String,required:!1},isRuntimePreviewVisible:{type:Boolean,required:!0}},data(){return{tutorialState:this.store.state}},computed:{currentBreakpoint(){return this.tutorialState.breakpoint},hasRuntimePreview(){return!!this.preview},previewAssetSize(){const e=this.hasRuntimePreview?this.references[this.preview]:{},t=(e.variants||[{}])[0]||{},n={width:900};let i=t.size||{};i.width||i.height||(i=n);const s=this.currentBreakpoint===Bi.medium?.8:1;return Ei(i,s)},previewSize(){const e={width:102};return this.shouldDisplayHideLabel&&this.previewAssetSize?{width:this.previewAssetSize.width}:e},previewStyles(){const{width:e}=this.previewSize;return{width:e+"px"}},codeProps(){return this.references[this.code]},runtimePreviewClasses(){return{collapsed:!this.shouldDisplayHideLabel,disabled:!this.hasRuntimePreview,"runtime-preview-ide":this.isTargetIDE}},shouldDisplayHideLabel(){return this.hasRuntimePreview&&this.isRuntimePreviewVisible},runtimePreviewTitle(){return this.hasRuntimePreview?null:"No preview available for this step."},togglePreviewText(){return this.hasRuntimePreview?"Preview":"No Preview"},textAriaLabel:({shouldDisplayHideLabel:e,togglePreviewText:t})=>`${t}, ${e?"Hide":"Show"}`},methods:{handleLeave(e,t){setTimeout(t,200)},togglePreview(){this.hasRuntimePreview&&this.$emit("runtime-preview-toggle",!this.isRuntimePreviewVisible)}}},Fi=Li,Vi=(n("5053"),Object(w["a"])(Fi,qi,Di,!1,null,"9acc0234",null)),Ui=Vi.exports,Hi=n("3908"),zi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{style:e.backgroundStyle},[e._t("default")],2)},Gi=[],Wi={name:"BackgroundTheme",data(){return{codeThemeState:yi["a"].state}},computed:{backgroundStyle(){const{codeColors:e}=this.codeThemeState;return e?{"--background":e.background}:null}}},Qi=Wi,Ki=Object(w["a"])(Qi,zi,Gi,!1,null,null,null),Xi=Ki.exports,Ji=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["step-container","step-"+e.stepNumber]},[n("div",{ref:"step",staticClass:"step",class:{focused:e.isActive},attrs:{"data-index":e.index}},[n("p",{staticClass:"step-label"},[e._v("Step "+e._s(e.stepNumber))]),n("ContentNode",{attrs:{content:e.content}}),e.caption&&e.caption.length>0?n("ContentNode",{staticClass:"caption",attrs:{content:e.caption}}):e._e()],1),e.isBreakpointSmall||!e.isTargetIDE?n("div",{staticClass:"media-container"},[e.media?n("Asset",{attrs:{identifier:e.media,showsReplayButton:!e.isClientMobile,showsVideoControls:e.isClientMobile,videoAutoplays:!e.isClientMobile}}):e._e(),e.code?n("MobileCodePreview",{attrs:{code:e.code}},[e.runtimePreview?n("Asset",{staticClass:"preview",attrs:{identifier:e.runtimePreview}}):e._e()],1):e._e()],1):e._e()])},Yi=[],Zi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("BackgroundTheme",{staticClass:"mobile-code-preview"},[e.code?n("GenericModal",{staticClass:"full-code-listing-modal",attrs:{theme:e.isTargetIDE?"code":"light",codeBackgroundColorOverride:e.modalBackgroundColor,isFullscreen:"",visible:e.fullCodeIsVisible},on:{"update:visible":function(t){e.fullCodeIsVisible=t}}},[n("div",{staticClass:"full-code-listing-modal-content"},[n("CodeTheme",[n("CodeListing",e._b({staticClass:"full-code-listing",attrs:{showLineNumbers:""}},"CodeListing",e.codeProps,!1))],1)],1)]):e._e(),n("CodeTheme",[e.code?n("MobileCodeListing",e._b({attrs:{showLineNumbers:""},on:{"file-name-click":e.toggleFullCode}},"MobileCodeListing",e.codeProps,!1)):e._e()],1),n("CodeTheme",{staticClass:"preview-toggle-container"},[n("PreviewToggle",{attrs:{isActionable:!!e.$slots.default},on:{click:e.togglePreview}})],1),e.$slots.default?n("GenericModal",{staticClass:"runtime-preview-modal",attrs:{theme:e.isTargetIDE?"dynamic":"light",isFullscreen:"",visible:e.previewIsVisible},on:{"update:visible":function(t){e.previewIsVisible=t}}},[n("div",{staticClass:"runtime-preview-modal-content"},[n("span",{staticClass:"runtime-preview-label"},[e._v("Preview")]),e._t("default")],2)]):e._e()],1)},es=[],ts=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"code-listing-preview",attrs:{"data-syntax":e.syntax}},[n("CodeListing",{attrs:{fileName:e.fileName,syntax:e.syntax,fileType:e.fileType,content:e.previewedLines,startLineNumber:e.displayedRange.start,highlights:e.highlights,showLineNumbers:"",isFileNameActionable:""},on:{"file-name-click":function(t){return e.$emit("file-name-click")}}})],1)},ns=[],is={name:"MobileCodeListing",components:{CodeListing:ji["a"]},props:{fileName:String,syntax:String,fileType:String,content:{type:Array,required:!0},highlights:{type:Array,default:()=>[]}},computed:{highlightedLineNumbers(){return new Set(this.highlights.map(({line:e})=>e))},firstHighlightRange(){if(0===this.highlightedLineNumbers.size)return{start:1,end:this.content.length};const e=Math.min(...this.highlightedLineNumbers.values());let t=e;while(this.highlightedLineNumbers.has(t+1))t+=1;return{start:e,end:t}},displayedRange(){const e=this.firstHighlightRange,t=e.start-2<1?1:e.start-2,n=e.end+3>=this.content.length+1?this.content.length+1:e.end+3;return{start:t,end:n}},previewedLines(){return this.content.slice(this.displayedRange.start-1,this.displayedRange.end-1)}}},ss=is,rs=(n("fae5"),Object(w["a"])(ss,ts,ns,!1,null,"5ad4e037",null)),os=rs.exports,as=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"toggle-preview"},[e.isActionable?n("a",{staticClass:"toggle-text",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.$emit("click")}}},[e._v(" Preview "),n("InlinePlusCircleIcon",{staticClass:"toggle-icon icon-inline"})],1):n("span",{staticClass:"toggle-text"},[e._v(" No preview ")])])},cs=[],ls=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"inline-plus-circle-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-plus-circle"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5v0c0-3.59 2.91-6.5 6.5-6.5v0zM7 1.5c-3.038 0-5.5 2.462-5.5 5.5s2.462 5.5 5.5 5.5c3.038 0 5.5-2.462 5.5-5.5v0c0-3.038-2.462-5.5-5.5-5.5v0z"}}),n("path",{attrs:{d:"M4 6.52h6v1h-6v-1z"}}),n("path",{attrs:{d:"M6.5 4.010h1v6h-1v-6z"}})])},us=[],ds={name:"InlinePlusCircleIcon",components:{SVGIcon:b["a"]}},ps=ds,hs=Object(w["a"])(ps,ls,us,!1,null,null,null),ms=hs.exports,fs={name:"MobileCodePreviewToggle",components:{InlinePlusCircleIcon:ms},props:{isActionable:{type:Boolean,required:!0}}},vs=fs,gs=(n("e97b"),Object(w["a"])(vs,as,cs,!1,null,"d0709828",null)),bs=gs.exports,ys={name:"MobileCodePreview",inject:["references","isTargetIDE","store"],components:{GenericModal:Kt["a"],CodeListing:ji["a"],MobileCodeListing:os,PreviewToggle:bs,CodeTheme:Mi["a"],BackgroundTheme:Xi},props:{code:{type:String,required:!0}},computed:{codeProps(){return this.references[this.code]},modalBackgroundColor(){const{codeColors:e}=this.store.state;return e?e.background:null}},data(){return{previewIsVisible:!1,fullCodeIsVisible:!1}},methods:{togglePreview(){this.previewIsVisible=!this.previewIsVisible},toggleFullCode(){this.fullCodeIsVisible=!this.fullCodeIsVisible}}},Cs=ys,ws=(n("4d5c"),Object(w["a"])(Cs,Zi,es,!1,null,"3bee1128",null)),_s=ws.exports;const{BreakpointName:ks}=o["a"].constants;var Ss={name:"Step",components:{Asset:Te["a"],MobileCodePreview:_s,ContentNode:Oe["default"]},inject:["isTargetIDE","isClientMobile","store"],props:{code:{type:String,required:!1},content:{type:Array,required:!0},caption:{type:Array,required:!1},media:{type:String,required:!1},runtimePreview:{type:String,required:!1},sectionNumber:{type:Number,required:!0},stepNumber:{type:Number,required:!0},numberOfSteps:{type:Number,required:!0},index:{type:Number,required:!0},currentIndex:{type:Number,required:!0}},data(){return{tutorialState:this.store.state}},computed:{isBreakpointSmall(){return this.tutorialState.breakpoint===ks.small},isActive:({index:e,currentIndex:t})=>e===t}},xs=Ss,Ts=(n("52fd"),Object(w["a"])(xs,Ji,Yi,!1,null,"295730d0",null)),Is=Ts.exports;const{BreakpointName:As}=o["a"].constants,{IntersectionDirections:Os}=Ke["a"].constants,Ns="-35% 0% -65% 0%";var $s={name:"SectionSteps",components:{ContentNode:Oe["default"],Step:Is,Asset:Te["a"],CodePreview:Ui,BackgroundTheme:Xi},mixins:[Ke["a"]],constants:{IntersectionMargins:Ns},inject:["isTargetIDE","store"],data(){const e=this.content.findIndex(this.isStepNode),{code:t,media:n,runtimePreview:i}=this.content[e]||{};return{tutorialState:this.store.state,visibleAsset:{media:n,code:t,runtimePreview:i},activeStep:e}},computed:{assetContainerClasses(){return{"for-step-code":!!this.visibleAsset.code,ide:this.isTargetIDE}},numberOfSteps(){return this.content.filter(this.isStepNode).length},contentNodes(){return this.content.reduce(({stepCounter:e,nodes:t},n,i)=>{const{type:s,...r}=n,o=this.isStepNode(n),a=o?e+1:e;return o?{stepCounter:e+1,nodes:t.concat({component:Is,type:s,props:{...r,stepNumber:a,index:i,numberOfSteps:this.numberOfSteps,sectionNumber:this.sectionNumber}})}:{stepCounter:e,nodes:t.concat({component:Oe["default"],type:s,props:{content:[n]}})}},{stepCounter:0,nodes:[]}).nodes},isBreakpointSmall(){return this.tutorialState.breakpoint===As.small},stepNodes:({contentNodes:e,isStepNode:t})=>e.filter(t),intersectionRootMargin:()=>Ns},async mounted(){await Object(Hi["b"])(8),this.findClosestStepNode()},methods:{isStepNode({type:e}){return"step"===e},contentClass(e){return{["interstitial interstitial-"+(e+1)]:!this.isStepNode(this.content[e])}},onReverseIntoLastStep(){const{asset:e}=this.$refs;if(e){const t=e.$el.querySelector("video");t&&(t.currentTime=0,t.play().catch(()=>{}))}},onFocus(e){const{code:t,media:n,runtimePreview:i}=this.content[e];this.activeStep=e,this.visibleAsset={code:t,media:n,runtimePreview:i}},onRuntimePreviewToggle(e){this.$emit("runtime-preview-toggle",e)},findClosestStepNode(){const e=.333*window.innerHeight;let t=null,n=0;this.stepNodes.forEach(i=>{const{index:s}=i.props,r=this.$refs.contentNodes[s].$refs.step;if(!r)return;const{top:o,bottom:a}=r.getBoundingClientRect(),c=o-e,l=a-e,u=Math.abs(c+l);(0===n||u<=n)&&(n=u,t=s)}),null!==t&&this.onFocus(t)},getIntersectionTargets(){const{stepNodes:e,$refs:t}=this;return e.map(({props:{index:e}})=>t.contentNodes[e].$refs.step)},onIntersect(e){const{target:t,isIntersecting:n}=e;if(!n)return;const i=parseFloat(t.getAttribute("data-index"));this.intersectionScrollDirection===Os.down&&i===this.stepNodes[this.stepNodes.length-1].props.index&&this.onReverseIntoLastStep(),this.onFocus(i)}},props:{content:{type:Array,required:!0},isRuntimePreviewVisible:{type:Boolean,require:!0},sectionNumber:{type:Number,required:!0}}},Ps=$s,qs=(n("00f4"),Object(w["a"])(Ps,$i,Pi,!1,null,"25d30c2c",null)),Ds=qs.exports,js={name:"Section",components:{Intro:Ni,LinkableSection:Ze,Steps:Ds},computed:{introProps(){const[{content:e,media:t},...n]=this.contentSection;return{content:e,expandedSections:n,media:t,sectionAnchor:this.anchor,sectionNumber:this.sectionNumber,title:this.title}}},props:{anchor:{type:String,required:!0},title:{type:String,required:!0},contentSection:{type:Array,required:!0},stepsSection:{type:Array,required:!0},sectionNumber:{type:Number,required:!0},isRuntimePreviewVisible:{type:Boolean,required:!0}},methods:{onRuntimePreviewToggle(e){this.$emit("runtime-preview-toggle",e)}}},Rs=js,Ms=(n("9dc4"),Object(w["a"])(Rs,ki,Si,!1,null,"6b3a0b3a",null)),Bs=Ms.exports,Es={name:"SectionList",components:{Section:Bs},data(){return{isRuntimePreviewVisible:!0}},props:{tasks:{type:Array,required:!0}},methods:{onRuntimePreviewToggle(e){this.isRuntimePreviewVisible=e}}},Ls=Es,Fs=(n("4d07"),Object(w["a"])(Ls,wi,_i,!1,null,"79a75e9e",null)),Vs=Fs.exports;const Us={assessments:ai,hero:_n,tasks:Vs,callToAction:Nt},Hs=new Set(Object.keys(Us)),zs={name:"TutorialSection",render:function(e){const{kind:t,...n}=this.section,i=Us[t];return i?e(i,{props:n}):null},props:{section:{type:Object,required:!0,validator:e=>Hs.has(e.kind)}}};var Gs={name:"Tutorial",mixins:[ye["a"],Ci["a"]],components:{NavigationBar:be,Section:zs,PortalTarget:h["PortalTarget"],BreakpointEmitter:o["a"]},inject:["isTargetIDE","store"],computed:{heroSection(){return this.sections.find(({kind:e})=>"hero"===e)},tutorialTitle(){return(this.heroSection||{}).title},pageTitle(){return this.tutorialTitle?`${this.tutorialTitle} — ${this.metadata.category} Tutorials`:void 0},pageDescription:({heroSection:e,extractFirstParagraphText:t})=>e?t(e.content):null},props:{sections:{type:Array,required:!0},references:{type:Object,required:!0},hierarchy:{type:Object,required:!0},metadata:{type:Object,required:!0},identifierUrl:{type:String,required:!0}},methods:{handleBreakpointChange(e){this.store.updateBreakpoint(e)},handleCodeColorsChange(e){yi["a"].updateCodeColors(e)}},created(){this.store.reset()},mounted(){this.$bridge.on("codeColors",this.handleCodeColorsChange),this.$bridge.send({type:"requestCodeColors"})},provide(){return{references:this.references,isClientMobile:this.isClientMobile}},beforeDestroy(){this.$bridge.off("codeColors",this.handleCodeColorsChange)}},Ws=Gs,Qs=(n("1a91"),Object(w["a"])(Ws,gi,bi,!1,null,"0f871b08",null)),Ks=Qs.exports,Xs=n("0caf"),Js=n("146e");const Ys={article:"article",tutorial:"project"};var Zs={name:"Topic",inject:{isTargetIDE:{default:!1}},mixins:[Xs["a"],Js["a"]],data(){return{topicData:null}},computed:{navigationBarHeight(){return this.isTargetIDE?0:52},store(){return u},hierarchy(){const{hierarchy:e={}}=this.topicData,{technologyNavigation:t=["overview","tutorials","resources"]}=e||{};return{...e,technologyNavigation:t}},topicKey:({$route:e,topicData:t})=>[e.path,t.identifier.interfaceLanguage].join()},beforeRouteEnter(e,t,n){e.meta.skipFetchingData?n(e=>e.newContentMounted()):Object(r["b"])(e,t,n).then(e=>n(t=>{t.topicData=e})).catch(n)},beforeRouteUpdate(e,t,n){Object(r["d"])(e,t)?Object(r["b"])(e,t,n).then(e=>{this.topicData=e,n()}).catch(n):n()},created(){this.store.reset()},mounted(){this.$bridge.on("contentUpdate",this.handleContentUpdateFromBridge)},beforeDestroy(){this.$bridge.off("contentUpdate",this.handleContentUpdateFromBridge)},methods:{componentFor(e){const{kind:t}=e;return{[Ys.article]:vi,[Ys.tutorial]:Ks}[t]},propsFor(e){const{hierarchy:t,kind:n,metadata:i,references:s,sections:r,identifier:o}=e;return{[Ys.article]:{hierarchy:t,metadata:i,references:s,sections:r,identifierUrl:o.url},[Ys.tutorial]:{hierarchy:t,metadata:i,references:s,sections:r,identifierUrl:o.url}}[n]}},provide(){return{navigationBarHeight:this.navigationBarHeight,store:this.store}},watch:{topicData(){this.$nextTick(()=>{this.newContentMounted()})}}},er=Zs,tr=Object(w["a"])(er,i,s,!1,null,null,null);t["default"]=tr.exports},"323a":function(e,t,n){"use strict";n("0b61")},"32b1":function(e,t,n){},"3a78":function(e,t,n){"use strict";n("90d1")},"3e1b":function(e,t,n){"use strict";n("c5c1")},4896:function(e,t,n){"use strict";n("fa9c")},"4b4a":function(e,t,n){},"4d07":function(e,t,n){"use strict";n("b52e")},"4d5c":function(e,t,n){"use strict";n("7730")},"4eea":function(e,t,n){},5053:function(e,t,n){"use strict";n("61a8")},"51d0":function(e,t,n){},5237:function(e,t,n){"use strict";n("4b4a")},"525c":function(e,t,n){},"52fd":function(e,t,n){"use strict";n("cda1")},5356:function(e,t,n){"use strict";n("7e3c")},"53b5":function(e,t,n){"use strict";n("a662")},5913:function(e,t,n){},5952:function(e,t,n){"use strict";n("14b7")},"5c7b":function(e,t,n){"use strict";n("311e")},"61a8":function(e,t,n){},"63a8":function(e,t,n){},"653a":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("router-link",{staticClass:"nav-title-content",attrs:{to:e.to}},[n("span",{staticClass:"title"},[e._t("default")],2),n("span",{staticClass:"subhead"},[e._v(" "),e._t("subhead")],2)])},s=[],r={name:"NavTitleContainer",props:{to:{type:[String,Object],required:!0}}},o=r,a=(n("f1e6"),n("2877")),c=Object(a["a"])(o,i,s,!1,null,"854b4dd6",null);t["a"]=c.exports},7096:function(e,t,n){},7730:function(e,t,n){},"7b17":function(e,t,n){},"7e3c":function(e,t,n){},"80f7":function(e,t,n){"use strict";n("4eea")},8782:function(e,t,n){"use strict";n("51d0")},"90d1":function(e,t,n){},"9dc4":function(e,t,n){"use strict";n("fe9d")},a0d4:function(e,t,n){},a662:function(e,t,n){},a95e:function(e,t,n){},aece:function(e,t,n){"use strict";n("c0df")},b52e:function(e,t,n){},c0df:function(e,t,n){},c5c1:function(e,t,n){},cb8d:function(e,t,n){"use strict";n("0466")},cda1:function(e,t,n){},d86f:function(e,t,n){},db87:function(e,t,n){},dbd9:function(e,t,n){},dbeb:function(e,t,n){},de60:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SVGIcon",{staticClass:"download-icon",attrs:{viewBox:"0 0 14 14",themeId:"download"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5s2.91-6.5 6.5-6.5zM7 1.5c-3.038 0-5.5 2.462-5.5 5.5s2.462 5.5 5.5 5.5c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5z"}}),n("path",{attrs:{d:"M7.51 2.964l-0.001 5.431 1.308-2.041 0.842 0.539-2.664 4.162-2.633-4.164 0.845-0.534 1.303 2.059 0.001-5.452z"}})])},s=[],r=n("be08"),o={name:"DownloadIcon",components:{SVGIcon:r["a"]}},a=o,c=n("2877"),l=Object(c["a"])(a,i,s,!1,null,null,null);t["a"]=l.exports},e4e4:function(e,t,n){"use strict";n("f767")},e688:function(e,t,n){"use strict";n("5913")},e84c:function(e,t,n){"use strict";n("d86f")},e97b:function(e,t,n){"use strict";n("dbd9")},e9b0:function(e,t,n){"use strict";n("ee09")},ed71:function(e,t,n){"use strict";n("7096")},ee09:function(e,t,n){},f1e6:function(e,t,n){"use strict";n("a0d4")},f264:function(e,t,n){"use strict";n("63a8")},f767:function(e,t,n){},fa9c:function(e,t,n){},fae5:function(e,t,n){"use strict";n("32b1")},fe9d:function(e,t,n){}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/js/tutorials-overview.2cadc732.js b/XCoordinator.doccarchive/js/tutorials-overview.2cadc732.js new file mode 100644 index 00000000..5c3bf68a --- /dev/null +++ b/XCoordinator.doccarchive/js/tutorials-overview.2cadc732.js @@ -0,0 +1,10 @@ +/*! + * This source file is part of the Swift.org open source project + * + * Copyright (c) 2021 Apple Inc. and the Swift project authors + * Licensed under Apache License v2.0 with Runtime Library Exception + * + * See https://swift.org/LICENSE.txt for license information + * See https://swift.org/CONTRIBUTORS.txt for Swift project authors + */ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["tutorials-overview"],{"032c":function(t,e,n){"use strict";n("9b79")},"0431":function(t,e,n){"use strict";n("43e0")},"095b":function(t,e,n){"use strict";n("3601")},"17d2":function(t,e,n){},"1a3b":function(t,e,n){},"1cc5":function(t,e,n){"use strict";n("5780")},"202a":function(t,e,n){"use strict";n("5899")},"2c95":function(t,e,n){},3233:function(t,e,n){"use strict";n("8d8f")},3601:function(t,e,n){},"43e0":function(t,e,n){},"441c":function(t,e,n){},"521e":function(t,e,n){"use strict";n("1a3b")},5668:function(t,e,n){"use strict";n("82d9")},5780:function(t,e,n){},5899:function(t,e,n){},6211:function(t,e,n){"use strict";n("75f3")},"653a":function(t,e,n){"use strict";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("router-link",{staticClass:"nav-title-content",attrs:{to:t.to}},[n("span",{staticClass:"title"},[t._t("default")],2),n("span",{staticClass:"subhead"},[t._v(" "),t._t("subhead")],2)])},a=[],s={name:"NavTitleContainer",props:{to:{type:[String,Object],required:!0}}},o=s,r=(n("f1e6"),n("2877")),c=Object(r["a"])(o,i,a,!1,null,"854b4dd6",null);e["a"]=c.exports},6899:function(t,e,n){"use strict";n("441c")},"6fb0":function(t,e,n){"use strict";n("eec8")},"75f3":function(t,e,n){},"82d9":function(t,e,n){},"8d8f":function(t,e,n){},"8f86":function(t,e,n){},"97b7":function(t,e,n){"use strict";n("c1e7")},"9b79":function(t,e,n){},a0d4:function(t,e,n){},aaa7:function(t,e,n){},b185:function(t,e,n){},b347:function(t,e,n){"use strict";n("aaa7")},c1e7:function(t,e,n){},ca4e:function(t,e,n){"use strict";n("17d2")},d647:function(t,e,n){"use strict";n("b185")},de60:function(t,e,n){"use strict";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("SVGIcon",{staticClass:"download-icon",attrs:{viewBox:"0 0 14 14",themeId:"download"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5s2.91-6.5 6.5-6.5zM7 1.5c-3.038 0-5.5 2.462-5.5 5.5s2.462 5.5 5.5 5.5c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5z"}}),n("path",{attrs:{d:"M7.51 2.964l-0.001 5.431 1.308-2.041 0.842 0.539-2.664 4.162-2.633-4.164 0.845-0.534 1.303 2.059 0.001-5.452z"}})])},a=[],s=n("be08"),o={name:"DownloadIcon",components:{SVGIcon:s["a"]}},r=o,c=n("2877"),l=Object(c["a"])(r,i,a,!1,null,null,null);e["a"]=l.exports},eec8:function(t,e,n){},f025:function(t,e,n){"use strict";n.r(e);var i,a,s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.topicData?n("Overview",t._b({key:t.topicKey},"Overview",t.overviewProps,!1)):t._e()},o=[],r=n("25a9"),c=n("0caf"),l=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"tutorials-overview"},[t.isTargetIDE?t._e():n("Nav",{staticClass:"theme-dark",attrs:{sections:t.otherSections}},[t._v(" "+t._s(t.title)+" ")]),n("main",{staticClass:"main",attrs:{id:"main",role:"main",tabindex:"0"}},[n("div",{staticClass:"radial-gradient"},[t._t("above-hero"),t.heroSection?n("Hero",{attrs:{action:t.heroSection.action,content:t.heroSection.content,estimatedTime:t.metadata.estimatedTime,image:t.heroSection.image,title:t.heroSection.title}}):t._e()],2),t.otherSections.length>0?n("LearningPath",{attrs:{sections:t.otherSections}}):t._e()],1)],1)},u=[],m={state:{activeTutorialLink:null,activeVolume:null},reset(){this.state.activeTutorialLink=null,this.state.activeVolume=null},setActiveSidebarLink(t){this.state.activeTutorialLink=t},setActiveVolume(t){this.state.activeVolume=t}},d=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("NavBase",[n("NavTitleContainer",{attrs:{to:t.buildUrl(t.$route.path,t.$route.query)}},[n("template",{slot:"default"},[t._t("default")],2),n("template",{slot:"subhead"},[t._v("Tutorials")])],2),n("template",{slot:"menu-items"},[n("NavMenuItemBase",{staticClass:"in-page-navigation"},[n("TutorialsNavigation",{attrs:{sections:t.sections}})],1),t._t("menu-items")],2)],2)},p=[],h=n("cbcf"),v=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("nav",{staticClass:"tutorials-navigation"},[n("TutorialsNavigationList",t._l(t.sections,(function(e,i){return n("li",{key:e.name+"_"+i,class:t.sectionClasses(e)},[t.isVolume(e)?n(t.componentForVolume(e),t._b({tag:"component",on:{"select-menu":t.onSelectMenu,"deselect-menu":t.onDeselectMenu}},"component",t.propsForVolume(e),!1),t._l(e.chapters,(function(e){return n("li",{key:e.name},[n("TutorialsNavigationLink",[t._v(" "+t._s(e.name)+" ")])],1)})),0):t.isResources(e)?n("TutorialsNavigationLink",[t._v(" Resources ")]):t._e()],1)})),0)],1)},f=[],b=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("router-link",{staticClass:"tutorials-navigation-link",class:{active:t.active},attrs:{to:t.fragment},nativeOn:{click:function(e){return t.handleFocusAndScroll(t.fragment.hash)}}},[t._t("default")],2)},g=[],_=n("002d"),C=n("8a61"),y={name:"TutorialsNavigationLink",mixins:[C["a"]],inject:{store:{default:()=>({state:{}})}},data(){return{state:this.store.state}},computed:{active:({state:{activeTutorialLink:t},text:e})=>e===t,fragment:({text:t,$route:e})=>({hash:Object(_["a"])(t),query:e.query}),text:({$slots:{default:[{text:t}]}})=>t.trim()}},T=y,S=(n("6fb0"),n("2877")),V=Object(S["a"])(T,b,g,!1,null,"e9f9b59c",null),k=V.exports,I=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ol",{staticClass:"tutorials-navigation-list",attrs:{role:"list"}},[t._t("default")],2)},x=[],N={name:"TutorialsNavigationList"},O=N,j=(n("202a"),Object(S["a"])(O,I,x,!1,null,"6f2800d1",null)),w=j.exports,A=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"tutorials-navigation-menu",class:{collapsed:t.collapsed}},[n("button",{staticClass:"toggle",attrs:{"aria-expanded":t.collapsed?"false":"true",type:"button"},on:{click:function(e){return e.stopPropagation(),t.onClick.apply(null,arguments)}}},[n("span",{staticClass:"text"},[t._v(t._s(t.title))]),n("InlineCloseIcon",{staticClass:"toggle-icon icon-inline"})],1),n("transition-expand",[t.collapsed?t._e():n("div",{staticClass:"tutorials-navigation-menu-content"},[n("TutorialsNavigationList",{attrs:{"aria-label":"Chapters"}},[t._t("default")],2)],1)])],1)},q=[],E=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("SVGIcon",{staticClass:"inline-close-icon",attrs:{viewBox:"0 0 14 14",themeId:"inline-close"}},[n("path",{attrs:{d:"M11.91 1l1.090 1.090-4.917 4.915 4.906 4.905-1.090 1.090-4.906-4.905-4.892 4.894-1.090-1.090 4.892-4.894-4.903-4.904 1.090-1.090 4.903 4.904z"}})])},$=[],L=n("be08"),M={name:"InlineCloseIcon",components:{SVGIcon:L["a"]}},D=M,F=Object(S["a"])(D,E,$,!1,null,null,null),R=F.exports,B={name:"TransitionExpand",functional:!0,render(t,e){const n={props:{name:"expand"},on:{afterEnter(t){t.style.height="auto"},enter(t){const{width:e}=getComputedStyle(t);t.style.width=e,t.style.position="absolute",t.style.visibility="hidden",t.style.height="auto";const{height:n}=getComputedStyle(t);t.style.width=null,t.style.position=null,t.style.visibility=null,t.style.height=0,getComputedStyle(t).height,requestAnimationFrame(()=>{t.style.height=n})},leave(t){const{height:e}=getComputedStyle(t);t.style.height=e,getComputedStyle(t).height,requestAnimationFrame(()=>{t.style.height=0})}}};return t("transition",n,e.children)}},G=B,z=(n("032c"),Object(S["a"])(G,i,a,!1,null,null,null)),P=z.exports,H={name:"TutorialsNavigationMenu",components:{InlineCloseIcon:R,TransitionExpand:P,TutorialsNavigationList:w},props:{collapsed:{type:Boolean,default:!0},title:{type:String,required:!0}},methods:{onClick(){this.collapsed?this.$emit("select-menu",this.title):this.$emit("deselect-menu")}}},K=H,U=(n("d647"),Object(S["a"])(K,A,q,!1,null,"6513d652",null)),Z=U.exports;const J={resources:"resources",volume:"volume"};var Q={name:"TutorialsNavigation",components:{TutorialsNavigationLink:k,TutorialsNavigationList:w,TutorialsNavigationMenu:Z},constants:{SectionKind:J},inject:{store:{default:()=>({setActiveVolume(){}})}},data(){return{state:this.store.state}},props:{sections:{type:Array,required:!0}},computed:{activeVolume:({state:t})=>t.activeVolume},methods:{sectionClasses(t){return{volume:this.isVolume(t),"volume--named":this.isNamedVolume(t),resource:this.isResources(t)}},componentForVolume:({name:t})=>t?Z:w,isResources:({kind:t})=>t===J.resources,isVolume:({kind:t})=>t===J.volume,activateFirstNamedVolume(){const{isNamedVolume:t,sections:e}=this,n=e.find(t);n&&this.store.setActiveVolume(n.name)},isNamedVolume(t){return this.isVolume(t)&&t.name},onDeselectMenu(){this.store.setActiveVolume(null)},onSelectMenu(t){this.store.setActiveVolume(t)},propsForVolume({name:t}){const{activeVolume:e}=this;return t?{collapsed:t!==e,title:t}:{"aria-label":"Chapters"}}},created(){this.activateFirstNamedVolume()}},W=Q,X=(n("095b"),Object(S["a"])(W,v,f,!1,null,"0cbd8adb",null)),Y=X.exports,tt=n("653a"),et=n("d26a"),nt=n("863d");const it={resources:"resources",volume:"volume"};var at={name:"Nav",constants:{SectionKind:it},components:{NavMenuItemBase:nt["a"],NavTitleContainer:tt["a"],TutorialsNavigation:Y,NavBase:h["a"]},props:{sections:{type:Array,require:!0}},methods:{buildUrl:et["b"]}},st=at,ot=(n("6211"),Object(S["a"])(st,d,p,!1,null,"1001350c",null)),rt=ot.exports,ct=n("bf08"),lt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"hero"},[n("div",{staticClass:"copy-container"},[n("h1",{staticClass:"title"},[t._v(t._s(t.title))]),t.content?n("ContentNode",{attrs:{content:t.content}}):t._e(),t.estimatedTime?n("p",{staticClass:"meta"},[n("TimerIcon"),n("span",{staticClass:"meta-content"},[n("strong",{staticClass:"time"},[t._v(t._s(t.estimatedTime))]),n("span",[t._v(" Estimated Time")])])],1):t._e(),t.action?n("CallToActionButton",{attrs:{action:t.action,"aria-label":t.action.overridingTitle+" with "+t.title,isDark:""}}):t._e()],1),t.image?n("Asset",{attrs:{identifier:t.image}}):t._e()],1)},ut=[],mt=n("80e4"),dt=n("c081"),pt=n("5677"),ht=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("SVGIcon",{staticClass:"timer-icon",attrs:{viewBox:"0 0 14 14",themeId:"timer"}},[n("path",{attrs:{d:"M7 0.5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5c-3.59 0-6.5-2.91-6.5-6.5v0c0-3.59 2.91-6.5 6.5-6.5v0zM7 2c-2.761 0-5 2.239-5 5s2.239 5 5 5c2.761 0 5-2.239 5-5v0c0-2.761-2.239-5-5-5v0z"}}),n("path",{attrs:{d:"M6.51 3.51h1.5v3.5h-1.5v-3.5z"}}),n("path",{attrs:{d:"M6.51 7.010h4v1.5h-4v-1.5z"}})])},vt=[],ft={name:"TimerIcon",components:{SVGIcon:L["a"]}},bt=ft,gt=Object(S["a"])(bt,ht,vt,!1,null,null,null),_t=gt.exports,Ct={name:"Hero",components:{Asset:mt["a"],CallToActionButton:dt["a"],ContentNode:pt["default"],TimerIcon:_t},props:{action:{type:Object,required:!1},content:{type:Array,required:!1},estimatedTime:{type:String,required:!1},image:{type:String,required:!1},title:{type:String,required:!0}}},yt=Ct,Tt=(n("521e"),Object(S["a"])(yt,lt,ut,!1,null,"549fca98",null)),St=Tt.exports,Vt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"learning-path",class:t.classes},[n("div",{staticClass:"main-container"},[t.isTargetIDE?t._e():n("div",{staticClass:"secondary-content-container"},[n("TutorialsNavigation",{attrs:{sections:t.sections,"aria-label":"On this page"}})],1),n("div",{staticClass:"primary-content-container"},[n("div",{staticClass:"content-sections-container"},[t._l(t.volumes,(function(e,i){return n("Volume",t._b({key:"volume_"+i,staticClass:"content-section"},"Volume",t.propsFor(e),!1))})),t._l(t.otherSections,(function(e,i){return n(t.componentFor(e),t._b({key:"resource_"+i,tag:"component",staticClass:"content-section"},"component",t.propsFor(e),!1))}))],2)])])])},kt=[],It=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"resources",attrs:{id:"resources",tabindex:"-1"}},[n("VolumeName",{attrs:{name:"Resources",content:t.content}}),n("TileGroup",{attrs:{tiles:t.tiles}})],1)},xt=[],Nt=n("72e7");const Ot={topOneThird:"-30% 0% -70% 0%",center:"-50% 0% -50% 0%"};var jt={mixins:[Nt["a"]],computed:{intersectionRoot(){return null},intersectionRootMargin(){return Ot.center}},methods:{onIntersect(t){if(!t.isIntersecting)return;const e=this.onIntersectViewport;e?e():console.warn("onIntersectViewportCenter not implemented")}}},wt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"volume-name"},[t.image?n("Asset",{staticClass:"image",attrs:{identifier:t.image,"aria-hidden":"true"}}):t._e(),n("h2",{staticClass:"name"},[t._v(" "+t._s(t.name)+" ")]),t.content?n("ContentNode",{attrs:{content:t.content}}):t._e()],1)},At=[],qt={name:"VolumeName",components:{ContentNode:pt["default"],Asset:mt["a"]},props:{image:{type:String,required:!1},content:{type:Array,required:!1},name:{type:String,required:!1}}},Et=qt,$t=(n("ca4e"),Object(S["a"])(Et,wt,At,!1,null,"569db166",null)),Lt=$t.exports,Mt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"tile-group",class:t.countClass},t._l(t.tiles,(function(e){return n("Tile",t._b({key:e.title},"Tile",t.propsFor(e),!1))})),1)},Dt=[],Ft=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"tile"},[t.identifier?n("div",{staticClass:"icon"},[n(t.iconComponent,{tag:"component"})],1):t._e(),n("div",{staticClass:"title"},[t._v(t._s(t.title))]),n("ContentNode",{attrs:{content:t.content}}),t.action?n("DestinationDataProvider",{attrs:{destination:t.action},scopedSlots:t._u([{key:"default",fn:function(e){var i=e.url,a=e.title;return n("Reference",{staticClass:"link",attrs:{url:i}},[t._v(" "+t._s(a)+" "),n("InlineChevronRightIcon",{staticClass:"link-icon icon-inline"})],1)}}],null,!1,3874201962)}):t._e()],1)},Rt=[],Bt=n("3b96"),Gt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("SVGIcon",{staticClass:"document-icon",attrs:{viewBox:"0 0 14 14",themeId:"document"}},[n("path",{attrs:{d:"M11.2,5.3,8,2l-.1-.1H2.8V12.1h8.5V6.3l-.1-1ZM8,3.2l2,2.1H8Zm2.4,8H3.6V2.8H7V6.3h3.4Z"}})])},zt=[],Pt={name:"DocumentIcon",components:{SVGIcon:L["a"]}},Ht=Pt,Kt=(n("3233"),Object(S["a"])(Ht,Gt,zt,!1,null,"3a80772b",null)),Ut=Kt.exports,Zt=n("de60"),Jt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("SVGIcon",{staticClass:"forum-icon",attrs:{viewBox:"0 0 14 14",themeId:"forum"}},[n("path",{attrs:{d:"M13 1v9h-7l-1.5 3-1.5-3h-2v-9zM12 2h-10v7h1.616l0.884 1.763 0.88-1.763h6.62z"}}),n("path",{attrs:{d:"M3 4h8.001v1h-8.001v-1z"}}),n("path",{attrs:{d:"M3 6h8.001v1h-8.001v-1z"}})])},Qt=[],Wt={name:"ForumIcon",components:{SVGIcon:L["a"]}},Xt=Wt,Yt=Object(S["a"])(Xt,Jt,Qt,!1,null,null,null),te=Yt.exports,ee=n("c4dd"),ne=n("86d8"),ie=n("34b0"),ae=n("c7ea");const se={documentation:"documentation",downloads:"downloads",featured:"featured",forums:"forums",sampleCode:"sampleCode",videos:"videos"};var oe={name:"Tile",constants:{Identifier:se},components:{DestinationDataProvider:ae["a"],InlineChevronRightIcon:ie["a"],ContentNode:pt["default"],CurlyBracketsIcon:Bt["a"],DocumentIcon:Ut,DownloadIcon:Zt["a"],ForumIcon:te,PlayIcon:ee["a"],Reference:ne["a"]},props:{action:{type:Object,required:!1},content:{type:Array,required:!0},identifier:{type:String,required:!1},title:{type:String,require:!0}},computed:{iconComponent:({identifier:t})=>({[se.documentation]:Ut,[se.downloads]:Zt["a"],[se.forums]:te,[se.sampleCode]:Bt["a"],[se.videos]:ee["a"]}[t])}},re=oe,ce=(n("6899"),Object(S["a"])(re,Ft,Rt,!1,null,"96abac22",null)),le=ce.exports,ue={name:"TileGroup",components:{Tile:le},props:{tiles:{type:Array,required:!0}},computed:{countClass:({tiles:t})=>"count-"+t.length},methods:{propsFor:({action:t,content:e,identifier:n,title:i})=>({action:t,content:e,identifier:n,title:i})}},me=ue,de=(n("f0ca"),Object(S["a"])(me,Mt,Dt,!1,null,"015f9f13",null)),pe=de.exports,he={name:"Resources",mixins:[jt],inject:{store:{default:()=>({setActiveSidebarLink(){},setActiveVolume(){}})}},components:{VolumeName:Lt,TileGroup:pe},computed:{intersectionRootMargin:()=>Ot.topOneThird},props:{content:{type:Array,required:!1},tiles:{type:Array,required:!0}},methods:{onIntersectViewport(){this.store.setActiveSidebarLink("Resources"),this.store.setActiveVolume(null)}}},ve=he,fe=(n("5668"),Object(S["a"])(ve,It,xt,!1,null,"49ba6f62",null)),be=fe.exports,ge=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"volume"},[t.name?n("VolumeName",t._b({},"VolumeName",{name:t.name,image:t.image,content:t.content},!1)):t._e(),t._l(t.chapters,(function(e,i){return n("Chapter",{key:e.name,staticClass:"tile",attrs:{content:e.content,image:e.image,name:e.name,number:i+1,topics:t.lookupTopics(e.tutorials),volumeHasName:!!t.name}})}))],2)},_e=[],Ce=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"chapter",attrs:{id:t.anchor,tabindex:"-1"}},[n("div",{staticClass:"info"},[n("Asset",{attrs:{identifier:t.image,"aria-hidden":"true"}}),n("div",{staticClass:"intro"},[n(t.volumeHasName?"h3":"h2",{tag:"component",staticClass:"name",attrs:{"aria-label":t.name+" - Chapter "+t.number}},[n("span",{staticClass:"eyebrow",attrs:{"aria-hidden":"true"}},[t._v("Chapter "+t._s(t.number))]),n("span",{staticClass:"name-text",attrs:{"aria-hidden":"true"}},[t._v(t._s(t.name))])]),t.content?n("ContentNode",{attrs:{content:t.content}}):t._e()],1)],1),n("TopicList",{attrs:{topics:t.topics}})],1)},ye=[],Te=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ol",{staticClass:"topic-list"},t._l(t.topics,(function(e){return n("li",{key:e.url,staticClass:"topic",class:[t.kindClassFor(e),{"no-time-estimate":!e.estimatedTime}]},[n("div",{staticClass:"topic-icon"},[n(t.iconComponent(e),{tag:"component"})],1),n("router-link",{staticClass:"container",attrs:{to:t.buildUrl(e.url,t.$route.query),"aria-label":t.ariaLabelFor(e)}},[n("div",{staticClass:"link"},[t._v(t._s(e.title))]),e.estimatedTime?n("div",{staticClass:"time"},[n("TimerIcon"),n("span",{staticClass:"time-label"},[t._v(t._s(e.estimatedTime))])],1):t._e()])],1)})),0)},Se=[],Ve=n("a9f1"),ke=n("8d2d");const Ie={article:"article",tutorial:"project"},xe={article:"article",tutorial:"tutorial"},Ne={[Ie.article]:"Article",[Ie.tutorial]:"Tutorial"};var Oe={name:"ChapterTopicList",components:{TimerIcon:_t},constants:{TopicKind:Ie,TopicKindClass:xe,TopicKindIconLabel:Ne},props:{topics:{type:Array,required:!0}},methods:{buildUrl:et["b"],iconComponent:({kind:t})=>({[Ie.article]:Ve["a"],[Ie.tutorial]:ke["a"]}[t]),kindClassFor:({kind:t})=>({[Ie.article]:xe.article,[Ie.tutorial]:xe.tutorial}[t]),formatTime:t=>t.replace("min"," minutes").replace("hrs"," hours"),ariaLabelFor({title:t,estimatedTime:e,kind:n}){const i=[t,Ne[n]];return e&&i.push(this.formatTime(e)+" Estimated Time"),i.join(" - ")}}},je=Oe,we=(n("1cc5"),Object(S["a"])(je,Te,Se,!1,null,"da979188",null)),Ae=we.exports,qe={name:"Chapter",mixins:[jt],inject:{store:{default:()=>({setActiveSidebarLink(){},setActiveVolume(){}})}},components:{Asset:mt["a"],ContentNode:pt["default"],TopicList:Ae},props:{content:{type:Array,required:!1},image:{type:String,required:!0},name:{type:String,required:!0},number:{type:Number,required:!0},topics:{type:Array,required:!0},volumeHasName:{type:Boolean,default:!1}},computed:{anchor:({name:t})=>Object(_["a"])(t),intersectionRootMargin:()=>Ot.topOneThird},methods:{onIntersectViewport(){this.store.setActiveSidebarLink(this.name),this.volumeHasName||this.store.setActiveVolume(null)}}},Ee=qe,$e=(n("97b7"),Object(S["a"])(Ee,Ce,ye,!1,null,"512b66f6",null)),Le=$e.exports,Me={name:"Volume",mixins:[jt],components:{VolumeName:Lt,Chapter:Le},computed:{intersectionRootMargin:()=>Ot.topOneThird},inject:{references:{default:()=>({})},store:{default:()=>({setActiveVolume(){}})}},props:{chapters:{type:Array,required:!0},content:{type:Array,required:!1},image:{type:String,required:!1},name:{type:String,required:!1}},methods:{lookupTopics(t){return t.reduce((t,e)=>t.concat(this.references[e]||[]),[])},onIntersectViewport(){this.name&&this.store.setActiveVolume(this.name)}}},De=Me,Fe=(n("0431"),Object(S["a"])(De,ge,_e,!1,null,"2d1dbe98",null)),Re=Fe.exports;const Be={resources:"resources",volume:"volume"};var Ge={name:"LearningPath",components:{Resources:be,TutorialsNavigation:Y,Volume:Re},constants:{SectionKind:Be},inject:{isTargetIDE:{default:!1}},props:{sections:{type:Array,required:!0,validator:t=>t.every(t=>Object.prototype.hasOwnProperty.call(Be,t.kind))}},computed:{classes:({isTargetIDE:t})=>({ide:t}),partitionedSections:({sections:t})=>t.reduce(([t,e],n)=>n.kind===Be.volume?[t.concat(n),e]:[t,e.concat(n)],[[],[]]),volumes:({partitionedSections:t})=>t[0],otherSections:({partitionedSections:t})=>t[1]},methods:{componentFor:({kind:t})=>({[Be.resources]:be,[Be.volume]:Re}[t]),propsFor:({chapters:t,content:e,image:n,kind:i,name:a,tiles:s})=>({[Be.resources]:{content:e,tiles:s},[Be.volume]:{chapters:t,content:e,image:n,name:a}}[i])}},ze=Ge,Pe=(n("f68c"),Object(S["a"])(ze,Vt,kt,!1,null,"18755bc2",null)),He=Pe.exports;const Ke={hero:"hero",resources:"resources",volume:"volume"};var Ue={name:"TutorialsOverview",components:{Hero:St,LearningPath:He,Nav:rt},mixins:[ct["a"]],constants:{SectionKind:Ke},inject:{isTargetIDE:{default:!1}},props:{metadata:{type:Object,default:()=>({})},references:{type:Object,default:()=>({})},sections:{type:Array,default:()=>[],validator:t=>t.every(t=>Object.prototype.hasOwnProperty.call(Ke,t.kind))}},computed:{pageTitle:({title:t})=>[t,"Tutorials"].filter(Boolean).join(" "),pageDescription:({heroSection:t,extractFirstParagraphText:e})=>t?e(t.content):null,partitionedSections:({sections:t})=>t.reduce(([t,e],n)=>n.kind===Ke.hero?[t.concat(n),e]:[t,e.concat(n)],[[],[]]),heroSections:({partitionedSections:t})=>t[0],otherSections:({partitionedSections:t})=>t[1],heroSection:({heroSections:t})=>t[0],store:()=>m,title:({metadata:{category:t=""}})=>t},provide(){return{references:this.references,store:this.store}},created(){this.store.reset()}},Ze=Ue,Je=(n("b347"),Object(S["a"])(Ze,l,u,!1,null,"2d1816cc",null)),Qe=Je.exports,We=n("146e"),Xe={name:"TutorialsOverview",components:{Overview:Qe},mixins:[c["a"],We["a"]],data(){return{topicData:null}},computed:{overviewProps:({topicData:{metadata:t,references:e,sections:n}})=>({metadata:t,references:e,sections:n}),topicKey:({$route:t,topicData:e})=>[t.path,e.identifier.interfaceLanguage].join()},beforeRouteEnter(t,e,n){t.meta.skipFetchingData?n(t=>t.newContentMounted()):Object(r["b"])(t,e,n).then(t=>n(e=>{e.topicData=t})).catch(n)},beforeRouteUpdate(t,e,n){Object(r["d"])(t,e)?Object(r["b"])(t,e,n).then(t=>{this.topicData=t,n()}).catch(n):n()},mounted(){this.$bridge.on("contentUpdate",this.handleContentUpdateFromBridge)},beforeDestroy(){this.$bridge.off("contentUpdate",this.handleContentUpdateFromBridge)},watch:{topicData(){this.$nextTick(()=>{this.newContentMounted()})}}},Ye=Xe,tn=Object(S["a"])(Ye,s,o,!1,null,null,null);e["default"]=tn.exports},f0ca:function(t,e,n){"use strict";n("8f86")},f1e6:function(t,e,n){"use strict";n("a0d4")},f68c:function(t,e,n){"use strict";n("2c95")}}]); \ No newline at end of file diff --git a/XCoordinator.doccarchive/metadata.json b/XCoordinator.doccarchive/metadata.json new file mode 100644 index 00000000..f3d52517 --- /dev/null +++ b/XCoordinator.doccarchive/metadata.json @@ -0,0 +1 @@ +{"bundleDisplayName":"XCoordinator","bundleIdentifier":"XCoordinator","schemaVersion":{"major":0,"minor":1,"patch":0}} \ No newline at end of file diff --git a/XCoordinator.podspec b/XCoordinator.podspec index 656ea39d..ea6a488b 100644 --- a/XCoordinator.podspec +++ b/XCoordinator.podspec @@ -1,15 +1,15 @@ Pod::Spec.new do |spec| spec.name = 'XCoordinator' - spec.version = '2.2.1' + spec.version = '3.0.0' spec.license = { :type => 'MIT' } spec.homepage = 'https://github.com/quickbirdstudios/XCoordinator' spec.authors = { 'Stefan Kofler' => 'stefan.kofler@quickbirdstudios.com', 'Paul Kraft' => 'pauljohannes.kraft@quickbirdstudios.com' } spec.summary = 'Navigation framework based on coordinator pattern.' spec.source = { :git => 'https://github.com/quickbirdstudios/XCoordinator.git', :tag => spec.version } spec.module_name = 'XCoordinator' - spec.swift_version = '5.1' - spec.ios.deployment_target = '9.0' - spec.tvos.deployment_target = '9.0' + spec.swift_version = '5.6' + spec.ios.deployment_target = '11.0' + spec.tvos.deployment_target = '11.0' spec.source_files = 'Sources/XCoordinator/*.swift' spec.default_subspec = 'Core' @@ -20,7 +20,7 @@ Pod::Spec.new do |spec| spec.subspec 'RxSwift' do |ss| ss.dependency 'XCoordinator/Core' - ss.dependency 'RxSwift', '~> 6.1' + ss.dependency 'RxSwift', '~> 6.5' ss.source_files = 'Sources/XCoordinatorRx/*.swift' end diff --git a/XCoordinator.xcodeproj/RxSwift_Info.plist b/XCoordinator.xcodeproj/RxSwift_Info.plist deleted file mode 100644 index 57ada9f9..00000000 --- a/XCoordinator.xcodeproj/RxSwift_Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/XCoordinator.xcodeproj/XCoordinatorCombine_Info.plist b/XCoordinator.xcodeproj/XCoordinatorCombine_Info.plist deleted file mode 100644 index 57ada9f9..00000000 --- a/XCoordinator.xcodeproj/XCoordinatorCombine_Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/XCoordinator.xcodeproj/XCoordinatorRx_Info.plist b/XCoordinator.xcodeproj/XCoordinatorRx_Info.plist deleted file mode 100644 index 57ada9f9..00000000 --- a/XCoordinator.xcodeproj/XCoordinatorRx_Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/XCoordinator.xcodeproj/XCoordinatorTests_Info.plist b/XCoordinator.xcodeproj/XCoordinatorTests_Info.plist deleted file mode 100644 index 7c23420d..00000000 --- a/XCoordinator.xcodeproj/XCoordinatorTests_Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/XCoordinator.xcodeproj/XCoordinator_Info.plist b/XCoordinator.xcodeproj/XCoordinator_Info.plist deleted file mode 100644 index 57ada9f9..00000000 --- a/XCoordinator.xcodeproj/XCoordinator_Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/XCoordinator.xcodeproj/project.pbxproj b/XCoordinator.xcodeproj/project.pbxproj deleted file mode 100644 index e4d1cf51..00000000 --- a/XCoordinator.xcodeproj/project.pbxproj +++ /dev/null @@ -1,3470 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = "1"; - objectVersion = "46"; - objects = { - "OBJ_1" = { - isa = "PBXProject"; - attributes = { - LastSwiftMigration = "9999"; - LastUpgradeCheck = "9999"; - }; - buildConfigurationList = "OBJ_2"; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = "en"; - hasScannedForEncodings = "0"; - knownRegions = ( - "en" - ); - mainGroup = "OBJ_5"; - productRefGroup = "OBJ_233"; - projectDirPath = "."; - targets = ( - "RxSwift::RxSwift", - "RxSwift::SwiftPMPackageDescription", - "XCoordinator::XCoordinator", - "XCoordinator::XCoordinatorCombine", - "XCoordinator::SwiftPMPackageDescription", - "XCoordinator::XCoordinatorPackageTests::ProductTarget", - "XCoordinator::XCoordinatorRx", - "XCoordinator::XCoordinatorTests" - ); - }; - "OBJ_10" = { - isa = "PBXFileReference"; - path = "AnyCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_100" = { - isa = "PBXFileReference"; - path = "Concat.swift"; - sourceTree = ""; - }; - "OBJ_101" = { - isa = "PBXFileReference"; - path = "ConcurrentDispatchQueueScheduler.swift"; - sourceTree = ""; - }; - "OBJ_102" = { - isa = "PBXFileReference"; - path = "ConcurrentMainScheduler.swift"; - sourceTree = ""; - }; - "OBJ_103" = { - isa = "PBXFileReference"; - path = "ConnectableObservableType.swift"; - sourceTree = ""; - }; - "OBJ_104" = { - isa = "PBXFileReference"; - path = "Create.swift"; - sourceTree = ""; - }; - "OBJ_105" = { - isa = "PBXFileReference"; - path = "CurrentThreadScheduler.swift"; - sourceTree = ""; - }; - "OBJ_106" = { - isa = "PBXFileReference"; - path = "Date+Dispatch.swift"; - sourceTree = ""; - }; - "OBJ_107" = { - isa = "PBXFileReference"; - path = "Debounce.swift"; - sourceTree = ""; - }; - "OBJ_108" = { - isa = "PBXFileReference"; - path = "Debug.swift"; - sourceTree = ""; - }; - "OBJ_109" = { - isa = "PBXFileReference"; - path = "Decode.swift"; - sourceTree = ""; - }; - "OBJ_11" = { - isa = "PBXFileReference"; - path = "AnyTransitionPerformer.swift"; - sourceTree = ""; - }; - "OBJ_110" = { - isa = "PBXFileReference"; - path = "DefaultIfEmpty.swift"; - sourceTree = ""; - }; - "OBJ_111" = { - isa = "PBXFileReference"; - path = "Deferred.swift"; - sourceTree = ""; - }; - "OBJ_112" = { - isa = "PBXFileReference"; - path = "Delay.swift"; - sourceTree = ""; - }; - "OBJ_113" = { - isa = "PBXFileReference"; - path = "DelaySubscription.swift"; - sourceTree = ""; - }; - "OBJ_114" = { - isa = "PBXFileReference"; - path = "Dematerialize.swift"; - sourceTree = ""; - }; - "OBJ_115" = { - isa = "PBXFileReference"; - path = "DispatchQueue+Extensions.swift"; - sourceTree = ""; - }; - "OBJ_116" = { - isa = "PBXFileReference"; - path = "DispatchQueueConfiguration.swift"; - sourceTree = ""; - }; - "OBJ_117" = { - isa = "PBXFileReference"; - path = "Disposable.swift"; - sourceTree = ""; - }; - "OBJ_118" = { - isa = "PBXFileReference"; - path = "Disposables.swift"; - sourceTree = ""; - }; - "OBJ_119" = { - isa = "PBXFileReference"; - path = "DisposeBag.swift"; - sourceTree = ""; - }; - "OBJ_12" = { - isa = "PBXFileReference"; - path = "BaseCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_120" = { - isa = "PBXFileReference"; - path = "DisposeBase.swift"; - sourceTree = ""; - }; - "OBJ_121" = { - isa = "PBXFileReference"; - path = "DistinctUntilChanged.swift"; - sourceTree = ""; - }; - "OBJ_122" = { - isa = "PBXFileReference"; - path = "Do.swift"; - sourceTree = ""; - }; - "OBJ_123" = { - isa = "PBXFileReference"; - path = "ElementAt.swift"; - sourceTree = ""; - }; - "OBJ_124" = { - isa = "PBXFileReference"; - path = "Empty.swift"; - sourceTree = ""; - }; - "OBJ_125" = { - isa = "PBXFileReference"; - path = "Enumerated.swift"; - sourceTree = ""; - }; - "OBJ_126" = { - isa = "PBXFileReference"; - path = "Error.swift"; - sourceTree = ""; - }; - "OBJ_127" = { - isa = "PBXFileReference"; - path = "Errors.swift"; - sourceTree = ""; - }; - "OBJ_128" = { - isa = "PBXFileReference"; - path = "Event.swift"; - sourceTree = ""; - }; - "OBJ_129" = { - isa = "PBXFileReference"; - path = "Filter.swift"; - sourceTree = ""; - }; - "OBJ_13" = { - isa = "PBXFileReference"; - path = "BasicCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_130" = { - isa = "PBXFileReference"; - path = "First.swift"; - sourceTree = ""; - }; - "OBJ_131" = { - isa = "PBXFileReference"; - path = "Generate.swift"; - sourceTree = ""; - }; - "OBJ_132" = { - isa = "PBXFileReference"; - path = "GroupBy.swift"; - sourceTree = ""; - }; - "OBJ_133" = { - isa = "PBXFileReference"; - path = "GroupedObservable.swift"; - sourceTree = ""; - }; - "OBJ_134" = { - isa = "PBXFileReference"; - path = "HistoricalScheduler.swift"; - sourceTree = ""; - }; - "OBJ_135" = { - isa = "PBXFileReference"; - path = "HistoricalSchedulerTimeConverter.swift"; - sourceTree = ""; - }; - "OBJ_136" = { - isa = "PBXFileReference"; - path = "ImmediateSchedulerType.swift"; - sourceTree = ""; - }; - "OBJ_137" = { - isa = "PBXFileReference"; - path = "Infallible+CombineLatest+arity.swift"; - sourceTree = ""; - }; - "OBJ_138" = { - isa = "PBXFileReference"; - path = "Infallible+Create.swift"; - sourceTree = ""; - }; - "OBJ_139" = { - isa = "PBXFileReference"; - path = "Infallible+Operators.swift"; - sourceTree = ""; - }; - "OBJ_14" = { - isa = "PBXFileReference"; - path = "Container.swift"; - sourceTree = ""; - }; - "OBJ_140" = { - isa = "PBXFileReference"; - path = "Infallible+Zip+arity.swift"; - sourceTree = ""; - }; - "OBJ_141" = { - isa = "PBXFileReference"; - path = "Infallible.swift"; - sourceTree = ""; - }; - "OBJ_142" = { - isa = "PBXFileReference"; - path = "InfiniteSequence.swift"; - sourceTree = ""; - }; - "OBJ_143" = { - isa = "PBXFileReference"; - path = "InvocableScheduledItem.swift"; - sourceTree = ""; - }; - "OBJ_144" = { - isa = "PBXFileReference"; - path = "InvocableType.swift"; - sourceTree = ""; - }; - "OBJ_145" = { - isa = "PBXFileReference"; - path = "Just.swift"; - sourceTree = ""; - }; - "OBJ_146" = { - isa = "PBXFileReference"; - path = "Lock.swift"; - sourceTree = ""; - }; - "OBJ_147" = { - isa = "PBXFileReference"; - path = "LockOwnerType.swift"; - sourceTree = ""; - }; - "OBJ_148" = { - isa = "PBXFileReference"; - path = "MainScheduler.swift"; - sourceTree = ""; - }; - "OBJ_149" = { - isa = "PBXFileReference"; - path = "Map.swift"; - sourceTree = ""; - }; - "OBJ_15" = { - isa = "PBXFileReference"; - path = "Coordinator.swift"; - sourceTree = ""; - }; - "OBJ_150" = { - isa = "PBXFileReference"; - path = "Materialize.swift"; - sourceTree = ""; - }; - "OBJ_151" = { - isa = "PBXFileReference"; - path = "Maybe.swift"; - sourceTree = ""; - }; - "OBJ_152" = { - isa = "PBXFileReference"; - path = "Merge.swift"; - sourceTree = ""; - }; - "OBJ_153" = { - isa = "PBXFileReference"; - path = "Multicast.swift"; - sourceTree = ""; - }; - "OBJ_154" = { - isa = "PBXFileReference"; - path = "Never.swift"; - sourceTree = ""; - }; - "OBJ_155" = { - isa = "PBXFileReference"; - path = "NopDisposable.swift"; - sourceTree = ""; - }; - "OBJ_156" = { - isa = "PBXFileReference"; - path = "Observable.swift"; - sourceTree = ""; - }; - "OBJ_157" = { - isa = "PBXFileReference"; - path = "ObservableConvertibleType+Infallible.swift"; - sourceTree = ""; - }; - "OBJ_158" = { - isa = "PBXFileReference"; - path = "ObservableConvertibleType.swift"; - sourceTree = ""; - }; - "OBJ_159" = { - isa = "PBXFileReference"; - path = "ObservableType+Extensions.swift"; - sourceTree = ""; - }; - "OBJ_16" = { - isa = "PBXFileReference"; - path = "CoordinatorPreviewingDelegateObject.swift"; - sourceTree = ""; - }; - "OBJ_160" = { - isa = "PBXFileReference"; - path = "ObservableType+PrimitiveSequence.swift"; - sourceTree = ""; - }; - "OBJ_161" = { - isa = "PBXFileReference"; - path = "ObservableType.swift"; - sourceTree = ""; - }; - "OBJ_162" = { - isa = "PBXFileReference"; - path = "ObserveOn.swift"; - sourceTree = ""; - }; - "OBJ_163" = { - isa = "PBXFileReference"; - path = "ObserverBase.swift"; - sourceTree = ""; - }; - "OBJ_164" = { - isa = "PBXFileReference"; - path = "ObserverType.swift"; - sourceTree = ""; - }; - "OBJ_165" = { - isa = "PBXFileReference"; - path = "OperationQueueScheduler.swift"; - sourceTree = ""; - }; - "OBJ_166" = { - isa = "PBXFileReference"; - path = "Optional.swift"; - sourceTree = ""; - }; - "OBJ_167" = { - isa = "PBXFileReference"; - path = "Platform.Darwin.swift"; - sourceTree = ""; - }; - "OBJ_168" = { - isa = "PBXFileReference"; - path = "Platform.Linux.swift"; - sourceTree = ""; - }; - "OBJ_169" = { - isa = "PBXFileReference"; - path = "PrimitiveSequence+Zip+arity.swift"; - sourceTree = ""; - }; - "OBJ_17" = { - isa = "PBXFileReference"; - path = "DeepLinking.swift"; - sourceTree = ""; - }; - "OBJ_170" = { - isa = "PBXFileReference"; - path = "PrimitiveSequence.swift"; - sourceTree = ""; - }; - "OBJ_171" = { - isa = "PBXFileReference"; - path = "PriorityQueue.swift"; - sourceTree = ""; - }; - "OBJ_172" = { - isa = "PBXFileReference"; - path = "Producer.swift"; - sourceTree = ""; - }; - "OBJ_173" = { - isa = "PBXFileReference"; - path = "PublishSubject.swift"; - sourceTree = ""; - }; - "OBJ_174" = { - isa = "PBXFileReference"; - path = "Queue.swift"; - sourceTree = ""; - }; - "OBJ_175" = { - isa = "PBXFileReference"; - path = "Range.swift"; - sourceTree = ""; - }; - "OBJ_176" = { - isa = "PBXFileReference"; - path = "Reactive.swift"; - sourceTree = ""; - }; - "OBJ_177" = { - isa = "PBXFileReference"; - path = "RecursiveLock.swift"; - sourceTree = ""; - }; - "OBJ_178" = { - isa = "PBXFileReference"; - path = "RecursiveScheduler.swift"; - sourceTree = ""; - }; - "OBJ_179" = { - isa = "PBXFileReference"; - path = "Reduce.swift"; - sourceTree = ""; - }; - "OBJ_18" = { - isa = "PBXFileReference"; - path = "GestureRecognizerTarget.swift"; - sourceTree = ""; - }; - "OBJ_180" = { - isa = "PBXFileReference"; - path = "RefCountDisposable.swift"; - sourceTree = ""; - }; - "OBJ_181" = { - isa = "PBXFileReference"; - path = "Repeat.swift"; - sourceTree = ""; - }; - "OBJ_182" = { - isa = "PBXFileReference"; - path = "ReplaySubject.swift"; - sourceTree = ""; - }; - "OBJ_183" = { - isa = "PBXFileReference"; - path = "RetryWhen.swift"; - sourceTree = ""; - }; - "OBJ_184" = { - isa = "PBXFileReference"; - path = "Rx.swift"; - sourceTree = ""; - }; - "OBJ_185" = { - isa = "PBXFileReference"; - path = "RxMutableBox.swift"; - sourceTree = ""; - }; - "OBJ_186" = { - isa = "PBXFileReference"; - path = "Sample.swift"; - sourceTree = ""; - }; - "OBJ_187" = { - isa = "PBXFileReference"; - path = "Scan.swift"; - sourceTree = ""; - }; - "OBJ_188" = { - isa = "PBXFileReference"; - path = "ScheduledDisposable.swift"; - sourceTree = ""; - }; - "OBJ_189" = { - isa = "PBXFileReference"; - path = "ScheduledItem.swift"; - sourceTree = ""; - }; - "OBJ_19" = { - isa = "PBXFileReference"; - path = "InteractiveTransitionAnimation.swift"; - sourceTree = ""; - }; - "OBJ_190" = { - isa = "PBXFileReference"; - path = "ScheduledItemType.swift"; - sourceTree = ""; - }; - "OBJ_191" = { - isa = "PBXFileReference"; - path = "SchedulerServices+Emulation.swift"; - sourceTree = ""; - }; - "OBJ_192" = { - isa = "PBXFileReference"; - path = "SchedulerType.swift"; - sourceTree = ""; - }; - "OBJ_193" = { - isa = "PBXFileReference"; - path = "Sequence.swift"; - sourceTree = ""; - }; - "OBJ_194" = { - isa = "PBXFileReference"; - path = "SerialDispatchQueueScheduler.swift"; - sourceTree = ""; - }; - "OBJ_195" = { - isa = "PBXFileReference"; - path = "SerialDisposable.swift"; - sourceTree = ""; - }; - "OBJ_196" = { - isa = "PBXFileReference"; - path = "ShareReplayScope.swift"; - sourceTree = ""; - }; - "OBJ_197" = { - isa = "PBXFileReference"; - path = "Single.swift"; - sourceTree = ""; - }; - "OBJ_198" = { - isa = "PBXFileReference"; - path = "SingleAssignmentDisposable.swift"; - sourceTree = ""; - }; - "OBJ_199" = { - isa = "PBXFileReference"; - path = "SingleAsync.swift"; - sourceTree = ""; - }; - "OBJ_2" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_3", - "OBJ_4" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_20" = { - isa = "PBXFileReference"; - path = "InterruptibleTransitionAnimation.swift"; - sourceTree = ""; - }; - "OBJ_200" = { - isa = "PBXFileReference"; - path = "Sink.swift"; - sourceTree = ""; - }; - "OBJ_201" = { - isa = "PBXFileReference"; - path = "Skip.swift"; - sourceTree = ""; - }; - "OBJ_202" = { - isa = "PBXFileReference"; - path = "SkipUntil.swift"; - sourceTree = ""; - }; - "OBJ_203" = { - isa = "PBXFileReference"; - path = "SkipWhile.swift"; - sourceTree = ""; - }; - "OBJ_204" = { - isa = "PBXFileReference"; - path = "StartWith.swift"; - sourceTree = ""; - }; - "OBJ_205" = { - isa = "PBXFileReference"; - path = "SubjectType.swift"; - sourceTree = ""; - }; - "OBJ_206" = { - isa = "PBXFileReference"; - path = "SubscribeOn.swift"; - sourceTree = ""; - }; - "OBJ_207" = { - isa = "PBXFileReference"; - path = "SubscriptionDisposable.swift"; - sourceTree = ""; - }; - "OBJ_208" = { - isa = "PBXFileReference"; - path = "SwiftSupport.swift"; - sourceTree = ""; - }; - "OBJ_209" = { - isa = "PBXFileReference"; - path = "Switch.swift"; - sourceTree = ""; - }; - "OBJ_21" = { - isa = "PBXFileReference"; - path = "NavigationAnimationDelegate.swift"; - sourceTree = ""; - }; - "OBJ_210" = { - isa = "PBXFileReference"; - path = "SwitchIfEmpty.swift"; - sourceTree = ""; - }; - "OBJ_211" = { - isa = "PBXFileReference"; - path = "SynchronizedDisposeType.swift"; - sourceTree = ""; - }; - "OBJ_212" = { - isa = "PBXFileReference"; - path = "SynchronizedOnType.swift"; - sourceTree = ""; - }; - "OBJ_213" = { - isa = "PBXFileReference"; - path = "SynchronizedUnsubscribeType.swift"; - sourceTree = ""; - }; - "OBJ_214" = { - isa = "PBXFileReference"; - path = "TailRecursiveSink.swift"; - sourceTree = ""; - }; - "OBJ_215" = { - isa = "PBXFileReference"; - path = "Take.swift"; - sourceTree = ""; - }; - "OBJ_216" = { - isa = "PBXFileReference"; - path = "TakeLast.swift"; - sourceTree = ""; - }; - "OBJ_217" = { - isa = "PBXFileReference"; - path = "TakeWithPredicate.swift"; - sourceTree = ""; - }; - "OBJ_218" = { - isa = "PBXFileReference"; - path = "Throttle.swift"; - sourceTree = ""; - }; - "OBJ_219" = { - isa = "PBXFileReference"; - path = "Timeout.swift"; - sourceTree = ""; - }; - "OBJ_22" = { - isa = "PBXFileReference"; - path = "NavigationCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_220" = { - isa = "PBXFileReference"; - path = "Timer.swift"; - sourceTree = ""; - }; - "OBJ_221" = { - isa = "PBXFileReference"; - path = "ToArray.swift"; - sourceTree = ""; - }; - "OBJ_222" = { - isa = "PBXFileReference"; - path = "Using.swift"; - sourceTree = ""; - }; - "OBJ_223" = { - isa = "PBXFileReference"; - path = "VirtualTimeConverterType.swift"; - sourceTree = ""; - }; - "OBJ_224" = { - isa = "PBXFileReference"; - path = "VirtualTimeScheduler.swift"; - sourceTree = ""; - }; - "OBJ_225" = { - isa = "PBXFileReference"; - path = "Window.swift"; - sourceTree = ""; - }; - "OBJ_226" = { - isa = "PBXFileReference"; - path = "WithLatestFrom.swift"; - sourceTree = ""; - }; - "OBJ_227" = { - isa = "PBXFileReference"; - path = "WithUnretained.swift"; - sourceTree = ""; - }; - "OBJ_228" = { - isa = "PBXFileReference"; - path = "Zip+Collection.swift"; - sourceTree = ""; - }; - "OBJ_229" = { - isa = "PBXFileReference"; - path = "Zip+arity.swift"; - sourceTree = ""; - }; - "OBJ_23" = { - isa = "PBXFileReference"; - path = "NavigationTransition.swift"; - sourceTree = ""; - }; - "OBJ_230" = { - isa = "PBXFileReference"; - path = "Zip.swift"; - sourceTree = ""; - }; - "OBJ_231" = { - isa = "PBXGroup"; - children = ( - ); - name = "RxTest"; - path = ".build/checkouts/RxSwift/Sources/RxTest"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_232" = { - isa = "PBXFileReference"; - explicitFileType = "sourcecode.swift"; - name = "Package.swift"; - path = "/Users/pauljohanneskraft/Documents/QuickBirdStudios/Frameworks/XCoordinator/.build/checkouts/RxSwift/Package.swift"; - sourceTree = ""; - }; - "OBJ_233" = { - isa = "PBXGroup"; - children = ( - "XCoordinator::XCoordinator::Product", - "RxSwift::RxSwift::Product", - "XCoordinator::XCoordinatorTests::Product", - "XCoordinator::XCoordinatorCombine::Product", - "XCoordinator::XCoordinatorRx::Product" - ); - name = "Products"; - path = ""; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "OBJ_239" = { - isa = "PBXFileReference"; - path = "Images"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_24" = { - isa = "PBXFileReference"; - path = "PageCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_240" = { - isa = "PBXFileReference"; - path = "docs"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_241" = { - isa = "PBXFileReference"; - path = "scripts"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_242" = { - isa = "PBXFileReference"; - path = "build"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_243" = { - isa = "PBXFileReference"; - path = "XCoordinator.podspec"; - sourceTree = ""; - }; - "OBJ_244" = { - isa = "PBXFileReference"; - path = "LICENSE"; - sourceTree = ""; - }; - "OBJ_245" = { - isa = "PBXFileReference"; - path = "README.md"; - sourceTree = ""; - }; - "OBJ_247" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_248", - "OBJ_249" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_248" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/RxSwift_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "RxSwift"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "RxSwift"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Debug"; - }; - "OBJ_249" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/RxSwift_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "RxSwift"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "RxSwift"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Release"; - }; - "OBJ_25" = { - isa = "PBXFileReference"; - path = "PageCoordinatorDataSource.swift"; - sourceTree = ""; - }; - "OBJ_250" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_251", - "OBJ_252", - "OBJ_253", - "OBJ_254", - "OBJ_255", - "OBJ_256", - "OBJ_257", - "OBJ_258", - "OBJ_259", - "OBJ_260", - "OBJ_261", - "OBJ_262", - "OBJ_263", - "OBJ_264", - "OBJ_265", - "OBJ_266", - "OBJ_267", - "OBJ_268", - "OBJ_269", - "OBJ_270", - "OBJ_271", - "OBJ_272", - "OBJ_273", - "OBJ_274", - "OBJ_275", - "OBJ_276", - "OBJ_277", - "OBJ_278", - "OBJ_279", - "OBJ_280", - "OBJ_281", - "OBJ_282", - "OBJ_283", - "OBJ_284", - "OBJ_285", - "OBJ_286", - "OBJ_287", - "OBJ_288", - "OBJ_289", - "OBJ_290", - "OBJ_291", - "OBJ_292", - "OBJ_293", - "OBJ_294", - "OBJ_295", - "OBJ_296", - "OBJ_297", - "OBJ_298", - "OBJ_299", - "OBJ_300", - "OBJ_301", - "OBJ_302", - "OBJ_303", - "OBJ_304", - "OBJ_305", - "OBJ_306", - "OBJ_307", - "OBJ_308", - "OBJ_309", - "OBJ_310", - "OBJ_311", - "OBJ_312", - "OBJ_313", - "OBJ_314", - "OBJ_315", - "OBJ_316", - "OBJ_317", - "OBJ_318", - "OBJ_319", - "OBJ_320", - "OBJ_321", - "OBJ_322", - "OBJ_323", - "OBJ_324", - "OBJ_325", - "OBJ_326", - "OBJ_327", - "OBJ_328", - "OBJ_329", - "OBJ_330", - "OBJ_331", - "OBJ_332", - "OBJ_333", - "OBJ_334", - "OBJ_335", - "OBJ_336", - "OBJ_337", - "OBJ_338", - "OBJ_339", - "OBJ_340", - "OBJ_341", - "OBJ_342", - "OBJ_343", - "OBJ_344", - "OBJ_345", - "OBJ_346", - "OBJ_347", - "OBJ_348", - "OBJ_349", - "OBJ_350", - "OBJ_351", - "OBJ_352", - "OBJ_353", - "OBJ_354", - "OBJ_355", - "OBJ_356", - "OBJ_357", - "OBJ_358", - "OBJ_359", - "OBJ_360", - "OBJ_361", - "OBJ_362", - "OBJ_363", - "OBJ_364", - "OBJ_365", - "OBJ_366", - "OBJ_367", - "OBJ_368", - "OBJ_369", - "OBJ_370", - "OBJ_371", - "OBJ_372", - "OBJ_373", - "OBJ_374", - "OBJ_375", - "OBJ_376", - "OBJ_377", - "OBJ_378", - "OBJ_379", - "OBJ_380", - "OBJ_381", - "OBJ_382", - "OBJ_383", - "OBJ_384", - "OBJ_385", - "OBJ_386", - "OBJ_387", - "OBJ_388", - "OBJ_389", - "OBJ_390", - "OBJ_391", - "OBJ_392", - "OBJ_393", - "OBJ_394", - "OBJ_395", - "OBJ_396", - "OBJ_397", - "OBJ_398", - "OBJ_399", - "OBJ_400", - "OBJ_401", - "OBJ_402", - "OBJ_403", - "OBJ_404", - "OBJ_405", - "OBJ_406", - "OBJ_407" - ); - }; - "OBJ_251" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_74"; - }; - "OBJ_252" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_75"; - }; - "OBJ_253" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_76"; - }; - "OBJ_254" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_77"; - }; - "OBJ_255" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_78"; - }; - "OBJ_256" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_79"; - }; - "OBJ_257" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_80"; - }; - "OBJ_258" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_81"; - }; - "OBJ_259" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_82"; - }; - "OBJ_26" = { - isa = "PBXFileReference"; - path = "PageTransition.swift"; - sourceTree = ""; - }; - "OBJ_260" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_83"; - }; - "OBJ_261" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_84"; - }; - "OBJ_262" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_85"; - }; - "OBJ_263" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_86"; - }; - "OBJ_264" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_87"; - }; - "OBJ_265" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_88"; - }; - "OBJ_266" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_89"; - }; - "OBJ_267" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_90"; - }; - "OBJ_268" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_91"; - }; - "OBJ_269" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_92"; - }; - "OBJ_27" = { - isa = "PBXFileReference"; - path = "Presentable.swift"; - sourceTree = ""; - }; - "OBJ_270" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_93"; - }; - "OBJ_271" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_94"; - }; - "OBJ_272" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_95"; - }; - "OBJ_273" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_96"; - }; - "OBJ_274" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_97"; - }; - "OBJ_275" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_98"; - }; - "OBJ_276" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_99"; - }; - "OBJ_277" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_100"; - }; - "OBJ_278" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_101"; - }; - "OBJ_279" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_102"; - }; - "OBJ_28" = { - isa = "PBXFileReference"; - path = "RedirectionRouter.swift"; - sourceTree = ""; - }; - "OBJ_280" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_103"; - }; - "OBJ_281" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_104"; - }; - "OBJ_282" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_105"; - }; - "OBJ_283" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_106"; - }; - "OBJ_284" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_107"; - }; - "OBJ_285" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_108"; - }; - "OBJ_286" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_109"; - }; - "OBJ_287" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_110"; - }; - "OBJ_288" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_111"; - }; - "OBJ_289" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_112"; - }; - "OBJ_29" = { - isa = "PBXFileReference"; - path = "Route.swift"; - sourceTree = ""; - }; - "OBJ_290" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_113"; - }; - "OBJ_291" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_114"; - }; - "OBJ_292" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_115"; - }; - "OBJ_293" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_116"; - }; - "OBJ_294" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_117"; - }; - "OBJ_295" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_118"; - }; - "OBJ_296" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_119"; - }; - "OBJ_297" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_120"; - }; - "OBJ_298" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_121"; - }; - "OBJ_299" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_122"; - }; - "OBJ_3" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = "YES"; - COMBINE_HIDPI_IMAGES = "YES"; - COPY_PHASE_STRIP = "NO"; - DEBUG_INFORMATION_FORMAT = "dwarf"; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = "YES"; - GCC_OPTIMIZATION_LEVEL = "0"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE=1", - "DEBUG=1" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - ONLY_ACTIVE_ARCH = "YES"; - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-DXcode" - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = "macosx"; - SUPPORTED_PLATFORMS = ( - "macosx", - "iphoneos", - "iphonesimulator", - "appletvos", - "appletvsimulator", - "watchos", - "watchsimulator" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE", - "DEBUG" - ); - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - USE_HEADERMAP = "NO"; - }; - name = "Debug"; - }; - "OBJ_30" = { - isa = "PBXFileReference"; - path = "Router.swift"; - sourceTree = ""; - }; - "OBJ_300" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_123"; - }; - "OBJ_301" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_124"; - }; - "OBJ_302" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_125"; - }; - "OBJ_303" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_126"; - }; - "OBJ_304" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_127"; - }; - "OBJ_305" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_128"; - }; - "OBJ_306" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_129"; - }; - "OBJ_307" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_130"; - }; - "OBJ_308" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_131"; - }; - "OBJ_309" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_132"; - }; - "OBJ_31" = { - isa = "PBXFileReference"; - path = "SplitCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_310" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_133"; - }; - "OBJ_311" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_134"; - }; - "OBJ_312" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_135"; - }; - "OBJ_313" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_136"; - }; - "OBJ_314" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_137"; - }; - "OBJ_315" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_138"; - }; - "OBJ_316" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_139"; - }; - "OBJ_317" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_140"; - }; - "OBJ_318" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_141"; - }; - "OBJ_319" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_142"; - }; - "OBJ_32" = { - isa = "PBXFileReference"; - path = "SplitTransition.swift"; - sourceTree = ""; - }; - "OBJ_320" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_143"; - }; - "OBJ_321" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_144"; - }; - "OBJ_322" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_145"; - }; - "OBJ_323" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_146"; - }; - "OBJ_324" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_147"; - }; - "OBJ_325" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_148"; - }; - "OBJ_326" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_149"; - }; - "OBJ_327" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_150"; - }; - "OBJ_328" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_151"; - }; - "OBJ_329" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_152"; - }; - "OBJ_33" = { - isa = "PBXFileReference"; - path = "StaticTransitionAnimation.swift"; - sourceTree = ""; - }; - "OBJ_330" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_153"; - }; - "OBJ_331" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_154"; - }; - "OBJ_332" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_155"; - }; - "OBJ_333" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_156"; - }; - "OBJ_334" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_157"; - }; - "OBJ_335" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_158"; - }; - "OBJ_336" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_159"; - }; - "OBJ_337" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_160"; - }; - "OBJ_338" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_161"; - }; - "OBJ_339" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_162"; - }; - "OBJ_34" = { - isa = "PBXFileReference"; - path = "StrongRouter.swift"; - sourceTree = ""; - }; - "OBJ_340" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_163"; - }; - "OBJ_341" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_164"; - }; - "OBJ_342" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_165"; - }; - "OBJ_343" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_166"; - }; - "OBJ_344" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_167"; - }; - "OBJ_345" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_168"; - }; - "OBJ_346" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_169"; - }; - "OBJ_347" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_170"; - }; - "OBJ_348" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_171"; - }; - "OBJ_349" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_172"; - }; - "OBJ_35" = { - isa = "PBXFileReference"; - path = "TabBarAnimationDelegate.swift"; - sourceTree = ""; - }; - "OBJ_350" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_173"; - }; - "OBJ_351" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_174"; - }; - "OBJ_352" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_175"; - }; - "OBJ_353" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_176"; - }; - "OBJ_354" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_177"; - }; - "OBJ_355" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_178"; - }; - "OBJ_356" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_179"; - }; - "OBJ_357" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_180"; - }; - "OBJ_358" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_181"; - }; - "OBJ_359" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_182"; - }; - "OBJ_36" = { - isa = "PBXFileReference"; - path = "TabBarCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_360" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_183"; - }; - "OBJ_361" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_184"; - }; - "OBJ_362" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_185"; - }; - "OBJ_363" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_186"; - }; - "OBJ_364" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_187"; - }; - "OBJ_365" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_188"; - }; - "OBJ_366" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_189"; - }; - "OBJ_367" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_190"; - }; - "OBJ_368" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_191"; - }; - "OBJ_369" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_192"; - }; - "OBJ_37" = { - isa = "PBXFileReference"; - path = "TabBarTransition.swift"; - sourceTree = ""; - }; - "OBJ_370" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_193"; - }; - "OBJ_371" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_194"; - }; - "OBJ_372" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_195"; - }; - "OBJ_373" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_196"; - }; - "OBJ_374" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_197"; - }; - "OBJ_375" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_198"; - }; - "OBJ_376" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_199"; - }; - "OBJ_377" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_200"; - }; - "OBJ_378" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_201"; - }; - "OBJ_379" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_202"; - }; - "OBJ_38" = { - isa = "PBXFileReference"; - path = "Transition+Init.swift"; - sourceTree = ""; - }; - "OBJ_380" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_203"; - }; - "OBJ_381" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_204"; - }; - "OBJ_382" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_205"; - }; - "OBJ_383" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_206"; - }; - "OBJ_384" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_207"; - }; - "OBJ_385" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_208"; - }; - "OBJ_386" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_209"; - }; - "OBJ_387" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_210"; - }; - "OBJ_388" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_211"; - }; - "OBJ_389" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_212"; - }; - "OBJ_39" = { - isa = "PBXFileReference"; - path = "Transition.swift"; - sourceTree = ""; - }; - "OBJ_390" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_213"; - }; - "OBJ_391" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_214"; - }; - "OBJ_392" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_215"; - }; - "OBJ_393" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_216"; - }; - "OBJ_394" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_217"; - }; - "OBJ_395" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_218"; - }; - "OBJ_396" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_219"; - }; - "OBJ_397" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_220"; - }; - "OBJ_398" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_221"; - }; - "OBJ_399" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_222"; - }; - "OBJ_4" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = "YES"; - COMBINE_HIDPI_IMAGES = "YES"; - COPY_PHASE_STRIP = "YES"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_OPTIMIZATION_LEVEL = "s"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE=1" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-DXcode" - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = "macosx"; - SUPPORTED_PLATFORMS = ( - "macosx", - "iphoneos", - "iphonesimulator", - "appletvos", - "appletvsimulator", - "watchos", - "watchsimulator" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE" - ); - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - USE_HEADERMAP = "NO"; - }; - name = "Release"; - }; - "OBJ_40" = { - isa = "PBXFileReference"; - path = "TransitionAnimation.swift"; - sourceTree = ""; - }; - "OBJ_400" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_223"; - }; - "OBJ_401" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_224"; - }; - "OBJ_402" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_225"; - }; - "OBJ_403" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_226"; - }; - "OBJ_404" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_227"; - }; - "OBJ_405" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_228"; - }; - "OBJ_406" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_229"; - }; - "OBJ_407" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_230"; - }; - "OBJ_408" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - ); - }; - "OBJ_41" = { - isa = "PBXFileReference"; - path = "TransitionOptions.swift"; - sourceTree = ""; - }; - "OBJ_410" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_411", - "OBJ_412" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_411" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "5", - "-I", - "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", - "-sdk", - "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk", - "-package-description-version", - "5.1.0" - ); - SWIFT_VERSION = "5.0"; - }; - name = "Debug"; - }; - "OBJ_412" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "5", - "-I", - "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", - "-sdk", - "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk", - "-package-description-version", - "5.1.0" - ); - SWIFT_VERSION = "5.0"; - }; - name = "Release"; - }; - "OBJ_413" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_414" - ); - }; - "OBJ_414" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_232"; - }; - "OBJ_416" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_417", - "OBJ_418" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_417" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinator_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "XCoordinator"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinator"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Debug"; - }; - "OBJ_418" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinator_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "XCoordinator"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinator"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Release"; - }; - "OBJ_419" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_420", - "OBJ_421", - "OBJ_422", - "OBJ_423", - "OBJ_424", - "OBJ_425", - "OBJ_426", - "OBJ_427", - "OBJ_428", - "OBJ_429", - "OBJ_430", - "OBJ_431", - "OBJ_432", - "OBJ_433", - "OBJ_434", - "OBJ_435", - "OBJ_436", - "OBJ_437", - "OBJ_438", - "OBJ_439", - "OBJ_440", - "OBJ_441", - "OBJ_442", - "OBJ_443", - "OBJ_444", - "OBJ_445", - "OBJ_446", - "OBJ_447", - "OBJ_448", - "OBJ_449", - "OBJ_450", - "OBJ_451", - "OBJ_452", - "OBJ_453", - "OBJ_454", - "OBJ_455", - "OBJ_456", - "OBJ_457", - "OBJ_458", - "OBJ_459", - "OBJ_460", - "OBJ_461", - "OBJ_462", - "OBJ_463", - "OBJ_464" - ); - }; - "OBJ_42" = { - isa = "PBXFileReference"; - path = "TransitionPerformer.swift"; - sourceTree = ""; - }; - "OBJ_420" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_9"; - }; - "OBJ_421" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_10"; - }; - "OBJ_422" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_11"; - }; - "OBJ_423" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_12"; - }; - "OBJ_424" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_13"; - }; - "OBJ_425" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_14"; - }; - "OBJ_426" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_15"; - }; - "OBJ_427" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_16"; - }; - "OBJ_428" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_17"; - }; - "OBJ_429" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_18"; - }; - "OBJ_43" = { - isa = "PBXFileReference"; - path = "TransitionProtocol.swift"; - sourceTree = ""; - }; - "OBJ_430" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_19"; - }; - "OBJ_431" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_20"; - }; - "OBJ_432" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_21"; - }; - "OBJ_433" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_22"; - }; - "OBJ_434" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_23"; - }; - "OBJ_435" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_24"; - }; - "OBJ_436" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_25"; - }; - "OBJ_437" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_26"; - }; - "OBJ_438" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_27"; - }; - "OBJ_439" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_28"; - }; - "OBJ_44" = { - isa = "PBXFileReference"; - path = "UINavigationController+Transition.swift"; - sourceTree = ""; - }; - "OBJ_440" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_29"; - }; - "OBJ_441" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_30"; - }; - "OBJ_442" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_31"; - }; - "OBJ_443" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_32"; - }; - "OBJ_444" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_33"; - }; - "OBJ_445" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_34"; - }; - "OBJ_446" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_35"; - }; - "OBJ_447" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_36"; - }; - "OBJ_448" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_37"; - }; - "OBJ_449" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_38"; - }; - "OBJ_45" = { - isa = "PBXFileReference"; - path = "UIPageViewController+Transition.swift"; - sourceTree = ""; - }; - "OBJ_450" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_39"; - }; - "OBJ_451" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_40"; - }; - "OBJ_452" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_41"; - }; - "OBJ_453" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_42"; - }; - "OBJ_454" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_43"; - }; - "OBJ_455" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_44"; - }; - "OBJ_456" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_45"; - }; - "OBJ_457" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_46"; - }; - "OBJ_458" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_47"; - }; - "OBJ_459" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_48"; - }; - "OBJ_46" = { - isa = "PBXFileReference"; - path = "UITabBarController+Transition.swift"; - sourceTree = ""; - }; - "OBJ_460" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_49"; - }; - "OBJ_461" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_50"; - }; - "OBJ_462" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_51"; - }; - "OBJ_463" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_52"; - }; - "OBJ_464" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_53"; - }; - "OBJ_465" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - ); - }; - "OBJ_467" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_468", - "OBJ_469" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_468" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinatorCombine_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "XCoordinatorCombine"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinatorCombine"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Debug"; - }; - "OBJ_469" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinatorCombine_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "XCoordinatorCombine"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinatorCombine"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Release"; - }; - "OBJ_47" = { - isa = "PBXFileReference"; - path = "UIView+Store.swift"; - sourceTree = ""; - }; - "OBJ_470" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_471" - ); - }; - "OBJ_471" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_55"; - }; - "OBJ_472" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - "OBJ_473" - ); - }; - "OBJ_473" = { - isa = "PBXBuildFile"; - fileRef = "XCoordinator::XCoordinator::Product"; - }; - "OBJ_474" = { - isa = "PBXTargetDependency"; - target = "XCoordinator::XCoordinator"; - }; - "OBJ_476" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_477", - "OBJ_478" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_477" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "5", - "-I", - "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", - "-sdk", - "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk", - "-package-description-version", - "5.1.0" - ); - SWIFT_VERSION = "5.0"; - }; - name = "Debug"; - }; - "OBJ_478" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "5", - "-I", - "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", - "-sdk", - "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk", - "-package-description-version", - "5.1.0" - ); - SWIFT_VERSION = "5.0"; - }; - name = "Release"; - }; - "OBJ_479" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_480" - ); - }; - "OBJ_48" = { - isa = "PBXFileReference"; - path = "UIViewController+Transition.swift"; - sourceTree = ""; - }; - "OBJ_480" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_6"; - }; - "OBJ_482" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_483", - "OBJ_484" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_483" = { - isa = "XCBuildConfiguration"; - buildSettings = { - }; - name = "Debug"; - }; - "OBJ_484" = { - isa = "XCBuildConfiguration"; - buildSettings = { - }; - name = "Release"; - }; - "OBJ_485" = { - isa = "PBXTargetDependency"; - target = "XCoordinator::XCoordinatorTests"; - }; - "OBJ_488" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_489", - "OBJ_490" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_489" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinatorRx_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "XCoordinatorRx"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinatorRx"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Debug"; - }; - "OBJ_49" = { - isa = "PBXFileReference"; - path = "UnownedErased+Router.swift"; - sourceTree = ""; - }; - "OBJ_490" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinatorRx_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "9.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "XCoordinatorRx"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinatorRx"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Release"; - }; - "OBJ_491" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_492" - ); - }; - "OBJ_492" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_57"; - }; - "OBJ_493" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - "OBJ_494", - "OBJ_495" - ); - }; - "OBJ_494" = { - isa = "PBXBuildFile"; - fileRef = "RxSwift::RxSwift::Product"; - }; - "OBJ_495" = { - isa = "PBXBuildFile"; - fileRef = "XCoordinator::XCoordinator::Product"; - }; - "OBJ_496" = { - isa = "PBXTargetDependency"; - target = "RxSwift::RxSwift"; - }; - "OBJ_497" = { - isa = "PBXTargetDependency"; - target = "XCoordinator::XCoordinator"; - }; - "OBJ_498" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_499", - "OBJ_500" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_499" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_MODULES = "YES"; - EMBEDDED_CONTENT_CONTAINS_SWIFT = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinatorTests_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "14.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks" - ); - MACOSX_DEPLOYMENT_TARGET = "10.15"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinatorTests"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Debug"; - }; - "OBJ_5" = { - isa = "PBXGroup"; - children = ( - "OBJ_6", - "OBJ_7", - "OBJ_58", - "OBJ_67", - "OBJ_233", - "OBJ_239", - "OBJ_240", - "OBJ_241", - "OBJ_242", - "OBJ_243", - "OBJ_244", - "OBJ_245" - ); - path = ""; - sourceTree = ""; - }; - "OBJ_50" = { - isa = "PBXFileReference"; - path = "UnownedErased.swift"; - sourceTree = ""; - }; - "OBJ_500" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_MODULES = "YES"; - EMBEDDED_CONTENT_CONTAINS_SWIFT = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "XCoordinator.xcodeproj/XCoordinatorTests_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "14.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks" - ); - MACOSX_DEPLOYMENT_TARGET = "10.15"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "XCoordinatorTests"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Release"; - }; - "OBJ_501" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_502", - "OBJ_503", - "OBJ_504", - "OBJ_505", - "OBJ_506", - "OBJ_507" - ); - }; - "OBJ_502" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_61"; - }; - "OBJ_503" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_62"; - }; - "OBJ_504" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_63"; - }; - "OBJ_505" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_64"; - }; - "OBJ_506" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_65"; - }; - "OBJ_507" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_66"; - }; - "OBJ_508" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - "OBJ_509", - "OBJ_510", - "OBJ_511" - ); - }; - "OBJ_509" = { - isa = "PBXBuildFile"; - fileRef = "XCoordinator::XCoordinatorRx::Product"; - }; - "OBJ_51" = { - isa = "PBXFileReference"; - path = "ViewCoordinator.swift"; - sourceTree = ""; - }; - "OBJ_510" = { - isa = "PBXBuildFile"; - fileRef = "RxSwift::RxSwift::Product"; - }; - "OBJ_511" = { - isa = "PBXBuildFile"; - fileRef = "XCoordinator::XCoordinator::Product"; - }; - "OBJ_512" = { - isa = "PBXTargetDependency"; - target = "XCoordinator::XCoordinatorRx"; - }; - "OBJ_513" = { - isa = "PBXTargetDependency"; - target = "RxSwift::RxSwift"; - }; - "OBJ_514" = { - isa = "PBXTargetDependency"; - target = "XCoordinator::XCoordinator"; - }; - "OBJ_52" = { - isa = "PBXFileReference"; - path = "WeakErased+Router.swift"; - sourceTree = ""; - }; - "OBJ_53" = { - isa = "PBXFileReference"; - path = "WeakErased.swift"; - sourceTree = ""; - }; - "OBJ_54" = { - isa = "PBXGroup"; - children = ( - "OBJ_55" - ); - name = "XCoordinatorCombine"; - path = "Sources/XCoordinatorCombine"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_55" = { - isa = "PBXFileReference"; - path = "Router+Combine.swift"; - sourceTree = ""; - }; - "OBJ_56" = { - isa = "PBXGroup"; - children = ( - "OBJ_57" - ); - name = "XCoordinatorRx"; - path = "Sources/XCoordinatorRx"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_57" = { - isa = "PBXFileReference"; - path = "Router+Rx.swift"; - sourceTree = ""; - }; - "OBJ_58" = { - isa = "PBXGroup"; - children = ( - "OBJ_59" - ); - name = "Tests"; - path = ""; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_59" = { - isa = "PBXGroup"; - children = ( - "OBJ_60", - "OBJ_61", - "OBJ_62", - "OBJ_63", - "OBJ_64", - "OBJ_65", - "OBJ_66" - ); - name = "XCoordinatorTests"; - path = "Tests/XCoordinatorTests"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_6" = { - isa = "PBXFileReference"; - explicitFileType = "sourcecode.swift"; - path = "Package.swift"; - sourceTree = ""; - }; - "OBJ_60" = { - isa = "PBXFileReference"; - path = "XCoordinatorTests.xctestplan"; - sourceTree = ""; - }; - "OBJ_61" = { - isa = "PBXFileReference"; - path = "AnimationTests.swift"; - sourceTree = ""; - }; - "OBJ_62" = { - isa = "PBXFileReference"; - path = "TestAnimation.swift"; - sourceTree = ""; - }; - "OBJ_63" = { - isa = "PBXFileReference"; - path = "TestRoute.swift"; - sourceTree = ""; - }; - "OBJ_64" = { - isa = "PBXFileReference"; - path = "TransitionTests.swift"; - sourceTree = ""; - }; - "OBJ_65" = { - isa = "PBXFileReference"; - path = "XCTestManifests.swift"; - sourceTree = ""; - }; - "OBJ_66" = { - isa = "PBXFileReference"; - path = "XCText+Extras.swift"; - sourceTree = ""; - }; - "OBJ_67" = { - isa = "PBXGroup"; - children = ( - "OBJ_68" - ); - name = "Dependencies"; - path = ""; - sourceTree = ""; - }; - "OBJ_68" = { - isa = "PBXGroup"; - children = ( - "OBJ_69", - "OBJ_70", - "OBJ_71", - "OBJ_72", - "OBJ_73", - "OBJ_231", - "OBJ_232" - ); - name = "RxSwift 6.1.0"; - path = ""; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_69" = { - isa = "PBXGroup"; - children = ( - ); - name = "RxBlocking"; - path = ".build/checkouts/RxSwift/Sources/RxBlocking"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_7" = { - isa = "PBXGroup"; - children = ( - "OBJ_8", - "OBJ_54", - "OBJ_56" - ); - name = "Sources"; - path = ""; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_70" = { - isa = "PBXGroup"; - children = ( - ); - name = "RxCocoa"; - path = ".build/checkouts/RxSwift/Sources/RxCocoa"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_71" = { - isa = "PBXGroup"; - children = ( - ); - name = "RxCocoaRuntime"; - path = ".build/checkouts/RxSwift/Sources/RxCocoaRuntime"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_72" = { - isa = "PBXGroup"; - children = ( - ); - name = "RxRelay"; - path = ".build/checkouts/RxSwift/Sources/RxRelay"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_73" = { - isa = "PBXGroup"; - children = ( - "OBJ_74", - "OBJ_75", - "OBJ_76", - "OBJ_77", - "OBJ_78", - "OBJ_79", - "OBJ_80", - "OBJ_81", - "OBJ_82", - "OBJ_83", - "OBJ_84", - "OBJ_85", - "OBJ_86", - "OBJ_87", - "OBJ_88", - "OBJ_89", - "OBJ_90", - "OBJ_91", - "OBJ_92", - "OBJ_93", - "OBJ_94", - "OBJ_95", - "OBJ_96", - "OBJ_97", - "OBJ_98", - "OBJ_99", - "OBJ_100", - "OBJ_101", - "OBJ_102", - "OBJ_103", - "OBJ_104", - "OBJ_105", - "OBJ_106", - "OBJ_107", - "OBJ_108", - "OBJ_109", - "OBJ_110", - "OBJ_111", - "OBJ_112", - "OBJ_113", - "OBJ_114", - "OBJ_115", - "OBJ_116", - "OBJ_117", - "OBJ_118", - "OBJ_119", - "OBJ_120", - "OBJ_121", - "OBJ_122", - "OBJ_123", - "OBJ_124", - "OBJ_125", - "OBJ_126", - "OBJ_127", - "OBJ_128", - "OBJ_129", - "OBJ_130", - "OBJ_131", - "OBJ_132", - "OBJ_133", - "OBJ_134", - "OBJ_135", - "OBJ_136", - "OBJ_137", - "OBJ_138", - "OBJ_139", - "OBJ_140", - "OBJ_141", - "OBJ_142", - "OBJ_143", - "OBJ_144", - "OBJ_145", - "OBJ_146", - "OBJ_147", - "OBJ_148", - "OBJ_149", - "OBJ_150", - "OBJ_151", - "OBJ_152", - "OBJ_153", - "OBJ_154", - "OBJ_155", - "OBJ_156", - "OBJ_157", - "OBJ_158", - "OBJ_159", - "OBJ_160", - "OBJ_161", - "OBJ_162", - "OBJ_163", - "OBJ_164", - "OBJ_165", - "OBJ_166", - "OBJ_167", - "OBJ_168", - "OBJ_169", - "OBJ_170", - "OBJ_171", - "OBJ_172", - "OBJ_173", - "OBJ_174", - "OBJ_175", - "OBJ_176", - "OBJ_177", - "OBJ_178", - "OBJ_179", - "OBJ_180", - "OBJ_181", - "OBJ_182", - "OBJ_183", - "OBJ_184", - "OBJ_185", - "OBJ_186", - "OBJ_187", - "OBJ_188", - "OBJ_189", - "OBJ_190", - "OBJ_191", - "OBJ_192", - "OBJ_193", - "OBJ_194", - "OBJ_195", - "OBJ_196", - "OBJ_197", - "OBJ_198", - "OBJ_199", - "OBJ_200", - "OBJ_201", - "OBJ_202", - "OBJ_203", - "OBJ_204", - "OBJ_205", - "OBJ_206", - "OBJ_207", - "OBJ_208", - "OBJ_209", - "OBJ_210", - "OBJ_211", - "OBJ_212", - "OBJ_213", - "OBJ_214", - "OBJ_215", - "OBJ_216", - "OBJ_217", - "OBJ_218", - "OBJ_219", - "OBJ_220", - "OBJ_221", - "OBJ_222", - "OBJ_223", - "OBJ_224", - "OBJ_225", - "OBJ_226", - "OBJ_227", - "OBJ_228", - "OBJ_229", - "OBJ_230" - ); - name = "RxSwift"; - path = ".build/checkouts/RxSwift/Sources/RxSwift"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_74" = { - isa = "PBXFileReference"; - path = "AddRef.swift"; - sourceTree = ""; - }; - "OBJ_75" = { - isa = "PBXFileReference"; - path = "Amb.swift"; - sourceTree = ""; - }; - "OBJ_76" = { - isa = "PBXFileReference"; - path = "AnonymousDisposable.swift"; - sourceTree = ""; - }; - "OBJ_77" = { - isa = "PBXFileReference"; - path = "AnonymousObserver.swift"; - sourceTree = ""; - }; - "OBJ_78" = { - isa = "PBXFileReference"; - path = "AnyObserver.swift"; - sourceTree = ""; - }; - "OBJ_79" = { - isa = "PBXFileReference"; - path = "AsMaybe.swift"; - sourceTree = ""; - }; - "OBJ_8" = { - isa = "PBXGroup"; - children = ( - "OBJ_9", - "OBJ_10", - "OBJ_11", - "OBJ_12", - "OBJ_13", - "OBJ_14", - "OBJ_15", - "OBJ_16", - "OBJ_17", - "OBJ_18", - "OBJ_19", - "OBJ_20", - "OBJ_21", - "OBJ_22", - "OBJ_23", - "OBJ_24", - "OBJ_25", - "OBJ_26", - "OBJ_27", - "OBJ_28", - "OBJ_29", - "OBJ_30", - "OBJ_31", - "OBJ_32", - "OBJ_33", - "OBJ_34", - "OBJ_35", - "OBJ_36", - "OBJ_37", - "OBJ_38", - "OBJ_39", - "OBJ_40", - "OBJ_41", - "OBJ_42", - "OBJ_43", - "OBJ_44", - "OBJ_45", - "OBJ_46", - "OBJ_47", - "OBJ_48", - "OBJ_49", - "OBJ_50", - "OBJ_51", - "OBJ_52", - "OBJ_53" - ); - name = "XCoordinator"; - path = "Sources/XCoordinator"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_80" = { - isa = "PBXFileReference"; - path = "AsSingle.swift"; - sourceTree = ""; - }; - "OBJ_81" = { - isa = "PBXFileReference"; - path = "AsyncLock.swift"; - sourceTree = ""; - }; - "OBJ_82" = { - isa = "PBXFileReference"; - path = "AsyncSubject.swift"; - sourceTree = ""; - }; - "OBJ_83" = { - isa = "PBXFileReference"; - path = "AtomicInt.swift"; - sourceTree = ""; - }; - "OBJ_84" = { - isa = "PBXFileReference"; - path = "Bag+Rx.swift"; - sourceTree = ""; - }; - "OBJ_85" = { - isa = "PBXFileReference"; - path = "Bag.swift"; - sourceTree = ""; - }; - "OBJ_86" = { - isa = "PBXFileReference"; - path = "BehaviorSubject.swift"; - sourceTree = ""; - }; - "OBJ_87" = { - isa = "PBXFileReference"; - path = "BinaryDisposable.swift"; - sourceTree = ""; - }; - "OBJ_88" = { - isa = "PBXFileReference"; - path = "Binder.swift"; - sourceTree = ""; - }; - "OBJ_89" = { - isa = "PBXFileReference"; - path = "BooleanDisposable.swift"; - sourceTree = ""; - }; - "OBJ_9" = { - isa = "PBXFileReference"; - path = "Animation.swift"; - sourceTree = ""; - }; - "OBJ_90" = { - isa = "PBXFileReference"; - path = "Buffer.swift"; - sourceTree = ""; - }; - "OBJ_91" = { - isa = "PBXFileReference"; - path = "Cancelable.swift"; - sourceTree = ""; - }; - "OBJ_92" = { - isa = "PBXFileReference"; - path = "Catch.swift"; - sourceTree = ""; - }; - "OBJ_93" = { - isa = "PBXFileReference"; - path = "CombineLatest+Collection.swift"; - sourceTree = ""; - }; - "OBJ_94" = { - isa = "PBXFileReference"; - path = "CombineLatest+arity.swift"; - sourceTree = ""; - }; - "OBJ_95" = { - isa = "PBXFileReference"; - path = "CombineLatest.swift"; - sourceTree = ""; - }; - "OBJ_96" = { - isa = "PBXFileReference"; - path = "CompactMap.swift"; - sourceTree = ""; - }; - "OBJ_97" = { - isa = "PBXFileReference"; - path = "Completable+AndThen.swift"; - sourceTree = ""; - }; - "OBJ_98" = { - isa = "PBXFileReference"; - path = "Completable.swift"; - sourceTree = ""; - }; - "OBJ_99" = { - isa = "PBXFileReference"; - path = "CompositeDisposable.swift"; - sourceTree = ""; - }; - "RxSwift::RxSwift" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_247"; - buildPhases = ( - "OBJ_250", - "OBJ_408" - ); - dependencies = ( - ); - name = "RxSwift"; - productName = "RxSwift"; - productReference = "RxSwift::RxSwift::Product"; - productType = "com.apple.product-type.framework"; - }; - "RxSwift::RxSwift::Product" = { - isa = "PBXFileReference"; - path = "RxSwift.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "RxSwift::SwiftPMPackageDescription" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_410"; - buildPhases = ( - "OBJ_413" - ); - dependencies = ( - ); - name = "RxSwiftPackageDescription"; - productName = "RxSwiftPackageDescription"; - productType = "com.apple.product-type.framework"; - }; - "XCoordinator::SwiftPMPackageDescription" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_476"; - buildPhases = ( - "OBJ_479" - ); - dependencies = ( - ); - name = "XCoordinatorPackageDescription"; - productName = "XCoordinatorPackageDescription"; - productType = "com.apple.product-type.framework"; - }; - "XCoordinator::XCoordinator" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_416"; - buildPhases = ( - "OBJ_419", - "OBJ_465" - ); - dependencies = ( - ); - name = "XCoordinator"; - productName = "XCoordinator"; - productReference = "XCoordinator::XCoordinator::Product"; - productType = "com.apple.product-type.framework"; - }; - "XCoordinator::XCoordinator::Product" = { - isa = "PBXFileReference"; - path = "XCoordinator.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "XCoordinator::XCoordinatorCombine" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_467"; - buildPhases = ( - "OBJ_470", - "OBJ_472" - ); - dependencies = ( - "OBJ_474" - ); - name = "XCoordinatorCombine"; - productName = "XCoordinatorCombine"; - productReference = "XCoordinator::XCoordinatorCombine::Product"; - productType = "com.apple.product-type.framework"; - }; - "XCoordinator::XCoordinatorCombine::Product" = { - isa = "PBXFileReference"; - path = "XCoordinatorCombine.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "XCoordinator::XCoordinatorPackageTests::ProductTarget" = { - isa = "PBXAggregateTarget"; - buildConfigurationList = "OBJ_482"; - buildPhases = ( - ); - dependencies = ( - "OBJ_485" - ); - name = "XCoordinatorPackageTests"; - productName = "XCoordinatorPackageTests"; - }; - "XCoordinator::XCoordinatorRx" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_488"; - buildPhases = ( - "OBJ_491", - "OBJ_493" - ); - dependencies = ( - "OBJ_496", - "OBJ_497" - ); - name = "XCoordinatorRx"; - productName = "XCoordinatorRx"; - productReference = "XCoordinator::XCoordinatorRx::Product"; - productType = "com.apple.product-type.framework"; - }; - "XCoordinator::XCoordinatorRx::Product" = { - isa = "PBXFileReference"; - path = "XCoordinatorRx.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "XCoordinator::XCoordinatorTests" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_498"; - buildPhases = ( - "OBJ_501", - "OBJ_508" - ); - dependencies = ( - "OBJ_512", - "OBJ_513", - "OBJ_514" - ); - name = "XCoordinatorTests"; - productName = "XCoordinatorTests"; - productReference = "XCoordinator::XCoordinatorTests::Product"; - productType = "com.apple.product-type.bundle.unit-test"; - }; - "XCoordinator::XCoordinatorTests::Product" = { - isa = "PBXFileReference"; - path = "XCoordinatorTests.xctest"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - }; - rootObject = "OBJ_1"; -} diff --git a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator-Package.xcscheme b/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator-Package.xcscheme deleted file mode 100644 index 4b3755f7..00000000 --- a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator-Package.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator.xcscheme b/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator.xcscheme deleted file mode 100644 index 0df84226..00000000 --- a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorCombine.xcscheme b/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorCombine.xcscheme deleted file mode 100644 index 3f04dbe4..00000000 --- a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorCombine.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorRx.xcscheme b/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorRx.xcscheme deleted file mode 100644 index 65c39839..00000000 --- a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorRx.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorTests.xcscheme b/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorTests.xcscheme deleted file mode 100644 index 2e70643a..00000000 --- a/XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorTests.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/Classes.html b/docs/Classes.html deleted file mode 100644 index fa66b7be..00000000 --- a/docs/Classes.html +++ /dev/null @@ -1,950 +0,0 @@ - - - - Classes Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Classes

-

The following classes are available globally.

- -
-
- -
-
-
-
    -
  • -
    - - - - Animation - -
    -
    -
    -
    -
    -
    -

    Animation is used to set presentation and dismissal animations for presentables.

    - -

    Depending on the transition in use, different properties of a UIViewController are set to make sure the transition animation is used.

    -
    -

    Note

    -

    To not override the previously set Animation, use nil when initializing a transition.

    - -

    Make sure to hold a strong reference to the Animation object, as it is only held by a weak reference.

    - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class Animation : NSObject
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - AnyCoordinator - -
    -
    -
    -
    -
    -
    -

    AnyCoordinator is a type-erased Coordinator (RouteType & TransitionType) and -can be used as an abstraction from a specific coordinator class while still specifying -TransitionType and RouteType.

    -
    -

    Note

    - If you do not want/need to specify TransitionType, you might want to look into the -different router abstractions StrongRouter, UnownedRouter and WeakRouter. -See AnyTransitionPerformer to further abstract from RouteType. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class AnyCoordinator<RouteType, TransitionType> : Coordinator where RouteType : Route, TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    AnyTransitionPerformer can be used as an abstraction from a specific TransitionPerformer implementation -without losing type information about its TransitionType.

    - -

    This type abstraction can be especially helpful when performing transitions. -AnyTransitionPerformer abstracts away any implementation specific details and reduces coordinators to the capabilities -of the TransitionPerformer protocol.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class AnyTransitionPerformer<TransitionType> : TransitionPerformer where TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
-
-
- -
-
-
    -
  • -
    - - - - BasicCoordinator - -
    -
    -
    -
    -
    -
    -

    BasicCoordinator is a coordinator class that can be used without subclassing.

    - -

    Although subclassing of coordinators is encouraged for more complex cases, a BasicCoordinator can easily -be created by only providing a prepareTransition closure, an initialRoute and an initialLoadingType.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class BasicCoordinator<RouteType, TransitionType> : BaseCoordinator<RouteType, TransitionType> where RouteType : Route, TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
-
-
- -
-
- -
-
-
    -
  • - -
    -
    -
    -
    -
    -

    NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController -to allow for push-transitions to specify animations.

    - -

    NavigationAnimationDelegate conforms to the UINavigationControllerDelegate protocol -and is intended for use as the delegate of one navigation controller only.

    -
    -

    Note

    - Do not override the delegate of a NavigationCoordinator’s rootViewController. -Instead use the delegate property of the NavigationCoordinator itself. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class NavigationAnimationDelegate : NSObject
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - NavigationCoordinator - -
    -
    -
    -
    -
    -
    -

    NavigationCoordinator acts as a base class for custom coordinators with a UINavigationController -as rootViewController.

    - -

    NavigationCoordinator especially ensures that transition animations are called, -which would not be the case when creating a BaseCoordinator<RouteType, NavigationTransition>.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class NavigationCoordinator<RouteType> : BaseCoordinator<RouteType, NavigationTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - PageCoordinator - -
    -
    -
    -
    -
    -
    -

    PageCoordinator provides a base class for your custom coordinator with a UIPageViewController rootViewController.

    -
    -

    Note

    - PageCoordinator sets the dataSource of the rootViewController to reflect the parameters in the initializer. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class PageCoordinator<RouteType> : BaseCoordinator<RouteType, PageTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    PageCoordinatorDataSource is a -UIPageViewControllerDataSource -implementation with a rather static list of pages.

    - -

    It further allows looping through the given pages. When looping is active the pages are wrapped around in the given presentables array. -When the user navigates beyond the end of the specified pages, the pages are wrapped around by displaying the first page. -In analogy to that, it also wraps to the last page when navigating beyond the beginning.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class PageCoordinatorDataSource : NSObject, UIPageViewControllerDataSource
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - RedirectionRouter - -
    -
    -
    -
    -
    -
    -

    RedirectionRouters can be used to extract routes into different route types. -Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers.

    - -

    Create a RedirectionRouter from a parent router by providing a reference to that parent. -Triggered routes of the RedirectionRouter will be redirected to this parent router according to the provided mapping. -Please provide either a map closure in the initializer or override the mapToParentRoute method.

    - -

    A RedirectionRouter has a viewController which is used in transitions, -e.g. when you are presenting, pushing, or otherwise displaying it.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class RedirectionRouter<ParentRoute, RouteType> : Router where ParentRoute : Route, RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - SplitCoordinator - -
    -
    -
    -
    -
    -
    -

    SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type -UISplitViewController.

    - -

    You can use all SplitTransitions and get an initializer to set a master and -(optional) detail presentable.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class SplitCoordinator<RouteType> : BaseCoordinator<RouteType, SplitTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    StaticTransitionAnimation can be used to realize static transition animations.

    -
    -

    Note

    - Consider using InteractiveTransitionAnimation instead, if possible, as it is as simple -to use. However, this class is helpful to make sure your transition animation is not mistaken to be -interactive, if your animation code does not fulfill the requirements of an interactive transition -animation. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class StaticTransitionAnimation : NSObject, TransitionAnimation
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - StrongRouter - -
    -
    -
    -
    -
    -
    -

    StrongRouter is a type-erasure of a given Router object and, therefore, can be used as an abstraction from a specific Router -implementation without losing type information about its RouteType.

    - -

    StrongRouter abstracts away any implementation specific details and -essentially reduces them to properties specified in the Router protocol.

    -
    -

    Note

    - Do not hold a reference to any router from the view hierarchy. -Use UnownedRouter or WeakRouter in your view controllers or view models instead. -You can create them using the Coordinator.unownedRouter and Coordinator.weakRouter properties. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public final class StrongRouter<RouteType> : Router where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController -to allow for transitions to specify transition animations.

    - -

    TabBarAnimationDelegate conforms to the UITabBarControllerDelegate protocol -and is intended for use as the delegate of one tabbar controller only.

    -
    -

    Note

    - Do not override the delegate of a TabBarCoordinator’s rootViewController-delegate. -Instead use the delegate property of the TabBarCoordinator itself. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class TabBarAnimationDelegate : NSObject
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TabBarCoordinator - -
    -
    -
    -
    -
    -
    -

    Use a TabBarCoordinator to coordinate a flow where a UITabbarController serves as a rootViewController. -With a TabBarCoordinator, you get access to all tabbarController-related transitions.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class TabBarCoordinator<RouteType> : BaseCoordinator<RouteType, TabBarTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - ViewCoordinator - -
    -
    -
    -
    -
    -
    -

    ViewCoordinator is a base class for custom coordinators with a UIViewController rootViewController.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class ViewCoordinator<RouteType> : BaseCoordinator<RouteType, ViewTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/Animation.html b/docs/Classes/Animation.html deleted file mode 100644 index 9950c0b3..00000000 --- a/docs/Classes/Animation.html +++ /dev/null @@ -1,698 +0,0 @@ - - - - Animation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Animation

-
-
-
open class Animation : NSObject
- -
-
-

Animation is used to set presentation and dismissal animations for presentables.

- -

Depending on the transition in use, different properties of a UIViewController are set to make sure the transition animation is used.

-
-

Note

-

To not override the previously set Animation, use nil when initializing a transition.

- -

Make sure to hold a strong reference to the Animation object, as it is only held by a weak reference.

- -
- -
-
- -
-
-
- -
    -
  • -
    - - - - default - -
    -
    -
    -
    -
    -
    -

    Use Animation.default to override currently set animations -and reset to the default animations provided by iOS

    -
    -

    Note

    - To disable animations make sure to use non-animating TransitionOptions when triggering. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let `default`: Animation
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presentationAnimation - -
    -
    -
    -
    -
    -
    -

    The transition animation performed when transitioning to a presentable.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var presentationAnimation: TransitionAnimation?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - dismissalAnimation - -
    -
    -
    -
    -
    -
    -

    The transition animation performed when transitioning away from a presentable.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var dismissalAnimation: TransitionAnimation?
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates an Animation object containing a presentation and a dismissal animation.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(presentation: TransitionAnimation?, dismissal: TransitionAnimation?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentation - - -
    -

    The transition animation performed when transitioning to a presentable.

    -
    -
    - - dismissal - - -
    -

    The transition animation performed when transitioning away from a presentable.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animationController(forPresented presented: UIViewController,
    -                              presenting: UIViewController,
    -                              source: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - presented - - -
    -

    The view controller to be presented.

    -
    -
    - - presenting - - -
    -

    The view controller that is presenting.

    -
    -
    - - source - - -
    -

    The view controller whose present(_:animated:completion:) was called.

    -
    -
    -
    -
    -

    Return Value

    -

    The presentation animation when initializing the Animation object.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - dismissed - - -
    -

    The view controller to be dismissed.

    -
    -
    -
    -
    -

    Return Value

    -

    The dismissal animation when initializing the Animation object.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func interactionControllerForPresentation(using animator: UIViewControllerAnimatedTransitioning)
    -    -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animator - - -
    -

    The animator of this transition, which is most likely the presentation animation.

    -
    -
    -
    -
    -

    Return Value

    -

    The presentation animation’s interaction controller.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning)
    -    -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animator - - -
    -

    The animator of this transition, which is most likely the dismissal animation.

    -
    -
    -
    -
    -

    Return Value

    -

    The dismissal animation’s interaction controller.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/AnyCoordinator.html b/docs/Classes/AnyCoordinator.html deleted file mode 100644 index 325ac30c..00000000 --- a/docs/Classes/AnyCoordinator.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - AnyCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

AnyCoordinator

-
-
-
public class AnyCoordinator<RouteType, TransitionType> : Coordinator where RouteType : Route, TransitionType : TransitionProtocol
- -
-
-

AnyCoordinator is a type-erased Coordinator (RouteType & TransitionType) and -can be used as an abstraction from a specific coordinator class while still specifying -TransitionType and RouteType.

-
-

Note

- If you do not want/need to specify TransitionType, you might want to look into the -different router abstractions StrongRouter, UnownedRouter and WeakRouter. -See AnyTransitionPerformer to further abstract from RouteType. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - init(_:) - -
    -
    -
    -
    -
    -
    -

    Creates a type-erased Coordinator for a specific coordinator.

    - -

    A strong reference to the source coordinator is kept.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init<C>(_ coordinator: C) where RouteType == C.RouteType, TransitionType == C.TransitionType, C : Coordinator
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - coordinator - - -
    -

    The source coordinator.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var rootViewController: TransitionType.RootViewController { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Prepare and return transitions for a given route.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The triggered route for which a transition is to be prepared.

    -
    -
    -
    -
    -

    Return Value

    -

    The prepared transition.

    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func presented(from presentable: Presentable?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - setRoot(for:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func setRoot(for window: UIWindow)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - addChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func addChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - removeChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChildrenIfNeeded()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/AnyTransitionPerformer.html b/docs/Classes/AnyTransitionPerformer.html deleted file mode 100644 index 2cf62098..00000000 --- a/docs/Classes/AnyTransitionPerformer.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - AnyTransitionPerformer Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

AnyTransitionPerformer

-
-
-
public class AnyTransitionPerformer<TransitionType> : TransitionPerformer where TransitionType : TransitionProtocol
- -
-
-

AnyTransitionPerformer can be used as an abstraction from a specific TransitionPerformer implementation -without losing type information about its TransitionType.

- -

This type abstraction can be especially helpful when performing transitions. -AnyTransitionPerformer abstracts away any implementation specific details and reduces coordinators to the capabilities -of the TransitionPerformer protocol.

- -
-
- -
-
-
- -
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var rootViewController: TransitionType.RootViewController { get }
    - -
    -
    -
    -
    -
  • -
-
-
- - -
-
-
- -
-
- - - - diff --git a/docs/Classes/BaseCoordinator.html b/docs/Classes/BaseCoordinator.html deleted file mode 100644 index a6b17b78..00000000 --- a/docs/Classes/BaseCoordinator.html +++ /dev/null @@ -1,1007 +0,0 @@ - - - - BaseCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

BaseCoordinator

-
-
-
open class BaseCoordinator<RouteType, TransitionType> : Coordinator where RouteType : Route, TransitionType : TransitionProtocol
- -
-
-

BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator.

- -

It is also encouraged to use already provided subclasses of BaseCoordinator such as -NavigationCoordinator, TabBarCoordinator, ViewCoordinator, SplitCoordinator -and PageCoordinator.

- -
-
- -
-
-
- -
    -
  • -
    - - - - children - -
    -
    -
    -
    -
    -
    -

    The child coordinators that are currently in the view hierarchy. -When performing a transition, children are automatically added and removed from this array -depending on whether they are in the view hierarchy.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public private(set) var children: [Presentable]
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public private(set) var rootViewController: RootViewController
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This initializer trigger a route before the coordinator is made visible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController, initialRoute: RouteType?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - initialRoute - - -
    -

    If a route is specified, it is triggered before making the coordinator visible.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    This initializer performs a transition before the coordinator is made visible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController, initialTransition: TransitionType?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - initialTransition - - -
    -

    If a transition is specified, it is performed before making the coordinator visible.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func presented(from presentable: Presentable?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChildrenIfNeeded()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - addChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func addChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - removeChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    This method prepares transitions for routes. -Override this method to define transitions for triggered routes.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The triggered route for which a transition is to be prepared.

    -
    -
    -
    -
    -

    Return Value

    -

    The prepared transition.

    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - RootViewController - -
    -
    -
    -
    -
    -
    -

    Shortcut for BaseCoordinator.TransitionType.RootViewController

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias RootViewController = TransitionType.RootViewController
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Register an interactive transition triggered by a gesture recognizer.

    - -

    Also consider registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:) as it might make it easier -to implement an interactive transition. This is meant for cases where the other method does not provide enough customization -options.

    - -

    A target is added to the gestureRecognizer so that the handler is executed every time the state of the gesture recognizer changes.

    -
    -

    Note

    -

    Use unregisterInteractiveTransition(triggeredBy:) to remove previously added interactive transitions.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func registerInteractiveTransition<GestureRecognizer: UIGestureRecognizer>(
    -    for route: RouteType,
    -    triggeredBy recognizer: GestureRecognizer,
    -    handler: @escaping (_ handlerRecognizer: GestureRecognizer, _ transition: () -> TransitionAnimation?) -> Void,
    -    completion: PresentationHandler? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered when the gestureRecognizer begins. -Make sure that the transition behind is interactive as otherwise the transition is simply performed.

    -
    -
    - - recognizer - - -
    -

    The gesture recognizer to be used to update the interactive transition.

    -
    -
    - - handler - - -
    -

    The handler to update the interaction controller of the animation generated by the given transition closure.

    -
    -
    - - handlerRecognizer - - -
    -

    The gestureRecognizer with which the handler has been registered.

    -
    -
    - - transition - - -
    -

    The closure to perform the transition. It returns the transition animation to control the interaction controller of. -TransitionAnimation.start() is automatically called.

    -
    -
    - - completion - - -
    -

    The closure to be called whenever the transition completes. -Hint: Might be called multiple times but only once per performing the transition.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Register an interactive transition triggered by a gesture recognizer.

    - -

    To get more customization options, check out registerInteractiveTransition(for:triggeredBy:handler:completion:).

    - -

    A target is added to the gestureRecognizer so that the handler is executed every time the state of the gesture recognizer changes.

    -
    -

    Note

    -

    Use unregisterInteractiveTransition(triggeredBy:) to remove previously added interactive transitions.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func registerInteractiveTransition<GestureRecognizer: UIGestureRecognizer>(
    -    for route: RouteType,
    -    triggeredBy recognizer: GestureRecognizer,
    -    progress: @escaping (GestureRecognizer) -> CGFloat,
    -    shouldFinish: @escaping (GestureRecognizer) -> Bool,
    -    completion: PresentationHandler? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered when the gestureRecognizer begins. -Make sure that the transition behind is interactive as otherwise the transition is simply performed.

    -
    -
    - - recognizer - - -
    -

    The gesture recognizer to be used to update the interactive transition.

    -
    -
    - - progress - - -
    -

    Return the progress as CGFloat between 0 (start) and 1 (finish).

    -
    -
    - - shouldFinish - - -
    -

    Decide depending on the gestureRecognizer’s state whether to finish or cancel a given transition.

    -
    -
    - - completion - - -
    -

    The closure to be called whenever the transition completes. -Hint: Might be called multiple times but only once per performing the transition.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Unregisters a previously registered interactive transition.

    - -

    Unregistering is not mandatory to prevent reference cycles, etc. -It is useful, though, to remove previously registered interactive transitions that are no longer needed or wanted.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func unregisterInteractiveTransitions(triggeredBy recognizer: UIGestureRecognizer)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - recognizer - - -
    -

    The recognizer to unregister interactive transitions for. -This method will unregister all interactive transitions with that gesture recognizer.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/BasicCoordinator.html b/docs/Classes/BasicCoordinator.html deleted file mode 100644 index 56246807..00000000 --- a/docs/Classes/BasicCoordinator.html +++ /dev/null @@ -1,487 +0,0 @@ - - - - BasicCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

BasicCoordinator

-
-
-
open class BasicCoordinator<RouteType, TransitionType> : BaseCoordinator<RouteType, TransitionType> where RouteType : Route, TransitionType : TransitionProtocol
- -
-
-

BasicCoordinator is a coordinator class that can be used without subclassing.

- -

Although subclassing of coordinators is encouraged for more complex cases, a BasicCoordinator can easily -be created by only providing a prepareTransition closure, an initialRoute and an initialLoadingType.

- -
-
- -
-
-
- -
    -
  • -
    - - - - InitialLoadingType - -
    -
    -
    -
    -
    -
    -

    InitialLoadingType differentiates between different points in time when the initital route is to -be triggered by the coordinator.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public enum InitialLoadingType
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a BasicCoordinator.

    -
    -

    Seealso

    -

    See InitialLoadingType for more information.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController,
    -            initialRoute: RouteType? = nil,
    -            initialLoadingType: InitialLoadingType = .presented,
    -            prepareTransition: ((RouteType) -> TransitionType)?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - initialRoute - - -
    -

    If a route is specified, it is triggered depending on the initialLoadingType.

    -
    -
    - - initialLoadingType - - -
    -

    The initialLoadingType specifies when the initialRoute is triggered.

    -
    -
    - - prepareTransition - - -
    -

    A closure to define transitions based on triggered routes. -Make sure to override prepareTransition by subclassing, if you specify nil here.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    -

    This method is called whenever the BasicCoordinator is shown to the user.

    - -

    If initialLoadingType has been specified as presented and an initialRoute is present, -the route is triggered here.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open override func presented(from presentable: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The context in which this coordinator has been shown to the user.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open override func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/BasicCoordinator/InitialLoadingType.html b/docs/Classes/BasicCoordinator/InitialLoadingType.html deleted file mode 100644 index b25611d2..00000000 --- a/docs/Classes/BasicCoordinator/InitialLoadingType.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - InitialLoadingType Enumeration Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

InitialLoadingType

-
-
-
public enum InitialLoadingType
- -
-
-

InitialLoadingType differentiates between different points in time when the initital route is to -be triggered by the coordinator.

- -
-
- -
-
-
-
    -
  • -
    - - - - immediately - -
    -
    -
    -
    -
    -
    -

    The initial route is triggered before the coordinator is made visible (i.e. on initialization).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case immediately
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - presented - -
    -
    -
    -
    -
    -
    -

    The initial route is triggered after the coordinator is made visible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case presented
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/InteractiveTransitionAnimation.html b/docs/Classes/InteractiveTransitionAnimation.html deleted file mode 100644 index 4df724ac..00000000 --- a/docs/Classes/InteractiveTransitionAnimation.html +++ /dev/null @@ -1,735 +0,0 @@ - - - - InteractiveTransitionAnimation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

InteractiveTransitionAnimation

-
-
-
open class InteractiveTransitionAnimation : NSObject, TransitionAnimation
- -
-
-

InteractiveTransitionAnimation provides a simple interface to create interactive transition animations.

- -

An InteractiveTransitionAnimation can be created by providing the duration, the animation code -and (optionally) a closure to create an interaction controller.

- - -
-
- -
-
-
- - -
-
- - -
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of the transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The transition duration as specified in the initializer.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of a transition for which the animation should be started.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This method is used to generate an applicable interaction controller.

    -
    -

    Note

    - To allow for more complex logic to create a specific interaction controller, -override this method in your subclass. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func generateInteractionController() -> PercentDrivenInteractionController?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - start() - -
    -
    -
    -
    -
    -
    -

    Starts the transition animation by generating an interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func start()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cleanup() - -
    -
    -
    -
    -
    -
    -

    Ends the transition animation by deleting the interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func cleanup()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/InterruptibleTransitionAnimation.html b/docs/Classes/InterruptibleTransitionAnimation.html deleted file mode 100644 index 19f3c114..00000000 --- a/docs/Classes/InterruptibleTransitionAnimation.html +++ /dev/null @@ -1,589 +0,0 @@ - - - - InterruptibleTransitionAnimation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

InterruptibleTransitionAnimation

-
-
-
@available(iOS 10.0, *)
-open class InterruptibleTransitionAnimation : InteractiveTransitionAnimation
- -
-
-

Use InterruptibleTransitionAnimation to define interactive transitions based on the -UIViewPropertyAnimator -APIs introduced in iOS 10.

- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates an interruptible transition animation based on duration, an animator generator closure -and an interaction controller generator closure.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(duration: TimeInterval,
    -            generateAnimator: @escaping (UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating,
    -            generateInteractionController: @escaping () -> PercentDrivenInteractionController?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - duration - - -
    -

    The total duration of the animation.

    -
    -
    - - generateAnimator - - -
    -

    A generator closure to create a UIViewPropertyAnimator dynamically.

    -
    -
    - - generateInteractionController - - -
    -

    A generator closure to create an interaction controller which handles animation progress changes.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates an interruptible transition animation based on duration and an animator generator closure.

    - -

    A UIPercentDrivenInteractiveTransition is used as interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public convenience init(duration: TimeInterval,
    -                        generateAnimator: @escaping (UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - duration - - -
    -

    The total duration of the animation.

    -
    -
    - - generateAnimator - - -
    -

    A generator closure to create a UIViewPropertyAnimator dynamically.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Generates an interruptible animator based on the transitionContext. -It further adds a completion block to the animator to ensure it is deallocated once -the transition is finished.

    - -

    This code is called once per transition to generate the interruptible animator -which is reused in subsequent calls of interruptibeAnimator(using:).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func generateInterruptibleAnimator(using transitionContext: UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context in which the transition is performed.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -

    This method simply calls startAnimation() on the interruptible animator.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open override func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context in which the transition is performed.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -

    This method returns an already generated interruptible animator, if present. -Otherwise it generates a new one using generateInterruptibleAnimator(using:).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func interruptibleAnimator(using transitionContext: UIViewControllerContextTransitioning
    -    ) -> UIViewImplicitlyAnimating
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context in which the transition is performed.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/NavigationAnimationDelegate.html b/docs/Classes/NavigationAnimationDelegate.html deleted file mode 100644 index 88d98297..00000000 --- a/docs/Classes/NavigationAnimationDelegate.html +++ /dev/null @@ -1,855 +0,0 @@ - - - - NavigationAnimationDelegate Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

NavigationAnimationDelegate

-
-
-
open class NavigationAnimationDelegate : NSObject
- -
-
-

NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController -to allow for push-transitions to specify animations.

- -

NavigationAnimationDelegate conforms to the UINavigationControllerDelegate protocol -and is intended for use as the delegate of one navigation controller only.

-
-

Note

- Do not override the delegate of a NavigationCoordinator’s rootViewController. -Instead use the delegate property of the NavigationCoordinator itself. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - velocityThreshold - -
    -
    -
    -
    -
    -
    -

    The velocity threshold needed for the interactive pop transition to succeed

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var velocityThreshold: CGFloat { get }
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    The transition progress threshold for the interactive pop transition to succeed

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var transitionProgressThreshold: CGFloat { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               interactionControllerFor animationController: UIViewControllerAnimatedTransitioning
    -    ) -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - animationController - - -
    -

    The animationController to return the interactionController for.

    -
    -
    -
    -
    -

    Return Value

    -

    If the animationController is a TransitionAnimation, it returns its interactionController. -Otherwise it requests an interactionController from the NavigationCoordinator’s delegate.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               animationControllerFor operation: UINavigationController.Operation,
    -                               from fromVC: UIViewController,
    -                               to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - operation - - -
    -

    The operation being executed. Possible values are push, pop or none.

    -
    -
    - - fromVC - - -
    -

    The source view controller of the transition.

    -
    -
    - - toVC - - -
    -

    The destination view controller of the transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The destination view controller’s animationController depending on its transitioningDelegate. -In the case of a push operation, it returns the toVC’s presentation animation. -For pop it is the fromVC’s dismissal animation. If there is no transitioningDelegate or the operation none is used, -it uses the NavigationCoordinator’s delegate as fallback.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               didShow viewController: UIViewController, animated: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - operation - - -
    -

    The operation being executed. Possible values are push, pop or none.

    -
    -
    - - viewController - - -
    -

    The target view controller.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               willShow viewController: UIViewController,
    -                               animated: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - operation - - -
    -

    The operation being executed. Possible values are push, pop or none.

    -
    -
    - - viewController - - -
    -

    The view controller to be shown.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIGestureRecognizerDelegate documentation -for further reference.

    -
    -

    Note

    -

    This method alters the target of the gestureRecognizer to either its former delegate (UIKit default) -or this class depending on whether a pop animation has been specified.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - gestureRecognizer - - -
    -

    The gesture recognizer this class is the delegate of. -This class is used as the delegate for the interactivePopGestureRecognizer of -the navigationController.

    -
    -
    -
    -
    -

    Return Value

    -

    This method returns true, if and only if

    - -
      -
    • there are more than 1 view controllers on the navigation controller stack (so that it is possible to pop a viewController) and
    • -
    • it is the interactivePopGestureRecognizer to call this method
    • -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This method handles changes of the navigation controller’s interactivePopGestureRecognizer.

    - -

    This method performs the top-most dismissalAnimation and informs its interaction controller about changes -of the interactivePopGestureRecognizer’s state.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @objc
    -open func handleInteractivePopGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - gestureRecognizer - - -
    -

    The interactivePopGestureRecognizer of the UINavigationController.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This method sets up the interactivePopGestureRecognizer of the navigation controller -to allow for custom interactive pop animations.

    - -

    This method overrides the delegate of the interactivePopGestureRecognizer to self, -but keeps a reference to the original delegate to enable the default pop animations.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func setupPopGestureRecognizer(for navigationController: UINavigationController)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - navigationController - - -
    -

    The navigation controller to be set up.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/NavigationCoordinator.html b/docs/Classes/NavigationCoordinator.html deleted file mode 100644 index 7ff05792..00000000 --- a/docs/Classes/NavigationCoordinator.html +++ /dev/null @@ -1,458 +0,0 @@ - - - - NavigationCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

NavigationCoordinator

-
-
-
open class NavigationCoordinator<RouteType> : BaseCoordinator<RouteType, NavigationTransition> where RouteType : Route
- -
-
-

NavigationCoordinator acts as a base class for custom coordinators with a UINavigationController -as rootViewController.

- -

NavigationCoordinator especially ensures that transition animations are called, -which would not be the case when creating a BaseCoordinator<RouteType, NavigationTransition>.

- -
-
- -
-
-
- -
    -
  • -
    - - - - animationDelegate - -
    -
    -
    -
    -
    -
    -

    The animation delegate controlling the rootViewController’s transition animations. -This animation delegate is set to be the rootViewController’s rootViewController, if you did not set one earlier.

    -
    -

    Note

    - Use the delegate property to set a custom delegate and use transition animations provided by XCoordinator. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let animationDelegate: NavigationAnimationDelegate
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - delegate - -
    -
    -
    -
    -
    -
    -

    This represents a fallback-delegate to be notified about navigation controller events. -It is further used to call animation methods when no animation has been specified in the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var delegate: UINavigationControllerDelegate? { get set }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a NavigationCoordinator and optionally triggers an initial route.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController = .init(), initialRoute: RouteType? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - initialRoute - - -
    -

    The route to be triggered.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a NavigationCoordinator and pushes a presentable onto the navigation stack right away.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), root: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - root - - -
    -

    The presentable to be pushed.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/PageCoordinator.html b/docs/Classes/PageCoordinator.html deleted file mode 100644 index 16b56db4..00000000 --- a/docs/Classes/PageCoordinator.html +++ /dev/null @@ -1,525 +0,0 @@ - - - - PageCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PageCoordinator

-
-
-
open class PageCoordinator<RouteType> : BaseCoordinator<RouteType, PageTransition> where RouteType : Route
- -
-
-

PageCoordinator provides a base class for your custom coordinator with a UIPageViewController rootViewController.

-
-

Note

- PageCoordinator sets the dataSource of the rootViewController to reflect the parameters in the initializer. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - dataSource - -
    -
    -
    -
    -
    -
    -

    The dataSource of the rootViewController.

    - -

    Feel free to change the pages at runtime. To reflect the changes in the rootViewController, perform a set transition as well.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let dataSource: UIPageViewControllerDataSource
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a PageCoordinator with several sequential (potentially looping) pages.

    - -

    It further sets the current page of the rootViewController animated in the specified direction.

    -
    -

    Note

    -

    If you need custom configuration of the rootViewController, modify the configuration parameter, -since you cannot change this after the initialization.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(),
    -            pages: [Presentable],
    -            loop: Bool = false,
    -            set: Presentable? = nil,
    -            direction: UIPageViewController.NavigationDirection = .forward)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - -
    - - pages - - -
    -

    The pages of the PageCoordinator. -These can be changed later, if necessary, using the PageCoordinator.dataSource property.

    -
    -
    - - loop - - -
    -

    Whether or not the PageCoordinator should loop when hitting the end or the beginning of the specified pages.

    -
    -
    - - set - - -
    -

    The presentable to be shown right from the start. -This should be one of the elements of the specified pages. -If not specified, no set transition is triggered, which results in the first page being shown.

    -
    -
    - - direction - - -
    -

    The direction in which the transition to set the specified first page (parameter set) should be animated in. -If you specify nil for set, this parameter is ignored.

    -
    -
    - - configuration - - -
    -

    The configuration of the rootViewController. You cannot change this configuration later anymore (Limitation of UIKit).

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a PageCoordinator with a custom dataSource. -It further sets the currently shown page and a direction for the animation of displaying it. -If you need custom configuration of the rootViewController, modify the configuration parameter, -since you cannot change this after the initialization.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(),
    -            dataSource: UIPageViewControllerDataSource,
    -            set: Presentable,
    -            direction: UIPageViewController.NavigationDirection)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - -
    - - dataSource - - -
    -

    The dataSource of the PageCoordinator.

    -
    -
    - - set - - -
    -

    The presentable to be shown right from the start. -This should be one of the elements of the specified pages. -If not specified, no set transition is triggered, which results in the first page being shown.

    -
    -
    - - direction - - -
    -

    The direction in which the transition to set the specified first page (parameter set) should be animated in. -If you specify nil for set, this parameter is ignored.

    -
    -
    - - configuration - - -
    -

    The configuration of the rootViewController. You cannot change this configuration later anymore (Limitation of UIKit).

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/PageCoordinatorDataSource.html b/docs/Classes/PageCoordinatorDataSource.html deleted file mode 100644 index e6e8c8c3..00000000 --- a/docs/Classes/PageCoordinatorDataSource.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - PageCoordinatorDataSource Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PageCoordinatorDataSource

-
-
-
open class PageCoordinatorDataSource : NSObject, UIPageViewControllerDataSource
- -
-
-

PageCoordinatorDataSource is a -UIPageViewControllerDataSource -implementation with a rather static list of pages.

- -

It further allows looping through the given pages. When looping is active the pages are wrapped around in the given presentables array. -When the user navigates beyond the end of the specified pages, the pages are wrapped around by displaying the first page. -In analogy to that, it also wraps to the last page when navigating beyond the beginning.

- -
-
- -
-
-
- -
    -
  • -
    - - - - pages - -
    -
    -
    -
    -
    -
    -

    The pages of the UIPageViewController in sequential order.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var pages: [UIViewController]
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - loop - -
    -
    -
    -
    -
    -
    -

    Whether or not the pages of the UIPageViewController should be in a loop, -i.e. whether a swipe to the left of the last page should result in the first page being shown -(or the last shown when swiping right on the first page)

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var loop: Bool
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - init(pages:loop:) - -
    -
    -
    -
    -
    -
    -

    Creates a PageCoordinatorDataSource with the given pages and looping capabilities.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(pages: [UIViewController], loop: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - pages - - -
    -

    The pages to be shown in the UIPageViewController.

    -
    -
    - - loop - - -
    -

    Whether or not the pages of the UIPageViewController should be in a loop, -i.e. whether a swipe to the left of the last page should result in the first page being shown -(or the last shown when swiping right on the first page) -If you specify false here, the user cannot swipe left on the last page and right on the first.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func presentationCount(for pageViewController: UIPageViewController) -> Int
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    -
    -
    -

    Return Value

    -

    The count of pages, if it is displayed. Otherwise 0.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func presentationIndex(for pageViewController: UIPageViewController) -> Int
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    -
    -
    -

    Return Value

    -

    The index of the currently visible view controller.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -

    This method first searches for the index of the given viewController in the pages array. -It then tries to find a viewController at the preceding position by potentially looping.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func pageViewController(_ pageViewController: UIPageViewController,
    -                             viewControllerBefore viewController: UIViewController) -> UIViewController?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    - - viewController - - -
    -

    The viewController to find the preceding viewController of.

    -
    -
    -
    -
    -

    Return Value

    -

    The preceding viewController.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -

    This method first searches for the index of the given viewController in the pages array. -It then tries to find a viewController at the following position by potentially looping.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func pageViewController(_ pageViewController: UIPageViewController,
    -                             viewControllerAfter viewController: UIViewController) -> UIViewController?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    - - viewController - - -
    -

    The viewController to find the following viewController of.

    -
    -
    -
    -
    -

    Return Value

    -

    The following viewController.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/RedirectionRouter.html b/docs/Classes/RedirectionRouter.html deleted file mode 100644 index 4685534c..00000000 --- a/docs/Classes/RedirectionRouter.html +++ /dev/null @@ -1,535 +0,0 @@ - - - - RedirectionRouter Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

RedirectionRouter

-
-
-
open class RedirectionRouter<ParentRoute, RouteType> : Router where ParentRoute : Route, RouteType : Route
- -
-
-

RedirectionRouters can be used to extract routes into different route types. -Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers.

- -

Create a RedirectionRouter from a parent router by providing a reference to that parent. -Triggered routes of the RedirectionRouter will be redirected to this parent router according to the provided mapping. -Please provide either a map closure in the initializer or override the mapToParentRoute method.

- -

A RedirectionRouter has a viewController which is used in transitions, -e.g. when you are presenting, pushing, or otherwise displaying it.

- -
-
- -
-
-
- -
    -
  • -
    - - - - parent - -
    -
    -
    -
    -
    -
    -

    A type-erased Router object of the parent router.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let parent: UnownedRouter<ParentRoute>
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController used in transitions, e.g. when pushing, presenting -or otherwise displaying the RedirectionRouter.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public private(set) var viewController: UIViewController!
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a RedirectionRouter with a certain viewController, a parent router -and an optional mapping.

    -
    -

    Note

    -

    Make sure to either override mapToSuperRoute or to specify a closure for the map parameter. -If you override mapToSuperRoute, the map parameter is ignored.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(viewController: UIViewController,
    -            parent: UnownedRouter<ParentRoute>,
    -            map: ((RouteType) -> ParentRoute)?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - viewController - - -
    -

    The view controller to be used in transitions, e.g. when pushing, presenting or otherwise displaying the RedirectionRouter.

    -
    -
    - - parent - - -
    -

    Triggered routes will be rerouted to the parent router.

    -
    -
    - - map - - -
    -

    A mapping from this RedirectionRouter’s routes to the parent’s routes.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func contextTrigger(_ route: RouteType,
    -                         with options: TransitionOptions,
    -                         completion: ContextPresentationHandler?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - mapToParentRoute(_:) - -
    -
    -
    -
    -
    -
    -

    Map RouteType to ParentRoute.

    - -

    This method is called when a route is triggered in the RedirectionRouter. -It is used to translate RouteType routes to the parent’s routes which are then triggered in the parent router.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func mapToParentRoute(_ route: RouteType) -> ParentRoute
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The route to be mapped.

    -
    -
    -
    -
    -

    Return Value

    -

    The mapped route for the parent router.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/SplitCoordinator.html b/docs/Classes/SplitCoordinator.html deleted file mode 100644 index d688c8f3..00000000 --- a/docs/Classes/SplitCoordinator.html +++ /dev/null @@ -1,369 +0,0 @@ - - - - SplitCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

SplitCoordinator

-
-
-
open class SplitCoordinator<RouteType> : BaseCoordinator<RouteType, SplitTransition> where RouteType : Route
- -
-
-

SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type -UISplitViewController.

- -

You can use all SplitTransitions and get an initializer to set a master and -(optional) detail presentable.

- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController = .init(), initialRoute: RouteType?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a SplitCoordinator and sets the specified presentables as the rootViewController’s -viewControllers.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), master: Presentable, detail: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - master - - -
    -

    The presentable to be shown as master in the UISplitViewController.

    -
    -
    - - detail - - -
    -

    The presentable to be shown as detail in the UISplitViewController. This is optional due to -the fact that it might not be useful to have a detail page right away on a small-screen device.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/StaticTransitionAnimation.html b/docs/Classes/StaticTransitionAnimation.html deleted file mode 100644 index c0a8e4dc..00000000 --- a/docs/Classes/StaticTransitionAnimation.html +++ /dev/null @@ -1,526 +0,0 @@ - - - - StaticTransitionAnimation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

StaticTransitionAnimation

-
-
-
open class StaticTransitionAnimation : NSObject, TransitionAnimation
- -
-
-

StaticTransitionAnimation can be used to realize static transition animations.

-
-

Note

- Consider using InteractiveTransitionAnimation instead, if possible, as it is as simple -to use. However, this class is helpful to make sure your transition animation is not mistaken to be -interactive, if your animation code does not fulfill the requirements of an interactive transition -animation. - -
- -
-
- -
-
-
- - -
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a StaticTransitionAnimation to be used as presentation or dismissal transition animation in -an Animation object.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(duration: TimeInterval, performAnimation: @escaping (_ context: UIViewControllerContextTransitioning) -> Void)
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of the current transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The duration of the animation as specified in the initializer.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -

    This method performs the animation as specified in the initializer.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of the current transition.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - start() - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func start()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cleanup() - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func cleanup()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/StrongRouter.html b/docs/Classes/StrongRouter.html deleted file mode 100644 index 51bd8daf..00000000 --- a/docs/Classes/StrongRouter.html +++ /dev/null @@ -1,625 +0,0 @@ - - - - StrongRouter Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

StrongRouter

-
-
-
public final class StrongRouter<RouteType> : Router where RouteType : Route
- -
-
-

StrongRouter is a type-erasure of a given Router object and, therefore, can be used as an abstraction from a specific Router -implementation without losing type information about its RouteType.

- -

StrongRouter abstracts away any implementation specific details and -essentially reduces them to properties specified in the Router protocol.

-
-

Note

- Do not hold a reference to any router from the view hierarchy. -Use UnownedRouter or WeakRouter in your view controllers or view models instead. -You can create them using the Coordinator.unownedRouter and Coordinator.weakRouter properties. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - init(_:) - -
    -
    -
    -
    -
    -
    -

    Creates a StrongRouter object from a given router.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init<T>(_ router: T) where RouteType == T.RouteType, T : Router
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - router - - -
    -

    The source router.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Triggers routes and provides the transition context in the completion-handler.

    - -

    Useful for deep linking. It is encouraged to use trigger instead, if the context is not needed.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func contextTrigger(_ route: RouteType,
    -                           with options: TransitionOptions,
    -                           completion: ContextPresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options configuring the execution of transitions, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations). -If the context is not needed, use trigger instead.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Triggers the specified route by performing a transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options for performing the transition, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations).

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    -

    This method is called whenever a Presentable is shown to the user. -It further provides information about the presentable responsible for the presenting.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func presented(from presentable: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The context in which the presentable is shown. -This could be a window, another viewController, a coordinator, etc. -nil is specified whenever a context cannot be easily determined.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController of the Presentable.

    - -

    In the case of a UIViewController, it returns itself. -A coordinator returns its rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func childTransitionCompleted()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/TabBarAnimationDelegate.html b/docs/Classes/TabBarAnimationDelegate.html deleted file mode 100644 index dc902646..00000000 --- a/docs/Classes/TabBarAnimationDelegate.html +++ /dev/null @@ -1,725 +0,0 @@ - - - - TabBarAnimationDelegate Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TabBarAnimationDelegate

-
-
-
open class TabBarAnimationDelegate : NSObject
- -
-
-

TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController -to allow for transitions to specify transition animations.

- -

TabBarAnimationDelegate conforms to the UITabBarControllerDelegate protocol -and is intended for use as the delegate of one tabbar controller only.

-
-

Note

- Do not override the delegate of a TabBarCoordinator’s rootViewController-delegate. -Instead use the delegate property of the TabBarCoordinator itself. - -
- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -
      -
    • Parameters

      - -
        -
      • tabBarController: The delegate owner.
      • -
      • animationController: The animationController to return the interactionController for.
      • -
    • -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           interactionControllerFor animationController: UIViewControllerAnimatedTransitioning
    -    ) -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Return Value

    -

    If the animationController is a TransitionAnimation, it returns its interactionController. -Otherwise it requests an interactionController from the TabBarCoordinator’s delegate.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           animationControllerForTransitionFrom fromVC: UIViewController,
    -                           to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - fromVC - - -
    -

    The source view controller of the transition.

    -
    -
    - - toVC - - -
    -

    The destination view controller of the transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The presentation animation controller from the toVC’s transitioningDelegate. -If not present, it uses the TabBarCoordinator’s delegate as fallback.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           didSelect viewController: UIViewController)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewController - - -
    -

    The destination viewController.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           shouldSelect viewController: UIViewController) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewController - - -
    -

    The destination viewController.

    -
    -
    -
    -
    -

    Return Value

    -

    The result of the TabBarCooordinator’s delegate. If not specified, it returns true.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           willBeginCustomizing viewControllers: [UIViewController])
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewControllers - - -
    -

    The source viewControllers.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           didEndCustomizing viewControllers: [UIViewController], changed: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewControllers - - -
    -

    The source viewControllers.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           willEndCustomizing viewControllers: [UIViewController], changed: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewControllers - - -
    -

    The source viewControllers.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/TabBarCoordinator.html b/docs/Classes/TabBarCoordinator.html deleted file mode 100644 index 76bec17b..00000000 --- a/docs/Classes/TabBarCoordinator.html +++ /dev/null @@ -1,512 +0,0 @@ - - - - TabBarCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TabBarCoordinator

-
-
-
open class TabBarCoordinator<RouteType> : BaseCoordinator<RouteType, TabBarTransition> where RouteType : Route
- -
-
-

Use a TabBarCoordinator to coordinate a flow where a UITabbarController serves as a rootViewController. -With a TabBarCoordinator, you get access to all tabbarController-related transitions.

- -
-
- -
-
-
- -
    -
  • -
    - - - - delegate - -
    -
    -
    -
    -
    -
    -

    Use this delegate to get informed about tabbarController-related notifications and delegate methods -specifying transition animations. The delegate is only referenced weakly.

    - -

    Set this delegate instead of overriding the delegate of the rootViewController -specified in the initializer, if possible, to allow for transition animations -to be executed as specified in the prepareTransition(for:) method.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var delegate: UITabBarControllerDelegate? { get set }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController = .init(), initialRoute: RouteType?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a TabBarCoordinator with a specified set of tabs.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), tabs: [Presentable])
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - tabs - - -
    -

    The presentables to be used as tabs.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a TabBarCoordinator with a specified set of tabs and selects a specific presentable.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), tabs: [Presentable], select: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabs - - -
    -

    The presentables to be used as tabs.

    -
    -
    - - select - - -
    -

    The presentable to be selected before displaying. Make sure, this presentable is one of the -specified tabs in the other parameter.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a TabBarCoordinator with a specified set of tabs and selects a presentable at a given index.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), tabs: [Presentable], select: Int)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabs - - -
    -

    The presentables to be used as tabs.

    -
    -
    - - select - - -
    -

    The index of the presentable to be selected before displaying.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Classes/ViewCoordinator.html b/docs/Classes/ViewCoordinator.html deleted file mode 100644 index d9cd3ad3..00000000 --- a/docs/Classes/ViewCoordinator.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - ViewCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

ViewCoordinator

-
-
-
open class ViewCoordinator<RouteType> : BaseCoordinator<RouteType, ViewTransition> where RouteType : Route
- -
-
-

ViewCoordinator is a base class for custom coordinators with a UIViewController rootViewController.

- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController, initialRoute: RouteType? = nil)
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Extensions.html b/docs/Extensions.html deleted file mode 100644 index 83651e5a..00000000 --- a/docs/Extensions.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - Extensions Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Extensions

-

The following extensions are available globally.

- -
-
- -
-
-
- - -
-
-
- -
-
- - - - diff --git a/docs/Extensions/UIView.html b/docs/Extensions/UIView.html deleted file mode 100644 index 7b36d198..00000000 --- a/docs/Extensions/UIView.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - UIView Extension Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UIView

-
-
-
extension UIView: Container
- -
-
- -
-
- -
-
-
-
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - view - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var view: UIView! { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Extensions/UIViewController.html b/docs/Extensions/UIViewController.html deleted file mode 100644 index 0115ec93..00000000 --- a/docs/Extensions/UIViewController.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - UIViewController Extension Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UIViewController

-
-
-
extension UIViewController: Container
- -
-
- -
-
- -
-
-
-
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols.html b/docs/Protocols.html deleted file mode 100644 index 46c84776..00000000 --- a/docs/Protocols.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - Protocols Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Protocols

-

The following protocols are available globally.

- -
-
- -
-
-
-
    -
  • -
    - - - - Container - -
    -
    -
    -
    -
    -
    -

    Container abstracts away from the difference of UIView and UIViewController

    - -

    With the Container protocol, UIView and UIViewController objects can be used interchangeably, -e.g. when embedding containers into containers.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Container
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Coordinator - -
    -
    -
    -
    -
    -
    -

    Coordinator is the protocol every coordinator conforms to.

    - -

    It requires an object to be able to trigger routes and perform transitions. -This connection is created using the prepareTransition(for:) method.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Coordinator : Router, TransitionPerformer
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionContext - -
    -
    -
    -
    -
    -
    -

    TransitionContext provides context information about transitions.

    - -

    It is especially useful for deep linking as XCoordinator can internally gather information about -the presentables being pushed onto the view hierarchy.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionContext
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Presentable - -
    -
    -
    -
    -
    -
    -

    Presentable represents all objects that can be presented (i.e. shown) to the user.

    - -

    Therefore, it is useful for view controllers, coordinators and views. -Presentable is often used for transitions to allow for view controllers and coordinators to be transitioned to.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Presentable
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Route - -
    -
    -
    -
    -
    -
    -

    This is the protocol your route types need to conform to.

    -
    -

    Note

    - It has no requirements, although the use of enums is encouraged to make your -navigation code type safe. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Router - -
    -
    -
    -
    -
    -
    -

    The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator.

    - -

    A Router can trigger routes, which lead to transitions being executed. In constrast to the Coordinator protocol, -the router does not specify a TransitionType and can therefore be used in the form of a -StrongRouter, UnownedRouter or WeakRouter to reduce a coordinator’s capabilities to -the triggering of routes. -This may especially be useful in viewModels when using them in different contexts.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Router : Presentable
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionAnimation - -
    -
    -
    -
    -
    -
    -

    TransitionAnimation aims to provide a common protocol for any type of transition animation used in an Animation object.

    - -

    XCoordinator provides different implementations of this protocol with the StaticTransitionAnimation, -InteractiveTransitionAnimation and InterruptibleTransitionAnimation classes.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionAnimation : UIViewControllerAnimatedTransitioning
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion. -Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation.

    - -

    PercentDrivenInteractionController is based on the UIViewControllerInteractiveTransitioning protocol.

    -
    -

    Note

    - While you can implement your custom implementation, -UIKit offers a default implementation with UIPercentDrivenInteractiveTransition. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol PercentDrivenInteractionController : UIViewControllerInteractiveTransitioning
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionPerformer - -
    -
    -
    -
    -
    -
    -

    The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator. -It keeps type information about its transition performing capabilities.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionPerformer : Presentable
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionProtocol - -
    -
    -
    -
    -
    -
    -

    TransitionProtocol is used to abstract any concrete transition implementation.

    - -

    Transition is provided as an easily-extensible default transition type implementation.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionProtocol : TransitionContext
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/Container.html b/docs/Protocols/Container.html deleted file mode 100644 index 2a868a42..00000000 --- a/docs/Protocols/Container.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - Container Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Container

-
-
-
public protocol Container
- -
-
-

Container abstracts away from the difference of UIView and UIViewController

- -

With the Container protocol, UIView and UIViewController objects can be used interchangeably, -e.g. when embedding containers into containers.

- -
-
- -
-
-
-
    -
  • -
    - - - - view - -
    -
    -
    -
    -
    -
    -

    The view of the Container.

    -
    -

    Note

    - It might not exist for a UIViewController. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var view: UIView! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController of the Container.

    -
    -

    Note

    - It might not exist for a UIView. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/Coordinator.html b/docs/Protocols/Coordinator.html deleted file mode 100644 index 6fd1b16b..00000000 --- a/docs/Protocols/Coordinator.html +++ /dev/null @@ -1,996 +0,0 @@ - - - - Coordinator Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Coordinator

-
-
-
public protocol Coordinator : Router, TransitionPerformer
- -
-
-

Coordinator is the protocol every coordinator conforms to.

- -

It requires an object to be able to trigger routes and perform transitions. -This connection is created using the prepareTransition(for:) method.

- -
-
- -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    This method prepares transitions for routes. -It especially decides, which transitions are performed for the triggered routes.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The triggered route for which a transition is to be prepared.

    -
    -
    -
    -
    -

    Return Value

    -

    The prepared transition.

    -
    -
    -
    -
  • -
  • -
    - - - - addChild(_:) - -
    -
    -
    -
    -
    -
    -

    This method adds a child to a coordinator’s children.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func addChild(_ presentable: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The child to be added.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - removeChild(_:) - -
    -
    -
    -
    -
    -
    -

    This method removes a child to a coordinator’s children.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func removeChild(_ presentable: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The child to be removed.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    This method removes all children that are no longer in the view hierarchy.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func removeChildrenIfNeeded()
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - RootViewController - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Shortcut for Coordinator.TransitionType.RootViewController

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias RootViewController = TransitionType.RootViewController
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - viewController - - - Extension method - -
    -
    -
    -
    -
    -
    -

    A Coordinator uses its rootViewController as viewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - weakRouter - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates a WeakRouter object from the given router to abstract from concrete implementations -while maintaining information necessary to fulfill the Router protocol. -The original router will be held weakly.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var weakRouter: WeakRouter<RouteType> { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - unownedRouter - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates an UnownedRouter object from the given router to abstract from concrete implementations -while maintaining information necessary to fulfill the Router protocol. -The original router will be held unowned.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var unownedRouter: UnownedRouter<RouteType> { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - anyCoordinator - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates an AnyCoordinator based on the current coordinator.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var anyCoordinator: AnyCoordinator<RouteType, TransitionType> { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func presented(from presentable: Presentable?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - childTransitionCompleted() - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func childTransitionCompleted()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - contextTrigger(_:with:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func contextTrigger(_ route: RouteType,
    -                           with options: TransitionOptions,
    -                           completion: ContextPresentationHandler?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - chain(routes:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    With chain(routes:) different routes can be chained together to form a combined transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func chain(routes: [RouteType]) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - routes - - -
    -

    The routes to be chained.

    -
    -
    -
    -
    -

    Return Value

    -

    A transition combining the transitions of the specified routes.

    -
    -
    -
    -
  • -
  • -
    - - - - performTransition(_:with:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func performTransition(_ transition: TransitionType,
    -                              with options: TransitionOptions,
    -                              completion: PresentationHandler? = nil)
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - deepLink(_:_:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Deep-Linking can be used to chain routes of different types together.

    -
    -

    Note

    -

    Use it with caution, as it is not implemented in a type-safe manner. -Keep in mind that changes in the app’s structure and changes of transitions -behind the given routes can lead to runtime errors and, therefore, crashes of your app.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func deepLink<RootViewController, S: Sequence>(_ route: RouteType, _ remainingRoutes: S)
    -    -> Transition<RootViewController> where S.Element == Route, TransitionType == Transition<RootViewController>
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The first route in the chain. -It is given a special place because its exact type can be specified.

    -
    -
    - - remainingRoutes - - -
    -

    The remaining routes of the chain.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - deepLink(_:_:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Deep-Linking can be used to chain routes of different types together.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func deepLink<RootViewController>(_ route: RouteType, _ remainingRoutes: Route...)
    -    -> Transition<RootViewController> where TransitionType == Transition<RootViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - registerPeek(for:route:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Use this transition to register 3D Touch Peek and Pop functionality.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @available(iOS, introduced: 9.0, deprecated: 13.0, message: "Use `UIContextMenuInteraction` instead.")
    -public func registerPeek<RootViewController>(for source: Container,
    -                                             route: RouteType
    -    ) -> Transition<RootViewController> where Self.TransitionType == Transition<RootViewController>
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - source - - -
    -

    The view to register peek and pop on.

    -
    -
    - - route - - -
    -

    The route to be triggered for peek and pop.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/PercentDrivenInteractionController.html b/docs/Protocols/PercentDrivenInteractionController.html deleted file mode 100644 index c0d3e12d..00000000 --- a/docs/Protocols/PercentDrivenInteractionController.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - PercentDrivenInteractionController Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PercentDrivenInteractionController

-
-
-
public protocol PercentDrivenInteractionController : UIViewControllerInteractiveTransitioning
- -
-
-

PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion. -Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation.

- -

PercentDrivenInteractionController is based on the UIViewControllerInteractiveTransitioning protocol.

-
-

Note

- While you can implement your custom implementation, -UIKit offers a default implementation with UIPercentDrivenInteractiveTransition. - -
- -
-
- -
-
-
-
    -
  • -
    - - - - update(_:) - -
    -
    -
    -
    -
    -
    -

    Updates the animation to be at the specified progress.

    - -

    This method is called based on user interactions. -A linear progression of the animation is encouraged when handling user interactions.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func update(_ percentComplete: CGFloat)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cancel() - -
    -
    -
    -
    -
    -
    -

    Cancels the animation, e.g. by cleaning up and reversing any progress made.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func cancel()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - finish() - -
    -
    -
    -
    -
    -
    -

    Finishes the animation by completing it from the current progress onwards.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func finish()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/Presentable.html b/docs/Protocols/Presentable.html deleted file mode 100644 index def33f99..00000000 --- a/docs/Protocols/Presentable.html +++ /dev/null @@ -1,551 +0,0 @@ - - - - Presentable Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Presentable

-
-
-
public protocol Presentable
- -
-
-

Presentable represents all objects that can be presented (i.e. shown) to the user.

- -

Therefore, it is useful for view controllers, coordinators and views. -Presentable is often used for transitions to allow for view controllers and coordinators to be transitioned to.

- -
-
- -
-
-
-
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController of the Presentable.

    - -

    In the case of a UIViewController, it returns itself. -A coordinator returns its rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - router(for:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method can be used to retrieve whether the presentable can trigger a specific route -and potentially returns a router to trigger the route on.

    - -

    Deep linking makes use of this method to trigger the specified routes.

    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func router<R>(for route: R) -> StrongRouter<R>? where R : Route
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The route to determine a router for.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method is called whenever a Presentable is shown to the user. -It further provides information about the context a presentable is shown in.

    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func presented(from presentable: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The context in which the presentable is shown. -This could be a window, another viewController, a coordinator, etc. -nil is specified whenever a context cannot be easily determined.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method is used to register a parent coordinator to a child coordinator.

    -
    -

    Note

    - This method is used internally and should never be called directly. - -
    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - childTransitionCompleted() - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method gets called when the transition of a child coordinator is being reported to its parent.

    -
    -

    Note

    - This method is used internally and should never be called directly. - -
    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func childTransitionCompleted()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - setRoot(for:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    Sets the presentable as the root of the window.

    - -

    This method sets the rootViewController of the window and makes it key and visible. -Furthermore, it calls presented(from:) with the window as its parameter.

    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func setRoot(for window: UIWindow)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - window - - -
    -

    The window to set the root of.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/Router.html b/docs/Protocols/Router.html deleted file mode 100644 index 29ffd2c0..00000000 --- a/docs/Protocols/Router.html +++ /dev/null @@ -1,685 +0,0 @@ - - - - Router Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Router

-
-
-
public protocol Router : Presentable
- -
-
-

The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator.

- -

A Router can trigger routes, which lead to transitions being executed. In constrast to the Coordinator protocol, -the router does not specify a TransitionType and can therefore be used in the form of a -StrongRouter, UnownedRouter or WeakRouter to reduce a coordinator’s capabilities to -the triggering of routes. -This may especially be useful in viewModels when using them in different contexts.

- -
-
- -
-
-
-
    -
  • -
    - - - - RouteType - -
    -
    -
    -
    -
    -
    -

    RouteType defines which routes can be triggered in a certain Router implementation.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype RouteType : Route
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Triggers routes and returns context in completion-handler.

    - -

    Useful for deep linking. It is encouraged to use trigger instead, if the context is not needed.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func contextTrigger(_ route: RouteType, with options: TransitionOptions, completion: ContextPresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options configuring the execution of transitions, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations). -If the context is not needed, use trigger instead.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - trigger(_:with:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Triggers the specified route without the need of specifying a completion handler.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, with options: TransitionOptions)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options for performing the transition, e.g. whether it should be animated.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - trigger(_:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Triggers the specified route with default transition options enabling the animation of the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, completion: PresentationHandler? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations).

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - trigger(_:with:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Triggers the specified route by performing a transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options for performing the transition, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations).

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - strongRouter - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates a StrongRouter object from the given router to abstract from concrete implementations -while maintaining information necessary to fulfill the Router protocol. -The original router will be held strongly.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var strongRouter: StrongRouter<RouteType> { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - router(for:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Returns a router for the specified route, if possible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func router<R>(for route: R) -> StrongRouter<R>? where R : Route
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The route type to return a router for.

    -
    -
    -
    -
    -

    Return Value

    -

    It returns the router’s strongRouter, -if it is compatible with the given route type, -otherwise nil.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/TransitionAnimation.html b/docs/Protocols/TransitionAnimation.html deleted file mode 100644 index da9eb644..00000000 --- a/docs/Protocols/TransitionAnimation.html +++ /dev/null @@ -1,362 +0,0 @@ - - - - TransitionAnimation Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionAnimation

-
-
-
public protocol TransitionAnimation : UIViewControllerAnimatedTransitioning
- -
-
-

TransitionAnimation aims to provide a common protocol for any type of transition animation used in an Animation object.

- -

XCoordinator provides different implementations of this protocol with the StaticTransitionAnimation, -InteractiveTransitionAnimation and InterruptibleTransitionAnimation classes.

- -
-
- -
-
-
-
    -
  • -
    - - - - interactionController - -
    -
    -
    -
    -
    -
    -

    The interaction controller of an animation. -It gets notified about the state of an animation and handles the specific events accordingly.

    - -

    The interaction controller is reset when calling TransitionAnimation.start() can always be nil, -e.g. in static transition animations.

    - -

    Until TransitionAnimation.cleanup() is called, it should always return the same instance.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var interactionController: PercentDrivenInteractionController? { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - start() - -
    -
    -
    -
    -
    -
    -

    Starts the animation by possibly creating a new interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func start()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cleanup() - -
    -
    -
    -
    -
    -
    -

    Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func cleanup()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/TransitionContext.html b/docs/Protocols/TransitionContext.html deleted file mode 100644 index f519a608..00000000 --- a/docs/Protocols/TransitionContext.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - TransitionContext Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionContext

-
-
-
public protocol TransitionContext
- -
-
-

TransitionContext provides context information about transitions.

- -

It is especially useful for deep linking as XCoordinator can internally gather information about -the presentables being pushed onto the view hierarchy.

- -
-
- -
-
-
-
    -
  • -
    - - - - presentables - -
    -
    -
    -
    -
    -
    -

    The presentables being shown to the user by the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var presentables: [Presentable] { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - animation - -
    -
    -
    -
    -
    -
    -

    The transition animation directly used in the transition, if applicable.

    -
    -

    Note

    - Make sure to not return nil, if you want to use BaseCoordinator.registerInteractiveTransition -to realize an interactive transition. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var animation: TransitionAnimation? { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/TransitionPerformer.html b/docs/Protocols/TransitionPerformer.html deleted file mode 100644 index 0df5becf..00000000 --- a/docs/Protocols/TransitionPerformer.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - TransitionPerformer Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionPerformer

-
-
-
public protocol TransitionPerformer : Presentable
- -
-
-

The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator. -It keeps type information about its transition performing capabilities.

- -
-
- -
-
-
-
    -
  • -
    - - - - TransitionType - -
    -
    -
    -
    -
    -
    -

    The type of transitions that can be executed on the rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    -

    The rootViewController on which transitions are performed.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var rootViewController: TransitionType.RootViewController { get }
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Perform a transition.

    -
    -

    Warning

    -

    Do not use this method directly, but instead try to use the trigger -method of your coordinator instead wherever possible.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func performTransition(_ transition: TransitionType, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - transition - - -
    -

    The transition to be performed.

    -
    -
    - - options - - -
    -

    The options on how to perform the transition, including the option to enable/disable animations.

    -
    -
    - - completion - - -
    -

    The completion handler called once a transition has finished.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Protocols/TransitionProtocol.html b/docs/Protocols/TransitionProtocol.html deleted file mode 100644 index 30e2c3eb..00000000 --- a/docs/Protocols/TransitionProtocol.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - TransitionProtocol Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionProtocol

-
-
-
public protocol TransitionProtocol : TransitionContext
- -
-
-

TransitionProtocol is used to abstract any concrete transition implementation.

- -

Transition is provided as an easily-extensible default transition type implementation.

- -
-
- -
-
-
-
    -
  • -
    - - - - RootViewController - -
    -
    -
    -
    -
    -
    -

    The type of the rootViewController that can execute the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype RootViewController : UIViewController
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Performs a transition on the given viewController.

    -
    -

    Warning

    - Do not call this method directly. Instead use your coordinator’s performTransition method or trigger -a specified route (latter option is encouraged). - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func perform(on rootViewController: RootViewController, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - multiple(_:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    Creates a compound transition by chaining multiple transitions together.

    - -
    -

    Default Implementation

    -
    -

    Creates a compound transition by chaining multiple transitions together.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    static func multiple(_ transitions: [Self]) -> Self
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitions - - -
    -

    The transitions to be chained to form a combined transition.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Structs.html b/docs/Structs.html deleted file mode 100644 index d6d9eafd..00000000 --- a/docs/Structs.html +++ /dev/null @@ -1,469 +0,0 @@ - - - - Structures Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Structures

-

The following structures are available globally.

- -
-
- -
-
-
-
    -
  • -
    - - - - Transition - -
    -
    -
    -
    -
    -
    -

    This struct represents the common implementation of the TransitionProtocol. -It is used in every of the provided BaseCoordinator subclasses and provides all transitions implemented in XCoordinator.

    - -

    Transitions are defined by a Transition.Perform closure. -It further provides different context information such as Transition.presentable and Transition.animation. -You can create your own custom transitions using Transition.init(presentable:animation:perform:) or -use one of the many provided static functions to create the most common transitions.

    -
    -

    Note

    - Transitions have a generic constraint to the rootViewController in use. -Therefore, not all transitions are available in every coordinator. -Make sure to specify the RootViewController type of the TransitionType of your coordinator as precise as possible -to get all already available transitions. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct Transition<RootViewController> : TransitionProtocol where RootViewController : UIViewController
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionOptions - -
    -
    -
    -
    -
    -
    -

    TransitionOptions specifies transition customization points defined at the point of triggering a transition.

    - -

    You can use TransitionOptions to define whether or not a transition should be animated.

    -
    -

    Note

    - It might be extended in the future to enable more advanced customization options. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct TransitionOptions
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - UnownedErased - -
    -
    -
    -
    -
    -
    -

    UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create an UnownedErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @propertyWrapper
    -public struct UnownedErased<Value>
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - UnownedErased - -
    -
    -
    -
    -
    -
    -

    UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create an UnownedErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - WeakErased - -
    -
    -
    -
    -
    -
    -

    WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create a WeakErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @propertyWrapper
    -public struct WeakErased<Value>
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - WeakErased - -
    -
    -
    -
    -
    -
    -

    WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create a WeakErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Structs/Transition.html b/docs/Structs/Transition.html deleted file mode 100644 index a054d6f9..00000000 --- a/docs/Structs/Transition.html +++ /dev/null @@ -1,1772 +0,0 @@ - - - - Transition Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Transition

-
-
-
public struct Transition<RootViewController> : TransitionProtocol where RootViewController : UIViewController
- -
-
-

This struct represents the common implementation of the TransitionProtocol. -It is used in every of the provided BaseCoordinator subclasses and provides all transitions implemented in XCoordinator.

- -

Transitions are defined by a Transition.Perform closure. -It further provides different context information such as Transition.presentable and Transition.animation. -You can create your own custom transitions using Transition.init(presentable:animation:perform:) or -use one of the many provided static functions to create the most common transitions.

-
-

Note

- Transitions have a generic constraint to the rootViewController in use. -Therefore, not all transitions are available in every coordinator. -Make sure to specify the RootViewController type of the TransitionType of your coordinator as precise as possible -to get all already available transitions. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - PerformClosure - -
    -
    -
    -
    -
    -
    -

    Perform is the type of closure used to perform the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias PerformClosure = (_ rootViewController: RootViewController, _ options: TransitionOptions, _ completion: PresentationHandler?) -> Void
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - rootViewController - - -
    -

    The rootViewController to perform the transition on.

    -
    -
    - - options - - -
    -

    The options on how to perform the transition, e.g. whether it should be animated or not.

    -
    -
    - - completion - - -
    -

    The completion handler of the transition. -It is called when the transition (including all animations) is completed.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presentables - -
    -
    -
    -
    -
    -
    -

    The presentables this transition is putting into the view hierarchy. This is especially useful for -deep-linking.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var presentables: [Presentable] { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - animation - -
    -
    -
    -
    -
    -
    -

    The transition animation this transition is using, i.e. the presentation or dismissal animation -of the specified Animation object. If the transition does not use any transition animations, nil -is returned.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var animation: TransitionAnimation? { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Create your custom transitions with this initializer.

    - -

    Extending Transition with static functions to create transitions with this initializer -(instead of calling this initializer in your prepareTransition(for:) method) is advised -as it makes reuse easier.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(presentables: [Presentable], animationInUse: TransitionAnimation?, perform: @escaping PerformClosure)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - presentables - - -
    -

    The presentables this transition is putting into the view hierarchy, if specifiable. -These presentables are used in the deep-linking feature.

    -
    -
    - - animationInUse - - -
    -

    The transition animation this transition is using during the transition, i.e. the present animation -of a presenting transition or the dismissal animation of a dismissing transition. -Make sure to specify an animation here to use your transition with the -registerInteractiveTransition method in your coordinator.

    -
    -
    - - perform - - -
    -

    The perform closure executes the transition. -To create custom transitions, make sure to call the completion handler after all animations are done. -If applicable, make sure to use the TransitionOptions to, e.g., decide whether a transition should be animated or not.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Performs a transition on the given viewController.

    -
    -

    Warning

    - Do not call this method directly. Instead use your coordinator’s performTransition method or trigger -a specified route (latter option is encouraged). - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func perform(on rootViewController: RootViewController, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - push(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Pushes a presentable on the rootViewController’s navigation stack.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func push(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be pushed onto the navigation stack.

    -
    -
    - - animation - - -
    -

    The animation to set for the presentable. Its presentationAnimation will be used for the -immediate push-transition, its dismissalAnimation is used for the pop-transition, -if not otherwise specified. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - pop(animation:) - -
    -
    -
    -
    -
    -
    -

    Pops the topViewController from the rootViewController’s navigation stack.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func pop(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to set for the presentable. Only its dismissalAnimation is used for the -pop-transition. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - pop(to:animation:) - -
    -
    -
    -
    -
    -
    -

    Pops viewControllers from the rootViewController’s navigation stack until the specified -presentable is reached.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func pop(to presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to pop to. Make sure this presentable is in the rootViewController’s -navigation stack before performing such a transition.

    -
    -
    - - animation - - -
    -

    The animation to set for the presentable. Only its dismissalAnimation is used for the -pop-transition. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - popToRoot(animation:) - -
    -
    -
    -
    -
    -
    -

    Pops viewControllers from the rootViewController’s navigation stack until only one viewController -is left.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func popToRoot(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to set for the presentable. Only its dismissalAnimation is used for the -pop-transition. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - set(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Replaces the navigation stack of the rootViewController with the specified presentables.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func set(_ presentables: [Presentable], animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentables - - -
    -

    The presentables to make up the navigation stack after the transition is done.

    -
    -
    - - animation - - -
    -

    The animation to set for the presentable. Its presentationAnimation will be used for the -transition animation of the top-most viewController, its dismissalAnimation is used for -any pop-transition of the whole navigation stack, if not otherwise specified. Specify nil -here to leave animations as they were set for the presentables before. You can use -Animation.default to reset the previously set animations on all presentables.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - set(_:_:direction:) - -
    -
    -
    -
    -
    -
    -

    Sets the current page(s) of the rootViewController. Make sure to set -UIPageViewController.isDoubleSided to the appropriate setting before executing this transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func set(_ first: Presentable, _ second: Presentable? = nil,
    -                       direction: UIPageViewController.NavigationDirection) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - first - - -
    -

    The first page being shown. If second is specified as nil, this reflects a single page -being shown.

    -
    -
    - - second - - -
    -

    The second page being shown. This page is optional, as your rootViewController can be used -with isDoubleSided enabled or not.

    -
    -
    - - direction - - -
    -

    The direction in which the transition should be animated.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - set(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to set the tabs of the rootViewController with an optional custom animation.

    -
    -

    Note

    -

    Only the presentation animation of the Animation object is used.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func set(_ presentables: [Presentable], animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentables - - -
    -

    The tabs to be set are defined by the presentables’ viewControllers.

    -
    -
    - - animation - - -
    -

    The animation to be used. If you specify nil here, the default animation by UIKit is used.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - select(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to select a tab with an optional custom animation.

    -
    -

    Note

    -

    Only the presentation animation of the Animation object is used.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func select(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The tab to be selected is the presentable’s viewController. Make sure that this is one of the -previously specified tabs of the rootViewController.

    -
    -
    - - animation - - -
    -

    The animation to be used. If you specify nil here, the default animation by UIKit is used.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Transition to select a tab with an optional custom animation.

    -
    -

    Note

    -

    Only the presentation animation of the Animation object is used.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func select(index: Int, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - index - - -
    -

    The index of the tab to be selected. Make sure that there is a tab at the specified index.

    -
    -
    - - animation - - -
    -

    The animation to be used. If you specify nil here, the default animation by UIKit is used.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - show(_:) - -
    -
    -
    -
    -
    -
    -

    Shows a viewController by calling show on the rootViewController.

    -
    -

    Note

    -

    Prefer Transition.push when using transitions on a UINavigationController rootViewController. -In contrast to this transition, you can specify an animation.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func show(_ presentable: Presentable) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The presentable to be shown as a primary view controller.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - showDetail(_:) - -
    -
    -
    -
    -
    -
    -

    Shows a detail viewController by calling showDetail on the rootViewController.

    -
    -

    Note

    -

    Prefer Transition.push when using transitions on a UINavigationController rootViewController. -In contrast to this transition, you can specify an animation.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func showDetail(_ presentable: Presentable) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The presentable to be shown as a detail view controller.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Transition to present the given presentable on the rootViewController.

    - -

    The present-transition might also be helpful as it always presents on top of what is currently -presented.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func presentOnRoot(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be presented.

    -
    -
    - - animation - - -
    -

    The animation to be set as the presentable’s transitioningDelegate. Specify nil to not override -the current transitioningDelegate and Animation.default to reset the transitioningDelegate to use -the default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - present(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to present the given presentable. It uses the rootViewController’s presentedViewController, -if present, otherwise it is equivalent to presentOnRoot.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func present(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be presented.

    -
    -
    - - animation - - -
    -

    The animation to be set as the presentable’s transitioningDelegate. Specify nil to not override -the current transitioningDelegate and Animation.default to reset the transitioningDelegate to use -the default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - embed(_:in:) - -
    -
    -
    -
    -
    -
    -

    Transition to embed the given presentable in a specific container (i.e. a view or viewController).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func embed(_ presentable: Presentable, in container: Container) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be embedded.

    -
    -
    - - container - - -
    -

    The container to embed the presentable in.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Transition to call dismiss on the rootViewController. Also take a look at the dismiss transition, -which calls dismiss on the rootViewController’s presentedViewController, if present.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func dismissToRoot(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to be used by the rootViewController’s presentedViewController. -Specify nil to not override its transitioningDelegate or Animation.default to fall back to the -default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - dismiss(animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to call dismiss on the rootViewController’s presentedViewController, if present. -Otherwise, it is equivalent to dismissToRoot.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func dismiss(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to be used by the rootViewController’s presentedViewController. -Specify nil to not override its transitioningDelegate or Animation.default to fall back to the -default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - none() - -
    -
    -
    -
    -
    -
    -

    No transition at all. May be useful for testing or debugging purposes, or to ignore specific -routes.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func none() -> Transition
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - multiple(_:) - -
    -
    -
    -
    -
    -
    -

    With this transition you can chain multiple transitions of the same type together.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func multiple<C>(_ transitions: C) -> Transition where C : Collection, C.Element == Transition<RootViewController>
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitions - - -
    -

    The transitions to be chained to form the new transition.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - route(_:on:) - -
    -
    -
    -
    -
    -
    -

    Use this transition to trigger a route on another coordinator. TransitionOptions and -PresentationHandler used during the execution of this transitions are forwarded.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func route<C>(_ route: C.RouteType, on coordinator: C) -> Transition where C : Coordinator
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered on the coordinator.

    -
    -
    - - coordinator - - -
    -

    The coordinator to trigger the route on.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - trigger(_:on:) - -
    -
    -
    -
    -
    -
    -

    Use this transition to trigger a route on another router. TransitionOptions and -PresentationHandler used during the execution of this transitions are forwarded.

    - -

    Peeking is not supported with this transition. If needed, use the route transition instead.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func trigger<R>(_ route: R.RouteType, on router: R) -> Transition where R : Router
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered on the coordinator.

    -
    -
    - - router - - -
    -

    The router to trigger the route on.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - perform(_:on:) - -
    -
    -
    -
    -
    -
    -

    Performs a transition on a different viewController than the coordinator’s rootViewController.

    - -

    This might be helpful when creating a coordinator for a specific viewController would create unnecessary complicated code.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func perform<TransitionType: TransitionProtocol>(_ transition: TransitionType,
    -                                                               on viewController: TransitionType.RootViewController) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - transition - - -
    -

    The transition to be performed.

    -
    -
    - - viewController - - -
    -

    The viewController to perform the transition on.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Structs/TransitionOptions.html b/docs/Structs/TransitionOptions.html deleted file mode 100644 index 7a1d7027..00000000 --- a/docs/Structs/TransitionOptions.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - TransitionOptions Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionOptions

-
-
-
public struct TransitionOptions
- -
-
-

TransitionOptions specifies transition customization points defined at the point of triggering a transition.

- -

You can use TransitionOptions to define whether or not a transition should be animated.

-
-

Note

- It might be extended in the future to enable more advanced customization options. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - animated - -
    -
    -
    -
    -
    -
    -

    Specifies whether or not the transition should be animated.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let animated: Bool
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - init(animated:) - -
    -
    -
    -
    -
    -
    -

    Creates transition options on the basis of whether or not it should be animated.

    -
    -

    Note

    -

    Specifying true to enable animations does not necessarily lead to an animated transition, -if the transition does not support it.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(animated: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animated - - -
    -

    Whether or not the animation should be animated.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Structs/UnownedErased.html b/docs/Structs/UnownedErased.html deleted file mode 100644 index 4386c53b..00000000 --- a/docs/Structs/UnownedErased.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - UnownedErased Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UnownedErased

-

UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

- -

Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create an UnownedErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

- -
-
- -
-
-
-
    -
  • -
    - - - - wrappedValue - -
    -
    -
    -
    -
    -
    -

    The type-erased or otherwise mapped version of the value being held unowned.

    - -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Structs/WeakErased.html b/docs/Structs/WeakErased.html deleted file mode 100644 index fb7d2d7b..00000000 --- a/docs/Structs/WeakErased.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - WeakErased Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

WeakErased

-

WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

- -

Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create a WeakErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

- -
-
- -
-
-
-
    -
  • -
    - - - - wrappedValue - -
    -
    -
    -
    -
    -
    -

    The type-erased or otherwise mapped version of the value being held weakly.

    - -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/Typealiases.html b/docs/Typealiases.html deleted file mode 100644 index c3f9b126..00000000 --- a/docs/Typealiases.html +++ /dev/null @@ -1,760 +0,0 @@ - - - - Type Aliases Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Type Aliases

-

The following type aliases are available globally.

- -
-
- -
-
-
- -
-
- -
-
-
    -
  • -
    - - - - PresentationHandler - -
    -
    -
    -
    -
    -
    -

    The completion handler for transitions.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias PresentationHandler = () -> Void
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    The completion handler for transitions, which also provides the context information about the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias ContextPresentationHandler = (TransitionContext) -> Void
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - NavigationTransition - -
    -
    -
    -
    -
    -
    -

    NavigationTransition offers transitions that can be used -with a UINavigationController as rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias NavigationTransition = Transition<UINavigationController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - PageTransition - -
    -
    -
    -
    -
    -
    -

    PageTransition offers transitions that can be used -with a UIPageViewController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias PageTransition = Transition<UIPageViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - SplitTransition - -
    -
    -
    -
    -
    -
    -

    SplitTransition offers different transitions common to a UISplitViewController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias SplitTransition = Transition<UISplitViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TabBarTransition - -
    -
    -
    -
    -
    -
    -

    TabBarTransition offers transitions that can be used -with a UITabBarController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias TabBarTransition = Transition<UITabBarController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - AnyRouter - -
    -
    -
    -
    -
    -
    -

    Please use StrongRouter, WeakRouter or UnownedRouter instead.

    -
    -

    Note

    - Use a StrongRouter, if you need to hold a router even -when it is not in the view hierarchy. -Use a WeakRouter or UnownedRouter when you are accessing -any router from the view hierarchy. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @available(iOS, deprecated)
    -public typealias AnyRouter<RouteType> = UnownedRouter<RouteType> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - UnownedRouter - -
    -
    -
    -
    -
    -
    -

    An UnownedRouter is an unowned version of a router object to be used in view controllers or view models.

    -
    -

    Note

    - Do not create an UnownedRouter from a StrongRouter since StrongRouter is only another wrapper -and does not represent the might instantly - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias UnownedRouter<RouteType> = UnownedErased<StrongRouter<RouteType>> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - ViewTransition - -
    -
    -
    -
    -
    -
    -

    ViewTransition offers transitions common to any UIViewController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias ViewTransition = Transition<UIViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - WeakRouter - -
    -
    -
    -
    -
    -
    -

    A WeakRouter is a weak version of a router object to be used in view controllers or view models.

    -
    -

    Note

    - Do not create a WeakRouter from a StrongRouter since StrongRouter is only another wrapper -and does not represent the might instantly. -Also keep in mind that once the original router object has been deallocated, -calling trigger on this wrapper will have no effect. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias WeakRouter<RouteType> = WeakErased<StrongRouter<RouteType>> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/css/highlight.css b/docs/css/highlight.css deleted file mode 100644 index d0db0e13..00000000 --- a/docs/css/highlight.css +++ /dev/null @@ -1,200 +0,0 @@ -/* Credit to https://gist.github.com/wataru420/2048287 */ -.highlight { - /* Comment */ - /* Error */ - /* Keyword */ - /* Operator */ - /* Comment.Multiline */ - /* Comment.Preproc */ - /* Comment.Single */ - /* Comment.Special */ - /* Generic.Deleted */ - /* Generic.Deleted.Specific */ - /* Generic.Emph */ - /* Generic.Error */ - /* Generic.Heading */ - /* Generic.Inserted */ - /* Generic.Inserted.Specific */ - /* Generic.Output */ - /* Generic.Prompt */ - /* Generic.Strong */ - /* Generic.Subheading */ - /* Generic.Traceback */ - /* Keyword.Constant */ - /* Keyword.Declaration */ - /* Keyword.Pseudo */ - /* Keyword.Reserved */ - /* Keyword.Type */ - /* Literal.Number */ - /* Literal.String */ - /* Name.Attribute */ - /* Name.Builtin */ - /* Name.Class */ - /* Name.Constant */ - /* Name.Entity */ - /* Name.Exception */ - /* Name.Function */ - /* Name.Namespace */ - /* Name.Tag */ - /* Name.Variable */ - /* Operator.Word */ - /* Text.Whitespace */ - /* Literal.Number.Float */ - /* Literal.Number.Hex */ - /* Literal.Number.Integer */ - /* Literal.Number.Oct */ - /* Literal.String.Backtick */ - /* Literal.String.Char */ - /* Literal.String.Doc */ - /* Literal.String.Double */ - /* Literal.String.Escape */ - /* Literal.String.Heredoc */ - /* Literal.String.Interpol */ - /* Literal.String.Other */ - /* Literal.String.Regex */ - /* Literal.String.Single */ - /* Literal.String.Symbol */ - /* Name.Builtin.Pseudo */ - /* Name.Variable.Class */ - /* Name.Variable.Global */ - /* Name.Variable.Instance */ - /* Literal.Number.Integer.Long */ } - .highlight .c { - color: #999988; - font-style: italic; } - .highlight .err { - color: #a61717; - background-color: #e3d2d2; } - .highlight .k { - color: #000000; - font-weight: bold; } - .highlight .o { - color: #000000; - font-weight: bold; } - .highlight .cm { - color: #999988; - font-style: italic; } - .highlight .cp { - color: #999999; - font-weight: bold; } - .highlight .c1 { - color: #999988; - font-style: italic; } - .highlight .cs { - color: #999999; - font-weight: bold; - font-style: italic; } - .highlight .gd { - color: #000000; - background-color: #ffdddd; } - .highlight .gd .x { - color: #000000; - background-color: #ffaaaa; } - .highlight .ge { - color: #000000; - font-style: italic; } - .highlight .gr { - color: #aa0000; } - .highlight .gh { - color: #999999; } - .highlight .gi { - color: #000000; - background-color: #ddffdd; } - .highlight .gi .x { - color: #000000; - background-color: #aaffaa; } - .highlight .go { - color: #888888; } - .highlight .gp { - color: #555555; } - .highlight .gs { - font-weight: bold; } - .highlight .gu { - color: #aaaaaa; } - .highlight .gt { - color: #aa0000; } - .highlight .kc { - color: #000000; - font-weight: bold; } - .highlight .kd { - color: #000000; - font-weight: bold; } - .highlight .kp { - color: #000000; - font-weight: bold; } - .highlight .kr { - color: #000000; - font-weight: bold; } - .highlight .kt { - color: #445588; } - .highlight .m { - color: #009999; } - .highlight .s { - color: #d14; } - .highlight .na { - color: #008080; } - .highlight .nb { - color: #0086B3; } - .highlight .nc { - color: #445588; - font-weight: bold; } - .highlight .no { - color: #008080; } - .highlight .ni { - color: #800080; } - .highlight .ne { - color: #990000; - font-weight: bold; } - .highlight .nf { - color: #990000; } - .highlight .nn { - color: #555555; } - .highlight .nt { - color: #000080; } - .highlight .nv { - color: #008080; } - .highlight .ow { - color: #000000; - font-weight: bold; } - .highlight .w { - color: #bbbbbb; } - .highlight .mf { - color: #009999; } - .highlight .mh { - color: #009999; } - .highlight .mi { - color: #009999; } - .highlight .mo { - color: #009999; } - .highlight .sb { - color: #d14; } - .highlight .sc { - color: #d14; } - .highlight .sd { - color: #d14; } - .highlight .s2 { - color: #d14; } - .highlight .se { - color: #d14; } - .highlight .sh { - color: #d14; } - .highlight .si { - color: #d14; } - .highlight .sx { - color: #d14; } - .highlight .sr { - color: #009926; } - .highlight .s1 { - color: #d14; } - .highlight .ss { - color: #990073; } - .highlight .bp { - color: #999999; } - .highlight .vc { - color: #008080; } - .highlight .vg { - color: #008080; } - .highlight .vi { - color: #008080; } - .highlight .il { - color: #009999; } diff --git a/docs/css/jazzy.css b/docs/css/jazzy.css deleted file mode 100644 index 833be0d2..00000000 --- a/docs/css/jazzy.css +++ /dev/null @@ -1,378 +0,0 @@ -*, *:before, *:after { - box-sizing: inherit; } - -body { - margin: 0; - background: #fff; - color: #333; - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - letter-spacing: .2px; - -webkit-font-smoothing: antialiased; - box-sizing: border-box; } - -h1 { - font-size: 2rem; - font-weight: 700; - margin: 1.275em 0 0.6em; } - -h2 { - font-size: 1.75rem; - font-weight: 700; - margin: 1.275em 0 0.3em; } - -h3 { - font-size: 1.5rem; - font-weight: 700; - margin: 1em 0 0.3em; } - -h4 { - font-size: 1.25rem; - font-weight: 700; - margin: 1.275em 0 0.85em; } - -h5 { - font-size: 1rem; - font-weight: 700; - margin: 1.275em 0 0.85em; } - -h6 { - font-size: 1rem; - font-weight: 700; - margin: 1.275em 0 0.85em; - color: #777; } - -p { - margin: 0 0 1em; } - -ul, ol { - padding: 0 0 0 2em; - margin: 0 0 0.85em; } - -blockquote { - margin: 0 0 0.85em; - padding: 0 15px; - color: #858585; - border-left: 4px solid #e5e5e5; } - -img { - max-width: 100%; } - -a { - color: #4183c4; - text-decoration: none; } - a:hover, a:focus { - outline: 0; - text-decoration: underline; } - a.discouraged { - text-decoration: line-through; } - a.discouraged:hover, a.discouraged:focus { - text-decoration: underline line-through; } - -table { - background: #fff; - width: 100%; - border-collapse: collapse; - border-spacing: 0; - overflow: auto; - margin: 0 0 0.85em; } - -tr:nth-child(2n) { - background-color: #fbfbfb; } - -th, td { - padding: 6px 13px; - border: 1px solid #ddd; } - -pre { - margin: 0 0 1.275em; - padding: .85em 1em; - overflow: auto; - background: #f7f7f7; - font-size: .85em; - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } - -code { - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } - -p > code, li > code { - background: #f7f7f7; - padding: .2em; } - p > code:before, p > code:after, li > code:before, li > code:after { - letter-spacing: -.2em; - content: "\00a0"; } - -pre code { - padding: 0; - white-space: pre; } - -.content-wrapper { - display: flex; - flex-direction: column; } - @media (min-width: 768px) { - .content-wrapper { - flex-direction: row; } } - -.header { - display: flex; - padding: 8px; - font-size: 0.875em; - background: #444; - color: #999; } - -.header-col { - margin: 0; - padding: 0 8px; } - -.header-col--primary { - flex: 1; } - -.header-link { - color: #fff; } - -.header-icon { - padding-right: 6px; - vertical-align: -4px; - height: 16px; } - -.breadcrumbs { - font-size: 0.875em; - padding: 8px 16px; - margin: 0; - background: #fbfbfb; - border-bottom: 1px solid #ddd; } - -.carat { - height: 10px; - margin: 0 5px; } - -.navigation { - order: 2; } - @media (min-width: 768px) { - .navigation { - order: 1; - width: 25%; - max-width: 300px; - padding-bottom: 64px; - overflow: hidden; - word-wrap: normal; - background: #fbfbfb; - border-right: 1px solid #ddd; } } - -.nav-groups { - list-style-type: none; - padding-left: 0; } - -.nav-group-name { - border-bottom: 1px solid #ddd; - padding: 8px 0 8px 16px; } - -.nav-group-name-link { - color: #333; } - -.nav-group-tasks { - margin: 8px 0; - padding: 0 0 0 8px; } - -.nav-group-task { - font-size: 1em; - list-style-type: none; - white-space: nowrap; } - -.nav-group-task-link { - color: #808080; } - -.main-content { - order: 1; } - @media (min-width: 768px) { - .main-content { - order: 2; - flex: 1; - padding-bottom: 60px; } } - -.section { - padding: 0 32px; - border-bottom: 1px solid #ddd; } - -.section-content { - max-width: 834px; - margin: 0 auto; - padding: 16px 0; } - -.section-name { - color: #666; - display: block; } - -.declaration .highlight { - overflow-x: initial; - padding: 8px 0; - margin: 0; - background-color: transparent; - border: none; } - -.task-group-section { - border-top: 1px solid #ddd; } - -.task-group { - padding-top: 0px; } - -.task-name-container a[name]:before { - content: ""; - display: block; } - -.item-container { - padding: 0; } - -.item { - padding-top: 8px; - width: 100%; - list-style-type: none; } - .item a[name]:before { - content: ""; - display: block; } - .item .token, .item .direct-link { - padding-left: 3px; - margin-left: 0px; - font-size: 1rem; } - .item .declaration-note { - font-size: .85em; - color: #808080; - font-style: italic; } - -.pointer-container { - border-bottom: 1px solid #ddd; - left: -23px; - padding-bottom: 13px; - position: relative; - width: 110%; } - -.pointer { - left: 21px; - top: 7px; - display: block; - position: absolute; - width: 12px; - height: 12px; - border-left: 1px solid #ddd; - border-top: 1px solid #ddd; - background: #fff; - transform: rotate(45deg); } - -.height-container { - display: none; - position: relative; - width: 100%; - overflow: hidden; } - .height-container .section { - background: #fff; - border: 1px solid #ddd; - border-top-width: 0; - padding-top: 10px; - padding-bottom: 5px; - padding: 8px 16px; } - -.aside, .language { - padding: 6px 12px; - margin: 12px 0; - border-left: 5px solid #dddddd; - overflow-y: hidden; } - .aside .aside-title, .language .aside-title { - font-size: 9px; - letter-spacing: 2px; - text-transform: uppercase; - padding-bottom: 0; - margin: 0; - color: #aaa; - -webkit-user-select: none; } - .aside p:last-child, .language p:last-child { - margin-bottom: 0; } - -.language { - border-left: 5px solid #cde9f4; } - .language .aside-title { - color: #4183c4; } - -.aside-warning, .aside-deprecated, .aside-unavailable { - border-left: 5px solid #ff6666; } - .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { - color: #ff0000; } - -.graybox { - border-collapse: collapse; - width: 100%; } - .graybox p { - margin: 0; - word-break: break-word; - min-width: 50px; } - .graybox td { - border: 1px solid #ddd; - padding: 5px 25px 5px 10px; - vertical-align: middle; } - .graybox tr td:first-of-type { - text-align: right; - padding: 7px; - vertical-align: top; - word-break: normal; - width: 40px; } - -.slightly-smaller { - font-size: 0.9em; } - -.footer { - padding: 8px 16px; - background: #444; - color: #ddd; - font-size: 0.8em; } - .footer p { - margin: 8px 0; } - .footer a { - color: #fff; } - -html.dash .header, html.dash .breadcrumbs, html.dash .navigation { - display: none; } - -html.dash .height-container { - display: block; } - -form[role=search] input { - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 24px; - padding: 0 10px; - margin: 0; - border: none; - border-radius: 1em; } - .loading form[role=search] input { - background: white url(../img/spinner.gif) center right 4px no-repeat; } - -form[role=search] .tt-menu { - margin: 0; - min-width: 300px; - background: #fbfbfb; - color: #333; - border: 1px solid #ddd; } - -form[role=search] .tt-highlight { - font-weight: bold; } - -form[role=search] .tt-suggestion { - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - padding: 0 8px; } - form[role=search] .tt-suggestion span { - display: table-cell; - white-space: nowrap; } - form[role=search] .tt-suggestion .doc-parent-name { - width: 100%; - text-align: right; - font-weight: normal; - font-size: 0.9em; - padding-left: 16px; } - -form[role=search] .tt-suggestion:hover, -form[role=search] .tt-suggestion.tt-cursor { - cursor: pointer; - background-color: #4183c4; - color: #fff; } - -form[role=search] .tt-suggestion:hover .doc-parent-name, -form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { - color: #fff; } diff --git a/docs/docsets/XCoordinator.docset/Contents/Info.plist b/docs/docsets/XCoordinator.docset/Contents/Info.plist deleted file mode 100644 index 35a65c79..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleIdentifier - com.jazzy.xcoordinator - CFBundleName - XCoordinator - DocSetPlatformFamily - xcoordinator - isDashDocset - - dashIndexFilePath - index.html - isJavaScriptEnabled - - DashDocSetFamily - dashtoc - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes.html deleted file mode 100644 index fa66b7be..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes.html +++ /dev/null @@ -1,950 +0,0 @@ - - - - Classes Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Classes

-

The following classes are available globally.

- -
-
- -
-
-
-
    -
  • -
    - - - - Animation - -
    -
    -
    -
    -
    -
    -

    Animation is used to set presentation and dismissal animations for presentables.

    - -

    Depending on the transition in use, different properties of a UIViewController are set to make sure the transition animation is used.

    -
    -

    Note

    -

    To not override the previously set Animation, use nil when initializing a transition.

    - -

    Make sure to hold a strong reference to the Animation object, as it is only held by a weak reference.

    - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class Animation : NSObject
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - AnyCoordinator - -
    -
    -
    -
    -
    -
    -

    AnyCoordinator is a type-erased Coordinator (RouteType & TransitionType) and -can be used as an abstraction from a specific coordinator class while still specifying -TransitionType and RouteType.

    -
    -

    Note

    - If you do not want/need to specify TransitionType, you might want to look into the -different router abstractions StrongRouter, UnownedRouter and WeakRouter. -See AnyTransitionPerformer to further abstract from RouteType. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class AnyCoordinator<RouteType, TransitionType> : Coordinator where RouteType : Route, TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    AnyTransitionPerformer can be used as an abstraction from a specific TransitionPerformer implementation -without losing type information about its TransitionType.

    - -

    This type abstraction can be especially helpful when performing transitions. -AnyTransitionPerformer abstracts away any implementation specific details and reduces coordinators to the capabilities -of the TransitionPerformer protocol.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class AnyTransitionPerformer<TransitionType> : TransitionPerformer where TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
-
-
- -
-
-
    -
  • -
    - - - - BasicCoordinator - -
    -
    -
    -
    -
    -
    -

    BasicCoordinator is a coordinator class that can be used without subclassing.

    - -

    Although subclassing of coordinators is encouraged for more complex cases, a BasicCoordinator can easily -be created by only providing a prepareTransition closure, an initialRoute and an initialLoadingType.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class BasicCoordinator<RouteType, TransitionType> : BaseCoordinator<RouteType, TransitionType> where RouteType : Route, TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
-
-
- -
-
- -
-
-
    -
  • - -
    -
    -
    -
    -
    -

    NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController -to allow for push-transitions to specify animations.

    - -

    NavigationAnimationDelegate conforms to the UINavigationControllerDelegate protocol -and is intended for use as the delegate of one navigation controller only.

    -
    -

    Note

    - Do not override the delegate of a NavigationCoordinator’s rootViewController. -Instead use the delegate property of the NavigationCoordinator itself. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class NavigationAnimationDelegate : NSObject
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - NavigationCoordinator - -
    -
    -
    -
    -
    -
    -

    NavigationCoordinator acts as a base class for custom coordinators with a UINavigationController -as rootViewController.

    - -

    NavigationCoordinator especially ensures that transition animations are called, -which would not be the case when creating a BaseCoordinator<RouteType, NavigationTransition>.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class NavigationCoordinator<RouteType> : BaseCoordinator<RouteType, NavigationTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - PageCoordinator - -
    -
    -
    -
    -
    -
    -

    PageCoordinator provides a base class for your custom coordinator with a UIPageViewController rootViewController.

    -
    -

    Note

    - PageCoordinator sets the dataSource of the rootViewController to reflect the parameters in the initializer. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class PageCoordinator<RouteType> : BaseCoordinator<RouteType, PageTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    PageCoordinatorDataSource is a -UIPageViewControllerDataSource -implementation with a rather static list of pages.

    - -

    It further allows looping through the given pages. When looping is active the pages are wrapped around in the given presentables array. -When the user navigates beyond the end of the specified pages, the pages are wrapped around by displaying the first page. -In analogy to that, it also wraps to the last page when navigating beyond the beginning.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class PageCoordinatorDataSource : NSObject, UIPageViewControllerDataSource
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - RedirectionRouter - -
    -
    -
    -
    -
    -
    -

    RedirectionRouters can be used to extract routes into different route types. -Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers.

    - -

    Create a RedirectionRouter from a parent router by providing a reference to that parent. -Triggered routes of the RedirectionRouter will be redirected to this parent router according to the provided mapping. -Please provide either a map closure in the initializer or override the mapToParentRoute method.

    - -

    A RedirectionRouter has a viewController which is used in transitions, -e.g. when you are presenting, pushing, or otherwise displaying it.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class RedirectionRouter<ParentRoute, RouteType> : Router where ParentRoute : Route, RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - SplitCoordinator - -
    -
    -
    -
    -
    -
    -

    SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type -UISplitViewController.

    - -

    You can use all SplitTransitions and get an initializer to set a master and -(optional) detail presentable.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class SplitCoordinator<RouteType> : BaseCoordinator<RouteType, SplitTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    StaticTransitionAnimation can be used to realize static transition animations.

    -
    -

    Note

    - Consider using InteractiveTransitionAnimation instead, if possible, as it is as simple -to use. However, this class is helpful to make sure your transition animation is not mistaken to be -interactive, if your animation code does not fulfill the requirements of an interactive transition -animation. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class StaticTransitionAnimation : NSObject, TransitionAnimation
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - StrongRouter - -
    -
    -
    -
    -
    -
    -

    StrongRouter is a type-erasure of a given Router object and, therefore, can be used as an abstraction from a specific Router -implementation without losing type information about its RouteType.

    - -

    StrongRouter abstracts away any implementation specific details and -essentially reduces them to properties specified in the Router protocol.

    -
    -

    Note

    - Do not hold a reference to any router from the view hierarchy. -Use UnownedRouter or WeakRouter in your view controllers or view models instead. -You can create them using the Coordinator.unownedRouter and Coordinator.weakRouter properties. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public final class StrongRouter<RouteType> : Router where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController -to allow for transitions to specify transition animations.

    - -

    TabBarAnimationDelegate conforms to the UITabBarControllerDelegate protocol -and is intended for use as the delegate of one tabbar controller only.

    -
    -

    Note

    - Do not override the delegate of a TabBarCoordinator’s rootViewController-delegate. -Instead use the delegate property of the TabBarCoordinator itself. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class TabBarAnimationDelegate : NSObject
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TabBarCoordinator - -
    -
    -
    -
    -
    -
    -

    Use a TabBarCoordinator to coordinate a flow where a UITabbarController serves as a rootViewController. -With a TabBarCoordinator, you get access to all tabbarController-related transitions.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class TabBarCoordinator<RouteType> : BaseCoordinator<RouteType, TabBarTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - ViewCoordinator - -
    -
    -
    -
    -
    -
    -

    ViewCoordinator is a base class for custom coordinators with a UIViewController rootViewController.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class ViewCoordinator<RouteType> : BaseCoordinator<RouteType, ViewTransition> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/Animation.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/Animation.html deleted file mode 100644 index 9950c0b3..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/Animation.html +++ /dev/null @@ -1,698 +0,0 @@ - - - - Animation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Animation

-
-
-
open class Animation : NSObject
- -
-
-

Animation is used to set presentation and dismissal animations for presentables.

- -

Depending on the transition in use, different properties of a UIViewController are set to make sure the transition animation is used.

-
-

Note

-

To not override the previously set Animation, use nil when initializing a transition.

- -

Make sure to hold a strong reference to the Animation object, as it is only held by a weak reference.

- -
- -
-
- -
-
-
- -
    -
  • -
    - - - - default - -
    -
    -
    -
    -
    -
    -

    Use Animation.default to override currently set animations -and reset to the default animations provided by iOS

    -
    -

    Note

    - To disable animations make sure to use non-animating TransitionOptions when triggering. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let `default`: Animation
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presentationAnimation - -
    -
    -
    -
    -
    -
    -

    The transition animation performed when transitioning to a presentable.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var presentationAnimation: TransitionAnimation?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - dismissalAnimation - -
    -
    -
    -
    -
    -
    -

    The transition animation performed when transitioning away from a presentable.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var dismissalAnimation: TransitionAnimation?
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates an Animation object containing a presentation and a dismissal animation.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(presentation: TransitionAnimation?, dismissal: TransitionAnimation?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentation - - -
    -

    The transition animation performed when transitioning to a presentable.

    -
    -
    - - dismissal - - -
    -

    The transition animation performed when transitioning away from a presentable.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animationController(forPresented presented: UIViewController,
    -                              presenting: UIViewController,
    -                              source: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - presented - - -
    -

    The view controller to be presented.

    -
    -
    - - presenting - - -
    -

    The view controller that is presenting.

    -
    -
    - - source - - -
    -

    The view controller whose present(_:animated:completion:) was called.

    -
    -
    -
    -
    -

    Return Value

    -

    The presentation animation when initializing the Animation object.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - dismissed - - -
    -

    The view controller to be dismissed.

    -
    -
    -
    -
    -

    Return Value

    -

    The dismissal animation when initializing the Animation object.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func interactionControllerForPresentation(using animator: UIViewControllerAnimatedTransitioning)
    -    -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animator - - -
    -

    The animator of this transition, which is most likely the presentation animation.

    -
    -
    -
    -
    -

    Return Value

    -

    The presentation animation’s interaction controller.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerTransitioningDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning)
    -    -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animator - - -
    -

    The animator of this transition, which is most likely the dismissal animation.

    -
    -
    -
    -
    -

    Return Value

    -

    The dismissal animation’s interaction controller.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyCoordinator.html deleted file mode 100644 index 325ac30c..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyCoordinator.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - AnyCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

AnyCoordinator

-
-
-
public class AnyCoordinator<RouteType, TransitionType> : Coordinator where RouteType : Route, TransitionType : TransitionProtocol
- -
-
-

AnyCoordinator is a type-erased Coordinator (RouteType & TransitionType) and -can be used as an abstraction from a specific coordinator class while still specifying -TransitionType and RouteType.

-
-

Note

- If you do not want/need to specify TransitionType, you might want to look into the -different router abstractions StrongRouter, UnownedRouter and WeakRouter. -See AnyTransitionPerformer to further abstract from RouteType. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - init(_:) - -
    -
    -
    -
    -
    -
    -

    Creates a type-erased Coordinator for a specific coordinator.

    - -

    A strong reference to the source coordinator is kept.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init<C>(_ coordinator: C) where RouteType == C.RouteType, TransitionType == C.TransitionType, C : Coordinator
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - coordinator - - -
    -

    The source coordinator.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var rootViewController: TransitionType.RootViewController { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Prepare and return transitions for a given route.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The triggered route for which a transition is to be prepared.

    -
    -
    -
    -
    -

    Return Value

    -

    The prepared transition.

    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func presented(from presentable: Presentable?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - setRoot(for:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func setRoot(for window: UIWindow)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - addChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func addChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - removeChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChildrenIfNeeded()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyTransitionPerformer.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyTransitionPerformer.html deleted file mode 100644 index 2cf62098..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyTransitionPerformer.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - AnyTransitionPerformer Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

AnyTransitionPerformer

-
-
-
public class AnyTransitionPerformer<TransitionType> : TransitionPerformer where TransitionType : TransitionProtocol
- -
-
-

AnyTransitionPerformer can be used as an abstraction from a specific TransitionPerformer implementation -without losing type information about its TransitionType.

- -

This type abstraction can be especially helpful when performing transitions. -AnyTransitionPerformer abstracts away any implementation specific details and reduces coordinators to the capabilities -of the TransitionPerformer protocol.

- -
-
- -
-
-
- -
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var rootViewController: TransitionType.RootViewController { get }
    - -
    -
    -
    -
    -
  • -
-
-
- - -
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BaseCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BaseCoordinator.html deleted file mode 100644 index a6b17b78..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BaseCoordinator.html +++ /dev/null @@ -1,1007 +0,0 @@ - - - - BaseCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

BaseCoordinator

-
-
-
open class BaseCoordinator<RouteType, TransitionType> : Coordinator where RouteType : Route, TransitionType : TransitionProtocol
- -
-
-

BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator.

- -

It is also encouraged to use already provided subclasses of BaseCoordinator such as -NavigationCoordinator, TabBarCoordinator, ViewCoordinator, SplitCoordinator -and PageCoordinator.

- -
-
- -
-
-
- -
    -
  • -
    - - - - children - -
    -
    -
    -
    -
    -
    -

    The child coordinators that are currently in the view hierarchy. -When performing a transition, children are automatically added and removed from this array -depending on whether they are in the view hierarchy.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public private(set) var children: [Presentable]
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public private(set) var rootViewController: RootViewController
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This initializer trigger a route before the coordinator is made visible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController, initialRoute: RouteType?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - initialRoute - - -
    -

    If a route is specified, it is triggered before making the coordinator visible.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    This initializer performs a transition before the coordinator is made visible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController, initialTransition: TransitionType?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - initialTransition - - -
    -

    If a transition is specified, it is performed before making the coordinator visible.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func presented(from presentable: Presentable?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChildrenIfNeeded()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - addChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func addChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - removeChild(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeChild(_ presentable: Presentable)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    This method prepares transitions for routes. -Override this method to define transitions for triggered routes.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The triggered route for which a transition is to be prepared.

    -
    -
    -
    -
    -

    Return Value

    -

    The prepared transition.

    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - RootViewController - -
    -
    -
    -
    -
    -
    -

    Shortcut for BaseCoordinator.TransitionType.RootViewController

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias RootViewController = TransitionType.RootViewController
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Register an interactive transition triggered by a gesture recognizer.

    - -

    Also consider registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:) as it might make it easier -to implement an interactive transition. This is meant for cases where the other method does not provide enough customization -options.

    - -

    A target is added to the gestureRecognizer so that the handler is executed every time the state of the gesture recognizer changes.

    -
    -

    Note

    -

    Use unregisterInteractiveTransition(triggeredBy:) to remove previously added interactive transitions.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func registerInteractiveTransition<GestureRecognizer: UIGestureRecognizer>(
    -    for route: RouteType,
    -    triggeredBy recognizer: GestureRecognizer,
    -    handler: @escaping (_ handlerRecognizer: GestureRecognizer, _ transition: () -> TransitionAnimation?) -> Void,
    -    completion: PresentationHandler? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered when the gestureRecognizer begins. -Make sure that the transition behind is interactive as otherwise the transition is simply performed.

    -
    -
    - - recognizer - - -
    -

    The gesture recognizer to be used to update the interactive transition.

    -
    -
    - - handler - - -
    -

    The handler to update the interaction controller of the animation generated by the given transition closure.

    -
    -
    - - handlerRecognizer - - -
    -

    The gestureRecognizer with which the handler has been registered.

    -
    -
    - - transition - - -
    -

    The closure to perform the transition. It returns the transition animation to control the interaction controller of. -TransitionAnimation.start() is automatically called.

    -
    -
    - - completion - - -
    -

    The closure to be called whenever the transition completes. -Hint: Might be called multiple times but only once per performing the transition.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Register an interactive transition triggered by a gesture recognizer.

    - -

    To get more customization options, check out registerInteractiveTransition(for:triggeredBy:handler:completion:).

    - -

    A target is added to the gestureRecognizer so that the handler is executed every time the state of the gesture recognizer changes.

    -
    -

    Note

    -

    Use unregisterInteractiveTransition(triggeredBy:) to remove previously added interactive transitions.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func registerInteractiveTransition<GestureRecognizer: UIGestureRecognizer>(
    -    for route: RouteType,
    -    triggeredBy recognizer: GestureRecognizer,
    -    progress: @escaping (GestureRecognizer) -> CGFloat,
    -    shouldFinish: @escaping (GestureRecognizer) -> Bool,
    -    completion: PresentationHandler? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered when the gestureRecognizer begins. -Make sure that the transition behind is interactive as otherwise the transition is simply performed.

    -
    -
    - - recognizer - - -
    -

    The gesture recognizer to be used to update the interactive transition.

    -
    -
    - - progress - - -
    -

    Return the progress as CGFloat between 0 (start) and 1 (finish).

    -
    -
    - - shouldFinish - - -
    -

    Decide depending on the gestureRecognizer’s state whether to finish or cancel a given transition.

    -
    -
    - - completion - - -
    -

    The closure to be called whenever the transition completes. -Hint: Might be called multiple times but only once per performing the transition.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Unregisters a previously registered interactive transition.

    - -

    Unregistering is not mandatory to prevent reference cycles, etc. -It is useful, though, to remove previously registered interactive transitions that are no longer needed or wanted.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func unregisterInteractiveTransitions(triggeredBy recognizer: UIGestureRecognizer)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - recognizer - - -
    -

    The recognizer to unregister interactive transitions for. -This method will unregister all interactive transitions with that gesture recognizer.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator.html deleted file mode 100644 index 56246807..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator.html +++ /dev/null @@ -1,487 +0,0 @@ - - - - BasicCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

BasicCoordinator

-
-
-
open class BasicCoordinator<RouteType, TransitionType> : BaseCoordinator<RouteType, TransitionType> where RouteType : Route, TransitionType : TransitionProtocol
- -
-
-

BasicCoordinator is a coordinator class that can be used without subclassing.

- -

Although subclassing of coordinators is encouraged for more complex cases, a BasicCoordinator can easily -be created by only providing a prepareTransition closure, an initialRoute and an initialLoadingType.

- -
-
- -
-
-
- -
    -
  • -
    - - - - InitialLoadingType - -
    -
    -
    -
    -
    -
    -

    InitialLoadingType differentiates between different points in time when the initital route is to -be triggered by the coordinator.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public enum InitialLoadingType
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a BasicCoordinator.

    -
    -

    Seealso

    -

    See InitialLoadingType for more information.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController,
    -            initialRoute: RouteType? = nil,
    -            initialLoadingType: InitialLoadingType = .presented,
    -            prepareTransition: ((RouteType) -> TransitionType)?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - initialRoute - - -
    -

    If a route is specified, it is triggered depending on the initialLoadingType.

    -
    -
    - - initialLoadingType - - -
    -

    The initialLoadingType specifies when the initialRoute is triggered.

    -
    -
    - - prepareTransition - - -
    -

    A closure to define transitions based on triggered routes. -Make sure to override prepareTransition by subclassing, if you specify nil here.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    -

    This method is called whenever the BasicCoordinator is shown to the user.

    - -

    If initialLoadingType has been specified as presented and an initialRoute is present, -the route is triggered here.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open override func presented(from presentable: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The context in which this coordinator has been shown to the user.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open override func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator/InitialLoadingType.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator/InitialLoadingType.html deleted file mode 100644 index b25611d2..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator/InitialLoadingType.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - InitialLoadingType Enumeration Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

InitialLoadingType

-
-
-
public enum InitialLoadingType
- -
-
-

InitialLoadingType differentiates between different points in time when the initital route is to -be triggered by the coordinator.

- -
-
- -
-
-
-
    -
  • -
    - - - - immediately - -
    -
    -
    -
    -
    -
    -

    The initial route is triggered before the coordinator is made visible (i.e. on initialization).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case immediately
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - presented - -
    -
    -
    -
    -
    -
    -

    The initial route is triggered after the coordinator is made visible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case presented
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InteractiveTransitionAnimation.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InteractiveTransitionAnimation.html deleted file mode 100644 index 4df724ac..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InteractiveTransitionAnimation.html +++ /dev/null @@ -1,735 +0,0 @@ - - - - InteractiveTransitionAnimation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

InteractiveTransitionAnimation

-
-
-
open class InteractiveTransitionAnimation : NSObject, TransitionAnimation
- -
-
-

InteractiveTransitionAnimation provides a simple interface to create interactive transition animations.

- -

An InteractiveTransitionAnimation can be created by providing the duration, the animation code -and (optionally) a closure to create an interaction controller.

- - -
-
- -
-
-
- - -
-
- - -
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of the transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The transition duration as specified in the initializer.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of a transition for which the animation should be started.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This method is used to generate an applicable interaction controller.

    -
    -

    Note

    - To allow for more complex logic to create a specific interaction controller, -override this method in your subclass. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func generateInteractionController() -> PercentDrivenInteractionController?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - start() - -
    -
    -
    -
    -
    -
    -

    Starts the transition animation by generating an interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func start()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cleanup() - -
    -
    -
    -
    -
    -
    -

    Ends the transition animation by deleting the interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func cleanup()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InterruptibleTransitionAnimation.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InterruptibleTransitionAnimation.html deleted file mode 100644 index 19f3c114..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InterruptibleTransitionAnimation.html +++ /dev/null @@ -1,589 +0,0 @@ - - - - InterruptibleTransitionAnimation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

InterruptibleTransitionAnimation

-
-
-
@available(iOS 10.0, *)
-open class InterruptibleTransitionAnimation : InteractiveTransitionAnimation
- -
-
-

Use InterruptibleTransitionAnimation to define interactive transitions based on the -UIViewPropertyAnimator -APIs introduced in iOS 10.

- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates an interruptible transition animation based on duration, an animator generator closure -and an interaction controller generator closure.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(duration: TimeInterval,
    -            generateAnimator: @escaping (UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating,
    -            generateInteractionController: @escaping () -> PercentDrivenInteractionController?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - duration - - -
    -

    The total duration of the animation.

    -
    -
    - - generateAnimator - - -
    -

    A generator closure to create a UIViewPropertyAnimator dynamically.

    -
    -
    - - generateInteractionController - - -
    -

    A generator closure to create an interaction controller which handles animation progress changes.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates an interruptible transition animation based on duration and an animator generator closure.

    - -

    A UIPercentDrivenInteractiveTransition is used as interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public convenience init(duration: TimeInterval,
    -                        generateAnimator: @escaping (UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - duration - - -
    -

    The total duration of the animation.

    -
    -
    - - generateAnimator - - -
    -

    A generator closure to create a UIViewPropertyAnimator dynamically.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Generates an interruptible animator based on the transitionContext. -It further adds a completion block to the animator to ensure it is deallocated once -the transition is finished.

    - -

    This code is called once per transition to generate the interruptible animator -which is reused in subsequent calls of interruptibeAnimator(using:).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func generateInterruptibleAnimator(using transitionContext: UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context in which the transition is performed.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -

    This method simply calls startAnimation() on the interruptible animator.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open override func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context in which the transition is performed.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -

    This method returns an already generated interruptible animator, if present. -Otherwise it generates a new one using generateInterruptibleAnimator(using:).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func interruptibleAnimator(using transitionContext: UIViewControllerContextTransitioning
    -    ) -> UIViewImplicitlyAnimating
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context in which the transition is performed.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationAnimationDelegate.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationAnimationDelegate.html deleted file mode 100644 index 88d98297..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationAnimationDelegate.html +++ /dev/null @@ -1,855 +0,0 @@ - - - - NavigationAnimationDelegate Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

NavigationAnimationDelegate

-
-
-
open class NavigationAnimationDelegate : NSObject
- -
-
-

NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController -to allow for push-transitions to specify animations.

- -

NavigationAnimationDelegate conforms to the UINavigationControllerDelegate protocol -and is intended for use as the delegate of one navigation controller only.

-
-

Note

- Do not override the delegate of a NavigationCoordinator’s rootViewController. -Instead use the delegate property of the NavigationCoordinator itself. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - velocityThreshold - -
    -
    -
    -
    -
    -
    -

    The velocity threshold needed for the interactive pop transition to succeed

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var velocityThreshold: CGFloat { get }
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    The transition progress threshold for the interactive pop transition to succeed

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var transitionProgressThreshold: CGFloat { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               interactionControllerFor animationController: UIViewControllerAnimatedTransitioning
    -    ) -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - animationController - - -
    -

    The animationController to return the interactionController for.

    -
    -
    -
    -
    -

    Return Value

    -

    If the animationController is a TransitionAnimation, it returns its interactionController. -Otherwise it requests an interactionController from the NavigationCoordinator’s delegate.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               animationControllerFor operation: UINavigationController.Operation,
    -                               from fromVC: UIViewController,
    -                               to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - operation - - -
    -

    The operation being executed. Possible values are push, pop or none.

    -
    -
    - - fromVC - - -
    -

    The source view controller of the transition.

    -
    -
    - - toVC - - -
    -

    The destination view controller of the transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The destination view controller’s animationController depending on its transitioningDelegate. -In the case of a push operation, it returns the toVC’s presentation animation. -For pop it is the fromVC’s dismissal animation. If there is no transitioningDelegate or the operation none is used, -it uses the NavigationCoordinator’s delegate as fallback.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               didShow viewController: UIViewController, animated: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - operation - - -
    -

    The operation being executed. Possible values are push, pop or none.

    -
    -
    - - viewController - - -
    -

    The target view controller.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UINavigationControllerDelegate documentation -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func navigationController(_ navigationController: UINavigationController,
    -                               willShow viewController: UIViewController,
    -                               animated: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - navigationController - - -
    -

    The delegate owner.

    -
    -
    - - operation - - -
    -

    The operation being executed. Possible values are push, pop or none.

    -
    -
    - - viewController - - -
    -

    The view controller to be shown.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIGestureRecognizerDelegate documentation -for further reference.

    -
    -

    Note

    -

    This method alters the target of the gestureRecognizer to either its former delegate (UIKit default) -or this class depending on whether a pop animation has been specified.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - gestureRecognizer - - -
    -

    The gesture recognizer this class is the delegate of. -This class is used as the delegate for the interactivePopGestureRecognizer of -the navigationController.

    -
    -
    -
    -
    -

    Return Value

    -

    This method returns true, if and only if

    - -
      -
    • there are more than 1 view controllers on the navigation controller stack (so that it is possible to pop a viewController) and
    • -
    • it is the interactivePopGestureRecognizer to call this method
    • -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This method handles changes of the navigation controller’s interactivePopGestureRecognizer.

    - -

    This method performs the top-most dismissalAnimation and informs its interaction controller about changes -of the interactivePopGestureRecognizer’s state.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @objc
    -open func handleInteractivePopGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - gestureRecognizer - - -
    -

    The interactivePopGestureRecognizer of the UINavigationController.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    This method sets up the interactivePopGestureRecognizer of the navigation controller -to allow for custom interactive pop animations.

    - -

    This method overrides the delegate of the interactivePopGestureRecognizer to self, -but keeps a reference to the original delegate to enable the default pop animations.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func setupPopGestureRecognizer(for navigationController: UINavigationController)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - navigationController - - -
    -

    The navigation controller to be set up.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationCoordinator.html deleted file mode 100644 index 7ff05792..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationCoordinator.html +++ /dev/null @@ -1,458 +0,0 @@ - - - - NavigationCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

NavigationCoordinator

-
-
-
open class NavigationCoordinator<RouteType> : BaseCoordinator<RouteType, NavigationTransition> where RouteType : Route
- -
-
-

NavigationCoordinator acts as a base class for custom coordinators with a UINavigationController -as rootViewController.

- -

NavigationCoordinator especially ensures that transition animations are called, -which would not be the case when creating a BaseCoordinator<RouteType, NavigationTransition>.

- -
-
- -
-
-
- -
    -
  • -
    - - - - animationDelegate - -
    -
    -
    -
    -
    -
    -

    The animation delegate controlling the rootViewController’s transition animations. -This animation delegate is set to be the rootViewController’s rootViewController, if you did not set one earlier.

    -
    -

    Note

    - Use the delegate property to set a custom delegate and use transition animations provided by XCoordinator. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let animationDelegate: NavigationAnimationDelegate
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - delegate - -
    -
    -
    -
    -
    -
    -

    This represents a fallback-delegate to be notified about navigation controller events. -It is further used to call animation methods when no animation has been specified in the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var delegate: UINavigationControllerDelegate? { get set }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a NavigationCoordinator and optionally triggers an initial route.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController = .init(), initialRoute: RouteType? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - initialRoute - - -
    -

    The route to be triggered.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a NavigationCoordinator and pushes a presentable onto the navigation stack right away.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), root: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - root - - -
    -

    The presentable to be pushed.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinator.html deleted file mode 100644 index 16b56db4..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinator.html +++ /dev/null @@ -1,525 +0,0 @@ - - - - PageCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PageCoordinator

-
-
-
open class PageCoordinator<RouteType> : BaseCoordinator<RouteType, PageTransition> where RouteType : Route
- -
-
-

PageCoordinator provides a base class for your custom coordinator with a UIPageViewController rootViewController.

-
-

Note

- PageCoordinator sets the dataSource of the rootViewController to reflect the parameters in the initializer. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - dataSource - -
    -
    -
    -
    -
    -
    -

    The dataSource of the rootViewController.

    - -

    Feel free to change the pages at runtime. To reflect the changes in the rootViewController, perform a set transition as well.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let dataSource: UIPageViewControllerDataSource
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a PageCoordinator with several sequential (potentially looping) pages.

    - -

    It further sets the current page of the rootViewController animated in the specified direction.

    -
    -

    Note

    -

    If you need custom configuration of the rootViewController, modify the configuration parameter, -since you cannot change this after the initialization.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(),
    -            pages: [Presentable],
    -            loop: Bool = false,
    -            set: Presentable? = nil,
    -            direction: UIPageViewController.NavigationDirection = .forward)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - -
    - - pages - - -
    -

    The pages of the PageCoordinator. -These can be changed later, if necessary, using the PageCoordinator.dataSource property.

    -
    -
    - - loop - - -
    -

    Whether or not the PageCoordinator should loop when hitting the end or the beginning of the specified pages.

    -
    -
    - - set - - -
    -

    The presentable to be shown right from the start. -This should be one of the elements of the specified pages. -If not specified, no set transition is triggered, which results in the first page being shown.

    -
    -
    - - direction - - -
    -

    The direction in which the transition to set the specified first page (parameter set) should be animated in. -If you specify nil for set, this parameter is ignored.

    -
    -
    - - configuration - - -
    -

    The configuration of the rootViewController. You cannot change this configuration later anymore (Limitation of UIKit).

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a PageCoordinator with a custom dataSource. -It further sets the currently shown page and a direction for the animation of displaying it. -If you need custom configuration of the rootViewController, modify the configuration parameter, -since you cannot change this after the initialization.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(),
    -            dataSource: UIPageViewControllerDataSource,
    -            set: Presentable,
    -            direction: UIPageViewController.NavigationDirection)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - -
    - - dataSource - - -
    -

    The dataSource of the PageCoordinator.

    -
    -
    - - set - - -
    -

    The presentable to be shown right from the start. -This should be one of the elements of the specified pages. -If not specified, no set transition is triggered, which results in the first page being shown.

    -
    -
    - - direction - - -
    -

    The direction in which the transition to set the specified first page (parameter set) should be animated in. -If you specify nil for set, this parameter is ignored.

    -
    -
    - - configuration - - -
    -

    The configuration of the rootViewController. You cannot change this configuration later anymore (Limitation of UIKit).

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinatorDataSource.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinatorDataSource.html deleted file mode 100644 index e6e8c8c3..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinatorDataSource.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - PageCoordinatorDataSource Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PageCoordinatorDataSource

-
-
-
open class PageCoordinatorDataSource : NSObject, UIPageViewControllerDataSource
- -
-
-

PageCoordinatorDataSource is a -UIPageViewControllerDataSource -implementation with a rather static list of pages.

- -

It further allows looping through the given pages. When looping is active the pages are wrapped around in the given presentables array. -When the user navigates beyond the end of the specified pages, the pages are wrapped around by displaying the first page. -In analogy to that, it also wraps to the last page when navigating beyond the beginning.

- -
-
- -
-
-
- -
    -
  • -
    - - - - pages - -
    -
    -
    -
    -
    -
    -

    The pages of the UIPageViewController in sequential order.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var pages: [UIViewController]
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - loop - -
    -
    -
    -
    -
    -
    -

    Whether or not the pages of the UIPageViewController should be in a loop, -i.e. whether a swipe to the left of the last page should result in the first page being shown -(or the last shown when swiping right on the first page)

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var loop: Bool
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - init(pages:loop:) - -
    -
    -
    -
    -
    -
    -

    Creates a PageCoordinatorDataSource with the given pages and looping capabilities.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(pages: [UIViewController], loop: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - pages - - -
    -

    The pages to be shown in the UIPageViewController.

    -
    -
    - - loop - - -
    -

    Whether or not the pages of the UIPageViewController should be in a loop, -i.e. whether a swipe to the left of the last page should result in the first page being shown -(or the last shown when swiping right on the first page) -If you specify false here, the user cannot swipe left on the last page and right on the first.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func presentationCount(for pageViewController: UIPageViewController) -> Int
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    -
    -
    -

    Return Value

    -

    The count of pages, if it is displayed. Otherwise 0.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func presentationIndex(for pageViewController: UIPageViewController) -> Int
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    -
    -
    -

    Return Value

    -

    The index of the currently visible view controller.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -

    This method first searches for the index of the given viewController in the pages array. -It then tries to find a viewController at the preceding position by potentially looping.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func pageViewController(_ pageViewController: UIPageViewController,
    -                             viewControllerBefore viewController: UIViewController) -> UIViewController?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    - - viewController - - -
    -

    The viewController to find the preceding viewController of.

    -
    -
    -
    -
    -

    Return Value

    -

    The preceding viewController.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIPageViewControllerDataSource -for further information.

    - -

    This method first searches for the index of the given viewController in the pages array. -It then tries to find a viewController at the following position by potentially looping.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func pageViewController(_ pageViewController: UIPageViewController,
    -                             viewControllerAfter viewController: UIViewController) -> UIViewController?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - pageViewController - - -
    -

    The dataSource owner.

    -
    -
    - - viewController - - -
    -

    The viewController to find the following viewController of.

    -
    -
    -
    -
    -

    Return Value

    -

    The following viewController.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/RedirectionRouter.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/RedirectionRouter.html deleted file mode 100644 index 4685534c..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/RedirectionRouter.html +++ /dev/null @@ -1,535 +0,0 @@ - - - - RedirectionRouter Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

RedirectionRouter

-
-
-
open class RedirectionRouter<ParentRoute, RouteType> : Router where ParentRoute : Route, RouteType : Route
- -
-
-

RedirectionRouters can be used to extract routes into different route types. -Instead of having one huge route and one or more huge coordinators, you can create separate redirecting routers.

- -

Create a RedirectionRouter from a parent router by providing a reference to that parent. -Triggered routes of the RedirectionRouter will be redirected to this parent router according to the provided mapping. -Please provide either a map closure in the initializer or override the mapToParentRoute method.

- -

A RedirectionRouter has a viewController which is used in transitions, -e.g. when you are presenting, pushing, or otherwise displaying it.

- -
-
- -
-
-
- -
    -
  • -
    - - - - parent - -
    -
    -
    -
    -
    -
    -

    A type-erased Router object of the parent router.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let parent: UnownedRouter<ParentRoute>
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController used in transitions, e.g. when pushing, presenting -or otherwise displaying the RedirectionRouter.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public private(set) var viewController: UIViewController!
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a RedirectionRouter with a certain viewController, a parent router -and an optional mapping.

    -
    -

    Note

    -

    Make sure to either override mapToSuperRoute or to specify a closure for the map parameter. -If you override mapToSuperRoute, the map parameter is ignored.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(viewController: UIViewController,
    -            parent: UnownedRouter<ParentRoute>,
    -            map: ((RouteType) -> ParentRoute)?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - viewController - - -
    -

    The view controller to be used in transitions, e.g. when pushing, presenting or otherwise displaying the RedirectionRouter.

    -
    -
    - - parent - - -
    -

    Triggered routes will be rerouted to the parent router.

    -
    -
    - - map - - -
    -

    A mapping from this RedirectionRouter’s routes to the parent’s routes.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func contextTrigger(_ route: RouteType,
    -                         with options: TransitionOptions,
    -                         completion: ContextPresentationHandler?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - mapToParentRoute(_:) - -
    -
    -
    -
    -
    -
    -

    Map RouteType to ParentRoute.

    - -

    This method is called when a route is triggered in the RedirectionRouter. -It is used to translate RouteType routes to the parent’s routes which are then triggered in the parent router.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func mapToParentRoute(_ route: RouteType) -> ParentRoute
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The route to be mapped.

    -
    -
    -
    -
    -

    Return Value

    -

    The mapped route for the parent router.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/SplitCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/SplitCoordinator.html deleted file mode 100644 index d688c8f3..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/SplitCoordinator.html +++ /dev/null @@ -1,369 +0,0 @@ - - - - SplitCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

SplitCoordinator

-
-
-
open class SplitCoordinator<RouteType> : BaseCoordinator<RouteType, SplitTransition> where RouteType : Route
- -
-
-

SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type -UISplitViewController.

- -

You can use all SplitTransitions and get an initializer to set a master and -(optional) detail presentable.

- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController = .init(), initialRoute: RouteType?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a SplitCoordinator and sets the specified presentables as the rootViewController’s -viewControllers.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), master: Presentable, detail: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - master - - -
    -

    The presentable to be shown as master in the UISplitViewController.

    -
    -
    - - detail - - -
    -

    The presentable to be shown as detail in the UISplitViewController. This is optional due to -the fact that it might not be useful to have a detail page right away on a small-screen device.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StaticTransitionAnimation.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StaticTransitionAnimation.html deleted file mode 100644 index c0a8e4dc..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StaticTransitionAnimation.html +++ /dev/null @@ -1,526 +0,0 @@ - - - - StaticTransitionAnimation Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

StaticTransitionAnimation

-
-
-
open class StaticTransitionAnimation : NSObject, TransitionAnimation
- -
-
-

StaticTransitionAnimation can be used to realize static transition animations.

-
-

Note

- Consider using InteractiveTransitionAnimation instead, if possible, as it is as simple -to use. However, this class is helpful to make sure your transition animation is not mistaken to be -interactive, if your animation code does not fulfill the requirements of an interactive transition -animation. - -
- -
-
- -
-
-
- - -
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Creates a StaticTransitionAnimation to be used as presentation or dismissal transition animation in -an Animation object.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(duration: TimeInterval, performAnimation: @escaping (_ context: UIViewControllerContextTransitioning) -> Void)
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of the current transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The duration of the animation as specified in the initializer.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UIViewControllerAnimatedTransitioning -for further information.

    - -

    This method performs the animation as specified in the initializer.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitionContext - - -
    -

    The context of the current transition.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - start() - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func start()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cleanup() - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func cleanup()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StrongRouter.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StrongRouter.html deleted file mode 100644 index 51bd8daf..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StrongRouter.html +++ /dev/null @@ -1,625 +0,0 @@ - - - - StrongRouter Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

StrongRouter

-
-
-
public final class StrongRouter<RouteType> : Router where RouteType : Route
- -
-
-

StrongRouter is a type-erasure of a given Router object and, therefore, can be used as an abstraction from a specific Router -implementation without losing type information about its RouteType.

- -

StrongRouter abstracts away any implementation specific details and -essentially reduces them to properties specified in the Router protocol.

-
-

Note

- Do not hold a reference to any router from the view hierarchy. -Use UnownedRouter or WeakRouter in your view controllers or view models instead. -You can create them using the Coordinator.unownedRouter and Coordinator.weakRouter properties. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - init(_:) - -
    -
    -
    -
    -
    -
    -

    Creates a StrongRouter object from a given router.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init<T>(_ router: T) where RouteType == T.RouteType, T : Router
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - router - - -
    -

    The source router.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Triggers routes and provides the transition context in the completion-handler.

    - -

    Useful for deep linking. It is encouraged to use trigger instead, if the context is not needed.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func contextTrigger(_ route: RouteType,
    -                           with options: TransitionOptions,
    -                           completion: ContextPresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options configuring the execution of transitions, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations). -If the context is not needed, use trigger instead.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Triggers the specified route by performing a transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options for performing the transition, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations).

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - -
    -
    -
    -
    -
    -
    -

    This method is called whenever a Presentable is shown to the user. -It further provides information about the presentable responsible for the presenting.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func presented(from presentable: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The context in which the presentable is shown. -This could be a window, another viewController, a coordinator, etc. -nil is specified whenever a context cannot be easily determined.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController of the Presentable.

    - -

    In the case of a UIViewController, it returns itself. -A coordinator returns its rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func childTransitionCompleted()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarAnimationDelegate.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarAnimationDelegate.html deleted file mode 100644 index dc902646..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarAnimationDelegate.html +++ /dev/null @@ -1,725 +0,0 @@ - - - - TabBarAnimationDelegate Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TabBarAnimationDelegate

-
-
-
open class TabBarAnimationDelegate : NSObject
- -
-
-

TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController -to allow for transitions to specify transition animations.

- -

TabBarAnimationDelegate conforms to the UITabBarControllerDelegate protocol -and is intended for use as the delegate of one tabbar controller only.

-
-

Note

- Do not override the delegate of a TabBarCoordinator’s rootViewController-delegate. -Instead use the delegate property of the TabBarCoordinator itself. - -
- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -
      -
    • Parameters

      - -
        -
      • tabBarController: The delegate owner.
      • -
      • animationController: The animationController to return the interactionController for.
      • -
    • -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           interactionControllerFor animationController: UIViewControllerAnimatedTransitioning
    -    ) -> UIViewControllerInteractiveTransitioning?
    - -
    -
    -
    -

    Return Value

    -

    If the animationController is a TransitionAnimation, it returns its interactionController. -Otherwise it requests an interactionController from the TabBarCoordinator’s delegate.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           animationControllerForTransitionFrom fromVC: UIViewController,
    -                           to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - fromVC - - -
    -

    The source view controller of the transition.

    -
    -
    - - toVC - - -
    -

    The destination view controller of the transition.

    -
    -
    -
    -
    -

    Return Value

    -

    The presentation animation controller from the toVC’s transitioningDelegate. -If not present, it uses the TabBarCoordinator’s delegate as fallback.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           didSelect viewController: UIViewController)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewController - - -
    -

    The destination viewController.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           shouldSelect viewController: UIViewController) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewController - - -
    -

    The destination viewController.

    -
    -
    -
    -
    -

    Return Value

    -

    The result of the TabBarCooordinator’s delegate. If not specified, it returns true.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           willBeginCustomizing viewControllers: [UIViewController])
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewControllers - - -
    -

    The source viewControllers.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           didEndCustomizing viewControllers: [UIViewController], changed: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewControllers - - -
    -

    The source viewControllers.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    See UITabBarControllerDelegate -for further reference.

    - -

    This method delegates to the TabBarCoordinator’s delegate.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func tabBarController(_ tabBarController: UITabBarController,
    -                           willEndCustomizing viewControllers: [UIViewController], changed: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabBarController - - -
    -

    The delegate owner.

    -
    -
    - - viewControllers - - -
    -

    The source viewControllers.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarCoordinator.html deleted file mode 100644 index 76bec17b..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarCoordinator.html +++ /dev/null @@ -1,512 +0,0 @@ - - - - TabBarCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TabBarCoordinator

-
-
-
open class TabBarCoordinator<RouteType> : BaseCoordinator<RouteType, TabBarTransition> where RouteType : Route
- -
-
-

Use a TabBarCoordinator to coordinate a flow where a UITabbarController serves as a rootViewController. -With a TabBarCoordinator, you get access to all tabbarController-related transitions.

- -
-
- -
-
-
- -
    -
  • -
    - - - - delegate - -
    -
    -
    -
    -
    -
    -

    Use this delegate to get informed about tabbarController-related notifications and delegate methods -specifying transition animations. The delegate is only referenced weakly.

    - -

    Set this delegate instead of overriding the delegate of the rootViewController -specified in the initializer, if possible, to allow for transition animations -to be executed as specified in the prepareTransition(for:) method.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var delegate: UITabBarControllerDelegate? { get set }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController = .init(), initialRoute: RouteType?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a TabBarCoordinator with a specified set of tabs.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), tabs: [Presentable])
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - tabs - - -
    -

    The presentables to be used as tabs.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a TabBarCoordinator with a specified set of tabs and selects a specific presentable.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), tabs: [Presentable], select: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabs - - -
    -

    The presentables to be used as tabs.

    -
    -
    - - select - - -
    -

    The presentable to be selected before displaying. Make sure, this presentable is one of the -specified tabs in the other parameter.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Creates a TabBarCoordinator with a specified set of tabs and selects a presentable at a given index.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(rootViewController: RootViewController = .init(), tabs: [Presentable], select: Int)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - tabs - - -
    -

    The presentables to be used as tabs.

    -
    -
    - - select - - -
    -

    The index of the presentable to be selected before displaying.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/ViewCoordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/ViewCoordinator.html deleted file mode 100644 index d9cd3ad3..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/ViewCoordinator.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - ViewCoordinator Class Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

ViewCoordinator

-
-
-
open class ViewCoordinator<RouteType> : BaseCoordinator<RouteType, ViewTransition> where RouteType : Route
- -
-
-

ViewCoordinator is a base class for custom coordinators with a UIViewController rootViewController.

- -
-
- -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public override init(rootViewController: RootViewController, initialRoute: RouteType? = nil)
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions.html deleted file mode 100644 index 83651e5a..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - Extensions Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Extensions

-

The following extensions are available globally.

- -
-
- -
-
-
- - -
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIView.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIView.html deleted file mode 100644 index 7b36d198..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIView.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - UIView Extension Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UIView

-
-
-
extension UIView: Container
- -
-
- -
-
- -
-
-
-
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - view - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var view: UIView! { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIViewController.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIViewController.html deleted file mode 100644 index 0115ec93..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIViewController.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - UIViewController Extension Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UIViewController

-
-
-
extension UIViewController: Container
- -
-
- -
-
- -
-
-
-
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols.html deleted file mode 100644 index 46c84776..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - Protocols Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Protocols

-

The following protocols are available globally.

- -
-
- -
-
-
-
    -
  • -
    - - - - Container - -
    -
    -
    -
    -
    -
    -

    Container abstracts away from the difference of UIView and UIViewController

    - -

    With the Container protocol, UIView and UIViewController objects can be used interchangeably, -e.g. when embedding containers into containers.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Container
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Coordinator - -
    -
    -
    -
    -
    -
    -

    Coordinator is the protocol every coordinator conforms to.

    - -

    It requires an object to be able to trigger routes and perform transitions. -This connection is created using the prepareTransition(for:) method.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Coordinator : Router, TransitionPerformer
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionContext - -
    -
    -
    -
    -
    -
    -

    TransitionContext provides context information about transitions.

    - -

    It is especially useful for deep linking as XCoordinator can internally gather information about -the presentables being pushed onto the view hierarchy.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionContext
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Presentable - -
    -
    -
    -
    -
    -
    -

    Presentable represents all objects that can be presented (i.e. shown) to the user.

    - -

    Therefore, it is useful for view controllers, coordinators and views. -Presentable is often used for transitions to allow for view controllers and coordinators to be transitioned to.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Presentable
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Route - -
    -
    -
    -
    -
    -
    -

    This is the protocol your route types need to conform to.

    -
    -

    Note

    - It has no requirements, although the use of enums is encouraged to make your -navigation code type safe. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - Router - -
    -
    -
    -
    -
    -
    -

    The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator.

    - -

    A Router can trigger routes, which lead to transitions being executed. In constrast to the Coordinator protocol, -the router does not specify a TransitionType and can therefore be used in the form of a -StrongRouter, UnownedRouter or WeakRouter to reduce a coordinator’s capabilities to -the triggering of routes. -This may especially be useful in viewModels when using them in different contexts.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol Router : Presentable
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionAnimation - -
    -
    -
    -
    -
    -
    -

    TransitionAnimation aims to provide a common protocol for any type of transition animation used in an Animation object.

    - -

    XCoordinator provides different implementations of this protocol with the StaticTransitionAnimation, -InteractiveTransitionAnimation and InterruptibleTransitionAnimation classes.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionAnimation : UIViewControllerAnimatedTransitioning
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion. -Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation.

    - -

    PercentDrivenInteractionController is based on the UIViewControllerInteractiveTransitioning protocol.

    -
    -

    Note

    - While you can implement your custom implementation, -UIKit offers a default implementation with UIPercentDrivenInteractiveTransition. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol PercentDrivenInteractionController : UIViewControllerInteractiveTransitioning
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionPerformer - -
    -
    -
    -
    -
    -
    -

    The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator. -It keeps type information about its transition performing capabilities.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionPerformer : Presentable
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionProtocol - -
    -
    -
    -
    -
    -
    -

    TransitionProtocol is used to abstract any concrete transition implementation.

    - -

    Transition is provided as an easily-extensible default transition type implementation.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol TransitionProtocol : TransitionContext
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Container.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Container.html deleted file mode 100644 index 2a868a42..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Container.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - Container Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Container

-
-
-
public protocol Container
- -
-
-

Container abstracts away from the difference of UIView and UIViewController

- -

With the Container protocol, UIView and UIViewController objects can be used interchangeably, -e.g. when embedding containers into containers.

- -
-
- -
-
-
-
    -
  • -
    - - - - view - -
    -
    -
    -
    -
    -
    -

    The view of the Container.

    -
    -

    Note

    - It might not exist for a UIViewController. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var view: UIView! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController of the Container.

    -
    -

    Note

    - It might not exist for a UIView. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Coordinator.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Coordinator.html deleted file mode 100644 index 6fd1b16b..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Coordinator.html +++ /dev/null @@ -1,996 +0,0 @@ - - - - Coordinator Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Coordinator

-
-
-
public protocol Coordinator : Router, TransitionPerformer
- -
-
-

Coordinator is the protocol every coordinator conforms to.

- -

It requires an object to be able to trigger routes and perform transitions. -This connection is created using the prepareTransition(for:) method.

- -
-
- -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    This method prepares transitions for routes. -It especially decides, which transitions are performed for the triggered routes.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func prepareTransition(for route: RouteType) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The triggered route for which a transition is to be prepared.

    -
    -
    -
    -
    -

    Return Value

    -

    The prepared transition.

    -
    -
    -
    -
  • -
  • -
    - - - - addChild(_:) - -
    -
    -
    -
    -
    -
    -

    This method adds a child to a coordinator’s children.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func addChild(_ presentable: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The child to be added.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - removeChild(_:) - -
    -
    -
    -
    -
    -
    -

    This method removes a child to a coordinator’s children.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func removeChild(_ presentable: Presentable)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The child to be removed.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    This method removes all children that are no longer in the view hierarchy.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func removeChildrenIfNeeded()
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - RootViewController - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Shortcut for Coordinator.TransitionType.RootViewController

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias RootViewController = TransitionType.RootViewController
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - viewController - - - Extension method - -
    -
    -
    -
    -
    -
    -

    A Coordinator uses its rootViewController as viewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - weakRouter - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates a WeakRouter object from the given router to abstract from concrete implementations -while maintaining information necessary to fulfill the Router protocol. -The original router will be held weakly.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var weakRouter: WeakRouter<RouteType> { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - unownedRouter - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates an UnownedRouter object from the given router to abstract from concrete implementations -while maintaining information necessary to fulfill the Router protocol. -The original router will be held unowned.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var unownedRouter: UnownedRouter<RouteType> { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - anyCoordinator - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates an AnyCoordinator based on the current coordinator.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var anyCoordinator: AnyCoordinator<RouteType, TransitionType> { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func presented(from presentable: Presentable?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - childTransitionCompleted() - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func childTransitionCompleted()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - contextTrigger(_:with:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func contextTrigger(_ route: RouteType,
    -                           with options: TransitionOptions,
    -                           completion: ContextPresentationHandler?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - chain(routes:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    With chain(routes:) different routes can be chained together to form a combined transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func chain(routes: [RouteType]) -> TransitionType
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - routes - - -
    -

    The routes to be chained.

    -
    -
    -
    -
    -

    Return Value

    -

    A transition combining the transitions of the specified routes.

    -
    -
    -
    -
  • -
  • -
    - - - - performTransition(_:with:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func performTransition(_ transition: TransitionType,
    -                              with options: TransitionOptions,
    -                              completion: PresentationHandler? = nil)
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - deepLink(_:_:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Deep-Linking can be used to chain routes of different types together.

    -
    -

    Note

    -

    Use it with caution, as it is not implemented in a type-safe manner. -Keep in mind that changes in the app’s structure and changes of transitions -behind the given routes can lead to runtime errors and, therefore, crashes of your app.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func deepLink<RootViewController, S: Sequence>(_ route: RouteType, _ remainingRoutes: S)
    -    -> Transition<RootViewController> where S.Element == Route, TransitionType == Transition<RootViewController>
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The first route in the chain. -It is given a special place because its exact type can be specified.

    -
    -
    - - remainingRoutes - - -
    -

    The remaining routes of the chain.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - deepLink(_:_:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Deep-Linking can be used to chain routes of different types together.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func deepLink<RootViewController>(_ route: RouteType, _ remainingRoutes: Route...)
    -    -> Transition<RootViewController> where TransitionType == Transition<RootViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - registerPeek(for:route:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Use this transition to register 3D Touch Peek and Pop functionality.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @available(iOS, introduced: 9.0, deprecated: 13.0, message: "Use `UIContextMenuInteraction` instead.")
    -public func registerPeek<RootViewController>(for source: Container,
    -                                             route: RouteType
    -    ) -> Transition<RootViewController> where Self.TransitionType == Transition<RootViewController>
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - source - - -
    -

    The view to register peek and pop on.

    -
    -
    - - route - - -
    -

    The route to be triggered for peek and pop.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/PercentDrivenInteractionController.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/PercentDrivenInteractionController.html deleted file mode 100644 index c0d3e12d..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/PercentDrivenInteractionController.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - PercentDrivenInteractionController Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PercentDrivenInteractionController

-
-
-
public protocol PercentDrivenInteractionController : UIViewControllerInteractiveTransitioning
- -
-
-

PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion. -Furthermore, a PercentDrivenInteractionController should be able to cancel and finish a transition animation.

- -

PercentDrivenInteractionController is based on the UIViewControllerInteractiveTransitioning protocol.

-
-

Note

- While you can implement your custom implementation, -UIKit offers a default implementation with UIPercentDrivenInteractiveTransition. - -
- -
-
- -
-
-
-
    -
  • -
    - - - - update(_:) - -
    -
    -
    -
    -
    -
    -

    Updates the animation to be at the specified progress.

    - -

    This method is called based on user interactions. -A linear progression of the animation is encouraged when handling user interactions.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func update(_ percentComplete: CGFloat)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cancel() - -
    -
    -
    -
    -
    -
    -

    Cancels the animation, e.g. by cleaning up and reversing any progress made.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func cancel()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - finish() - -
    -
    -
    -
    -
    -
    -

    Finishes the animation by completing it from the current progress onwards.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func finish()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Presentable.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Presentable.html deleted file mode 100644 index def33f99..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Presentable.html +++ /dev/null @@ -1,551 +0,0 @@ - - - - Presentable Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Presentable

-
-
-
public protocol Presentable
- -
-
-

Presentable represents all objects that can be presented (i.e. shown) to the user.

- -

Therefore, it is useful for view controllers, coordinators and views. -Presentable is often used for transitions to allow for view controllers and coordinators to be transitioned to.

- -
-
- -
-
-
-
    -
  • -
    - - - - viewController - -
    -
    -
    -
    -
    -
    -

    The viewController of the Presentable.

    - -

    In the case of a UIViewController, it returns itself. -A coordinator returns its rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var viewController: UIViewController! { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - router(for:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method can be used to retrieve whether the presentable can trigger a specific route -and potentially returns a router to trigger the route on.

    - -

    Deep linking makes use of this method to trigger the specified routes.

    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func router<R>(for route: R) -> StrongRouter<R>? where R : Route
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The route to determine a router for.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - presented(from:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method is called whenever a Presentable is shown to the user. -It further provides information about the context a presentable is shown in.

    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func presented(from presentable: Presentable?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The context in which the presentable is shown. -This could be a window, another viewController, a coordinator, etc. -nil is specified whenever a context cannot be easily determined.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - registerParent(_:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method is used to register a parent coordinator to a child coordinator.

    -
    -

    Note

    - This method is used internally and should never be called directly. - -
    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func registerParent(_ presentable: Presentable & AnyObject)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - childTransitionCompleted() - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    This method gets called when the transition of a child coordinator is being reported to its parent.

    -
    -

    Note

    - This method is used internally and should never be called directly. - -
    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func childTransitionCompleted()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - setRoot(for:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    Sets the presentable as the root of the window.

    - -

    This method sets the rootViewController of the window and makes it key and visible. -Furthermore, it calls presented(from:) with the window as its parameter.

    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func setRoot(for window: UIWindow)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - window - - -
    -

    The window to set the root of.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Router.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Router.html deleted file mode 100644 index 29ffd2c0..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Router.html +++ /dev/null @@ -1,685 +0,0 @@ - - - - Router Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Router

-
-
-
public protocol Router : Presentable
- -
-
-

The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator.

- -

A Router can trigger routes, which lead to transitions being executed. In constrast to the Coordinator protocol, -the router does not specify a TransitionType and can therefore be used in the form of a -StrongRouter, UnownedRouter or WeakRouter to reduce a coordinator’s capabilities to -the triggering of routes. -This may especially be useful in viewModels when using them in different contexts.

- -
-
- -
-
-
-
    -
  • -
    - - - - RouteType - -
    -
    -
    -
    -
    -
    -

    RouteType defines which routes can be triggered in a certain Router implementation.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype RouteType : Route
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Triggers routes and returns context in completion-handler.

    - -

    Useful for deep linking. It is encouraged to use trigger instead, if the context is not needed.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func contextTrigger(_ route: RouteType, with options: TransitionOptions, completion: ContextPresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options configuring the execution of transitions, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations). -If the context is not needed, use trigger instead.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - trigger(_:with:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Triggers the specified route without the need of specifying a completion handler.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, with options: TransitionOptions)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options for performing the transition, e.g. whether it should be animated.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - trigger(_:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Triggers the specified route with default transition options enabling the animation of the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, completion: PresentationHandler? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations).

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - trigger(_:with:completion:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Triggers the specified route by performing a transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trigger(_ route: RouteType, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered.

    -
    -
    - - options - - -
    -

    Transition options for performing the transition, e.g. whether it should be animated.

    -
    -
    - - completion - - -
    -

    If present, this completion handler is executed once the transition is completed -(including animations).

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - strongRouter - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Creates a StrongRouter object from the given router to abstract from concrete implementations -while maintaining information necessary to fulfill the Router protocol. -The original router will be held strongly.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var strongRouter: StrongRouter<RouteType> { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - router(for:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Returns a router for the specified route, if possible.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func router<R>(for route: R) -> StrongRouter<R>? where R : Route
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - route - - -
    -

    The route type to return a router for.

    -
    -
    -
    -
    -

    Return Value

    -

    It returns the router’s strongRouter, -if it is compatible with the given route type, -otherwise nil.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionAnimation.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionAnimation.html deleted file mode 100644 index da9eb644..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionAnimation.html +++ /dev/null @@ -1,362 +0,0 @@ - - - - TransitionAnimation Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionAnimation

-
-
-
public protocol TransitionAnimation : UIViewControllerAnimatedTransitioning
- -
-
-

TransitionAnimation aims to provide a common protocol for any type of transition animation used in an Animation object.

- -

XCoordinator provides different implementations of this protocol with the StaticTransitionAnimation, -InteractiveTransitionAnimation and InterruptibleTransitionAnimation classes.

- -
-
- -
-
-
-
    -
  • -
    - - - - interactionController - -
    -
    -
    -
    -
    -
    -

    The interaction controller of an animation. -It gets notified about the state of an animation and handles the specific events accordingly.

    - -

    The interaction controller is reset when calling TransitionAnimation.start() can always be nil, -e.g. in static transition animations.

    - -

    Until TransitionAnimation.cleanup() is called, it should always return the same instance.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var interactionController: PercentDrivenInteractionController? { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - start() - -
    -
    -
    -
    -
    -
    -

    Starts the animation by possibly creating a new interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func start()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - cleanup() - -
    -
    -
    -
    -
    -
    -

    Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func cleanup()
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionContext.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionContext.html deleted file mode 100644 index f519a608..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionContext.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - TransitionContext Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionContext

-
-
-
public protocol TransitionContext
- -
-
-

TransitionContext provides context information about transitions.

- -

It is especially useful for deep linking as XCoordinator can internally gather information about -the presentables being pushed onto the view hierarchy.

- -
-
- -
-
-
-
    -
  • -
    - - - - presentables - -
    -
    -
    -
    -
    -
    -

    The presentables being shown to the user by the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var presentables: [Presentable] { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - animation - -
    -
    -
    -
    -
    -
    -

    The transition animation directly used in the transition, if applicable.

    -
    -

    Note

    - Make sure to not return nil, if you want to use BaseCoordinator.registerInteractiveTransition -to realize an interactive transition. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var animation: TransitionAnimation? { get }
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionPerformer.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionPerformer.html deleted file mode 100644 index 0df5becf..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionPerformer.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - TransitionPerformer Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionPerformer

-
-
-
public protocol TransitionPerformer : Presentable
- -
-
-

The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator. -It keeps type information about its transition performing capabilities.

- -
-
- -
-
-
-
    -
  • -
    - - - - TransitionType - -
    -
    -
    -
    -
    -
    -

    The type of transitions that can be executed on the rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype TransitionType : TransitionProtocol
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - rootViewController - -
    -
    -
    -
    -
    -
    -

    The rootViewController on which transitions are performed.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var rootViewController: TransitionType.RootViewController { get }
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Perform a transition.

    -
    -

    Warning

    -

    Do not use this method directly, but instead try to use the trigger -method of your coordinator instead wherever possible.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func performTransition(_ transition: TransitionType, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - transition - - -
    -

    The transition to be performed.

    -
    -
    - - options - - -
    -

    The options on how to perform the transition, including the option to enable/disable animations.

    -
    -
    - - completion - - -
    -

    The completion handler called once a transition has finished.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionProtocol.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionProtocol.html deleted file mode 100644 index 30e2c3eb..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionProtocol.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - TransitionProtocol Protocol Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionProtocol

-
-
-
public protocol TransitionProtocol : TransitionContext
- -
-
-

TransitionProtocol is used to abstract any concrete transition implementation.

- -

Transition is provided as an easily-extensible default transition type implementation.

- -
-
- -
-
-
-
    -
  • -
    - - - - RootViewController - -
    -
    -
    -
    -
    -
    -

    The type of the rootViewController that can execute the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype RootViewController : UIViewController
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Performs a transition on the given viewController.

    -
    -

    Warning

    - Do not call this method directly. Instead use your coordinator’s performTransition method or trigger -a specified route (latter option is encouraged). - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func perform(on rootViewController: RootViewController, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - multiple(_:) - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    Creates a compound transition by chaining multiple transitions together.

    - -
    -

    Default Implementation

    -
    -

    Creates a compound transition by chaining multiple transitions together.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    static func multiple(_ transitions: [Self]) -> Self
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitions - - -
    -

    The transitions to be chained to form a combined transition.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs.html deleted file mode 100644 index d6d9eafd..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs.html +++ /dev/null @@ -1,469 +0,0 @@ - - - - Structures Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Structures

-

The following structures are available globally.

- -
-
- -
-
-
-
    -
  • -
    - - - - Transition - -
    -
    -
    -
    -
    -
    -

    This struct represents the common implementation of the TransitionProtocol. -It is used in every of the provided BaseCoordinator subclasses and provides all transitions implemented in XCoordinator.

    - -

    Transitions are defined by a Transition.Perform closure. -It further provides different context information such as Transition.presentable and Transition.animation. -You can create your own custom transitions using Transition.init(presentable:animation:perform:) or -use one of the many provided static functions to create the most common transitions.

    -
    -

    Note

    - Transitions have a generic constraint to the rootViewController in use. -Therefore, not all transitions are available in every coordinator. -Make sure to specify the RootViewController type of the TransitionType of your coordinator as precise as possible -to get all already available transitions. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct Transition<RootViewController> : TransitionProtocol where RootViewController : UIViewController
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TransitionOptions - -
    -
    -
    -
    -
    -
    -

    TransitionOptions specifies transition customization points defined at the point of triggering a transition.

    - -

    You can use TransitionOptions to define whether or not a transition should be animated.

    -
    -

    Note

    - It might be extended in the future to enable more advanced customization options. - -
    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct TransitionOptions
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - UnownedErased - -
    -
    -
    -
    -
    -
    -

    UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create an UnownedErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @propertyWrapper
    -public struct UnownedErased<Value>
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - UnownedErased - -
    -
    -
    -
    -
    -
    -

    UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create an UnownedErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - WeakErased - -
    -
    -
    -
    -
    -
    -

    WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create a WeakErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @propertyWrapper
    -public struct WeakErased<Value>
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - WeakErased - -
    -
    -
    -
    -
    -
    -

    WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

    - -

    Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create a WeakErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

    - - See more -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/Transition.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/Transition.html deleted file mode 100644 index a054d6f9..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/Transition.html +++ /dev/null @@ -1,1772 +0,0 @@ - - - - Transition Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Transition

-
-
-
public struct Transition<RootViewController> : TransitionProtocol where RootViewController : UIViewController
- -
-
-

This struct represents the common implementation of the TransitionProtocol. -It is used in every of the provided BaseCoordinator subclasses and provides all transitions implemented in XCoordinator.

- -

Transitions are defined by a Transition.Perform closure. -It further provides different context information such as Transition.presentable and Transition.animation. -You can create your own custom transitions using Transition.init(presentable:animation:perform:) or -use one of the many provided static functions to create the most common transitions.

-
-

Note

- Transitions have a generic constraint to the rootViewController in use. -Therefore, not all transitions are available in every coordinator. -Make sure to specify the RootViewController type of the TransitionType of your coordinator as precise as possible -to get all already available transitions. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - PerformClosure - -
    -
    -
    -
    -
    -
    -

    Perform is the type of closure used to perform the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias PerformClosure = (_ rootViewController: RootViewController, _ options: TransitionOptions, _ completion: PresentationHandler?) -> Void
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - rootViewController - - -
    -

    The rootViewController to perform the transition on.

    -
    -
    - - options - - -
    -

    The options on how to perform the transition, e.g. whether it should be animated or not.

    -
    -
    - - completion - - -
    -

    The completion handler of the transition. -It is called when the transition (including all animations) is completed.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - presentables - -
    -
    -
    -
    -
    -
    -

    The presentables this transition is putting into the view hierarchy. This is especially useful for -deep-linking.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var presentables: [Presentable] { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - animation - -
    -
    -
    -
    -
    -
    -

    The transition animation this transition is using, i.e. the presentation or dismissal animation -of the specified Animation object. If the transition does not use any transition animations, nil -is returned.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var animation: TransitionAnimation? { get }
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Create your custom transitions with this initializer.

    - -

    Extending Transition with static functions to create transitions with this initializer -(instead of calling this initializer in your prepareTransition(for:) method) is advised -as it makes reuse easier.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(presentables: [Presentable], animationInUse: TransitionAnimation?, perform: @escaping PerformClosure)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - presentables - - -
    -

    The presentables this transition is putting into the view hierarchy, if specifiable. -These presentables are used in the deep-linking feature.

    -
    -
    - - animationInUse - - -
    -

    The transition animation this transition is using during the transition, i.e. the present animation -of a presenting transition or the dismissal animation of a dismissing transition. -Make sure to specify an animation here to use your transition with the -registerInteractiveTransition method in your coordinator.

    -
    -
    - - perform - - -
    -

    The perform closure executes the transition. -To create custom transitions, make sure to call the completion handler after all animations are done. -If applicable, make sure to use the TransitionOptions to, e.g., decide whether a transition should be animated or not.

    -
    -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    Performs a transition on the given viewController.

    -
    -

    Warning

    - Do not call this method directly. Instead use your coordinator’s performTransition method or trigger -a specified route (latter option is encouraged). - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func perform(on rootViewController: RootViewController, with options: TransitionOptions, completion: PresentationHandler?)
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - push(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Pushes a presentable on the rootViewController’s navigation stack.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func push(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be pushed onto the navigation stack.

    -
    -
    - - animation - - -
    -

    The animation to set for the presentable. Its presentationAnimation will be used for the -immediate push-transition, its dismissalAnimation is used for the pop-transition, -if not otherwise specified. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - pop(animation:) - -
    -
    -
    -
    -
    -
    -

    Pops the topViewController from the rootViewController’s navigation stack.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func pop(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to set for the presentable. Only its dismissalAnimation is used for the -pop-transition. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - pop(to:animation:) - -
    -
    -
    -
    -
    -
    -

    Pops viewControllers from the rootViewController’s navigation stack until the specified -presentable is reached.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func pop(to presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to pop to. Make sure this presentable is in the rootViewController’s -navigation stack before performing such a transition.

    -
    -
    - - animation - - -
    -

    The animation to set for the presentable. Only its dismissalAnimation is used for the -pop-transition. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - popToRoot(animation:) - -
    -
    -
    -
    -
    -
    -

    Pops viewControllers from the rootViewController’s navigation stack until only one viewController -is left.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func popToRoot(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to set for the presentable. Only its dismissalAnimation is used for the -pop-transition. Specify nil here to leave animations as they were set for the -presentable before. You can use Animation.default to reset the previously set animations -on this presentable.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - set(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Replaces the navigation stack of the rootViewController with the specified presentables.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func set(_ presentables: [Presentable], animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentables - - -
    -

    The presentables to make up the navigation stack after the transition is done.

    -
    -
    - - animation - - -
    -

    The animation to set for the presentable. Its presentationAnimation will be used for the -transition animation of the top-most viewController, its dismissalAnimation is used for -any pop-transition of the whole navigation stack, if not otherwise specified. Specify nil -here to leave animations as they were set for the presentables before. You can use -Animation.default to reset the previously set animations on all presentables.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - set(_:_:direction:) - -
    -
    -
    -
    -
    -
    -

    Sets the current page(s) of the rootViewController. Make sure to set -UIPageViewController.isDoubleSided to the appropriate setting before executing this transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func set(_ first: Presentable, _ second: Presentable? = nil,
    -                       direction: UIPageViewController.NavigationDirection) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - first - - -
    -

    The first page being shown. If second is specified as nil, this reflects a single page -being shown.

    -
    -
    - - second - - -
    -

    The second page being shown. This page is optional, as your rootViewController can be used -with isDoubleSided enabled or not.

    -
    -
    - - direction - - -
    -

    The direction in which the transition should be animated.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - set(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to set the tabs of the rootViewController with an optional custom animation.

    -
    -

    Note

    -

    Only the presentation animation of the Animation object is used.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func set(_ presentables: [Presentable], animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentables - - -
    -

    The tabs to be set are defined by the presentables’ viewControllers.

    -
    -
    - - animation - - -
    -

    The animation to be used. If you specify nil here, the default animation by UIKit is used.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - select(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to select a tab with an optional custom animation.

    -
    -

    Note

    -

    Only the presentation animation of the Animation object is used.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func select(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The tab to be selected is the presentable’s viewController. Make sure that this is one of the -previously specified tabs of the rootViewController.

    -
    -
    - - animation - - -
    -

    The animation to be used. If you specify nil here, the default animation by UIKit is used.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Transition to select a tab with an optional custom animation.

    -
    -

    Note

    -

    Only the presentation animation of the Animation object is used.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func select(index: Int, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - index - - -
    -

    The index of the tab to be selected. Make sure that there is a tab at the specified index.

    -
    -
    - - animation - - -
    -

    The animation to be used. If you specify nil here, the default animation by UIKit is used.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - show(_:) - -
    -
    -
    -
    -
    -
    -

    Shows a viewController by calling show on the rootViewController.

    -
    -

    Note

    -

    Prefer Transition.push when using transitions on a UINavigationController rootViewController. -In contrast to this transition, you can specify an animation.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func show(_ presentable: Presentable) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The presentable to be shown as a primary view controller.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - showDetail(_:) - -
    -
    -
    -
    -
    -
    -

    Shows a detail viewController by calling showDetail on the rootViewController.

    -
    -

    Note

    -

    Prefer Transition.push when using transitions on a UINavigationController rootViewController. -In contrast to this transition, you can specify an animation.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func showDetail(_ presentable: Presentable) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - presentable - - -
    -

    The presentable to be shown as a detail view controller.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Transition to present the given presentable on the rootViewController.

    - -

    The present-transition might also be helpful as it always presents on top of what is currently -presented.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func presentOnRoot(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be presented.

    -
    -
    - - animation - - -
    -

    The animation to be set as the presentable’s transitioningDelegate. Specify nil to not override -the current transitioningDelegate and Animation.default to reset the transitioningDelegate to use -the default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - present(_:animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to present the given presentable. It uses the rootViewController’s presentedViewController, -if present, otherwise it is equivalent to presentOnRoot.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func present(_ presentable: Presentable, animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be presented.

    -
    -
    - - animation - - -
    -

    The animation to be set as the presentable’s transitioningDelegate. Specify nil to not override -the current transitioningDelegate and Animation.default to reset the transitioningDelegate to use -the default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - embed(_:in:) - -
    -
    -
    -
    -
    -
    -

    Transition to embed the given presentable in a specific container (i.e. a view or viewController).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func embed(_ presentable: Presentable, in container: Container) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - presentable - - -
    -

    The presentable to be embedded.

    -
    -
    - - container - - -
    -

    The container to embed the presentable in.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Transition to call dismiss on the rootViewController. Also take a look at the dismiss transition, -which calls dismiss on the rootViewController’s presentedViewController, if present.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func dismissToRoot(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to be used by the rootViewController’s presentedViewController. -Specify nil to not override its transitioningDelegate or Animation.default to fall back to the -default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - dismiss(animation:) - -
    -
    -
    -
    -
    -
    -

    Transition to call dismiss on the rootViewController’s presentedViewController, if present. -Otherwise, it is equivalent to dismissToRoot.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func dismiss(animation: Animation? = nil) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animation - - -
    -

    The animation to be used by the rootViewController’s presentedViewController. -Specify nil to not override its transitioningDelegate or Animation.default to fall back to the -default UIKit animations.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - none() - -
    -
    -
    -
    -
    -
    -

    No transition at all. May be useful for testing or debugging purposes, or to ignore specific -routes.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func none() -> Transition
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - multiple(_:) - -
    -
    -
    -
    -
    -
    -

    With this transition you can chain multiple transitions of the same type together.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func multiple<C>(_ transitions: C) -> Transition where C : Collection, C.Element == Transition<RootViewController>
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - transitions - - -
    -

    The transitions to be chained to form the new transition.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - route(_:on:) - -
    -
    -
    -
    -
    -
    -

    Use this transition to trigger a route on another coordinator. TransitionOptions and -PresentationHandler used during the execution of this transitions are forwarded.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func route<C>(_ route: C.RouteType, on coordinator: C) -> Transition where C : Coordinator
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered on the coordinator.

    -
    -
    - - coordinator - - -
    -

    The coordinator to trigger the route on.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - trigger(_:on:) - -
    -
    -
    -
    -
    -
    -

    Use this transition to trigger a route on another router. TransitionOptions and -PresentationHandler used during the execution of this transitions are forwarded.

    - -

    Peeking is not supported with this transition. If needed, use the route transition instead.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func trigger<R>(_ route: R.RouteType, on router: R) -> Transition where R : Router
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - route - - -
    -

    The route to be triggered on the coordinator.

    -
    -
    - - router - - -
    -

    The router to trigger the route on.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - perform(_:on:) - -
    -
    -
    -
    -
    -
    -

    Performs a transition on a different viewController than the coordinator’s rootViewController.

    - -

    This might be helpful when creating a coordinator for a specific viewController would create unnecessary complicated code.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func perform<TransitionType: TransitionProtocol>(_ transition: TransitionType,
    -                                                               on viewController: TransitionType.RootViewController) -> Transition
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - transition - - -
    -

    The transition to be performed.

    -
    -
    - - viewController - - -
    -

    The viewController to perform the transition on.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/TransitionOptions.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/TransitionOptions.html deleted file mode 100644 index 7a1d7027..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/TransitionOptions.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - TransitionOptions Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TransitionOptions

-
-
-
public struct TransitionOptions
- -
-
-

TransitionOptions specifies transition customization points defined at the point of triggering a transition.

- -

You can use TransitionOptions to define whether or not a transition should be animated.

-
-

Note

- It might be extended in the future to enable more advanced customization options. - -
- -
-
- -
-
-
- -
    -
  • -
    - - - - animated - -
    -
    -
    -
    -
    -
    -

    Specifies whether or not the transition should be animated.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public let animated: Bool
    - -
    -
    -
    -
    -
  • -
-
-
- -
    -
  • -
    - - - - init(animated:) - -
    -
    -
    -
    -
    -
    -

    Creates transition options on the basis of whether or not it should be animated.

    -
    -

    Note

    -

    Specifying true to enable animations does not necessarily lead to an animated transition, -if the transition does not support it.

    - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(animated: Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - animated - - -
    -

    Whether or not the animation should be animated.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/UnownedErased.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/UnownedErased.html deleted file mode 100644 index 4386c53b..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/UnownedErased.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - UnownedErased Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UnownedErased

-

UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

- -

Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create an UnownedErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

- -
-
- -
-
-
-
    -
  • -
    - - - - wrappedValue - -
    -
    -
    -
    -
    -
    -

    The type-erased or otherwise mapped version of the value being held unowned.

    - -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/WeakErased.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/WeakErased.html deleted file mode 100644 index fb7d2d7b..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/WeakErased.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - WeakErased Structure Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

WeakErased

-

WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

- -

Create this wrapper using an initial value and a closure to create the type-erased object. -Make sure to not create a WeakErased wrapper for already type-erased objects, -since their reference is most likely instantly lost.

- -
-
- -
-
-
-
    -
  • -
    - - - - wrappedValue - -
    -
    -
    -
    -
    -
    -

    The type-erased or otherwise mapped version of the value being held weakly.

    - -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Typealiases.html deleted file mode 100644 index c3f9b126..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Typealiases.html +++ /dev/null @@ -1,760 +0,0 @@ - - - - Type Aliases Reference - - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Type Aliases

-

The following type aliases are available globally.

- -
-
- -
-
-
- -
-
- -
-
-
    -
  • -
    - - - - PresentationHandler - -
    -
    -
    -
    -
    -
    -

    The completion handler for transitions.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias PresentationHandler = () -> Void
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    The completion handler for transitions, which also provides the context information about the transition.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias ContextPresentationHandler = (TransitionContext) -> Void
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - NavigationTransition - -
    -
    -
    -
    -
    -
    -

    NavigationTransition offers transitions that can be used -with a UINavigationController as rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias NavigationTransition = Transition<UINavigationController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - PageTransition - -
    -
    -
    -
    -
    -
    -

    PageTransition offers transitions that can be used -with a UIPageViewController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias PageTransition = Transition<UIPageViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - SplitTransition - -
    -
    -
    -
    -
    -
    -

    SplitTransition offers different transitions common to a UISplitViewController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias SplitTransition = Transition<UISplitViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - TabBarTransition - -
    -
    -
    -
    -
    -
    -

    TabBarTransition offers transitions that can be used -with a UITabBarController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias TabBarTransition = Transition<UITabBarController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - AnyRouter - -
    -
    -
    -
    -
    -
    -

    Please use StrongRouter, WeakRouter or UnownedRouter instead.

    -
    -

    Note

    - Use a StrongRouter, if you need to hold a router even -when it is not in the view hierarchy. -Use a WeakRouter or UnownedRouter when you are accessing -any router from the view hierarchy. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    @available(iOS, deprecated)
    -public typealias AnyRouter<RouteType> = UnownedRouter<RouteType> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - UnownedRouter - -
    -
    -
    -
    -
    -
    -

    An UnownedRouter is an unowned version of a router object to be used in view controllers or view models.

    -
    -

    Note

    - Do not create an UnownedRouter from a StrongRouter since StrongRouter is only another wrapper -and does not represent the might instantly - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias UnownedRouter<RouteType> = UnownedErased<StrongRouter<RouteType>> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - ViewTransition - -
    -
    -
    -
    -
    -
    -

    ViewTransition offers transitions common to any UIViewController rootViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias ViewTransition = Transition<UIViewController>
    - -
    -
    -
    -
    -
  • -
-
-
-
    -
  • -
    - - - - WeakRouter - -
    -
    -
    -
    -
    -
    -

    A WeakRouter is a weak version of a router object to be used in view controllers or view models.

    -
    -

    Note

    - Do not create a WeakRouter from a StrongRouter since StrongRouter is only another wrapper -and does not represent the might instantly. -Also keep in mind that once the original router object has been deallocated, -calling trigger on this wrapper will have no effect. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias WeakRouter<RouteType> = WeakErased<StrongRouter<RouteType>> where RouteType : Route
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/highlight.css b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/highlight.css deleted file mode 100644 index d0db0e13..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/highlight.css +++ /dev/null @@ -1,200 +0,0 @@ -/* Credit to https://gist.github.com/wataru420/2048287 */ -.highlight { - /* Comment */ - /* Error */ - /* Keyword */ - /* Operator */ - /* Comment.Multiline */ - /* Comment.Preproc */ - /* Comment.Single */ - /* Comment.Special */ - /* Generic.Deleted */ - /* Generic.Deleted.Specific */ - /* Generic.Emph */ - /* Generic.Error */ - /* Generic.Heading */ - /* Generic.Inserted */ - /* Generic.Inserted.Specific */ - /* Generic.Output */ - /* Generic.Prompt */ - /* Generic.Strong */ - /* Generic.Subheading */ - /* Generic.Traceback */ - /* Keyword.Constant */ - /* Keyword.Declaration */ - /* Keyword.Pseudo */ - /* Keyword.Reserved */ - /* Keyword.Type */ - /* Literal.Number */ - /* Literal.String */ - /* Name.Attribute */ - /* Name.Builtin */ - /* Name.Class */ - /* Name.Constant */ - /* Name.Entity */ - /* Name.Exception */ - /* Name.Function */ - /* Name.Namespace */ - /* Name.Tag */ - /* Name.Variable */ - /* Operator.Word */ - /* Text.Whitespace */ - /* Literal.Number.Float */ - /* Literal.Number.Hex */ - /* Literal.Number.Integer */ - /* Literal.Number.Oct */ - /* Literal.String.Backtick */ - /* Literal.String.Char */ - /* Literal.String.Doc */ - /* Literal.String.Double */ - /* Literal.String.Escape */ - /* Literal.String.Heredoc */ - /* Literal.String.Interpol */ - /* Literal.String.Other */ - /* Literal.String.Regex */ - /* Literal.String.Single */ - /* Literal.String.Symbol */ - /* Name.Builtin.Pseudo */ - /* Name.Variable.Class */ - /* Name.Variable.Global */ - /* Name.Variable.Instance */ - /* Literal.Number.Integer.Long */ } - .highlight .c { - color: #999988; - font-style: italic; } - .highlight .err { - color: #a61717; - background-color: #e3d2d2; } - .highlight .k { - color: #000000; - font-weight: bold; } - .highlight .o { - color: #000000; - font-weight: bold; } - .highlight .cm { - color: #999988; - font-style: italic; } - .highlight .cp { - color: #999999; - font-weight: bold; } - .highlight .c1 { - color: #999988; - font-style: italic; } - .highlight .cs { - color: #999999; - font-weight: bold; - font-style: italic; } - .highlight .gd { - color: #000000; - background-color: #ffdddd; } - .highlight .gd .x { - color: #000000; - background-color: #ffaaaa; } - .highlight .ge { - color: #000000; - font-style: italic; } - .highlight .gr { - color: #aa0000; } - .highlight .gh { - color: #999999; } - .highlight .gi { - color: #000000; - background-color: #ddffdd; } - .highlight .gi .x { - color: #000000; - background-color: #aaffaa; } - .highlight .go { - color: #888888; } - .highlight .gp { - color: #555555; } - .highlight .gs { - font-weight: bold; } - .highlight .gu { - color: #aaaaaa; } - .highlight .gt { - color: #aa0000; } - .highlight .kc { - color: #000000; - font-weight: bold; } - .highlight .kd { - color: #000000; - font-weight: bold; } - .highlight .kp { - color: #000000; - font-weight: bold; } - .highlight .kr { - color: #000000; - font-weight: bold; } - .highlight .kt { - color: #445588; } - .highlight .m { - color: #009999; } - .highlight .s { - color: #d14; } - .highlight .na { - color: #008080; } - .highlight .nb { - color: #0086B3; } - .highlight .nc { - color: #445588; - font-weight: bold; } - .highlight .no { - color: #008080; } - .highlight .ni { - color: #800080; } - .highlight .ne { - color: #990000; - font-weight: bold; } - .highlight .nf { - color: #990000; } - .highlight .nn { - color: #555555; } - .highlight .nt { - color: #000080; } - .highlight .nv { - color: #008080; } - .highlight .ow { - color: #000000; - font-weight: bold; } - .highlight .w { - color: #bbbbbb; } - .highlight .mf { - color: #009999; } - .highlight .mh { - color: #009999; } - .highlight .mi { - color: #009999; } - .highlight .mo { - color: #009999; } - .highlight .sb { - color: #d14; } - .highlight .sc { - color: #d14; } - .highlight .sd { - color: #d14; } - .highlight .s2 { - color: #d14; } - .highlight .se { - color: #d14; } - .highlight .sh { - color: #d14; } - .highlight .si { - color: #d14; } - .highlight .sx { - color: #d14; } - .highlight .sr { - color: #009926; } - .highlight .s1 { - color: #d14; } - .highlight .ss { - color: #990073; } - .highlight .bp { - color: #999999; } - .highlight .vc { - color: #008080; } - .highlight .vg { - color: #008080; } - .highlight .vi { - color: #008080; } - .highlight .il { - color: #009999; } diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/jazzy.css deleted file mode 100644 index 833be0d2..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/jazzy.css +++ /dev/null @@ -1,378 +0,0 @@ -*, *:before, *:after { - box-sizing: inherit; } - -body { - margin: 0; - background: #fff; - color: #333; - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - letter-spacing: .2px; - -webkit-font-smoothing: antialiased; - box-sizing: border-box; } - -h1 { - font-size: 2rem; - font-weight: 700; - margin: 1.275em 0 0.6em; } - -h2 { - font-size: 1.75rem; - font-weight: 700; - margin: 1.275em 0 0.3em; } - -h3 { - font-size: 1.5rem; - font-weight: 700; - margin: 1em 0 0.3em; } - -h4 { - font-size: 1.25rem; - font-weight: 700; - margin: 1.275em 0 0.85em; } - -h5 { - font-size: 1rem; - font-weight: 700; - margin: 1.275em 0 0.85em; } - -h6 { - font-size: 1rem; - font-weight: 700; - margin: 1.275em 0 0.85em; - color: #777; } - -p { - margin: 0 0 1em; } - -ul, ol { - padding: 0 0 0 2em; - margin: 0 0 0.85em; } - -blockquote { - margin: 0 0 0.85em; - padding: 0 15px; - color: #858585; - border-left: 4px solid #e5e5e5; } - -img { - max-width: 100%; } - -a { - color: #4183c4; - text-decoration: none; } - a:hover, a:focus { - outline: 0; - text-decoration: underline; } - a.discouraged { - text-decoration: line-through; } - a.discouraged:hover, a.discouraged:focus { - text-decoration: underline line-through; } - -table { - background: #fff; - width: 100%; - border-collapse: collapse; - border-spacing: 0; - overflow: auto; - margin: 0 0 0.85em; } - -tr:nth-child(2n) { - background-color: #fbfbfb; } - -th, td { - padding: 6px 13px; - border: 1px solid #ddd; } - -pre { - margin: 0 0 1.275em; - padding: .85em 1em; - overflow: auto; - background: #f7f7f7; - font-size: .85em; - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } - -code { - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } - -p > code, li > code { - background: #f7f7f7; - padding: .2em; } - p > code:before, p > code:after, li > code:before, li > code:after { - letter-spacing: -.2em; - content: "\00a0"; } - -pre code { - padding: 0; - white-space: pre; } - -.content-wrapper { - display: flex; - flex-direction: column; } - @media (min-width: 768px) { - .content-wrapper { - flex-direction: row; } } - -.header { - display: flex; - padding: 8px; - font-size: 0.875em; - background: #444; - color: #999; } - -.header-col { - margin: 0; - padding: 0 8px; } - -.header-col--primary { - flex: 1; } - -.header-link { - color: #fff; } - -.header-icon { - padding-right: 6px; - vertical-align: -4px; - height: 16px; } - -.breadcrumbs { - font-size: 0.875em; - padding: 8px 16px; - margin: 0; - background: #fbfbfb; - border-bottom: 1px solid #ddd; } - -.carat { - height: 10px; - margin: 0 5px; } - -.navigation { - order: 2; } - @media (min-width: 768px) { - .navigation { - order: 1; - width: 25%; - max-width: 300px; - padding-bottom: 64px; - overflow: hidden; - word-wrap: normal; - background: #fbfbfb; - border-right: 1px solid #ddd; } } - -.nav-groups { - list-style-type: none; - padding-left: 0; } - -.nav-group-name { - border-bottom: 1px solid #ddd; - padding: 8px 0 8px 16px; } - -.nav-group-name-link { - color: #333; } - -.nav-group-tasks { - margin: 8px 0; - padding: 0 0 0 8px; } - -.nav-group-task { - font-size: 1em; - list-style-type: none; - white-space: nowrap; } - -.nav-group-task-link { - color: #808080; } - -.main-content { - order: 1; } - @media (min-width: 768px) { - .main-content { - order: 2; - flex: 1; - padding-bottom: 60px; } } - -.section { - padding: 0 32px; - border-bottom: 1px solid #ddd; } - -.section-content { - max-width: 834px; - margin: 0 auto; - padding: 16px 0; } - -.section-name { - color: #666; - display: block; } - -.declaration .highlight { - overflow-x: initial; - padding: 8px 0; - margin: 0; - background-color: transparent; - border: none; } - -.task-group-section { - border-top: 1px solid #ddd; } - -.task-group { - padding-top: 0px; } - -.task-name-container a[name]:before { - content: ""; - display: block; } - -.item-container { - padding: 0; } - -.item { - padding-top: 8px; - width: 100%; - list-style-type: none; } - .item a[name]:before { - content: ""; - display: block; } - .item .token, .item .direct-link { - padding-left: 3px; - margin-left: 0px; - font-size: 1rem; } - .item .declaration-note { - font-size: .85em; - color: #808080; - font-style: italic; } - -.pointer-container { - border-bottom: 1px solid #ddd; - left: -23px; - padding-bottom: 13px; - position: relative; - width: 110%; } - -.pointer { - left: 21px; - top: 7px; - display: block; - position: absolute; - width: 12px; - height: 12px; - border-left: 1px solid #ddd; - border-top: 1px solid #ddd; - background: #fff; - transform: rotate(45deg); } - -.height-container { - display: none; - position: relative; - width: 100%; - overflow: hidden; } - .height-container .section { - background: #fff; - border: 1px solid #ddd; - border-top-width: 0; - padding-top: 10px; - padding-bottom: 5px; - padding: 8px 16px; } - -.aside, .language { - padding: 6px 12px; - margin: 12px 0; - border-left: 5px solid #dddddd; - overflow-y: hidden; } - .aside .aside-title, .language .aside-title { - font-size: 9px; - letter-spacing: 2px; - text-transform: uppercase; - padding-bottom: 0; - margin: 0; - color: #aaa; - -webkit-user-select: none; } - .aside p:last-child, .language p:last-child { - margin-bottom: 0; } - -.language { - border-left: 5px solid #cde9f4; } - .language .aside-title { - color: #4183c4; } - -.aside-warning, .aside-deprecated, .aside-unavailable { - border-left: 5px solid #ff6666; } - .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { - color: #ff0000; } - -.graybox { - border-collapse: collapse; - width: 100%; } - .graybox p { - margin: 0; - word-break: break-word; - min-width: 50px; } - .graybox td { - border: 1px solid #ddd; - padding: 5px 25px 5px 10px; - vertical-align: middle; } - .graybox tr td:first-of-type { - text-align: right; - padding: 7px; - vertical-align: top; - word-break: normal; - width: 40px; } - -.slightly-smaller { - font-size: 0.9em; } - -.footer { - padding: 8px 16px; - background: #444; - color: #ddd; - font-size: 0.8em; } - .footer p { - margin: 8px 0; } - .footer a { - color: #fff; } - -html.dash .header, html.dash .breadcrumbs, html.dash .navigation { - display: none; } - -html.dash .height-container { - display: block; } - -form[role=search] input { - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 24px; - padding: 0 10px; - margin: 0; - border: none; - border-radius: 1em; } - .loading form[role=search] input { - background: white url(../img/spinner.gif) center right 4px no-repeat; } - -form[role=search] .tt-menu { - margin: 0; - min-width: 300px; - background: #fbfbfb; - color: #333; - border: 1px solid #ddd; } - -form[role=search] .tt-highlight { - font-weight: bold; } - -form[role=search] .tt-suggestion { - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - padding: 0 8px; } - form[role=search] .tt-suggestion span { - display: table-cell; - white-space: nowrap; } - form[role=search] .tt-suggestion .doc-parent-name { - width: 100%; - text-align: right; - font-weight: normal; - font-size: 0.9em; - padding-left: 16px; } - -form[role=search] .tt-suggestion:hover, -form[role=search] .tt-suggestion.tt-cursor { - cursor: pointer; - background-color: #4183c4; - color: #fff; } - -form[role=search] .tt-suggestion:hover .doc-parent-name, -form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { - color: #fff; } diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/carat.png b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/carat.png deleted file mode 100755 index 29d2f7fd..00000000 Binary files a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/carat.png and /dev/null differ diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/dash.png b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/dash.png deleted file mode 100755 index 6f694c7a..00000000 Binary files a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/dash.png and /dev/null differ diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/gh.png b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/gh.png deleted file mode 100755 index 628da97c..00000000 Binary files a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/gh.png and /dev/null differ diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/spinner.gif b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/spinner.gif deleted file mode 100644 index e3038d0a..00000000 Binary files a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/spinner.gif and /dev/null differ diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/index.html b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/index.html deleted file mode 100644 index 5aecef32..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/index.html +++ /dev/null @@ -1,601 +0,0 @@ - - - - XCoordinator Reference - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
- -

- -

-

Build Status CocoaPods Compatible Carthage Compatible Documentation Platform License

- -

⚠️ We have recently released XCoordinator 2.0. Make sure to read this section before migrating. In general, please replace all AnyRouter by either UnownedRouter (in viewControllers, viewModels or references to parent coordinators) or StrongRouter in your AppDelegate or for references to child coordinators. In addition to that, the rootViewController is now injected into the initializer instead of being created in the Coordinator.generateRootViewController method.

- -

“How does an app transition from one view controller to another?”. -This question is common and puzzling regarding iOS development. There are many answers, as every architecture has different implementation variations. Some do it from within the implementation of a view controller, while some use a router/coordinator, an object connecting view models.

- -

To better answer the question, we are building XCoordinator, a navigation framework based on the Coordinator pattern. -It’s especially useful for implementing MVVM-C, Model-View-ViewModel-Coordinator:

- -

- -

-

🏃‍♂️Getting started

- -

Create an enum with all of the navigation paths for a particular flow, i.e. a group of closely connected scenes. (It is up to you when to create a Route/Coordinator. As our rule of thumb, create a new Route/Coordinator whenever a new root view controller, e.g. a new navigation controller or a tab bar controller, is needed.).

- -

Whereas the Route describes which routes can be triggered in a flow, the Coordinator is responsible for the preparation of transitions based on routes being triggered. We could, therefore, prepare multiple coordinators for the same route, which differ in which transitions are executed for each route.

- -

In the following example, we create the UserListRoute enum to define triggers of a flow of our application. UserListRoute offers routes to open the home screen, display a list of users, to open a specific user and to log out. The UserListCoordinator is implemented to prepare transitions for the triggered routes. When a UserListCoordinator is shown, it triggers the .home route to display a HomeViewController.

-
enum UserListRoute: Route {
-    case home
-    case users
-    case user(String)
-    case registerUsersPeek(from: Container)
-    case logout
-}
-
-class UserListCoordinator: NavigationCoordinator<UserListRoute> {
-    init() {
-        super.init(initialRoute: .home)
-    }
-
-    override func prepareTransition(for route: UserListRoute) -> NavigationTransition {
-        switch route {
-        case .home:
-            let viewController = HomeViewController.instantiateFromNib()
-            let viewModel = HomeViewModelImpl(router: anyRouter)
-            viewController.bind(to: viewModel)
-            return .push(viewController)
-        case .users:
-            let viewController = UsersViewController.instantiateFromNib()
-            let viewModel = UsersViewModelImpl(router: anyRouter)
-            viewController.bind(to: viewModel)
-            return .push(viewController, animation: .interactiveFade)
-        case .user(let username):
-            let coordinator = UserCoordinator(user: username)
-            return .present(coordinator, animation: .default)
-        case .registerUsersPeek(let source):
-            return registerPeek(for: source, route: .users)
-        case .logout:
-            return .dismiss()
-        }
-    }
-}
-
- -

Routes are triggered from within Coordinators or ViewModels. In the following, we describe how to trigger routes from within a ViewModel. The router of the current flow is injected into the ViewModel.

-
class HomeViewModel {
-    let router: UnownedRouter<HomeRoute>
-
-    init(router: UnownedRouter<HomeRoute>) {
-        self.router = router
-    }
-
-    /* ... */
-
-    func usersButtonPressed() {
-        router.trigger(.users)
-    }
-}
-
-

🏗 Organizing an app’s structure with XCoordinator

- -

In general, an app’s structure is defined by nesting coordinators and view controllers. You can transition (i.e. push, present, pop, dismiss) to a different coordinator whenever your app changes to a different flow. Within a flow, we transition between viewControllers.

- -

Example: In UserListCoordinator.prepareTransition(for:) we change from the UserListRoute to the UserRoute whenever the UserListRoute.user route is triggered. By dismissing a viewController in UserListRoute.logout, we additionally switch back to the previous flow - in this case the HomeRoute.

- -

To achieve this behavior, every Coordinator has its own rootViewController. This would be a UINavigationController in the case of a NavigationCoordinator, a UITabBarController in the case of a TabBarCoordinator, etc. When transitioning to a Coordinator/Router, this rootViewController is used as the destination view controller.

-

🏁 Using XCoordinator from App Launch

- -

To use coordinators from the launch of the app, make sure to create the app’s window programmatically in AppDelegate.swift (Don’t forget to remove Main Storyboard file base name from Info.plist). Then, set the coordinator as the root of the window‘s view hierarchy in the AppDelegate.didFinishLaunching. Make sure to hold a strong reference to your app’s initial coordinator or a strongRouter reference.

-
@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-    let window: UIWindow! = UIWindow()
-    let router = AppCoordinator().strongRouter
-
-    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
-        router.setRoot(for: window)
-        return true
-    }
-}
-
-

🤸‍♂️ Extras

- -

For more advanced use, XCoordinator offers many more customization options. We introduce custom animated transitions and deep linking. Furthermore, extensions for use in reactive programming with RxSwift/Combine and options to split up huge routes are described.

-

🌗 Custom Transitions

- -

Custom animated transitions define presentation and dismissal animations. You can specify Animation objects in prepareTransition(for:) in your coordinator for several common transitions, such as present, dismiss, push and pop. Specifying no animation (nil) results in not overriding previously set animations. Use Animation.default to reset previously set animation to the default animations UIKit offers.

-
class UsersCoordinator: NavigationCoordinator<UserRoute> {
-
-    /* ... */
-
-    override func prepareTransition(for route: UserRoute) -> NavigationTransition {
-        switch route {
-        case .user(let name):
-            let animation = Animation(
-                presentationAnimation: YourAwesomePresentationTransitionAnimation(),
-                dismissalAnimation: YourAwesomeDismissalTransitionAnimation()
-            )
-            let viewController = UserViewController.instantiateFromNib()
-            let viewModel = UserViewModelImpl(coordinator: coordinator, name: name)
-            viewController.bind(to: viewModel)
-            return .push(viewController, animation: animation)
-        /* ... */
-        }
-    }
-}
-
-

🛤 Deep Linking

- -

Deep Linking can be used to chain different routes together. In contrast to the .multiple transition, deep linking can identify routers based on previous transitions (e.g. when pushing or presenting a router), which enables chaining of routes of different types. Keep in mind, that you cannot access higher-level routers anymore once you trigger a route on a lower level of the router hierarchy.

-
class AppCoordinator: NavigationCoordinator<AppRoute> {
-
-    /* ... */
-
-    override func prepareTransition(for route: AppRoute) -> NavigationTransition {
-        switch route {
-        /* ... */
-        case .deep:
-            return deepLink(AppRoute.login, AppRoute.home, HomeRoute.news, HomeRoute.dismiss)
-        }
-    }
-}
-
- -

⚠️ XCoordinator does not check at compile-time, whether a deep link can be executed. Rather it uses assertionFailures to inform about incorrect chaining at runtime, when it cannot find an appriopriate router for a given route. Keep this in mind when changing the structure of your app.

-

🚏 RedirectionRouter

- -

Let’s assume, there is a route type called HugeRoute with more than 10 routes. To decrease coupling, HugeRoute needs to be split up into mutliple route types. As you will discover, many routes in HugeRoute use transitions dependent on a specific rootViewController, such as push, show, pop, etc. If splitting up routes by introducing a new router/coordinator is not an option, XCoordinator has two solutions for you to solve such a case: RedirectionRouter or using multiple coordinators with the same rootViewController (see this section for more information).

- -

A RedirectionRouter can be used to map a new route type onto a generalized ParentRoute. A RedirectionRouter is independent of the TransitionType of its parent router. You can use RedirectionRouter.init(viewController:parent:map:) or subclassing by overriding mapToParentRoute(_:) to create a RedirectionRouter.

- -

The following code example illustrates how a RedirectionRouter is initialized and used.

-
class ParentCoordinator: NavigationCoordinator<ParentRoute> {
-    /* ... */
-
-    override func prepareTransition(for route: ParentRoute) -> NavigationTransition {
-        switch route {
-        /* ... */
-        case .subCoordinator:
-            let subCoordinator = SubCoordinator(parent: unownedRouter)
-            return .push(subCoordinator)
-        }
-    }
-}
-
-class ChildCoordinator: RedirectionRouter<ParentRoute, ChildRoute> {
-    init(parent: UnownedRouter<ParentRoute>) {
-        let viewController = UIViewController() 
-        // this viewController is used when performing transitions with the Subcoordinator directly.
-        super.init(viewController: viewController, parent: parent, map: nil)
-    }
-
-    /* ... */
-
-    override func mapToSuperRoute(for route: ChildRoute) -> ParentRoute {
-        // you can map your ChildRoute enum to ParentRoute cases here that will get triggered on the parent router.
-    }
-}
-
-

🚏Using multiple coordinators with the same rootViewController

- -

With XCoordinator 2.0, we introduce the option to use different coordinators with the same rootViewController. -Since you can specify the rootViewController in the initializer of a new coordinator, you can specify an existing coordinator’s rootViewController as in the following:

-
class FirstCoordinator: NavigationCoordinator<FirstRoute> {
-    /* ... */
-
-    override func prepareTransition(for route: FirstRoute) -> NavigationTransition {
-        switch route {
-        case .secondCoordinator:
-            let secondCoordinator = SecondCoordinator(rootViewController: self.rootViewController)
-            addChild(secondCoordinator)
-            return .none() 
-            // you could also trigger a specific initial route at this point, 
-            // such as `.trigger(SecondRoute.initial, on: secondCoordinator)`
-        }
-    }
-}
-
- -

We suggest to not use initial routes in the initializers of sibling coordinators, but instead using the transition option in the FirstCoordinator instead.

- -

⚠️ If you perform transitions involving a sibling coordinator directly (e.g. pushing a sibling coordinator without overriding its viewController property), your app will most likely crash.

-

🚀 RxSwift/Combine extensions

- -

Reactive programming can be very useful to keep the state of view and model consistent in a MVVM architecture. Instead of relying on the completion handler of the trigger method available in any Router, you can also use our RxSwift-extension. In the example application, we use Actions (from the Action framework) to trigger routes on certain UI events - e.g. to trigger LoginRoute.home in LoginViewModel, when the login button is tapped.

-
class LoginViewModelImpl: LoginViewModel, LoginViewModelInput, LoginViewModelOutput {
-
-    private let router: UnownedRouter<AppRoute>
-
-    private lazy var loginAction = CocoaAction { [unowned self] in
-        return self.router.rx.trigger(.home)
-    }
-
-    /* ... */
-}
-
-
- -

In addition to the above-mentioned approach, the reactive trigger extension can also be used to sequence different transitions by using the flatMap operator, as can be seen in the following:

-
let doneWithBothTransitions = 
-    router.rx.trigger(.home)
-        .flatMap { [unowned router] in router.rx.trigger(.news) }
-        .map { true }
-        .startWith(false)
-
- -

When using XCoordinator with the Combine extensions, you can use router.publishers.trigger instead of router.rx.trigger.

-

📚 Documentation & Example app

- -

To get more information about XCoordinator, check out the documentation. -Additionally, this repository serves as an example project using a MVVM architecture with XCoordinator.

- -

For a MVC example app, have a look at a workshop we did with a previous version of XCoordinator.

-

👨‍✈️ Why coordinators

- -
    -
  • Separation of responsibilities with the coordinator being the only component knowing anything related to the flow of your application.
  • -
  • Reusable Views and ViewModels because they do not contain any navigation logic.
  • -
  • Less coupling between components

  • -
  • Changeable navigation: Each coordinator is only responsible for one component and does not need to make assumptions about its parent. It can therefore be placed wherever we want to.

  • -
- -
-

The Coordinator by Soroush Khanlou

-
-

⁉️ Why XCoordinator

- -
    -
  • Actual navigation code is already written and abstracted away.
  • -
  • Clear separation of concerns: - -
      -
    • Coordinator: Coordinates routing of a set of routes.
    • -
    • Route: Describes navigation path.
    • -
    • Transition: Describe transition type and animation to new view.
    • -
  • -
  • Reuse coordinators, routers and transitions in different combinations.
  • -
  • Full support for custom transitions/animations.
  • -
  • Support for embedding child views / container views.
  • -
  • Generic BasicCoordinator classes suitable for many use cases and therefore less need to write your own coordinators.
  • -
  • Full support for your own coordinator classes conforming to our Coordinator protocol - -
  • -
  • Generic AnyRouter type erasure class encapsulates all types of coordinators and routers supporting the same set of routes. Therefore you can easily replace coordinators.
  • -
  • Use of enum for routes gives you autocompletion and type safety to perform only transition to routes supported by the coordinator.
  • -
-

🔩 Components

-

🎢 Route

- -

Describes possible navigation paths within a flow, a collection of closely related scenes.

-

👨‍✈️ Coordinator / Router

- -

An object loading views and creating viewModels based on triggered routes. A Coordinator creates and performs transitions to these scenes based on the data transferred via the route. In contrast to the coordinator, a router can be seen as an abstraction from that concept limited to triggering routes. Often, a Router is used to abstract from a specific coordinator in ViewModels.

-

When to use which Router abstraction

- -

You can create different router abstractions using the unownedRouter, weakRouter or strongRouter properties of your Coordinator. -You can decide between the following router abstractions of your coordinator:

- -
    -
  • StrongRouter holds a strong reference to the original coordinator. You can use this to hold child coordinators or to specify a certain router in the AppDelegate.
  • -
  • WeakRouter holds a weak reference to the original coordinator. You can use this to hold a coordinator in a viewController or viewModel. It can also be used to keep a reference to a sibling or parent coordinator.
  • -
  • UnownedRouter holds an unowned reference to the original coordinator. You can use this to hold a coordinator in a viewController or viewModel. It can also be used to keep a reference to a sibling or parent coordinator.
  • -
- -

If you want to know more about the differences on how references can be held, have a look here.

-

🌗 Transition

- -

Transitions describe the navigation from one view to another. Transitions are available based on the type of the root view controller in use. Example: Whereas ViewTransition only supports basic transitions that every root view controller supports, NavigationTransition adds navigation controller specific transitions.

- -

The available transition types include:

- -
    -
  • present presents a view controller on top of the view hierarchy - use presentOnRoot in case you want to present from the root view controller
  • -
  • embed embeds a view controller into a container view
  • -
  • dismiss dismisses the top most presented view controller - use dismissToRoot to call dismiss on the root view controller
  • -
  • none does nothing, may be used to ignore routes or for testing purposes
  • -
  • push pushes a view controller to the navigation stack (only in NavigationTransition)
  • -
  • pop pops the top view controller from the navigation stack (only in NavigationTransition)
  • -
  • popToRoot pops all the view controllers on the navigation stack except the root view controller (only in NavigationTransition)
  • -
- -

XCoordinator additionally supports common transitions for UITabBarController, UISplitViewController and UIPageViewController root view controllers.

-

🛠 Installation

-

CocoaPods

- -

To integrate XCoordinator into your Xcode project using CocoaPods, add this to your Podfile:

-
pod 'XCoordinator', '~> 2.0'
-
- -

To use the RxSwift extensions, add this to your Podfile:

-
pod 'XCoordinator/RxSwift', '~> 2.0'
-
- -

To use the Combine extensions, add this to your Podfile:

-
pod 'XCoordinator/Combine', '~> 2.0'
-
-

Carthage

- -

To integrate XCoordinator into your Xcode project using Carthage, add this to your Cartfile:

-
github "quickbirdstudios/XCoordinator" ~> 2.0
-
- -

Then run carthage update.

- -

If this is your first time using Carthage in the project, you’ll need to go through some additional steps as explained over at Carthage.

-

Swift Package Manager

- -

See this WWDC presentation about more information how to adopt Swift packages in your app.

- -

Specify https://github.com/quickbirdstudios/XCoordinator.git as the XCoordinator package link. -You can then decide between three different frameworks, i.e. XCoordinator, XCoordinatorRx and XCoordinatorCombine. -While XCoordinator contains the main framework, you can choose XCoordinatorRx or XCoordinatorCombine to get RxSwift or Combine extensions as well.

-

Manually

- -

If you prefer not to use any of the dependency managers, you can integrate XCoordinator into your project manually, by downloading the source code and placing the files on your project directory.

-

👤 Author

- -

This framework is created with ❤️ by QuickBird Studios.

- -

To get more information on XCoordinator check out our blog post.

-

❤️ Contributing

- -

Open an issue if you need help, if you found a bug, or if you want to discuss a feature request. If you feel like having a chat about XCoordinator with the developers and other users, join our Slack Workspace.

- -

Open a PR if you want to make changes to XCoordinator.

-

📃 License

- -

XCoordinator is released under an MIT license. See License.md for more information.

- -
-
- - -
-
- - - - diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.js b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.js deleted file mode 100755 index c31dc05e..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.js +++ /dev/null @@ -1,59 +0,0 @@ -window.jazzy = {'docset': false} -if (typeof window.dash != 'undefined') { - document.documentElement.className += ' dash' - window.jazzy.docset = true -} -if (navigator.userAgent.match(/xcode/i)) { - document.documentElement.className += ' xcode' - window.jazzy.docset = true -} - -function toggleItem($link, $content) { - var animationDuration = 300; - $link.toggleClass('token-open'); - $content.slideToggle(animationDuration); -} - -function itemLinkToContent($link) { - return $link.parent().parent().next(); -} - -// On doc load + hash-change, open any targetted item -function openCurrentItemIfClosed() { - if (window.jazzy.docset) { - return; - } - var $link = $(`.token[href="${location.hash}"]`); - $content = itemLinkToContent($link); - if ($content.is(':hidden')) { - toggleItem($link, $content); - } -} - -$(openCurrentItemIfClosed); -$(window).on('hashchange', openCurrentItemIfClosed); - -// On item link ('token') click, toggle its discussion -$('.token').on('click', function(event) { - if (window.jazzy.docset) { - return; - } - var $link = $(this); - toggleItem($link, itemLinkToContent($link)); - - // Keeps the document from jumping to the hash. - var href = $link.attr('href'); - if (history.pushState) { - history.pushState({}, '', href); - } else { - location.hash = href; - } - event.preventDefault(); -}); - -// Clicks on links to the current, closed, item need to open the item -$("a:not('.token')").on('click', function() { - if (location == this.href) { - openCurrentItemIfClosed(); - } -}); diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.search.js deleted file mode 100644 index e3d1ab90..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.search.js +++ /dev/null @@ -1,70 +0,0 @@ -$(function(){ - var $typeahead = $('[data-typeahead]'); - var $form = $typeahead.parents('form'); - var searchURL = $form.attr('action'); - - function displayTemplate(result) { - return result.name; - } - - function suggestionTemplate(result) { - var t = '
'; - t += '' + result.name + ''; - if (result.parent_name) { - t += '' + result.parent_name + ''; - } - t += '
'; - return t; - } - - $typeahead.one('focus', function() { - $form.addClass('loading'); - - $.getJSON(searchURL).then(function(searchData) { - const searchIndex = lunr(function() { - this.ref('url'); - this.field('name'); - this.field('abstract'); - for (const [url, doc] of Object.entries(searchData)) { - this.add({url: url, name: doc.name, abstract: doc.abstract}); - } - }); - - $typeahead.typeahead( - { - highlight: true, - minLength: 3, - autoselect: true - }, - { - limit: 10, - display: displayTemplate, - templates: { suggestion: suggestionTemplate }, - source: function(query, sync) { - const lcSearch = query.toLowerCase(); - const results = searchIndex.query(function(q) { - q.term(lcSearch, { boost: 100 }); - q.term(lcSearch, { - boost: 10, - wildcard: lunr.Query.wildcard.TRAILING - }); - }).map(function(result) { - var doc = searchData[result.ref]; - doc.url = result.ref; - return doc; - }); - sync(results); - } - } - ); - $form.removeClass('loading'); - $typeahead.trigger('focus'); - }); - }); - - var baseURL = searchURL.slice(0, -"search.json".length); - - $typeahead.on('typeahead:select', function(e, result) { - window.location = baseURL + result.url; - }); -}); diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jquery.min.js deleted file mode 100644 index a1c07fd8..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.4.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=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,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},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.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(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($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),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-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|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(m.childNodes),m.childNodes),t[m.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&&((e?e.ownerDocument||e:m)!==C&&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&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$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[k]=!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:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),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=k,!C.getElementsByName||!C.getElementsByName(k).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){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),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("!=",$)}),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===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,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]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[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){A(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=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(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)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.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 k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.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(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(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,ge={option:[1,""],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)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").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 Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.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(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.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?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.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=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.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,k.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)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.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"===k.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"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.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)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.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?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.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){k.fn[n]=function(e,t){return 0=this.length)return z.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},z.QueryLexer.prototype.width=function(){return this.pos-this.start},z.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},z.QueryLexer.prototype.backup=function(){this.pos-=1},z.QueryLexer.prototype.acceptDigitRun=function(){for(var e,t;47<(t=(e=this.next()).charCodeAt(0))&&t<58;);e!=z.QueryLexer.EOS&&this.backup()},z.QueryLexer.prototype.more=function(){return this.pos
', - menu: '
' - }; - } - function buildSelectors(classes) { - var selectors = {}; - _.each(classes, function(v, k) { - selectors[k] = "." + v; - }); - return selectors; - } - function buildCss() { - var css = { - wrapper: { - position: "relative", - display: "inline-block" - }, - hint: { - position: "absolute", - top: "0", - left: "0", - borderColor: "transparent", - boxShadow: "none", - opacity: "1" - }, - input: { - position: "relative", - verticalAlign: "top", - backgroundColor: "transparent" - }, - inputWithNoHint: { - position: "relative", - verticalAlign: "top" - }, - menu: { - position: "absolute", - top: "100%", - left: "0", - zIndex: "100", - display: "none" - }, - ltr: { - left: "0", - right: "auto" - }, - rtl: { - left: "auto", - right: " 0" - } - }; - if (_.isMsie()) { - _.mixin(css.input, { - backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" - }); - } - return css; - } - }(); - var EventBus = function() { - "use strict"; - var namespace, deprecationMap; - namespace = "typeahead:"; - deprecationMap = { - render: "rendered", - cursorchange: "cursorchanged", - select: "selected", - autocomplete: "autocompleted" - }; - function EventBus(o) { - if (!o || !o.el) { - $.error("EventBus initialized without el"); - } - this.$el = $(o.el); - } - _.mixin(EventBus.prototype, { - _trigger: function(type, args) { - var $e = $.Event(namespace + type); - this.$el.trigger.call(this.$el, $e, args || []); - return $e; - }, - before: function(type) { - var args, $e; - args = [].slice.call(arguments, 1); - $e = this._trigger("before" + type, args); - return $e.isDefaultPrevented(); - }, - trigger: function(type) { - var deprecatedType; - this._trigger(type, [].slice.call(arguments, 1)); - if (deprecatedType = deprecationMap[type]) { - this._trigger(deprecatedType, [].slice.call(arguments, 1)); - } - } - }); - return EventBus; - }(); - var EventEmitter = function() { - "use strict"; - var splitter = /\s+/, nextTick = getNextTick(); - return { - onSync: onSync, - onAsync: onAsync, - off: off, - trigger: trigger - }; - function on(method, types, cb, context) { - var type; - if (!cb) { - return this; - } - types = types.split(splitter); - cb = context ? bindContext(cb, context) : cb; - this._callbacks = this._callbacks || {}; - while (type = types.shift()) { - this._callbacks[type] = this._callbacks[type] || { - sync: [], - async: [] - }; - this._callbacks[type][method].push(cb); - } - return this; - } - function onAsync(types, cb, context) { - return on.call(this, "async", types, cb, context); - } - function onSync(types, cb, context) { - return on.call(this, "sync", types, cb, context); - } - function off(types) { - var type; - if (!this._callbacks) { - return this; - } - types = types.split(splitter); - while (type = types.shift()) { - delete this._callbacks[type]; - } - return this; - } - function trigger(types) { - var type, callbacks, args, syncFlush, asyncFlush; - if (!this._callbacks) { - return this; - } - types = types.split(splitter); - args = [].slice.call(arguments, 1); - while ((type = types.shift()) && (callbacks = this._callbacks[type])) { - syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); - asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); - syncFlush() && nextTick(asyncFlush); - } - return this; - } - function getFlush(callbacks, context, args) { - return flush; - function flush() { - var cancelled; - for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { - cancelled = callbacks[i].apply(context, args) === false; - } - return !cancelled; - } - } - function getNextTick() { - var nextTickFn; - if (window.setImmediate) { - nextTickFn = function nextTickSetImmediate(fn) { - setImmediate(function() { - fn(); - }); - }; - } else { - nextTickFn = function nextTickSetTimeout(fn) { - setTimeout(function() { - fn(); - }, 0); - }; - } - return nextTickFn; - } - function bindContext(fn, context) { - return fn.bind ? fn.bind(context) : function() { - fn.apply(context, [].slice.call(arguments, 0)); - }; - } - }(); - var highlight = function(doc) { - "use strict"; - var defaults = { - node: null, - pattern: null, - tagName: "strong", - className: null, - wordsOnly: false, - caseSensitive: false, - diacriticInsensitive: false - }; - var accented = { - A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", - B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", - C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", - D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", - E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", - F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", - G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", - H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", - I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", - J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", - K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", - L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", - M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", - N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", - O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", - P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", - Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", - R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", - S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", - T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", - U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", - V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", - W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", - X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", - Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", - Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" - }; - return function hightlight(o) { - var regex; - o = _.mixin({}, defaults, o); - if (!o.node || !o.pattern) { - return; - } - o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; - regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); - traverse(o.node, hightlightTextNode); - function hightlightTextNode(textNode) { - var match, patternNode, wrapperNode; - if (match = regex.exec(textNode.data)) { - wrapperNode = doc.createElement(o.tagName); - o.className && (wrapperNode.className = o.className); - patternNode = textNode.splitText(match.index); - patternNode.splitText(match[0].length); - wrapperNode.appendChild(patternNode.cloneNode(true)); - textNode.parentNode.replaceChild(wrapperNode, patternNode); - } - return !!match; - } - function traverse(el, hightlightTextNode) { - var childNode, TEXT_NODE_TYPE = 3; - for (var i = 0; i < el.childNodes.length; i++) { - childNode = el.childNodes[i]; - if (childNode.nodeType === TEXT_NODE_TYPE) { - i += hightlightTextNode(childNode) ? 1 : 0; - } else { - traverse(childNode, hightlightTextNode); - } - } - } - }; - function accent_replacer(chr) { - return accented[chr.toUpperCase()] || chr; - } - function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { - var escapedPatterns = [], regexStr; - for (var i = 0, len = patterns.length; i < len; i++) { - var escapedWord = _.escapeRegExChars(patterns[i]); - if (diacriticInsensitive) { - escapedWord = escapedWord.replace(/\S/g, accent_replacer); - } - escapedPatterns.push(escapedWord); - } - regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; - return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); - } - }(window.document); - var Input = function() { - "use strict"; - var specialKeyCodeMap; - specialKeyCodeMap = { - 9: "tab", - 27: "esc", - 37: "left", - 39: "right", - 13: "enter", - 38: "up", - 40: "down" - }; - function Input(o, www) { - o = o || {}; - if (!o.input) { - $.error("input is missing"); - } - www.mixin(this); - this.$hint = $(o.hint); - this.$input = $(o.input); - this.$input.attr({ - "aria-activedescendant": "", - "aria-owns": this.$input.attr("id") + "_listbox", - role: "combobox", - "aria-readonly": "true", - "aria-autocomplete": "list" - }); - $(www.menu).attr("id", this.$input.attr("id") + "_listbox"); - this.query = this.$input.val(); - this.queryWhenFocused = this.hasFocus() ? this.query : null; - this.$overflowHelper = buildOverflowHelper(this.$input); - this._checkLanguageDirection(); - if (this.$hint.length === 0) { - this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; - } - this.onSync("cursorchange", this._updateDescendent); - } - Input.normalizeQuery = function(str) { - return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); - }; - _.mixin(Input.prototype, EventEmitter, { - _onBlur: function onBlur() { - this.resetInputValue(); - this.trigger("blurred"); - }, - _onFocus: function onFocus() { - this.queryWhenFocused = this.query; - this.trigger("focused"); - }, - _onKeydown: function onKeydown($e) { - var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; - this._managePreventDefault(keyName, $e); - if (keyName && this._shouldTrigger(keyName, $e)) { - this.trigger(keyName + "Keyed", $e); - } - }, - _onInput: function onInput() { - this._setQuery(this.getInputValue()); - this.clearHintIfInvalid(); - this._checkLanguageDirection(); - }, - _managePreventDefault: function managePreventDefault(keyName, $e) { - var preventDefault; - switch (keyName) { - case "up": - case "down": - preventDefault = !withModifier($e); - break; - - default: - preventDefault = false; - } - preventDefault && $e.preventDefault(); - }, - _shouldTrigger: function shouldTrigger(keyName, $e) { - var trigger; - switch (keyName) { - case "tab": - trigger = !withModifier($e); - break; - - default: - trigger = true; - } - return trigger; - }, - _checkLanguageDirection: function checkLanguageDirection() { - var dir = (this.$input.css("direction") || "ltr").toLowerCase(); - if (this.dir !== dir) { - this.dir = dir; - this.$hint.attr("dir", dir); - this.trigger("langDirChanged", dir); - } - }, - _setQuery: function setQuery(val, silent) { - var areEquivalent, hasDifferentWhitespace; - areEquivalent = areQueriesEquivalent(val, this.query); - hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; - this.query = val; - if (!silent && !areEquivalent) { - this.trigger("queryChanged", this.query); - } else if (!silent && hasDifferentWhitespace) { - this.trigger("whitespaceChanged", this.query); - } - }, - _updateDescendent: function updateDescendent(event, id) { - this.$input.attr("aria-activedescendant", id); - }, - bind: function() { - var that = this, onBlur, onFocus, onKeydown, onInput; - onBlur = _.bind(this._onBlur, this); - onFocus = _.bind(this._onFocus, this); - onKeydown = _.bind(this._onKeydown, this); - onInput = _.bind(this._onInput, this); - this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); - if (!_.isMsie() || _.isMsie() > 9) { - this.$input.on("input.tt", onInput); - } else { - this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { - if (specialKeyCodeMap[$e.which || $e.keyCode]) { - return; - } - _.defer(_.bind(that._onInput, that, $e)); - }); - } - return this; - }, - focus: function focus() { - this.$input.focus(); - }, - blur: function blur() { - this.$input.blur(); - }, - getLangDir: function getLangDir() { - return this.dir; - }, - getQuery: function getQuery() { - return this.query || ""; - }, - setQuery: function setQuery(val, silent) { - this.setInputValue(val); - this._setQuery(val, silent); - }, - hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { - return this.query !== this.queryWhenFocused; - }, - getInputValue: function getInputValue() { - return this.$input.val(); - }, - setInputValue: function setInputValue(value) { - this.$input.val(value); - this.clearHintIfInvalid(); - this._checkLanguageDirection(); - }, - resetInputValue: function resetInputValue() { - this.setInputValue(this.query); - }, - getHint: function getHint() { - return this.$hint.val(); - }, - setHint: function setHint(value) { - this.$hint.val(value); - }, - clearHint: function clearHint() { - this.setHint(""); - }, - clearHintIfInvalid: function clearHintIfInvalid() { - var val, hint, valIsPrefixOfHint, isValid; - val = this.getInputValue(); - hint = this.getHint(); - valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; - isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); - !isValid && this.clearHint(); - }, - hasFocus: function hasFocus() { - return this.$input.is(":focus"); - }, - hasOverflow: function hasOverflow() { - var constraint = this.$input.width() - 2; - this.$overflowHelper.text(this.getInputValue()); - return this.$overflowHelper.width() >= constraint; - }, - isCursorAtEnd: function() { - var valueLength, selectionStart, range; - valueLength = this.$input.val().length; - selectionStart = this.$input[0].selectionStart; - if (_.isNumber(selectionStart)) { - return selectionStart === valueLength; - } else if (document.selection) { - range = document.selection.createRange(); - range.moveStart("character", -valueLength); - return valueLength === range.text.length; - } - return true; - }, - destroy: function destroy() { - this.$hint.off(".tt"); - this.$input.off(".tt"); - this.$overflowHelper.remove(); - this.$hint = this.$input = this.$overflowHelper = $("
"); - } - }); - return Input; - function buildOverflowHelper($input) { - return $('').css({ - position: "absolute", - visibility: "hidden", - whiteSpace: "pre", - fontFamily: $input.css("font-family"), - fontSize: $input.css("font-size"), - fontStyle: $input.css("font-style"), - fontVariant: $input.css("font-variant"), - fontWeight: $input.css("font-weight"), - wordSpacing: $input.css("word-spacing"), - letterSpacing: $input.css("letter-spacing"), - textIndent: $input.css("text-indent"), - textRendering: $input.css("text-rendering"), - textTransform: $input.css("text-transform") - }).insertAfter($input); - } - function areQueriesEquivalent(a, b) { - return Input.normalizeQuery(a) === Input.normalizeQuery(b); - } - function withModifier($e) { - return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; - } - }(); - var Dataset = function() { - "use strict"; - var keys, nameGenerator; - keys = { - dataset: "tt-selectable-dataset", - val: "tt-selectable-display", - obj: "tt-selectable-object" - }; - nameGenerator = _.getIdGenerator(); - function Dataset(o, www) { - o = o || {}; - o.templates = o.templates || {}; - o.templates.notFound = o.templates.notFound || o.templates.empty; - if (!o.source) { - $.error("missing source"); - } - if (!o.node) { - $.error("missing node"); - } - if (o.name && !isValidName(o.name)) { - $.error("invalid dataset name: " + o.name); - } - www.mixin(this); - this.highlight = !!o.highlight; - this.name = _.toStr(o.name || nameGenerator()); - this.limit = o.limit || 5; - this.displayFn = getDisplayFn(o.display || o.displayKey); - this.templates = getTemplates(o.templates, this.displayFn); - this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; - this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; - this._resetLastSuggestion(); - this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); - } - Dataset.extractData = function extractData(el) { - var $el = $(el); - if ($el.data(keys.obj)) { - return { - dataset: $el.data(keys.dataset) || "", - val: $el.data(keys.val) || "", - obj: $el.data(keys.obj) || null - }; - } - return null; - }; - _.mixin(Dataset.prototype, EventEmitter, { - _overwrite: function overwrite(query, suggestions) { - suggestions = suggestions || []; - if (suggestions.length) { - this._renderSuggestions(query, suggestions); - } else if (this.async && this.templates.pending) { - this._renderPending(query); - } else if (!this.async && this.templates.notFound) { - this._renderNotFound(query); - } else { - this._empty(); - } - this.trigger("rendered", suggestions, false, this.name); - }, - _append: function append(query, suggestions) { - suggestions = suggestions || []; - if (suggestions.length && this.$lastSuggestion.length) { - this._appendSuggestions(query, suggestions); - } else if (suggestions.length) { - this._renderSuggestions(query, suggestions); - } else if (!this.$lastSuggestion.length && this.templates.notFound) { - this._renderNotFound(query); - } - this.trigger("rendered", suggestions, true, this.name); - }, - _renderSuggestions: function renderSuggestions(query, suggestions) { - var $fragment; - $fragment = this._getSuggestionsFragment(query, suggestions); - this.$lastSuggestion = $fragment.children().last(); - this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); - }, - _appendSuggestions: function appendSuggestions(query, suggestions) { - var $fragment, $lastSuggestion; - $fragment = this._getSuggestionsFragment(query, suggestions); - $lastSuggestion = $fragment.children().last(); - this.$lastSuggestion.after($fragment); - this.$lastSuggestion = $lastSuggestion; - }, - _renderPending: function renderPending(query) { - var template = this.templates.pending; - this._resetLastSuggestion(); - template && this.$el.html(template({ - query: query, - dataset: this.name - })); - }, - _renderNotFound: function renderNotFound(query) { - var template = this.templates.notFound; - this._resetLastSuggestion(); - template && this.$el.html(template({ - query: query, - dataset: this.name - })); - }, - _empty: function empty() { - this.$el.empty(); - this._resetLastSuggestion(); - }, - _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { - var that = this, fragment; - fragment = document.createDocumentFragment(); - _.each(suggestions, function getSuggestionNode(suggestion) { - var $el, context; - context = that._injectQuery(query, suggestion); - $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); - fragment.appendChild($el[0]); - }); - this.highlight && highlight({ - className: this.classes.highlight, - node: fragment, - pattern: query - }); - return $(fragment); - }, - _getFooter: function getFooter(query, suggestions) { - return this.templates.footer ? this.templates.footer({ - query: query, - suggestions: suggestions, - dataset: this.name - }) : null; - }, - _getHeader: function getHeader(query, suggestions) { - return this.templates.header ? this.templates.header({ - query: query, - suggestions: suggestions, - dataset: this.name - }) : null; - }, - _resetLastSuggestion: function resetLastSuggestion() { - this.$lastSuggestion = $(); - }, - _injectQuery: function injectQuery(query, obj) { - return _.isObject(obj) ? _.mixin({ - _query: query - }, obj) : obj; - }, - update: function update(query) { - var that = this, canceled = false, syncCalled = false, rendered = 0; - this.cancel(); - this.cancel = function cancel() { - canceled = true; - that.cancel = $.noop; - that.async && that.trigger("asyncCanceled", query, that.name); - }; - this.source(query, sync, async); - !syncCalled && sync([]); - function sync(suggestions) { - if (syncCalled) { - return; - } - syncCalled = true; - suggestions = (suggestions || []).slice(0, that.limit); - rendered = suggestions.length; - that._overwrite(query, suggestions); - if (rendered < that.limit && that.async) { - that.trigger("asyncRequested", query, that.name); - } - } - function async(suggestions) { - suggestions = suggestions || []; - if (!canceled && rendered < that.limit) { - that.cancel = $.noop; - var idx = Math.abs(rendered - that.limit); - rendered += idx; - that._append(query, suggestions.slice(0, idx)); - that.async && that.trigger("asyncReceived", query, that.name); - } - } - }, - cancel: $.noop, - clear: function clear() { - this._empty(); - this.cancel(); - this.trigger("cleared"); - }, - isEmpty: function isEmpty() { - return this.$el.is(":empty"); - }, - destroy: function destroy() { - this.$el = $("
"); - } - }); - return Dataset; - function getDisplayFn(display) { - display = display || _.stringify; - return _.isFunction(display) ? display : displayFn; - function displayFn(obj) { - return obj[display]; - } - } - function getTemplates(templates, displayFn) { - return { - notFound: templates.notFound && _.templatify(templates.notFound), - pending: templates.pending && _.templatify(templates.pending), - header: templates.header && _.templatify(templates.header), - footer: templates.footer && _.templatify(templates.footer), - suggestion: templates.suggestion || suggestionTemplate - }; - function suggestionTemplate(context) { - return $('
').attr("id", _.guid()).text(displayFn(context)); - } - } - function isValidName(str) { - return /^[_a-zA-Z0-9-]+$/.test(str); - } - }(); - var Menu = function() { - "use strict"; - function Menu(o, www) { - var that = this; - o = o || {}; - if (!o.node) { - $.error("node is required"); - } - www.mixin(this); - this.$node = $(o.node); - this.query = null; - this.datasets = _.map(o.datasets, initializeDataset); - function initializeDataset(oDataset) { - var node = that.$node.find(oDataset.node).first(); - oDataset.node = node.length ? node : $("
").appendTo(that.$node); - return new Dataset(oDataset, www); - } - } - _.mixin(Menu.prototype, EventEmitter, { - _onSelectableClick: function onSelectableClick($e) { - this.trigger("selectableClicked", $($e.currentTarget)); - }, - _onRendered: function onRendered(type, dataset, suggestions, async) { - this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); - this.trigger("datasetRendered", dataset, suggestions, async); - }, - _onCleared: function onCleared() { - this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); - this.trigger("datasetCleared"); - }, - _propagate: function propagate() { - this.trigger.apply(this, arguments); - }, - _allDatasetsEmpty: function allDatasetsEmpty() { - return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { - var isEmpty = dataset.isEmpty(); - this.$node.attr("aria-expanded", !isEmpty); - return isEmpty; - }, this)); - }, - _getSelectables: function getSelectables() { - return this.$node.find(this.selectors.selectable); - }, - _removeCursor: function _removeCursor() { - var $selectable = this.getActiveSelectable(); - $selectable && $selectable.removeClass(this.classes.cursor); - }, - _ensureVisible: function ensureVisible($el) { - var elTop, elBottom, nodeScrollTop, nodeHeight; - elTop = $el.position().top; - elBottom = elTop + $el.outerHeight(true); - nodeScrollTop = this.$node.scrollTop(); - nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); - if (elTop < 0) { - this.$node.scrollTop(nodeScrollTop + elTop); - } else if (nodeHeight < elBottom) { - this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); - } - }, - bind: function() { - var that = this, onSelectableClick; - onSelectableClick = _.bind(this._onSelectableClick, this); - this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); - this.$node.on("mouseover", this.selectors.selectable, function() { - that.setCursor($(this)); - }); - this.$node.on("mouseleave", function() { - that._removeCursor(); - }); - _.each(this.datasets, function(dataset) { - dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); - }); - return this; - }, - isOpen: function isOpen() { - return this.$node.hasClass(this.classes.open); - }, - open: function open() { - this.$node.scrollTop(0); - this.$node.addClass(this.classes.open); - }, - close: function close() { - this.$node.attr("aria-expanded", false); - this.$node.removeClass(this.classes.open); - this._removeCursor(); - }, - setLanguageDirection: function setLanguageDirection(dir) { - this.$node.attr("dir", dir); - }, - selectableRelativeToCursor: function selectableRelativeToCursor(delta) { - var $selectables, $oldCursor, oldIndex, newIndex; - $oldCursor = this.getActiveSelectable(); - $selectables = this._getSelectables(); - oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; - newIndex = oldIndex + delta; - newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; - newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; - return newIndex === -1 ? null : $selectables.eq(newIndex); - }, - setCursor: function setCursor($selectable) { - this._removeCursor(); - if ($selectable = $selectable && $selectable.first()) { - $selectable.addClass(this.classes.cursor); - this._ensureVisible($selectable); - } - }, - getSelectableData: function getSelectableData($el) { - return $el && $el.length ? Dataset.extractData($el) : null; - }, - getActiveSelectable: function getActiveSelectable() { - var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); - return $selectable.length ? $selectable : null; - }, - getTopSelectable: function getTopSelectable() { - var $selectable = this._getSelectables().first(); - return $selectable.length ? $selectable : null; - }, - update: function update(query) { - var isValidUpdate = query !== this.query; - if (isValidUpdate) { - this.query = query; - _.each(this.datasets, updateDataset); - } - return isValidUpdate; - function updateDataset(dataset) { - dataset.update(query); - } - }, - empty: function empty() { - _.each(this.datasets, clearDataset); - this.query = null; - this.$node.addClass(this.classes.empty); - function clearDataset(dataset) { - dataset.clear(); - } - }, - destroy: function destroy() { - this.$node.off(".tt"); - this.$node = $("
"); - _.each(this.datasets, destroyDataset); - function destroyDataset(dataset) { - dataset.destroy(); - } - } - }); - return Menu; - }(); - var Status = function() { - "use strict"; - function Status(options) { - this.$el = $("", { - role: "status", - "aria-live": "polite" - }).css({ - position: "absolute", - padding: "0", - border: "0", - height: "1px", - width: "1px", - "margin-bottom": "-1px", - "margin-right": "-1px", - overflow: "hidden", - clip: "rect(0 0 0 0)", - "white-space": "nowrap" - }); - options.$input.after(this.$el); - _.each(options.menu.datasets, _.bind(function(dataset) { - if (dataset.onSync) { - dataset.onSync("rendered", _.bind(this.update, this)); - dataset.onSync("cleared", _.bind(this.cleared, this)); - } - }, this)); - } - _.mixin(Status.prototype, { - update: function update(event, suggestions) { - var length = suggestions.length; - var words; - if (length === 1) { - words = { - result: "result", - is: "is" - }; - } else { - words = { - result: "results", - is: "are" - }; - } - this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); - }, - cleared: function() { - this.$el.text(""); - } - }); - return Status; - }(); - var DefaultMenu = function() { - "use strict"; - var s = Menu.prototype; - function DefaultMenu() { - Menu.apply(this, [].slice.call(arguments, 0)); - } - _.mixin(DefaultMenu.prototype, Menu.prototype, { - open: function open() { - !this._allDatasetsEmpty() && this._show(); - return s.open.apply(this, [].slice.call(arguments, 0)); - }, - close: function close() { - this._hide(); - return s.close.apply(this, [].slice.call(arguments, 0)); - }, - _onRendered: function onRendered() { - if (this._allDatasetsEmpty()) { - this._hide(); - } else { - this.isOpen() && this._show(); - } - return s._onRendered.apply(this, [].slice.call(arguments, 0)); - }, - _onCleared: function onCleared() { - if (this._allDatasetsEmpty()) { - this._hide(); - } else { - this.isOpen() && this._show(); - } - return s._onCleared.apply(this, [].slice.call(arguments, 0)); - }, - setLanguageDirection: function setLanguageDirection(dir) { - this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); - return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); - }, - _hide: function hide() { - this.$node.hide(); - }, - _show: function show() { - this.$node.css("display", "block"); - } - }); - return DefaultMenu; - }(); - var Typeahead = function() { - "use strict"; - function Typeahead(o, www) { - var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; - o = o || {}; - if (!o.input) { - $.error("missing input"); - } - if (!o.menu) { - $.error("missing menu"); - } - if (!o.eventBus) { - $.error("missing event bus"); - } - www.mixin(this); - this.eventBus = o.eventBus; - this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; - this.input = o.input; - this.menu = o.menu; - this.enabled = true; - this.autoselect = !!o.autoselect; - this.active = false; - this.input.hasFocus() && this.activate(); - this.dir = this.input.getLangDir(); - this._hacks(); - this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); - onFocused = c(this, "activate", "open", "_onFocused"); - onBlurred = c(this, "deactivate", "_onBlurred"); - onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); - onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); - onEscKeyed = c(this, "isActive", "_onEscKeyed"); - onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); - onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); - onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); - onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); - onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); - onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); - this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); - } - _.mixin(Typeahead.prototype, { - _hacks: function hacks() { - var $input, $menu; - $input = this.input.$input || $("
"); - $menu = this.menu.$node || $("
"); - $input.on("blur.tt", function($e) { - var active, isActive, hasActive; - active = document.activeElement; - isActive = $menu.is(active); - hasActive = $menu.has(active).length > 0; - if (_.isMsie() && (isActive || hasActive)) { - $e.preventDefault(); - $e.stopImmediatePropagation(); - _.defer(function() { - $input.focus(); - }); - } - }); - $menu.on("mousedown.tt", function($e) { - $e.preventDefault(); - }); - }, - _onSelectableClicked: function onSelectableClicked(type, $el) { - this.select($el); - }, - _onDatasetCleared: function onDatasetCleared() { - this._updateHint(); - }, - _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { - this._updateHint(); - if (this.autoselect) { - var cursorClass = this.selectors.cursor.substr(1); - this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); - } - this.eventBus.trigger("render", suggestions, async, dataset); - }, - _onAsyncRequested: function onAsyncRequested(type, dataset, query) { - this.eventBus.trigger("asyncrequest", query, dataset); - }, - _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { - this.eventBus.trigger("asynccancel", query, dataset); - }, - _onAsyncReceived: function onAsyncReceived(type, dataset, query) { - this.eventBus.trigger("asyncreceive", query, dataset); - }, - _onFocused: function onFocused() { - this._minLengthMet() && this.menu.update(this.input.getQuery()); - }, - _onBlurred: function onBlurred() { - if (this.input.hasQueryChangedSinceLastFocus()) { - this.eventBus.trigger("change", this.input.getQuery()); - } - }, - _onEnterKeyed: function onEnterKeyed(type, $e) { - var $selectable; - if ($selectable = this.menu.getActiveSelectable()) { - if (this.select($selectable)) { - $e.preventDefault(); - $e.stopPropagation(); - } - } else if (this.autoselect) { - if (this.select(this.menu.getTopSelectable())) { - $e.preventDefault(); - $e.stopPropagation(); - } - } - }, - _onTabKeyed: function onTabKeyed(type, $e) { - var $selectable; - if ($selectable = this.menu.getActiveSelectable()) { - this.select($selectable) && $e.preventDefault(); - } else if ($selectable = this.menu.getTopSelectable()) { - this.autocomplete($selectable) && $e.preventDefault(); - } - }, - _onEscKeyed: function onEscKeyed() { - this.close(); - }, - _onUpKeyed: function onUpKeyed() { - this.moveCursor(-1); - }, - _onDownKeyed: function onDownKeyed() { - this.moveCursor(+1); - }, - _onLeftKeyed: function onLeftKeyed() { - if (this.dir === "rtl" && this.input.isCursorAtEnd()) { - this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); - } - }, - _onRightKeyed: function onRightKeyed() { - if (this.dir === "ltr" && this.input.isCursorAtEnd()) { - this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); - } - }, - _onQueryChanged: function onQueryChanged(e, query) { - this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); - }, - _onWhitespaceChanged: function onWhitespaceChanged() { - this._updateHint(); - }, - _onLangDirChanged: function onLangDirChanged(e, dir) { - if (this.dir !== dir) { - this.dir = dir; - this.menu.setLanguageDirection(dir); - } - }, - _openIfActive: function openIfActive() { - this.isActive() && this.open(); - }, - _minLengthMet: function minLengthMet(query) { - query = _.isString(query) ? query : this.input.getQuery() || ""; - return query.length >= this.minLength; - }, - _updateHint: function updateHint() { - var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; - $selectable = this.menu.getTopSelectable(); - data = this.menu.getSelectableData($selectable); - val = this.input.getInputValue(); - if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { - query = Input.normalizeQuery(val); - escapedQuery = _.escapeRegExChars(query); - frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); - match = frontMatchRegEx.exec(data.val); - match && this.input.setHint(val + match[1]); - } else { - this.input.clearHint(); - } - }, - isEnabled: function isEnabled() { - return this.enabled; - }, - enable: function enable() { - this.enabled = true; - }, - disable: function disable() { - this.enabled = false; - }, - isActive: function isActive() { - return this.active; - }, - activate: function activate() { - if (this.isActive()) { - return true; - } else if (!this.isEnabled() || this.eventBus.before("active")) { - return false; - } else { - this.active = true; - this.eventBus.trigger("active"); - return true; - } - }, - deactivate: function deactivate() { - if (!this.isActive()) { - return true; - } else if (this.eventBus.before("idle")) { - return false; - } else { - this.active = false; - this.close(); - this.eventBus.trigger("idle"); - return true; - } - }, - isOpen: function isOpen() { - return this.menu.isOpen(); - }, - open: function open() { - if (!this.isOpen() && !this.eventBus.before("open")) { - this.menu.open(); - this._updateHint(); - this.eventBus.trigger("open"); - } - return this.isOpen(); - }, - close: function close() { - if (this.isOpen() && !this.eventBus.before("close")) { - this.menu.close(); - this.input.clearHint(); - this.input.resetInputValue(); - this.eventBus.trigger("close"); - } - return !this.isOpen(); - }, - setVal: function setVal(val) { - this.input.setQuery(_.toStr(val)); - }, - getVal: function getVal() { - return this.input.getQuery(); - }, - select: function select($selectable) { - var data = this.menu.getSelectableData($selectable); - if (data && !this.eventBus.before("select", data.obj, data.dataset)) { - this.input.setQuery(data.val, true); - this.eventBus.trigger("select", data.obj, data.dataset); - this.close(); - return true; - } - return false; - }, - autocomplete: function autocomplete($selectable) { - var query, data, isValid; - query = this.input.getQuery(); - data = this.menu.getSelectableData($selectable); - isValid = data && query !== data.val; - if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { - this.input.setQuery(data.val); - this.eventBus.trigger("autocomplete", data.obj, data.dataset); - return true; - } - return false; - }, - moveCursor: function moveCursor(delta) { - var query, $candidate, data, suggestion, datasetName, cancelMove, id; - query = this.input.getQuery(); - $candidate = this.menu.selectableRelativeToCursor(delta); - data = this.menu.getSelectableData($candidate); - suggestion = data ? data.obj : null; - datasetName = data ? data.dataset : null; - id = $candidate ? $candidate.attr("id") : null; - this.input.trigger("cursorchange", id); - cancelMove = this._minLengthMet() && this.menu.update(query); - if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { - this.menu.setCursor($candidate); - if (data) { - this.input.setInputValue(data.val); - } else { - this.input.resetInputValue(); - this._updateHint(); - } - this.eventBus.trigger("cursorchange", suggestion, datasetName); - return true; - } - return false; - }, - destroy: function destroy() { - this.input.destroy(); - this.menu.destroy(); - } - }); - return Typeahead; - function c(ctx) { - var methods = [].slice.call(arguments, 1); - return function() { - var args = [].slice.call(arguments); - _.each(methods, function(method) { - return ctx[method].apply(ctx, args); - }); - }; - } - }(); - (function() { - "use strict"; - var old, keys, methods; - old = $.fn.typeahead; - keys = { - www: "tt-www", - attrs: "tt-attrs", - typeahead: "tt-typeahead" - }; - methods = { - initialize: function initialize(o, datasets) { - var www; - datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); - o = o || {}; - www = WWW(o.classNames); - return this.each(attach); - function attach() { - var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; - _.each(datasets, function(d) { - d.highlight = !!o.highlight; - }); - $input = $(this); - $wrapper = $(www.html.wrapper); - $hint = $elOrNull(o.hint); - $menu = $elOrNull(o.menu); - defaultHint = o.hint !== false && !$hint; - defaultMenu = o.menu !== false && !$menu; - defaultHint && ($hint = buildHintFromInput($input, www)); - defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); - $hint && $hint.val(""); - $input = prepInput($input, www); - if (defaultHint || defaultMenu) { - $wrapper.css(www.css.wrapper); - $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); - $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); - } - MenuConstructor = defaultMenu ? DefaultMenu : Menu; - eventBus = new EventBus({ - el: $input - }); - input = new Input({ - hint: $hint, - input: $input - }, www); - menu = new MenuConstructor({ - node: $menu, - datasets: datasets - }, www); - status = new Status({ - $input: $input, - menu: menu - }); - typeahead = new Typeahead({ - input: input, - menu: menu, - eventBus: eventBus, - minLength: o.minLength, - autoselect: o.autoselect - }, www); - $input.data(keys.www, www); - $input.data(keys.typeahead, typeahead); - } - }, - isEnabled: function isEnabled() { - var enabled; - ttEach(this.first(), function(t) { - enabled = t.isEnabled(); - }); - return enabled; - }, - enable: function enable() { - ttEach(this, function(t) { - t.enable(); - }); - return this; - }, - disable: function disable() { - ttEach(this, function(t) { - t.disable(); - }); - return this; - }, - isActive: function isActive() { - var active; - ttEach(this.first(), function(t) { - active = t.isActive(); - }); - return active; - }, - activate: function activate() { - ttEach(this, function(t) { - t.activate(); - }); - return this; - }, - deactivate: function deactivate() { - ttEach(this, function(t) { - t.deactivate(); - }); - return this; - }, - isOpen: function isOpen() { - var open; - ttEach(this.first(), function(t) { - open = t.isOpen(); - }); - return open; - }, - open: function open() { - ttEach(this, function(t) { - t.open(); - }); - return this; - }, - close: function close() { - ttEach(this, function(t) { - t.close(); - }); - return this; - }, - select: function select(el) { - var success = false, $el = $(el); - ttEach(this.first(), function(t) { - success = t.select($el); - }); - return success; - }, - autocomplete: function autocomplete(el) { - var success = false, $el = $(el); - ttEach(this.first(), function(t) { - success = t.autocomplete($el); - }); - return success; - }, - moveCursor: function moveCursoe(delta) { - var success = false; - ttEach(this.first(), function(t) { - success = t.moveCursor(delta); - }); - return success; - }, - val: function val(newVal) { - var query; - if (!arguments.length) { - ttEach(this.first(), function(t) { - query = t.getVal(); - }); - return query; - } else { - ttEach(this, function(t) { - t.setVal(_.toStr(newVal)); - }); - return this; - } - }, - destroy: function destroy() { - ttEach(this, function(typeahead, $input) { - revert($input); - typeahead.destroy(); - }); - return this; - } - }; - $.fn.typeahead = function(method) { - if (methods[method]) { - return methods[method].apply(this, [].slice.call(arguments, 1)); - } else { - return methods.initialize.apply(this, arguments); - } - }; - $.fn.typeahead.noConflict = function noConflict() { - $.fn.typeahead = old; - return this; - }; - function ttEach($els, fn) { - $els.each(function() { - var $input = $(this), typeahead; - (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); - }); - } - function buildHintFromInput($input, www) { - return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ - readonly: true, - required: false - }).removeAttr("id name placeholder").removeClass("required").attr({ - spellcheck: "false", - tabindex: -1 - }); - } - function prepInput($input, www) { - $input.data(keys.attrs, { - dir: $input.attr("dir"), - autocomplete: $input.attr("autocomplete"), - spellcheck: $input.attr("spellcheck"), - style: $input.attr("style") - }); - $input.addClass(www.classes.input).attr({ - spellcheck: false - }); - try { - !$input.attr("dir") && $input.attr("dir", "auto"); - } catch (e) {} - return $input; - } - function getBackgroundStyles($el) { - return { - backgroundAttachment: $el.css("background-attachment"), - backgroundClip: $el.css("background-clip"), - backgroundColor: $el.css("background-color"), - backgroundImage: $el.css("background-image"), - backgroundOrigin: $el.css("background-origin"), - backgroundPosition: $el.css("background-position"), - backgroundRepeat: $el.css("background-repeat"), - backgroundSize: $el.css("background-size") - }; - } - function revert($input) { - var www, $wrapper; - www = $input.data(keys.www); - $wrapper = $input.parent().filter(www.selectors.wrapper); - _.each($input.data(keys.attrs), function(val, key) { - _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); - }); - $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); - if ($wrapper.length) { - $input.detach().insertAfter($wrapper); - $wrapper.remove(); - } - } - function $elOrNull(obj) { - var isValid, $el; - isValid = _.isJQuery(obj) || _.isElement(obj); - $el = isValid ? $(obj).first() : []; - return $el.length ? $el : null; - } - })(); -}); \ No newline at end of file diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/search.json b/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/search.json deleted file mode 100644 index 2b66ccdb..00000000 --- a/docs/docsets/XCoordinator.docset/Contents/Resources/Documents/search.json +++ /dev/null @@ -1 +0,0 @@ -{"Typealiases.html#/s:12XCoordinator24AnyNavigationCoordinatora":{"name":"AnyNavigationCoordinator","abstract":"

A type-erased Coordinator (AnyCoordinator) with a UINavigationController as rootViewController.

"},"Typealiases.html#/s:12XCoordinator20AnyTabBarCoordinatora":{"name":"AnyTabBarCoordinator","abstract":"

A type-erased Coordinator (AnyCoordinator) with a UITabBarController as rootViewController.

"},"Typealiases.html#/s:12XCoordinator18AnyViewCoordinatora":{"name":"AnyViewCoordinator","abstract":"

A type-erased Coordinator (AnyCoordinator) with a UIViewController as rootViewController.

"},"Typealiases.html#/s:12XCoordinator26BasicNavigationCoordinatora":{"name":"BasicNavigationCoordinator","abstract":"

A BasicCoordinator with a UINavigationController as its rootViewController.

"},"Typealiases.html#/s:12XCoordinator20BasicViewCoordinatora":{"name":"BasicViewCoordinator","abstract":"

A BasicCoordinator with a UIViewController as its rootViewController.

"},"Typealiases.html#/s:12XCoordinator22BasicTabBarCoordinatora":{"name":"BasicTabBarCoordinator","abstract":"

A BasicCoordinator with a UITabBarController as its rootViewController.

"},"Typealiases.html#/s:12XCoordinator19PresentationHandlera":{"name":"PresentationHandler","abstract":"

The completion handler for transitions.

"},"Typealiases.html#/s:12XCoordinator26ContextPresentationHandlera":{"name":"ContextPresentationHandler","abstract":"

The completion handler for transitions, which also provides the context information about the transition.

"},"Typealiases.html#/s:12XCoordinator20NavigationTransitiona":{"name":"NavigationTransition","abstract":"

NavigationTransition offers transitions that can be used"},"Typealiases.html#/s:12XCoordinator14PageTransitiona":{"name":"PageTransition","abstract":"

PageTransition offers transitions that can be used"},"Typealiases.html#/s:12XCoordinator15SplitTransitiona":{"name":"SplitTransition","abstract":"

SplitTransition offers different transitions common to a UISplitViewController rootViewController.

"},"Typealiases.html#/s:12XCoordinator16TabBarTransitiona":{"name":"TabBarTransition","abstract":"

TabBarTransition offers transitions that can be used"},"Typealiases.html#/s:12XCoordinator9AnyRoutera":{"name":"AnyRouter","abstract":"

Please use StrongRouter, WeakRouter or UnownedRouter instead.

"},"Typealiases.html#/s:12XCoordinator13UnownedRoutera":{"name":"UnownedRouter","abstract":"

An UnownedRouter is an unowned version of a router object to be used in view controllers or view models.

"},"Typealiases.html#/s:12XCoordinator14ViewTransitiona":{"name":"ViewTransition","abstract":"

ViewTransition offers transitions common to any UIViewController rootViewController.

"},"Typealiases.html#/s:12XCoordinator10WeakRoutera":{"name":"WeakRouter","abstract":"

A WeakRouter is a weak version of a router object to be used in view controllers or view models.

"},"Structs/WeakErased.html#/wrappedValue":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held weakly.

","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator10WeakErasedV12wrappedValuexSgvp":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held weakly.

","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator10WeakErasedV_5eraseACyxGqd___xqd__ctcRld__Clufc":{"name":"init(_:erase:)","abstract":"

Create a WeakErased wrapper using an initial value and a closure to create the type-erased object.","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator10WeakErasedV3set_5eraseyqd___xqd__ctRld__ClF":{"name":"set(_:erase:)","abstract":"

Set a new value by providing a non-type-erased value and a closure to create the type-erased object.

","parent_name":"WeakErased"},"Structs/UnownedErased.html#/wrappedValue":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held unowned.

","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator13UnownedErasedV12wrappedValuexvp":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held unowned.

","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator13UnownedErasedV_5eraseACyxGqd___xqd__ctcRld__Clufc":{"name":"init(_:erase:)","abstract":"

Create an UnownedErased wrapper using an initial value and a closure to create the type-erased object.","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator13UnownedErasedV3set_5eraseyqd___xqd__ctRld__ClF":{"name":"set(_:erase:)","abstract":"

Set a new value by providing a non-type-erased value and a closure to create the type-erased object.

","parent_name":"UnownedErased"},"Structs/TransitionOptions.html#/s:12XCoordinator17TransitionOptionsV8animatedSbvp":{"name":"animated","abstract":"

Specifies whether or not the transition should be animated.

","parent_name":"TransitionOptions"},"Structs/TransitionOptions.html#/s:12XCoordinator17TransitionOptionsV8animatedACSb_tcfc":{"name":"init(animated:)","abstract":"

Creates transition options on the basis of whether or not it should be animated.

","parent_name":"TransitionOptions"},"Structs/Transition.html#/s:12XCoordinator10TransitionV14PerformClosurea":{"name":"PerformClosure","abstract":"

Perform is the type of closure used to perform the transition.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV12presentablesSayAA11Presentable_pGvp":{"name":"presentables","abstract":"

The presentables this transition is putting into the view hierarchy. This is especially useful for","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV9animationAA0B9Animation_pSgvp":{"name":"animation","abstract":"

The transition animation this transition is using, i.e. the presentation or dismissal animation","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV12presentables14animationInUse7performACyxGSayAA11Presentable_pG_AA0B9Animation_pSgyx_AA0B7OptionsVyycSgtctcfc":{"name":"init(presentables:animationInUse:perform:)","abstract":"

Create your custom transitions with this initializer.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7perform2on4with10completionyx_AA0B7OptionsVyycSgtF":{"name":"perform(on:with:completion:)","abstract":"

Performs a transition on the given viewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE4push_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"push(_:animation:)","abstract":"

Pushes a presentable on the rootViewController’s navigation stack.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop9animationACyxGAA9AnimationCSg_tFZ":{"name":"pop(animation:)","abstract":"

Pops the topViewController from the rootViewController’s navigation stack.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop2to9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"pop(to:animation:)","abstract":"

Pops viewControllers from the rootViewController’s navigation stack until the specified","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE9popToRoot9animationACyxGAA9AnimationCSg_tFZ":{"name":"popToRoot(animation:)","abstract":"

Pops viewControllers from the rootViewController’s navigation stack until only one viewController","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ":{"name":"set(_:animation:)","abstract":"

Replaces the navigation stack of the rootViewController with the specified presentables.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo20UIPageViewControllerCRbzrlE3set__9directionACyxGAA11Presentable_p_AaI_pSgSo0cdE19NavigationDirectionVtFZ":{"name":"set(_:_:direction:)","abstract":"

Sets the current page(s) of the rootViewController. Make sure to set","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ":{"name":"set(_:animation:)","abstract":"

Transition to set the tabs of the rootViewController with an optional custom animation.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"select(_:animation:)","abstract":"

Transition to select a tab with an optional custom animation.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select5index9animationACyxGSi_AA9AnimationCSgtFZ":{"name":"select(index:animation:)","abstract":"

Transition to select a tab with an optional custom animation.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV4showyACyxGAA11Presentable_pFZ":{"name":"show(_:)","abstract":"

Shows a viewController by calling show on the rootViewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV10showDetailyACyxGAA11Presentable_pFZ":{"name":"showDetail(_:)","abstract":"

Shows a detail viewController by calling showDetail on the rootViewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV13presentOnRoot_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"presentOnRoot(_:animation:)","abstract":"

Transition to present the given presentable on the rootViewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7present_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"present(_:animation:)","abstract":"

Transition to present the given presentable. It uses the rootViewController’s presentedViewController,","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV5embed_2inACyxGAA11Presentable_p_AA9Container_ptFZ":{"name":"embed(_:in:)","abstract":"

Transition to embed the given presentable in a specific container (i.e. a view or viewController).

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV13dismissToRoot9animationACyxGAA9AnimationCSg_tFZ":{"name":"dismissToRoot(animation:)","abstract":"

Transition to call dismiss on the rootViewController. Also take a look at the dismiss transition,","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7dismiss9animationACyxGAA9AnimationCSg_tFZ":{"name":"dismiss(animation:)","abstract":"

Transition to call dismiss on the rootViewController’s presentedViewController, if present.","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV4noneACyxGyFZ":{"name":"none()","abstract":"

No transition at all. May be useful for testing or debugging purposes, or to ignore specific","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ":{"name":"multiple(_:)","abstract":"

With this transition you can chain multiple transitions of the same type together.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ":{"name":"route(_:on:)","abstract":"

Use this transition to trigger a route on another coordinator. TransitionOptions and","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ":{"name":"trigger(_:on:)","abstract":"

Use this transition to trigger a route on another router. TransitionOptions and","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ":{"name":"perform(_:on:)","abstract":"

Performs a transition on a different viewController than the coordinator’s rootViewController.

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

This struct represents the common implementation of the TransitionProtocol."},"Structs/TransitionOptions.html":{"name":"TransitionOptions","abstract":"

TransitionOptions specifies transition customization points defined at the point of triggering a transition.

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

UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

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

WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

"},"Protocols/TransitionProtocol.html#/s:12XCoordinator18TransitionProtocolP18RootViewControllerQa":{"name":"RootViewController","abstract":"

The type of the rootViewController that can execute the transition.

","parent_name":"TransitionProtocol"},"Protocols/TransitionProtocol.html#/s:12XCoordinator18TransitionProtocolP7perform2on4with10completiony18RootViewControllerQz_AA0B7OptionsVyycSgtF":{"name":"perform(on:with:completion:)","abstract":"

Performs a transition on the given viewController.

","parent_name":"TransitionProtocol"},"Protocols/TransitionProtocol.html#/s:12XCoordinator18TransitionProtocolP8multipleyxSayxGFZ":{"name":"multiple(_:)","abstract":"

Creates a compound transition by chaining multiple transitions together.

","parent_name":"TransitionProtocol"},"Protocols/TransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP0B4TypeQa":{"name":"TransitionType","abstract":"

The type of transitions that can be executed on the rootViewController.

","parent_name":"TransitionPerformer"},"Protocols/TransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","abstract":"

The rootViewController on which transitions are performed.

","parent_name":"TransitionPerformer"},"Protocols/TransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP07performB0_4with10completiony0B4TypeQz_AA0B7OptionsVyycSgtF":{"name":"performTransition(_:with:completion:)","abstract":"

Perform a transition.

","parent_name":"TransitionPerformer"},"Protocols/PercentDrivenInteractionController.html#/s:12XCoordinator34PercentDrivenInteractionControllerP6updateyy12CoreGraphics7CGFloatVF":{"name":"update(_:)","abstract":"

Updates the animation to be at the specified progress.

","parent_name":"PercentDrivenInteractionController"},"Protocols/PercentDrivenInteractionController.html#/s:12XCoordinator34PercentDrivenInteractionControllerP6cancelyyF":{"name":"cancel()","abstract":"

Cancels the animation, e.g. by cleaning up and reversing any progress made.

","parent_name":"PercentDrivenInteractionController"},"Protocols/PercentDrivenInteractionController.html#/s:12XCoordinator34PercentDrivenInteractionControllerP6finishyyF":{"name":"finish()","abstract":"

Finishes the animation by completing it from the current progress onwards.

","parent_name":"PercentDrivenInteractionController"},"Protocols/TransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP21interactionControllerAA024PercentDrivenInteractionE0_pSgvp":{"name":"interactionController","abstract":"

The interaction controller of an animation.","parent_name":"TransitionAnimation"},"Protocols/TransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP5startyyF":{"name":"start()","abstract":"

Starts the animation by possibly creating a new interaction controller.

","parent_name":"TransitionAnimation"},"Protocols/TransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP7cleanupyyF":{"name":"cleanup()","abstract":"

Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller.

","parent_name":"TransitionAnimation"},"Protocols/Router.html#/s:12XCoordinator6RouterP9RouteTypeQa":{"name":"RouteType","abstract":"

RouteType defines which routes can be triggered in a certain Router implementation.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","abstract":"

Triggers routes and returns context in completion-handler.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE7trigger_4withy9RouteTypeQz_AA17TransitionOptionsVtF":{"name":"trigger(_:with:)","abstract":"

Triggers the specified route without the need of specifying a completion handler.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE7trigger_10completiony9RouteTypeQz_yycSgtF":{"name":"trigger(_:completion:)","abstract":"

Triggers the specified route with default transition options enabling the animation of the transition.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE7trigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyycSgtF":{"name":"trigger(_:with:completion:)","abstract":"

Triggers the specified route by performing a transition.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE06strongB0AA06StrongB0Cy9RouteTypeQzGvp":{"name":"strongRouter","abstract":"

Creates a StrongRouter object from the given router to abstract from concrete implementations","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE6router3forAA06StrongB0Cyqd__GSgqd___tAA5RouteRd__lF":{"name":"router(for:)","abstract":"

Returns a router for the specified route, if possible.

","parent_name":"Router"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","abstract":"

The viewController of the Presentable.

","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP6router3forAA12StrongRouterCyqd__GSgqd___tAA5RouteRd__lF":{"name":"router(for:)","abstract":"

This method can be used to retrieve whether the presentable can trigger a specific route","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","abstract":"

This method is called whenever a Presentable is shown to the user.","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","abstract":"

This method is used to register a parent coordinator to a child coordinator.

","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","abstract":"

This method gets called when the transition of a child coordinator is being reported to its parent.

","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","abstract":"

Sets the presentable as the root of the window.

","parent_name":"Presentable"},"Protocols/TransitionContext.html#/s:12XCoordinator17TransitionContextP12presentablesSayAA11Presentable_pGvp":{"name":"presentables","abstract":"

The presentables being shown to the user by the transition.

","parent_name":"TransitionContext"},"Protocols/TransitionContext.html#/s:12XCoordinator17TransitionContextP9animationAA0B9Animation_pSgvp":{"name":"animation","abstract":"

The transition animation directly used in the transition, if applicable.

","parent_name":"TransitionContext"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP17prepareTransition3for0D4TypeQz05RouteF0Qz_tF":{"name":"prepareTransition(for:)","abstract":"

This method prepares transitions for routes.","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP8addChildyyAA11Presentable_pF":{"name":"addChild(_:)","abstract":"

This method adds a child to a coordinator’s children.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP11removeChildyyAA11Presentable_pF":{"name":"removeChild(_:)","abstract":"

This method removes a child to a coordinator’s children.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP22removeChildrenIfNeededyyF":{"name":"removeChildrenIfNeeded()","abstract":"

This method removes all children that are no longer in the view hierarchy.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAAE18RootViewControllera":{"name":"RootViewController","abstract":"

Shortcut for Coordinator.TransitionType.RootViewController

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAAE14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","abstract":"

A Coordinator uses its rootViewController as viewController.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE10weakRouterAA10WeakErasedVyAA06StrongD0Cy9RouteTypeQzGGvp":{"name":"weakRouter","abstract":"

Creates a WeakRouter object from the given router to abstract from concrete implementations","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE13unownedRouterAA13UnownedErasedVyAA06StrongD0Cy9RouteTypeQzGGvp":{"name":"unownedRouter","abstract":"

Creates an UnownedRouter object from the given router to abstract from concrete implementations","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE03anyB0AA03AnyB0Cy9RouteTypeQz010TransitionF0QzGvp":{"name":"anyCoordinator","abstract":"

Creates an AnyCoordinator based on the current coordinator.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE5chain6routes14TransitionTypeQzSay05RouteF0QzG_tF":{"name":"chain(routes:)","abstract":"

With chain(routes:) different routes can be chained together to form a combined transition.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator19TransitionPerformerP07performB0_4with10completiony0B4TypeQz_AA0B7OptionsVyycSgtF":{"name":"performTransition(_:with:completion:)","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSo16UIViewControllerCRbd__STRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF":{"name":"deepLink(_:_:)","abstract":"

Deep-Linking can be used to chain routes of different types together.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtSo16UIViewControllerCRbd__AG0eG0RtzlF":{"name":"deepLink(_:_:)","abstract":"

Deep-Linking can be used to chain routes of different types together.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztSo16UIViewControllerCRbd__AI0gJ0RtzlF":{"name":"registerPeek(for:route:)","abstract":"

Use this transition to register 3D Touch Peek and Pop functionality.

","parent_name":"Coordinator"},"Protocols/Container.html#/s:12XCoordinator9ContainerP4viewSo6UIViewCSgvp":{"name":"view","abstract":"

The view of the Container.

","parent_name":"Container"},"Protocols/Container.html#/s:12XCoordinator9ContainerP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","abstract":"

The viewController of the Container.

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

Container abstracts away from the difference of UIView and UIViewController

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

Coordinator is the protocol every coordinator conforms to.

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

TransitionContext provides context information about transitions.

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

Presentable represents all objects that can be presented (i.e. shown) to the user.

"},"Protocols.html#/s:12XCoordinator5RouteP":{"name":"Route","abstract":"

This is the protocol your route types need to conform to.

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

The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator.

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

TransitionAnimation aims to provide a common protocol for any type of transition animation used in an Animation object.

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

PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},"Protocols/TransitionPerformer.html":{"name":"TransitionPerformer","abstract":"

The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},"Protocols/TransitionProtocol.html":{"name":"TransitionProtocol","abstract":"

TransitionProtocol is used to abstract any concrete transition implementation.

"},"Extensions/UIView.html#/s:12XCoordinator9ContainerP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"UIView"},"Extensions/UIView.html#/s:12XCoordinator9ContainerP4viewSo6UIViewCSgvp":{"name":"view","parent_name":"UIView"},"Extensions/UIViewController.html#/s:12XCoordinator9ContainerP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"UIViewController"},"Extensions/UIViewController.html":{"name":"UIViewController"},"Extensions/UIView.html":{"name":"UIView"},"Classes/ViewCoordinator.html#/s:12XCoordinator15ViewCoordinatorC04rootB10Controller12initialRouteACyxGSo06UIViewE0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","parent_name":"ViewCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC8delegateSo05UITabC18ControllerDelegate_pSgvp":{"name":"delegate","abstract":"

Use this delegate to get informed about tabbarController-related notifications and delegate methods","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController12initialRouteACyxGSo05UITabcG0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabsACyxGSo05UITabcG0C_SayAA11Presentable_pGtcfc":{"name":"init(rootViewController:tabs:)","abstract":"

Creates a TabBarCoordinator with a specified set of tabs.

","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabs6selectACyxGSo05UITabcG0C_SayAA11Presentable_pGAaJ_ptcfc":{"name":"init(rootViewController:tabs:select:)","abstract":"

Creates a TabBarCoordinator with a specified set of tabs and selects a specific presentable.

","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabs6selectACyxGSo05UITabcG0C_SayAA11Presentable_pGSitcfc":{"name":"init(rootViewController:tabs:select:)","abstract":"

Creates a TabBarCoordinator with a specified set of tabs and selects a presentable at a given index.

","parent_name":"TabBarCoordinator"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:interactionControllerForAnimationController:":{"name":"tabBarController(_:interactionControllerFor:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:animationControllerForTransitionFromViewController:toViewController:":{"name":"tabBarController(_:animationControllerForTransitionFrom:to:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:didSelectViewController:":{"name":"tabBarController(_:didSelect:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:shouldSelectViewController:":{"name":"tabBarController(_:shouldSelect:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:willBeginCustomizingViewControllers:":{"name":"tabBarController(_:willBeginCustomizing:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:didEndCustomizingViewControllers:changed:":{"name":"tabBarController(_:didEndCustomizing:changed:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:willEndCustomizingViewControllers:changed:":{"name":"tabBarController(_:willEndCustomizing:changed:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterCyACyxGqd__c9RouteTypeQyd__RszAA0C0Rd__lufc":{"name":"init(_:)","abstract":"

Creates a StrongRouter object from a given router.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC14contextTrigger_4with10completionyx_AA17TransitionOptionsVyAA0H7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","abstract":"

Triggers routes and provides the transition context in the completion-handler.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC7trigger_4with10completionyx_AA17TransitionOptionsVyycSgtF":{"name":"trigger(_:with:completion:)","abstract":"

Triggers the specified route by performing a transition.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC9presented4fromyAA11Presentable_pSg_tF":{"name":"presented(from:)","abstract":"

This method is called whenever a Presentable is shown to the user.","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC14viewControllerSo06UIViewE0CSgvp":{"name":"viewController","abstract":"

The viewController of the Presentable.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"StrongRouter"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP21interactionControllerAA024PercentDrivenInteractionE0_pSgvp":{"name":"interactionController","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator25StaticTransitionAnimationC8duration07performD0ACSd_ySo36UIViewControllerContextTransitioning_pctcfc":{"name":"init(duration:performAnimation:)","abstract":"

Creates a StaticTransitionAnimation to be used as presentation or dismissal transition animation in","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)StaticTransitionAnimation(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)StaticTransitionAnimation(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP5startyyF":{"name":"start()","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP7cleanupyyF":{"name":"cleanup()","parent_name":"StaticTransitionAnimation"},"Classes/SplitCoordinator.html#/s:12XCoordinator16SplitCoordinatorC18rootViewController12initialRouteACyxGSo07UISpliteF0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","parent_name":"SplitCoordinator"},"Classes/SplitCoordinator.html#/s:12XCoordinator16SplitCoordinatorC18rootViewController6master6detailACyxGSo07UISpliteF0C_AA11Presentable_pAaJ_pSgtcfc":{"name":"init(rootViewController:master:detail:)","abstract":"

Creates a SplitCoordinator and sets the specified presentables as the rootViewController’s","parent_name":"SplitCoordinator"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC6parentAA13UnownedErasedVyAA06StrongC0CyxGGvp":{"name":"parent","abstract":"

A type-erased Router object of the parent router.

","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC14viewControllerSo06UIViewE0CSgvp":{"name":"viewController","abstract":"

The viewController used in transitions, e.g. when pushing, presenting","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC14viewController6parent3mapACyxq_GSo06UIViewE0C_AA13UnownedErasedVyAA06StrongC0CyxGGxq_cSgtcfc":{"name":"init(viewController:parent:map:)","abstract":"

Creates a RedirectionRouter with a certain viewController, a parent router","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC16mapToParentRouteyxq_F":{"name":"mapToParentRoute(_:)","abstract":"

Map RouteType to ParentRoute.

","parent_name":"RedirectionRouter"},"Classes/PageCoordinatorDataSource.html#/s:12XCoordinator25PageCoordinatorDataSourceC5pagesSaySo16UIViewControllerCGvp":{"name":"pages","abstract":"

The pages of the UIPageViewController in sequential order.

","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/s:12XCoordinator25PageCoordinatorDataSourceC4loopSbvp":{"name":"loop","abstract":"

Whether or not the pages of the UIPageViewController should be in a loop,","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/s:12XCoordinator25PageCoordinatorDataSourceC5pages4loopACSaySo16UIViewControllerCG_Sbtcfc":{"name":"init(pages:loop:)","abstract":"

Creates a PageCoordinatorDataSource with the given pages and looping capabilities.

","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)presentationCountForPageViewController:":{"name":"presentationCount(for:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)presentationIndexForPageViewController:":{"name":"presentationIndex(for:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)pageViewController:viewControllerBeforeViewController:":{"name":"pageViewController(_:viewControllerBefore:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)pageViewController:viewControllerAfterViewController:":{"name":"pageViewController(_:viewControllerAfter:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinator.html#/s:12XCoordinator15PageCoordinatorC10dataSourceSo024UIPageViewControllerDataE0_pvp":{"name":"dataSource","abstract":"

The dataSource of the rootViewController.

","parent_name":"PageCoordinator"},"Classes/PageCoordinator.html#/s:12XCoordinator15PageCoordinatorC18rootViewController5pages4loop3set9directionACyxGSo06UIPageeF0C_SayAA11Presentable_pGSbAaL_pSgSo0keF19NavigationDirectionVtcfc":{"name":"init(rootViewController:pages:loop:set:direction:)","abstract":"

Creates a PageCoordinator with several sequential (potentially looping) pages.

","parent_name":"PageCoordinator"},"Classes/PageCoordinator.html#/s:12XCoordinator15PageCoordinatorC18rootViewController10dataSource3set9directionACyxGSo06UIPageeF0C_So0kef4DataH0_pAA11Presentable_pSo0keF19NavigationDirectionVtcfc":{"name":"init(rootViewController:dataSource:set:direction:)","abstract":"

Creates a PageCoordinator with a custom dataSource.","parent_name":"PageCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC17animationDelegateAA0b9AnimationE0Cvp":{"name":"animationDelegate","abstract":"

The animation delegate controlling the rootViewController’s transition animations.","parent_name":"NavigationCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC8delegateSo30UINavigationControllerDelegate_pSgvp":{"name":"delegate","abstract":"

This represents a fallback-delegate to be notified about navigation controller events.","parent_name":"NavigationCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC18rootViewController12initialRouteACyxGSo012UINavigationF0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","abstract":"

Creates a NavigationCoordinator and optionally triggers an initial route.

","parent_name":"NavigationCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC18rootViewController0D0ACyxGSo012UINavigationF0C_AA11Presentable_ptcfc":{"name":"init(rootViewController:root:)","abstract":"

Creates a NavigationCoordinator and pushes a presentable onto the navigation stack right away.

","parent_name":"NavigationCoordinator"},"Classes/NavigationAnimationDelegate.html#/s:12XCoordinator27NavigationAnimationDelegateC17velocityThreshold12CoreGraphics7CGFloatVvp":{"name":"velocityThreshold","abstract":"

The velocity threshold needed for the interactive pop transition to succeed

","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/s:12XCoordinator27NavigationAnimationDelegateC27transitionProgressThreshold12CoreGraphics7CGFloatVvp":{"name":"transitionProgressThreshold","abstract":"

The transition progress threshold for the interactive pop transition to succeed

","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:interactionControllerForAnimationController:":{"name":"navigationController(_:interactionControllerFor:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:animationControllerForOperation:fromViewController:toViewController:":{"name":"navigationController(_:animationControllerFor:from:to:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:didShowViewController:animated:":{"name":"navigationController(_:didShow:animated:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:willShowViewController:animated:":{"name":"navigationController(_:willShow:animated:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)gestureRecognizerShouldBegin:":{"name":"gestureRecognizerShouldBegin(_:)","abstract":"

See UIGestureRecognizerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)handleInteractivePopGestureRecognizer:":{"name":"handleInteractivePopGestureRecognizer(_:)","abstract":"

This method handles changes of the navigation controller’s interactivePopGestureRecognizer.

","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/s:12XCoordinator27NavigationAnimationDelegateC25setupPopGestureRecognizer3forySo22UINavigationControllerC_tF":{"name":"setupPopGestureRecognizer(for:)","abstract":"

This method sets up the interactivePopGestureRecognizer of the navigation controller","parent_name":"NavigationAnimationDelegate"},"Classes/InterruptibleTransitionAnimation.html#/s:12XCoordinator32InterruptibleTransitionAnimationC8duration16generateAnimator0F21InteractionControllerACSd_So25UIViewImplicitlyAnimating_pSo0jI20ContextTransitioning_pcAA013PercentDrivenhI0_pSgyctcfc":{"name":"init(duration:generateAnimator:generateInteractionController:)","abstract":"

Creates an interruptible transition animation based on duration, an animator generator closure","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/s:12XCoordinator32InterruptibleTransitionAnimationC8duration16generateAnimatorACSd_So25UIViewImplicitlyAnimating_pSo0H30ControllerContextTransitioning_pctcfc":{"name":"init(duration:generateAnimator:)","abstract":"

Creates an interruptible transition animation based on duration and an animator generator closure.

","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/s:12XCoordinator32InterruptibleTransitionAnimationC08generateB8Animator5usingSo25UIViewImplicitlyAnimating_pSo0H30ControllerContextTransitioning_p_tF":{"name":"generateInterruptibleAnimator(using:)","abstract":"

Generates an interruptible animator based on the transitionContext.","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InterruptibleTransitionAnimation(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InterruptibleTransitionAnimation(im)interruptibleAnimatorForTransition:":{"name":"interruptibleAnimator(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InterruptibleTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP21interactionControllerAA024PercentDrivenInteractionE0_pSgvp":{"name":"interactionController","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC8duration10transition29generateInteractionControllerACSd_ySo06UIViewI20ContextTransitioning_pcAA013PercentDrivenhI0_pSgyctcfc":{"name":"init(duration:transition:generateInteractionController:)","abstract":"

Creates an InteractiveTransitionAnimation with a duration, an animation closure and a closure to","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC8duration10transitionACSd_ySo36UIViewControllerContextTransitioning_pctcfc":{"name":"init(duration:transition:)","abstract":"

Convenience initializer for init(duration:transition:generateInteractionController:).","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC010transitionD029generateInteractionControllerAcA06StaticcD0C_AA013PercentDrivengH0_pSgyctcfc":{"name":"init(transitionAnimation:generateInteractionController:)","abstract":"

Convenience initializer for init(duration:transition:generateInteractionController:).","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC010transitionD0AcA06StaticcD0C_tcfc":{"name":"init(transitionAnimation:)","abstract":"

Convenience initializer for init(duration:transition:).","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InteractiveTransitionAnimation(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InteractiveTransitionAnimation(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC29generateInteractionControllerAA013PercentDrivenfG0_pSgyF":{"name":"generateInteractionController()","abstract":"

This method is used to generate an applicable interaction controller.

","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC5startyyF":{"name":"start()","abstract":"

Starts the transition animation by generating an interaction controller.

","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC7cleanupyyF":{"name":"cleanup()","abstract":"

Ends the transition animation by deleting the interaction controller.

","parent_name":"InteractiveTransitionAnimation"},"Classes/BasicCoordinator/InitialLoadingType.html#/s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO11immediatelyyAEyxq__GAGmAA5RouteRzAA18TransitionProtocolR_r0_lF":{"name":"immediately","abstract":"

The initial route is triggered before the coordinator is made visible (i.e. on initialization).

","parent_name":"InitialLoadingType"},"Classes/BasicCoordinator/InitialLoadingType.html#/s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO9presentedyAEyxq__GAGmAA5RouteRzAA18TransitionProtocolR_r0_lF":{"name":"presented","abstract":"

The initial route is triggered after the coordinator is made visible.

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

InitialLoadingType differentiates between different points in time when the initital route is to","parent_name":"BasicCoordinator"},"Classes/BasicCoordinator.html#/s:12XCoordinator16BasicCoordinatorC18rootViewController12initialRoute0G11LoadingType17prepareTransitionACyxq_G04RooteF0Qy__xSgAC07InitialiJ0Oyxq__Gq_xcSgtcfc":{"name":"init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","abstract":"

Creates a BasicCoordinator.

","parent_name":"BasicCoordinator"},"Classes/BasicCoordinator.html#/s:12XCoordinator16BasicCoordinatorC9presented4fromyAA11Presentable_pSg_tF":{"name":"presented(from:)","abstract":"

This method is called whenever the BasicCoordinator is shown to the user.

","parent_name":"BasicCoordinator"},"Classes/BasicCoordinator.html#/s:12XCoordinator16BasicCoordinatorC17prepareTransition3forq_x_tF":{"name":"prepareTransition(for:)","parent_name":"BasicCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC8childrenSayAA11Presentable_pGvp":{"name":"children","abstract":"

The child coordinators that are currently in the view hierarchy.","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC18rootViewController12initialRouteACyxq_G04RooteF0Qy__xSgtcfc":{"name":"init(rootViewController:initialRoute:)","abstract":"

This initializer trigger a route before the coordinator is made visible.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC18rootViewController17initialTransitionACyxq_G04RooteF0Qy__q_Sgtcfc":{"name":"init(rootViewController:initialTransition:)","abstract":"

This initializer performs a transition before the coordinator is made visible.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11CoordinatorP22removeChildrenIfNeededyyF":{"name":"removeChildrenIfNeeded()","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11CoordinatorP8addChildyyAA11Presentable_pF":{"name":"addChild(_:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11CoordinatorP11removeChildyyAA11Presentable_pF":{"name":"removeChild(_:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC17prepareTransition3forq_x_tF":{"name":"prepareTransition(for:)","abstract":"

This method prepares transitions for routes.","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC18RootViewControllera":{"name":"RootViewController","abstract":"

Shortcut for BaseCoordinator.TransitionType.RootViewController

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF":{"name":"registerInteractiveTransition(for:triggeredBy:handler:completion:)","abstract":"

Register an interactive transition triggered by a gesture recognizer.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__12CoreGraphics7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF":{"name":"registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","abstract":"

Register an interactive transition triggered by a gesture recognizer.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC32unregisterInteractiveTransitions11triggeredByySo19UIGestureRecognizerC_tF":{"name":"unregisterInteractiveTransitions(triggeredBy:)","abstract":"

Unregisters a previously registered interactive transition.

","parent_name":"BaseCoordinator"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"AnyTransitionPerformer"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","parent_name":"AnyTransitionPerformer"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"AnyTransitionPerformer"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP07performB0_4with10completiony0B4TypeQz_AA0B7OptionsVyycSgtF":{"name":"performTransition(_:with:completion:)","parent_name":"AnyTransitionPerformer"},"Classes/AnyCoordinator.html#/s:12XCoordinator14AnyCoordinatorCyACyxq_Gqd__c9RouteTypeQyd__Rsz010TransitionE0Qyd__Rs_AA0C0Rd__lufc":{"name":"init(_:)","abstract":"

Creates a type-erased Coordinator for a specific coordinator.

","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator14AnyCoordinatorC17prepareTransition3forq_x_tF":{"name":"prepareTransition(for:)","abstract":"

Prepare and return transitions for a given route.

","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11CoordinatorP8addChildyyAA11Presentable_pF":{"name":"addChild(_:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11CoordinatorP11removeChildyyAA11Presentable_pF":{"name":"removeChild(_:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11CoordinatorP22removeChildrenIfNeededyyF":{"name":"removeChildrenIfNeeded()","parent_name":"AnyCoordinator"},"Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ":{"name":"default","abstract":"

Use Animation.default to override currently set animations","parent_name":"Animation"},"Classes/Animation.html#/s:12XCoordinator9AnimationC012presentationB0AA010TransitionB0_pSgvp":{"name":"presentationAnimation","abstract":"

The transition animation performed when transitioning to a presentable.

","parent_name":"Animation"},"Classes/Animation.html#/s:12XCoordinator9AnimationC09dismissalB0AA010TransitionB0_pSgvp":{"name":"dismissalAnimation","abstract":"

The transition animation performed when transitioning away from a presentable.

","parent_name":"Animation"},"Classes/Animation.html#/s:12XCoordinator9AnimationC12presentation9dismissalAcA010TransitionB0_pSg_AGtcfc":{"name":"init(presentation:dismissal:)","abstract":"

Creates an Animation object containing a presentation and a dismissal animation.

","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)animationControllerForPresentedController:presentingController:sourceController:":{"name":"animationController(forPresented:presenting:source:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)animationControllerForDismissedController:":{"name":"animationController(forDismissed:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)interactionControllerForPresentation:":{"name":"interactionControllerForPresentation(using:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)interactionControllerForDismissal:":{"name":"interactionControllerForDismissal(using:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html":{"name":"Animation","abstract":"

Animation is used to set presentation and dismissal animations for presentables.

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

AnyCoordinator is a type-erased Coordinator (RouteType & TransitionType) and"},"Classes/AnyTransitionPerformer.html":{"name":"AnyTransitionPerformer","abstract":"

AnyTransitionPerformer can be used as an abstraction from a specific TransitionPerformer implementation"},"Classes/BaseCoordinator.html":{"name":"BaseCoordinator","abstract":"

BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator.

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

BasicCoordinator is a coordinator class that can be used without subclassing.

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

InteractiveTransitionAnimation provides a simple interface to create interactive transition animations.

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

Use InterruptibleTransitionAnimation to define interactive transitions based on the"},"Classes/NavigationAnimationDelegate.html":{"name":"NavigationAnimationDelegate","abstract":"

NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},"Classes/NavigationCoordinator.html":{"name":"NavigationCoordinator","abstract":"

NavigationCoordinator acts as a base class for custom coordinators with a UINavigationController"},"Classes/PageCoordinator.html":{"name":"PageCoordinator","abstract":"

PageCoordinator provides a base class for your custom coordinator with a UIPageViewController rootViewController.

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

PageCoordinatorDataSource is a"},"Classes/RedirectionRouter.html":{"name":"RedirectionRouter","abstract":"

RedirectionRouters can be used to extract routes into different route types."},"Classes/SplitCoordinator.html":{"name":"SplitCoordinator","abstract":"

SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},"Classes/StaticTransitionAnimation.html":{"name":"StaticTransitionAnimation","abstract":"

StaticTransitionAnimation can be used to realize static transition animations.

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

StrongRouter is a type-erasure of a given Router object and, therefore, can be used as an abstraction from a specific Router"},"Classes/TabBarAnimationDelegate.html":{"name":"TabBarAnimationDelegate","abstract":"

TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},"Classes/TabBarCoordinator.html":{"name":"TabBarCoordinator","abstract":"

Use a TabBarCoordinator to coordinate a flow where a UITabbarController serves as a rootViewController."},"Classes/ViewCoordinator.html":{"name":"ViewCoordinator","abstract":"

ViewCoordinator is a base class for custom coordinators with a UIViewController rootViewController.

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

The following classes 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.

"},"Typealiases.html":{"name":"Type Aliases","abstract":"

The following type aliases are available globally.

"}} \ No newline at end of file diff --git a/docs/docsets/XCoordinator.docset/Contents/Resources/docSet.dsidx b/docs/docsets/XCoordinator.docset/Contents/Resources/docSet.dsidx deleted file mode 100644 index 3e8f5057..00000000 Binary files a/docs/docsets/XCoordinator.docset/Contents/Resources/docSet.dsidx and /dev/null differ diff --git a/docs/docsets/XCoordinator.docset/icon.png b/docs/docsets/XCoordinator.docset/icon.png deleted file mode 100644 index c83fbf0f..00000000 Binary files a/docs/docsets/XCoordinator.docset/icon.png and /dev/null differ diff --git a/docs/img/carat.png b/docs/img/carat.png deleted file mode 100755 index 29d2f7fd..00000000 Binary files a/docs/img/carat.png and /dev/null differ diff --git a/docs/img/dash.png b/docs/img/dash.png deleted file mode 100755 index 6f694c7a..00000000 Binary files a/docs/img/dash.png and /dev/null differ diff --git a/docs/img/gh.png b/docs/img/gh.png deleted file mode 100755 index 628da97c..00000000 Binary files a/docs/img/gh.png and /dev/null differ diff --git a/docs/img/spinner.gif b/docs/img/spinner.gif deleted file mode 100644 index e3038d0a..00000000 Binary files a/docs/img/spinner.gif and /dev/null differ diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 5aecef32..00000000 --- a/docs/index.html +++ /dev/null @@ -1,601 +0,0 @@ - - - - XCoordinator Reference - - - - - - - - - - - - - - - -
-

- - XCoordinator Docs - - -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
- -

- -

-

Build Status CocoaPods Compatible Carthage Compatible Documentation Platform License

- -

⚠️ We have recently released XCoordinator 2.0. Make sure to read this section before migrating. In general, please replace all AnyRouter by either UnownedRouter (in viewControllers, viewModels or references to parent coordinators) or StrongRouter in your AppDelegate or for references to child coordinators. In addition to that, the rootViewController is now injected into the initializer instead of being created in the Coordinator.generateRootViewController method.

- -

“How does an app transition from one view controller to another?”. -This question is common and puzzling regarding iOS development. There are many answers, as every architecture has different implementation variations. Some do it from within the implementation of a view controller, while some use a router/coordinator, an object connecting view models.

- -

To better answer the question, we are building XCoordinator, a navigation framework based on the Coordinator pattern. -It’s especially useful for implementing MVVM-C, Model-View-ViewModel-Coordinator:

- -

- -

-

🏃‍♂️Getting started

- -

Create an enum with all of the navigation paths for a particular flow, i.e. a group of closely connected scenes. (It is up to you when to create a Route/Coordinator. As our rule of thumb, create a new Route/Coordinator whenever a new root view controller, e.g. a new navigation controller or a tab bar controller, is needed.).

- -

Whereas the Route describes which routes can be triggered in a flow, the Coordinator is responsible for the preparation of transitions based on routes being triggered. We could, therefore, prepare multiple coordinators for the same route, which differ in which transitions are executed for each route.

- -

In the following example, we create the UserListRoute enum to define triggers of a flow of our application. UserListRoute offers routes to open the home screen, display a list of users, to open a specific user and to log out. The UserListCoordinator is implemented to prepare transitions for the triggered routes. When a UserListCoordinator is shown, it triggers the .home route to display a HomeViewController.

-
enum UserListRoute: Route {
-    case home
-    case users
-    case user(String)
-    case registerUsersPeek(from: Container)
-    case logout
-}
-
-class UserListCoordinator: NavigationCoordinator<UserListRoute> {
-    init() {
-        super.init(initialRoute: .home)
-    }
-
-    override func prepareTransition(for route: UserListRoute) -> NavigationTransition {
-        switch route {
-        case .home:
-            let viewController = HomeViewController.instantiateFromNib()
-            let viewModel = HomeViewModelImpl(router: anyRouter)
-            viewController.bind(to: viewModel)
-            return .push(viewController)
-        case .users:
-            let viewController = UsersViewController.instantiateFromNib()
-            let viewModel = UsersViewModelImpl(router: anyRouter)
-            viewController.bind(to: viewModel)
-            return .push(viewController, animation: .interactiveFade)
-        case .user(let username):
-            let coordinator = UserCoordinator(user: username)
-            return .present(coordinator, animation: .default)
-        case .registerUsersPeek(let source):
-            return registerPeek(for: source, route: .users)
-        case .logout:
-            return .dismiss()
-        }
-    }
-}
-
- -

Routes are triggered from within Coordinators or ViewModels. In the following, we describe how to trigger routes from within a ViewModel. The router of the current flow is injected into the ViewModel.

-
class HomeViewModel {
-    let router: UnownedRouter<HomeRoute>
-
-    init(router: UnownedRouter<HomeRoute>) {
-        self.router = router
-    }
-
-    /* ... */
-
-    func usersButtonPressed() {
-        router.trigger(.users)
-    }
-}
-
-

🏗 Organizing an app’s structure with XCoordinator

- -

In general, an app’s structure is defined by nesting coordinators and view controllers. You can transition (i.e. push, present, pop, dismiss) to a different coordinator whenever your app changes to a different flow. Within a flow, we transition between viewControllers.

- -

Example: In UserListCoordinator.prepareTransition(for:) we change from the UserListRoute to the UserRoute whenever the UserListRoute.user route is triggered. By dismissing a viewController in UserListRoute.logout, we additionally switch back to the previous flow - in this case the HomeRoute.

- -

To achieve this behavior, every Coordinator has its own rootViewController. This would be a UINavigationController in the case of a NavigationCoordinator, a UITabBarController in the case of a TabBarCoordinator, etc. When transitioning to a Coordinator/Router, this rootViewController is used as the destination view controller.

-

🏁 Using XCoordinator from App Launch

- -

To use coordinators from the launch of the app, make sure to create the app’s window programmatically in AppDelegate.swift (Don’t forget to remove Main Storyboard file base name from Info.plist). Then, set the coordinator as the root of the window‘s view hierarchy in the AppDelegate.didFinishLaunching. Make sure to hold a strong reference to your app’s initial coordinator or a strongRouter reference.

-
@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-    let window: UIWindow! = UIWindow()
-    let router = AppCoordinator().strongRouter
-
-    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
-        router.setRoot(for: window)
-        return true
-    }
-}
-
-

🤸‍♂️ Extras

- -

For more advanced use, XCoordinator offers many more customization options. We introduce custom animated transitions and deep linking. Furthermore, extensions for use in reactive programming with RxSwift/Combine and options to split up huge routes are described.

-

🌗 Custom Transitions

- -

Custom animated transitions define presentation and dismissal animations. You can specify Animation objects in prepareTransition(for:) in your coordinator for several common transitions, such as present, dismiss, push and pop. Specifying no animation (nil) results in not overriding previously set animations. Use Animation.default to reset previously set animation to the default animations UIKit offers.

-
class UsersCoordinator: NavigationCoordinator<UserRoute> {
-
-    /* ... */
-
-    override func prepareTransition(for route: UserRoute) -> NavigationTransition {
-        switch route {
-        case .user(let name):
-            let animation = Animation(
-                presentationAnimation: YourAwesomePresentationTransitionAnimation(),
-                dismissalAnimation: YourAwesomeDismissalTransitionAnimation()
-            )
-            let viewController = UserViewController.instantiateFromNib()
-            let viewModel = UserViewModelImpl(coordinator: coordinator, name: name)
-            viewController.bind(to: viewModel)
-            return .push(viewController, animation: animation)
-        /* ... */
-        }
-    }
-}
-
-

🛤 Deep Linking

- -

Deep Linking can be used to chain different routes together. In contrast to the .multiple transition, deep linking can identify routers based on previous transitions (e.g. when pushing or presenting a router), which enables chaining of routes of different types. Keep in mind, that you cannot access higher-level routers anymore once you trigger a route on a lower level of the router hierarchy.

-
class AppCoordinator: NavigationCoordinator<AppRoute> {
-
-    /* ... */
-
-    override func prepareTransition(for route: AppRoute) -> NavigationTransition {
-        switch route {
-        /* ... */
-        case .deep:
-            return deepLink(AppRoute.login, AppRoute.home, HomeRoute.news, HomeRoute.dismiss)
-        }
-    }
-}
-
- -

⚠️ XCoordinator does not check at compile-time, whether a deep link can be executed. Rather it uses assertionFailures to inform about incorrect chaining at runtime, when it cannot find an appriopriate router for a given route. Keep this in mind when changing the structure of your app.

-

🚏 RedirectionRouter

- -

Let’s assume, there is a route type called HugeRoute with more than 10 routes. To decrease coupling, HugeRoute needs to be split up into mutliple route types. As you will discover, many routes in HugeRoute use transitions dependent on a specific rootViewController, such as push, show, pop, etc. If splitting up routes by introducing a new router/coordinator is not an option, XCoordinator has two solutions for you to solve such a case: RedirectionRouter or using multiple coordinators with the same rootViewController (see this section for more information).

- -

A RedirectionRouter can be used to map a new route type onto a generalized ParentRoute. A RedirectionRouter is independent of the TransitionType of its parent router. You can use RedirectionRouter.init(viewController:parent:map:) or subclassing by overriding mapToParentRoute(_:) to create a RedirectionRouter.

- -

The following code example illustrates how a RedirectionRouter is initialized and used.

-
class ParentCoordinator: NavigationCoordinator<ParentRoute> {
-    /* ... */
-
-    override func prepareTransition(for route: ParentRoute) -> NavigationTransition {
-        switch route {
-        /* ... */
-        case .subCoordinator:
-            let subCoordinator = SubCoordinator(parent: unownedRouter)
-            return .push(subCoordinator)
-        }
-    }
-}
-
-class ChildCoordinator: RedirectionRouter<ParentRoute, ChildRoute> {
-    init(parent: UnownedRouter<ParentRoute>) {
-        let viewController = UIViewController() 
-        // this viewController is used when performing transitions with the Subcoordinator directly.
-        super.init(viewController: viewController, parent: parent, map: nil)
-    }
-
-    /* ... */
-
-    override func mapToSuperRoute(for route: ChildRoute) -> ParentRoute {
-        // you can map your ChildRoute enum to ParentRoute cases here that will get triggered on the parent router.
-    }
-}
-
-

🚏Using multiple coordinators with the same rootViewController

- -

With XCoordinator 2.0, we introduce the option to use different coordinators with the same rootViewController. -Since you can specify the rootViewController in the initializer of a new coordinator, you can specify an existing coordinator’s rootViewController as in the following:

-
class FirstCoordinator: NavigationCoordinator<FirstRoute> {
-    /* ... */
-
-    override func prepareTransition(for route: FirstRoute) -> NavigationTransition {
-        switch route {
-        case .secondCoordinator:
-            let secondCoordinator = SecondCoordinator(rootViewController: self.rootViewController)
-            addChild(secondCoordinator)
-            return .none() 
-            // you could also trigger a specific initial route at this point, 
-            // such as `.trigger(SecondRoute.initial, on: secondCoordinator)`
-        }
-    }
-}
-
- -

We suggest to not use initial routes in the initializers of sibling coordinators, but instead using the transition option in the FirstCoordinator instead.

- -

⚠️ If you perform transitions involving a sibling coordinator directly (e.g. pushing a sibling coordinator without overriding its viewController property), your app will most likely crash.

-

🚀 RxSwift/Combine extensions

- -

Reactive programming can be very useful to keep the state of view and model consistent in a MVVM architecture. Instead of relying on the completion handler of the trigger method available in any Router, you can also use our RxSwift-extension. In the example application, we use Actions (from the Action framework) to trigger routes on certain UI events - e.g. to trigger LoginRoute.home in LoginViewModel, when the login button is tapped.

-
class LoginViewModelImpl: LoginViewModel, LoginViewModelInput, LoginViewModelOutput {
-
-    private let router: UnownedRouter<AppRoute>
-
-    private lazy var loginAction = CocoaAction { [unowned self] in
-        return self.router.rx.trigger(.home)
-    }
-
-    /* ... */
-}
-
-
- -

In addition to the above-mentioned approach, the reactive trigger extension can also be used to sequence different transitions by using the flatMap operator, as can be seen in the following:

-
let doneWithBothTransitions = 
-    router.rx.trigger(.home)
-        .flatMap { [unowned router] in router.rx.trigger(.news) }
-        .map { true }
-        .startWith(false)
-
- -

When using XCoordinator with the Combine extensions, you can use router.publishers.trigger instead of router.rx.trigger.

-

📚 Documentation & Example app

- -

To get more information about XCoordinator, check out the documentation. -Additionally, this repository serves as an example project using a MVVM architecture with XCoordinator.

- -

For a MVC example app, have a look at a workshop we did with a previous version of XCoordinator.

-

👨‍✈️ Why coordinators

- -
    -
  • Separation of responsibilities with the coordinator being the only component knowing anything related to the flow of your application.
  • -
  • Reusable Views and ViewModels because they do not contain any navigation logic.
  • -
  • Less coupling between components

  • -
  • Changeable navigation: Each coordinator is only responsible for one component and does not need to make assumptions about its parent. It can therefore be placed wherever we want to.

  • -
- -
-

The Coordinator by Soroush Khanlou

-
-

⁉️ Why XCoordinator

- -
    -
  • Actual navigation code is already written and abstracted away.
  • -
  • Clear separation of concerns: - -
      -
    • Coordinator: Coordinates routing of a set of routes.
    • -
    • Route: Describes navigation path.
    • -
    • Transition: Describe transition type and animation to new view.
    • -
  • -
  • Reuse coordinators, routers and transitions in different combinations.
  • -
  • Full support for custom transitions/animations.
  • -
  • Support for embedding child views / container views.
  • -
  • Generic BasicCoordinator classes suitable for many use cases and therefore less need to write your own coordinators.
  • -
  • Full support for your own coordinator classes conforming to our Coordinator protocol - -
  • -
  • Generic AnyRouter type erasure class encapsulates all types of coordinators and routers supporting the same set of routes. Therefore you can easily replace coordinators.
  • -
  • Use of enum for routes gives you autocompletion and type safety to perform only transition to routes supported by the coordinator.
  • -
-

🔩 Components

-

🎢 Route

- -

Describes possible navigation paths within a flow, a collection of closely related scenes.

-

👨‍✈️ Coordinator / Router

- -

An object loading views and creating viewModels based on triggered routes. A Coordinator creates and performs transitions to these scenes based on the data transferred via the route. In contrast to the coordinator, a router can be seen as an abstraction from that concept limited to triggering routes. Often, a Router is used to abstract from a specific coordinator in ViewModels.

-

When to use which Router abstraction

- -

You can create different router abstractions using the unownedRouter, weakRouter or strongRouter properties of your Coordinator. -You can decide between the following router abstractions of your coordinator:

- -
    -
  • StrongRouter holds a strong reference to the original coordinator. You can use this to hold child coordinators or to specify a certain router in the AppDelegate.
  • -
  • WeakRouter holds a weak reference to the original coordinator. You can use this to hold a coordinator in a viewController or viewModel. It can also be used to keep a reference to a sibling or parent coordinator.
  • -
  • UnownedRouter holds an unowned reference to the original coordinator. You can use this to hold a coordinator in a viewController or viewModel. It can also be used to keep a reference to a sibling or parent coordinator.
  • -
- -

If you want to know more about the differences on how references can be held, have a look here.

-

🌗 Transition

- -

Transitions describe the navigation from one view to another. Transitions are available based on the type of the root view controller in use. Example: Whereas ViewTransition only supports basic transitions that every root view controller supports, NavigationTransition adds navigation controller specific transitions.

- -

The available transition types include:

- -
    -
  • present presents a view controller on top of the view hierarchy - use presentOnRoot in case you want to present from the root view controller
  • -
  • embed embeds a view controller into a container view
  • -
  • dismiss dismisses the top most presented view controller - use dismissToRoot to call dismiss on the root view controller
  • -
  • none does nothing, may be used to ignore routes or for testing purposes
  • -
  • push pushes a view controller to the navigation stack (only in NavigationTransition)
  • -
  • pop pops the top view controller from the navigation stack (only in NavigationTransition)
  • -
  • popToRoot pops all the view controllers on the navigation stack except the root view controller (only in NavigationTransition)
  • -
- -

XCoordinator additionally supports common transitions for UITabBarController, UISplitViewController and UIPageViewController root view controllers.

-

🛠 Installation

-

CocoaPods

- -

To integrate XCoordinator into your Xcode project using CocoaPods, add this to your Podfile:

-
pod 'XCoordinator', '~> 2.0'
-
- -

To use the RxSwift extensions, add this to your Podfile:

-
pod 'XCoordinator/RxSwift', '~> 2.0'
-
- -

To use the Combine extensions, add this to your Podfile:

-
pod 'XCoordinator/Combine', '~> 2.0'
-
-

Carthage

- -

To integrate XCoordinator into your Xcode project using Carthage, add this to your Cartfile:

-
github "quickbirdstudios/XCoordinator" ~> 2.0
-
- -

Then run carthage update.

- -

If this is your first time using Carthage in the project, you’ll need to go through some additional steps as explained over at Carthage.

-

Swift Package Manager

- -

See this WWDC presentation about more information how to adopt Swift packages in your app.

- -

Specify https://github.com/quickbirdstudios/XCoordinator.git as the XCoordinator package link. -You can then decide between three different frameworks, i.e. XCoordinator, XCoordinatorRx and XCoordinatorCombine. -While XCoordinator contains the main framework, you can choose XCoordinatorRx or XCoordinatorCombine to get RxSwift or Combine extensions as well.

-

Manually

- -

If you prefer not to use any of the dependency managers, you can integrate XCoordinator into your project manually, by downloading the source code and placing the files on your project directory.

-

👤 Author

- -

This framework is created with ❤️ by QuickBird Studios.

- -

To get more information on XCoordinator check out our blog post.

-

❤️ Contributing

- -

Open an issue if you need help, if you found a bug, or if you want to discuss a feature request. If you feel like having a chat about XCoordinator with the developers and other users, join our Slack Workspace.

- -

Open a PR if you want to make changes to XCoordinator.

-

📃 License

- -

XCoordinator is released under an MIT license. See License.md for more information.

- -
-
- - -
-
- - -
- diff --git a/docs/js/jazzy.js b/docs/js/jazzy.js deleted file mode 100755 index c31dc05e..00000000 --- a/docs/js/jazzy.js +++ /dev/null @@ -1,59 +0,0 @@ -window.jazzy = {'docset': false} -if (typeof window.dash != 'undefined') { - document.documentElement.className += ' dash' - window.jazzy.docset = true -} -if (navigator.userAgent.match(/xcode/i)) { - document.documentElement.className += ' xcode' - window.jazzy.docset = true -} - -function toggleItem($link, $content) { - var animationDuration = 300; - $link.toggleClass('token-open'); - $content.slideToggle(animationDuration); -} - -function itemLinkToContent($link) { - return $link.parent().parent().next(); -} - -// On doc load + hash-change, open any targetted item -function openCurrentItemIfClosed() { - if (window.jazzy.docset) { - return; - } - var $link = $(`.token[href="${location.hash}"]`); - $content = itemLinkToContent($link); - if ($content.is(':hidden')) { - toggleItem($link, $content); - } -} - -$(openCurrentItemIfClosed); -$(window).on('hashchange', openCurrentItemIfClosed); - -// On item link ('token') click, toggle its discussion -$('.token').on('click', function(event) { - if (window.jazzy.docset) { - return; - } - var $link = $(this); - toggleItem($link, itemLinkToContent($link)); - - // Keeps the document from jumping to the hash. - var href = $link.attr('href'); - if (history.pushState) { - history.pushState({}, '', href); - } else { - location.hash = href; - } - event.preventDefault(); -}); - -// Clicks on links to the current, closed, item need to open the item -$("a:not('.token')").on('click', function() { - if (location == this.href) { - openCurrentItemIfClosed(); - } -}); diff --git a/docs/js/jazzy.search.js b/docs/js/jazzy.search.js deleted file mode 100644 index e3d1ab90..00000000 --- a/docs/js/jazzy.search.js +++ /dev/null @@ -1,70 +0,0 @@ -$(function(){ - var $typeahead = $('[data-typeahead]'); - var $form = $typeahead.parents('form'); - var searchURL = $form.attr('action'); - - function displayTemplate(result) { - return result.name; - } - - function suggestionTemplate(result) { - var t = '
'; - t += '' + result.name + ''; - if (result.parent_name) { - t += '' + result.parent_name + ''; - } - t += '
'; - return t; - } - - $typeahead.one('focus', function() { - $form.addClass('loading'); - - $.getJSON(searchURL).then(function(searchData) { - const searchIndex = lunr(function() { - this.ref('url'); - this.field('name'); - this.field('abstract'); - for (const [url, doc] of Object.entries(searchData)) { - this.add({url: url, name: doc.name, abstract: doc.abstract}); - } - }); - - $typeahead.typeahead( - { - highlight: true, - minLength: 3, - autoselect: true - }, - { - limit: 10, - display: displayTemplate, - templates: { suggestion: suggestionTemplate }, - source: function(query, sync) { - const lcSearch = query.toLowerCase(); - const results = searchIndex.query(function(q) { - q.term(lcSearch, { boost: 100 }); - q.term(lcSearch, { - boost: 10, - wildcard: lunr.Query.wildcard.TRAILING - }); - }).map(function(result) { - var doc = searchData[result.ref]; - doc.url = result.ref; - return doc; - }); - sync(results); - } - } - ); - $form.removeClass('loading'); - $typeahead.trigger('focus'); - }); - }); - - var baseURL = searchURL.slice(0, -"search.json".length); - - $typeahead.on('typeahead:select', function(e, result) { - window.location = baseURL + result.url; - }); -}); diff --git a/docs/js/jquery.min.js b/docs/js/jquery.min.js deleted file mode 100644 index a1c07fd8..00000000 --- a/docs/js/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.4.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=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,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},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.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(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($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),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-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|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(m.childNodes),m.childNodes),t[m.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&&((e?e.ownerDocument||e:m)!==C&&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&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$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[k]=!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:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),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=k,!C.getElementsByName||!C.getElementsByName(k).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){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),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("!=",$)}),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===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,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]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[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){A(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=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(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)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.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 k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.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(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(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,ge={option:[1,""],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)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").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 Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.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(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.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?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.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=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.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,k.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)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.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"===k.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"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.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)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.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?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.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){k.fn[n]=function(e,t){return 0=this.length)return z.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},z.QueryLexer.prototype.width=function(){return this.pos-this.start},z.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},z.QueryLexer.prototype.backup=function(){this.pos-=1},z.QueryLexer.prototype.acceptDigitRun=function(){for(var e,t;47<(t=(e=this.next()).charCodeAt(0))&&t<58;);e!=z.QueryLexer.EOS&&this.backup()},z.QueryLexer.prototype.more=function(){return this.pos', - menu: '
' - }; - } - function buildSelectors(classes) { - var selectors = {}; - _.each(classes, function(v, k) { - selectors[k] = "." + v; - }); - return selectors; - } - function buildCss() { - var css = { - wrapper: { - position: "relative", - display: "inline-block" - }, - hint: { - position: "absolute", - top: "0", - left: "0", - borderColor: "transparent", - boxShadow: "none", - opacity: "1" - }, - input: { - position: "relative", - verticalAlign: "top", - backgroundColor: "transparent" - }, - inputWithNoHint: { - position: "relative", - verticalAlign: "top" - }, - menu: { - position: "absolute", - top: "100%", - left: "0", - zIndex: "100", - display: "none" - }, - ltr: { - left: "0", - right: "auto" - }, - rtl: { - left: "auto", - right: " 0" - } - }; - if (_.isMsie()) { - _.mixin(css.input, { - backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" - }); - } - return css; - } - }(); - var EventBus = function() { - "use strict"; - var namespace, deprecationMap; - namespace = "typeahead:"; - deprecationMap = { - render: "rendered", - cursorchange: "cursorchanged", - select: "selected", - autocomplete: "autocompleted" - }; - function EventBus(o) { - if (!o || !o.el) { - $.error("EventBus initialized without el"); - } - this.$el = $(o.el); - } - _.mixin(EventBus.prototype, { - _trigger: function(type, args) { - var $e = $.Event(namespace + type); - this.$el.trigger.call(this.$el, $e, args || []); - return $e; - }, - before: function(type) { - var args, $e; - args = [].slice.call(arguments, 1); - $e = this._trigger("before" + type, args); - return $e.isDefaultPrevented(); - }, - trigger: function(type) { - var deprecatedType; - this._trigger(type, [].slice.call(arguments, 1)); - if (deprecatedType = deprecationMap[type]) { - this._trigger(deprecatedType, [].slice.call(arguments, 1)); - } - } - }); - return EventBus; - }(); - var EventEmitter = function() { - "use strict"; - var splitter = /\s+/, nextTick = getNextTick(); - return { - onSync: onSync, - onAsync: onAsync, - off: off, - trigger: trigger - }; - function on(method, types, cb, context) { - var type; - if (!cb) { - return this; - } - types = types.split(splitter); - cb = context ? bindContext(cb, context) : cb; - this._callbacks = this._callbacks || {}; - while (type = types.shift()) { - this._callbacks[type] = this._callbacks[type] || { - sync: [], - async: [] - }; - this._callbacks[type][method].push(cb); - } - return this; - } - function onAsync(types, cb, context) { - return on.call(this, "async", types, cb, context); - } - function onSync(types, cb, context) { - return on.call(this, "sync", types, cb, context); - } - function off(types) { - var type; - if (!this._callbacks) { - return this; - } - types = types.split(splitter); - while (type = types.shift()) { - delete this._callbacks[type]; - } - return this; - } - function trigger(types) { - var type, callbacks, args, syncFlush, asyncFlush; - if (!this._callbacks) { - return this; - } - types = types.split(splitter); - args = [].slice.call(arguments, 1); - while ((type = types.shift()) && (callbacks = this._callbacks[type])) { - syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); - asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); - syncFlush() && nextTick(asyncFlush); - } - return this; - } - function getFlush(callbacks, context, args) { - return flush; - function flush() { - var cancelled; - for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { - cancelled = callbacks[i].apply(context, args) === false; - } - return !cancelled; - } - } - function getNextTick() { - var nextTickFn; - if (window.setImmediate) { - nextTickFn = function nextTickSetImmediate(fn) { - setImmediate(function() { - fn(); - }); - }; - } else { - nextTickFn = function nextTickSetTimeout(fn) { - setTimeout(function() { - fn(); - }, 0); - }; - } - return nextTickFn; - } - function bindContext(fn, context) { - return fn.bind ? fn.bind(context) : function() { - fn.apply(context, [].slice.call(arguments, 0)); - }; - } - }(); - var highlight = function(doc) { - "use strict"; - var defaults = { - node: null, - pattern: null, - tagName: "strong", - className: null, - wordsOnly: false, - caseSensitive: false, - diacriticInsensitive: false - }; - var accented = { - A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", - B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", - C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", - D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", - E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", - F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", - G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", - H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", - I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", - J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", - K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", - L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", - M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", - N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", - O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", - P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", - Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", - R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", - S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", - T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", - U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", - V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", - W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", - X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", - Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", - Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" - }; - return function hightlight(o) { - var regex; - o = _.mixin({}, defaults, o); - if (!o.node || !o.pattern) { - return; - } - o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; - regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); - traverse(o.node, hightlightTextNode); - function hightlightTextNode(textNode) { - var match, patternNode, wrapperNode; - if (match = regex.exec(textNode.data)) { - wrapperNode = doc.createElement(o.tagName); - o.className && (wrapperNode.className = o.className); - patternNode = textNode.splitText(match.index); - patternNode.splitText(match[0].length); - wrapperNode.appendChild(patternNode.cloneNode(true)); - textNode.parentNode.replaceChild(wrapperNode, patternNode); - } - return !!match; - } - function traverse(el, hightlightTextNode) { - var childNode, TEXT_NODE_TYPE = 3; - for (var i = 0; i < el.childNodes.length; i++) { - childNode = el.childNodes[i]; - if (childNode.nodeType === TEXT_NODE_TYPE) { - i += hightlightTextNode(childNode) ? 1 : 0; - } else { - traverse(childNode, hightlightTextNode); - } - } - } - }; - function accent_replacer(chr) { - return accented[chr.toUpperCase()] || chr; - } - function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { - var escapedPatterns = [], regexStr; - for (var i = 0, len = patterns.length; i < len; i++) { - var escapedWord = _.escapeRegExChars(patterns[i]); - if (diacriticInsensitive) { - escapedWord = escapedWord.replace(/\S/g, accent_replacer); - } - escapedPatterns.push(escapedWord); - } - regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; - return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); - } - }(window.document); - var Input = function() { - "use strict"; - var specialKeyCodeMap; - specialKeyCodeMap = { - 9: "tab", - 27: "esc", - 37: "left", - 39: "right", - 13: "enter", - 38: "up", - 40: "down" - }; - function Input(o, www) { - o = o || {}; - if (!o.input) { - $.error("input is missing"); - } - www.mixin(this); - this.$hint = $(o.hint); - this.$input = $(o.input); - this.$input.attr({ - "aria-activedescendant": "", - "aria-owns": this.$input.attr("id") + "_listbox", - role: "combobox", - "aria-readonly": "true", - "aria-autocomplete": "list" - }); - $(www.menu).attr("id", this.$input.attr("id") + "_listbox"); - this.query = this.$input.val(); - this.queryWhenFocused = this.hasFocus() ? this.query : null; - this.$overflowHelper = buildOverflowHelper(this.$input); - this._checkLanguageDirection(); - if (this.$hint.length === 0) { - this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; - } - this.onSync("cursorchange", this._updateDescendent); - } - Input.normalizeQuery = function(str) { - return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); - }; - _.mixin(Input.prototype, EventEmitter, { - _onBlur: function onBlur() { - this.resetInputValue(); - this.trigger("blurred"); - }, - _onFocus: function onFocus() { - this.queryWhenFocused = this.query; - this.trigger("focused"); - }, - _onKeydown: function onKeydown($e) { - var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; - this._managePreventDefault(keyName, $e); - if (keyName && this._shouldTrigger(keyName, $e)) { - this.trigger(keyName + "Keyed", $e); - } - }, - _onInput: function onInput() { - this._setQuery(this.getInputValue()); - this.clearHintIfInvalid(); - this._checkLanguageDirection(); - }, - _managePreventDefault: function managePreventDefault(keyName, $e) { - var preventDefault; - switch (keyName) { - case "up": - case "down": - preventDefault = !withModifier($e); - break; - - default: - preventDefault = false; - } - preventDefault && $e.preventDefault(); - }, - _shouldTrigger: function shouldTrigger(keyName, $e) { - var trigger; - switch (keyName) { - case "tab": - trigger = !withModifier($e); - break; - - default: - trigger = true; - } - return trigger; - }, - _checkLanguageDirection: function checkLanguageDirection() { - var dir = (this.$input.css("direction") || "ltr").toLowerCase(); - if (this.dir !== dir) { - this.dir = dir; - this.$hint.attr("dir", dir); - this.trigger("langDirChanged", dir); - } - }, - _setQuery: function setQuery(val, silent) { - var areEquivalent, hasDifferentWhitespace; - areEquivalent = areQueriesEquivalent(val, this.query); - hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; - this.query = val; - if (!silent && !areEquivalent) { - this.trigger("queryChanged", this.query); - } else if (!silent && hasDifferentWhitespace) { - this.trigger("whitespaceChanged", this.query); - } - }, - _updateDescendent: function updateDescendent(event, id) { - this.$input.attr("aria-activedescendant", id); - }, - bind: function() { - var that = this, onBlur, onFocus, onKeydown, onInput; - onBlur = _.bind(this._onBlur, this); - onFocus = _.bind(this._onFocus, this); - onKeydown = _.bind(this._onKeydown, this); - onInput = _.bind(this._onInput, this); - this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); - if (!_.isMsie() || _.isMsie() > 9) { - this.$input.on("input.tt", onInput); - } else { - this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { - if (specialKeyCodeMap[$e.which || $e.keyCode]) { - return; - } - _.defer(_.bind(that._onInput, that, $e)); - }); - } - return this; - }, - focus: function focus() { - this.$input.focus(); - }, - blur: function blur() { - this.$input.blur(); - }, - getLangDir: function getLangDir() { - return this.dir; - }, - getQuery: function getQuery() { - return this.query || ""; - }, - setQuery: function setQuery(val, silent) { - this.setInputValue(val); - this._setQuery(val, silent); - }, - hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { - return this.query !== this.queryWhenFocused; - }, - getInputValue: function getInputValue() { - return this.$input.val(); - }, - setInputValue: function setInputValue(value) { - this.$input.val(value); - this.clearHintIfInvalid(); - this._checkLanguageDirection(); - }, - resetInputValue: function resetInputValue() { - this.setInputValue(this.query); - }, - getHint: function getHint() { - return this.$hint.val(); - }, - setHint: function setHint(value) { - this.$hint.val(value); - }, - clearHint: function clearHint() { - this.setHint(""); - }, - clearHintIfInvalid: function clearHintIfInvalid() { - var val, hint, valIsPrefixOfHint, isValid; - val = this.getInputValue(); - hint = this.getHint(); - valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; - isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); - !isValid && this.clearHint(); - }, - hasFocus: function hasFocus() { - return this.$input.is(":focus"); - }, - hasOverflow: function hasOverflow() { - var constraint = this.$input.width() - 2; - this.$overflowHelper.text(this.getInputValue()); - return this.$overflowHelper.width() >= constraint; - }, - isCursorAtEnd: function() { - var valueLength, selectionStart, range; - valueLength = this.$input.val().length; - selectionStart = this.$input[0].selectionStart; - if (_.isNumber(selectionStart)) { - return selectionStart === valueLength; - } else if (document.selection) { - range = document.selection.createRange(); - range.moveStart("character", -valueLength); - return valueLength === range.text.length; - } - return true; - }, - destroy: function destroy() { - this.$hint.off(".tt"); - this.$input.off(".tt"); - this.$overflowHelper.remove(); - this.$hint = this.$input = this.$overflowHelper = $("
"); - } - }); - return Input; - function buildOverflowHelper($input) { - return $('').css({ - position: "absolute", - visibility: "hidden", - whiteSpace: "pre", - fontFamily: $input.css("font-family"), - fontSize: $input.css("font-size"), - fontStyle: $input.css("font-style"), - fontVariant: $input.css("font-variant"), - fontWeight: $input.css("font-weight"), - wordSpacing: $input.css("word-spacing"), - letterSpacing: $input.css("letter-spacing"), - textIndent: $input.css("text-indent"), - textRendering: $input.css("text-rendering"), - textTransform: $input.css("text-transform") - }).insertAfter($input); - } - function areQueriesEquivalent(a, b) { - return Input.normalizeQuery(a) === Input.normalizeQuery(b); - } - function withModifier($e) { - return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; - } - }(); - var Dataset = function() { - "use strict"; - var keys, nameGenerator; - keys = { - dataset: "tt-selectable-dataset", - val: "tt-selectable-display", - obj: "tt-selectable-object" - }; - nameGenerator = _.getIdGenerator(); - function Dataset(o, www) { - o = o || {}; - o.templates = o.templates || {}; - o.templates.notFound = o.templates.notFound || o.templates.empty; - if (!o.source) { - $.error("missing source"); - } - if (!o.node) { - $.error("missing node"); - } - if (o.name && !isValidName(o.name)) { - $.error("invalid dataset name: " + o.name); - } - www.mixin(this); - this.highlight = !!o.highlight; - this.name = _.toStr(o.name || nameGenerator()); - this.limit = o.limit || 5; - this.displayFn = getDisplayFn(o.display || o.displayKey); - this.templates = getTemplates(o.templates, this.displayFn); - this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; - this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; - this._resetLastSuggestion(); - this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); - } - Dataset.extractData = function extractData(el) { - var $el = $(el); - if ($el.data(keys.obj)) { - return { - dataset: $el.data(keys.dataset) || "", - val: $el.data(keys.val) || "", - obj: $el.data(keys.obj) || null - }; - } - return null; - }; - _.mixin(Dataset.prototype, EventEmitter, { - _overwrite: function overwrite(query, suggestions) { - suggestions = suggestions || []; - if (suggestions.length) { - this._renderSuggestions(query, suggestions); - } else if (this.async && this.templates.pending) { - this._renderPending(query); - } else if (!this.async && this.templates.notFound) { - this._renderNotFound(query); - } else { - this._empty(); - } - this.trigger("rendered", suggestions, false, this.name); - }, - _append: function append(query, suggestions) { - suggestions = suggestions || []; - if (suggestions.length && this.$lastSuggestion.length) { - this._appendSuggestions(query, suggestions); - } else if (suggestions.length) { - this._renderSuggestions(query, suggestions); - } else if (!this.$lastSuggestion.length && this.templates.notFound) { - this._renderNotFound(query); - } - this.trigger("rendered", suggestions, true, this.name); - }, - _renderSuggestions: function renderSuggestions(query, suggestions) { - var $fragment; - $fragment = this._getSuggestionsFragment(query, suggestions); - this.$lastSuggestion = $fragment.children().last(); - this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); - }, - _appendSuggestions: function appendSuggestions(query, suggestions) { - var $fragment, $lastSuggestion; - $fragment = this._getSuggestionsFragment(query, suggestions); - $lastSuggestion = $fragment.children().last(); - this.$lastSuggestion.after($fragment); - this.$lastSuggestion = $lastSuggestion; - }, - _renderPending: function renderPending(query) { - var template = this.templates.pending; - this._resetLastSuggestion(); - template && this.$el.html(template({ - query: query, - dataset: this.name - })); - }, - _renderNotFound: function renderNotFound(query) { - var template = this.templates.notFound; - this._resetLastSuggestion(); - template && this.$el.html(template({ - query: query, - dataset: this.name - })); - }, - _empty: function empty() { - this.$el.empty(); - this._resetLastSuggestion(); - }, - _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { - var that = this, fragment; - fragment = document.createDocumentFragment(); - _.each(suggestions, function getSuggestionNode(suggestion) { - var $el, context; - context = that._injectQuery(query, suggestion); - $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); - fragment.appendChild($el[0]); - }); - this.highlight && highlight({ - className: this.classes.highlight, - node: fragment, - pattern: query - }); - return $(fragment); - }, - _getFooter: function getFooter(query, suggestions) { - return this.templates.footer ? this.templates.footer({ - query: query, - suggestions: suggestions, - dataset: this.name - }) : null; - }, - _getHeader: function getHeader(query, suggestions) { - return this.templates.header ? this.templates.header({ - query: query, - suggestions: suggestions, - dataset: this.name - }) : null; - }, - _resetLastSuggestion: function resetLastSuggestion() { - this.$lastSuggestion = $(); - }, - _injectQuery: function injectQuery(query, obj) { - return _.isObject(obj) ? _.mixin({ - _query: query - }, obj) : obj; - }, - update: function update(query) { - var that = this, canceled = false, syncCalled = false, rendered = 0; - this.cancel(); - this.cancel = function cancel() { - canceled = true; - that.cancel = $.noop; - that.async && that.trigger("asyncCanceled", query, that.name); - }; - this.source(query, sync, async); - !syncCalled && sync([]); - function sync(suggestions) { - if (syncCalled) { - return; - } - syncCalled = true; - suggestions = (suggestions || []).slice(0, that.limit); - rendered = suggestions.length; - that._overwrite(query, suggestions); - if (rendered < that.limit && that.async) { - that.trigger("asyncRequested", query, that.name); - } - } - function async(suggestions) { - suggestions = suggestions || []; - if (!canceled && rendered < that.limit) { - that.cancel = $.noop; - var idx = Math.abs(rendered - that.limit); - rendered += idx; - that._append(query, suggestions.slice(0, idx)); - that.async && that.trigger("asyncReceived", query, that.name); - } - } - }, - cancel: $.noop, - clear: function clear() { - this._empty(); - this.cancel(); - this.trigger("cleared"); - }, - isEmpty: function isEmpty() { - return this.$el.is(":empty"); - }, - destroy: function destroy() { - this.$el = $("
"); - } - }); - return Dataset; - function getDisplayFn(display) { - display = display || _.stringify; - return _.isFunction(display) ? display : displayFn; - function displayFn(obj) { - return obj[display]; - } - } - function getTemplates(templates, displayFn) { - return { - notFound: templates.notFound && _.templatify(templates.notFound), - pending: templates.pending && _.templatify(templates.pending), - header: templates.header && _.templatify(templates.header), - footer: templates.footer && _.templatify(templates.footer), - suggestion: templates.suggestion || suggestionTemplate - }; - function suggestionTemplate(context) { - return $('
').attr("id", _.guid()).text(displayFn(context)); - } - } - function isValidName(str) { - return /^[_a-zA-Z0-9-]+$/.test(str); - } - }(); - var Menu = function() { - "use strict"; - function Menu(o, www) { - var that = this; - o = o || {}; - if (!o.node) { - $.error("node is required"); - } - www.mixin(this); - this.$node = $(o.node); - this.query = null; - this.datasets = _.map(o.datasets, initializeDataset); - function initializeDataset(oDataset) { - var node = that.$node.find(oDataset.node).first(); - oDataset.node = node.length ? node : $("
").appendTo(that.$node); - return new Dataset(oDataset, www); - } - } - _.mixin(Menu.prototype, EventEmitter, { - _onSelectableClick: function onSelectableClick($e) { - this.trigger("selectableClicked", $($e.currentTarget)); - }, - _onRendered: function onRendered(type, dataset, suggestions, async) { - this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); - this.trigger("datasetRendered", dataset, suggestions, async); - }, - _onCleared: function onCleared() { - this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); - this.trigger("datasetCleared"); - }, - _propagate: function propagate() { - this.trigger.apply(this, arguments); - }, - _allDatasetsEmpty: function allDatasetsEmpty() { - return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { - var isEmpty = dataset.isEmpty(); - this.$node.attr("aria-expanded", !isEmpty); - return isEmpty; - }, this)); - }, - _getSelectables: function getSelectables() { - return this.$node.find(this.selectors.selectable); - }, - _removeCursor: function _removeCursor() { - var $selectable = this.getActiveSelectable(); - $selectable && $selectable.removeClass(this.classes.cursor); - }, - _ensureVisible: function ensureVisible($el) { - var elTop, elBottom, nodeScrollTop, nodeHeight; - elTop = $el.position().top; - elBottom = elTop + $el.outerHeight(true); - nodeScrollTop = this.$node.scrollTop(); - nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); - if (elTop < 0) { - this.$node.scrollTop(nodeScrollTop + elTop); - } else if (nodeHeight < elBottom) { - this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); - } - }, - bind: function() { - var that = this, onSelectableClick; - onSelectableClick = _.bind(this._onSelectableClick, this); - this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); - this.$node.on("mouseover", this.selectors.selectable, function() { - that.setCursor($(this)); - }); - this.$node.on("mouseleave", function() { - that._removeCursor(); - }); - _.each(this.datasets, function(dataset) { - dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); - }); - return this; - }, - isOpen: function isOpen() { - return this.$node.hasClass(this.classes.open); - }, - open: function open() { - this.$node.scrollTop(0); - this.$node.addClass(this.classes.open); - }, - close: function close() { - this.$node.attr("aria-expanded", false); - this.$node.removeClass(this.classes.open); - this._removeCursor(); - }, - setLanguageDirection: function setLanguageDirection(dir) { - this.$node.attr("dir", dir); - }, - selectableRelativeToCursor: function selectableRelativeToCursor(delta) { - var $selectables, $oldCursor, oldIndex, newIndex; - $oldCursor = this.getActiveSelectable(); - $selectables = this._getSelectables(); - oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; - newIndex = oldIndex + delta; - newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; - newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; - return newIndex === -1 ? null : $selectables.eq(newIndex); - }, - setCursor: function setCursor($selectable) { - this._removeCursor(); - if ($selectable = $selectable && $selectable.first()) { - $selectable.addClass(this.classes.cursor); - this._ensureVisible($selectable); - } - }, - getSelectableData: function getSelectableData($el) { - return $el && $el.length ? Dataset.extractData($el) : null; - }, - getActiveSelectable: function getActiveSelectable() { - var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); - return $selectable.length ? $selectable : null; - }, - getTopSelectable: function getTopSelectable() { - var $selectable = this._getSelectables().first(); - return $selectable.length ? $selectable : null; - }, - update: function update(query) { - var isValidUpdate = query !== this.query; - if (isValidUpdate) { - this.query = query; - _.each(this.datasets, updateDataset); - } - return isValidUpdate; - function updateDataset(dataset) { - dataset.update(query); - } - }, - empty: function empty() { - _.each(this.datasets, clearDataset); - this.query = null; - this.$node.addClass(this.classes.empty); - function clearDataset(dataset) { - dataset.clear(); - } - }, - destroy: function destroy() { - this.$node.off(".tt"); - this.$node = $("
"); - _.each(this.datasets, destroyDataset); - function destroyDataset(dataset) { - dataset.destroy(); - } - } - }); - return Menu; - }(); - var Status = function() { - "use strict"; - function Status(options) { - this.$el = $("", { - role: "status", - "aria-live": "polite" - }).css({ - position: "absolute", - padding: "0", - border: "0", - height: "1px", - width: "1px", - "margin-bottom": "-1px", - "margin-right": "-1px", - overflow: "hidden", - clip: "rect(0 0 0 0)", - "white-space": "nowrap" - }); - options.$input.after(this.$el); - _.each(options.menu.datasets, _.bind(function(dataset) { - if (dataset.onSync) { - dataset.onSync("rendered", _.bind(this.update, this)); - dataset.onSync("cleared", _.bind(this.cleared, this)); - } - }, this)); - } - _.mixin(Status.prototype, { - update: function update(event, suggestions) { - var length = suggestions.length; - var words; - if (length === 1) { - words = { - result: "result", - is: "is" - }; - } else { - words = { - result: "results", - is: "are" - }; - } - this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); - }, - cleared: function() { - this.$el.text(""); - } - }); - return Status; - }(); - var DefaultMenu = function() { - "use strict"; - var s = Menu.prototype; - function DefaultMenu() { - Menu.apply(this, [].slice.call(arguments, 0)); - } - _.mixin(DefaultMenu.prototype, Menu.prototype, { - open: function open() { - !this._allDatasetsEmpty() && this._show(); - return s.open.apply(this, [].slice.call(arguments, 0)); - }, - close: function close() { - this._hide(); - return s.close.apply(this, [].slice.call(arguments, 0)); - }, - _onRendered: function onRendered() { - if (this._allDatasetsEmpty()) { - this._hide(); - } else { - this.isOpen() && this._show(); - } - return s._onRendered.apply(this, [].slice.call(arguments, 0)); - }, - _onCleared: function onCleared() { - if (this._allDatasetsEmpty()) { - this._hide(); - } else { - this.isOpen() && this._show(); - } - return s._onCleared.apply(this, [].slice.call(arguments, 0)); - }, - setLanguageDirection: function setLanguageDirection(dir) { - this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); - return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); - }, - _hide: function hide() { - this.$node.hide(); - }, - _show: function show() { - this.$node.css("display", "block"); - } - }); - return DefaultMenu; - }(); - var Typeahead = function() { - "use strict"; - function Typeahead(o, www) { - var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; - o = o || {}; - if (!o.input) { - $.error("missing input"); - } - if (!o.menu) { - $.error("missing menu"); - } - if (!o.eventBus) { - $.error("missing event bus"); - } - www.mixin(this); - this.eventBus = o.eventBus; - this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; - this.input = o.input; - this.menu = o.menu; - this.enabled = true; - this.autoselect = !!o.autoselect; - this.active = false; - this.input.hasFocus() && this.activate(); - this.dir = this.input.getLangDir(); - this._hacks(); - this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); - onFocused = c(this, "activate", "open", "_onFocused"); - onBlurred = c(this, "deactivate", "_onBlurred"); - onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); - onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); - onEscKeyed = c(this, "isActive", "_onEscKeyed"); - onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); - onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); - onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); - onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); - onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); - onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); - this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); - } - _.mixin(Typeahead.prototype, { - _hacks: function hacks() { - var $input, $menu; - $input = this.input.$input || $("
"); - $menu = this.menu.$node || $("
"); - $input.on("blur.tt", function($e) { - var active, isActive, hasActive; - active = document.activeElement; - isActive = $menu.is(active); - hasActive = $menu.has(active).length > 0; - if (_.isMsie() && (isActive || hasActive)) { - $e.preventDefault(); - $e.stopImmediatePropagation(); - _.defer(function() { - $input.focus(); - }); - } - }); - $menu.on("mousedown.tt", function($e) { - $e.preventDefault(); - }); - }, - _onSelectableClicked: function onSelectableClicked(type, $el) { - this.select($el); - }, - _onDatasetCleared: function onDatasetCleared() { - this._updateHint(); - }, - _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { - this._updateHint(); - if (this.autoselect) { - var cursorClass = this.selectors.cursor.substr(1); - this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); - } - this.eventBus.trigger("render", suggestions, async, dataset); - }, - _onAsyncRequested: function onAsyncRequested(type, dataset, query) { - this.eventBus.trigger("asyncrequest", query, dataset); - }, - _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { - this.eventBus.trigger("asynccancel", query, dataset); - }, - _onAsyncReceived: function onAsyncReceived(type, dataset, query) { - this.eventBus.trigger("asyncreceive", query, dataset); - }, - _onFocused: function onFocused() { - this._minLengthMet() && this.menu.update(this.input.getQuery()); - }, - _onBlurred: function onBlurred() { - if (this.input.hasQueryChangedSinceLastFocus()) { - this.eventBus.trigger("change", this.input.getQuery()); - } - }, - _onEnterKeyed: function onEnterKeyed(type, $e) { - var $selectable; - if ($selectable = this.menu.getActiveSelectable()) { - if (this.select($selectable)) { - $e.preventDefault(); - $e.stopPropagation(); - } - } else if (this.autoselect) { - if (this.select(this.menu.getTopSelectable())) { - $e.preventDefault(); - $e.stopPropagation(); - } - } - }, - _onTabKeyed: function onTabKeyed(type, $e) { - var $selectable; - if ($selectable = this.menu.getActiveSelectable()) { - this.select($selectable) && $e.preventDefault(); - } else if ($selectable = this.menu.getTopSelectable()) { - this.autocomplete($selectable) && $e.preventDefault(); - } - }, - _onEscKeyed: function onEscKeyed() { - this.close(); - }, - _onUpKeyed: function onUpKeyed() { - this.moveCursor(-1); - }, - _onDownKeyed: function onDownKeyed() { - this.moveCursor(+1); - }, - _onLeftKeyed: function onLeftKeyed() { - if (this.dir === "rtl" && this.input.isCursorAtEnd()) { - this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); - } - }, - _onRightKeyed: function onRightKeyed() { - if (this.dir === "ltr" && this.input.isCursorAtEnd()) { - this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); - } - }, - _onQueryChanged: function onQueryChanged(e, query) { - this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); - }, - _onWhitespaceChanged: function onWhitespaceChanged() { - this._updateHint(); - }, - _onLangDirChanged: function onLangDirChanged(e, dir) { - if (this.dir !== dir) { - this.dir = dir; - this.menu.setLanguageDirection(dir); - } - }, - _openIfActive: function openIfActive() { - this.isActive() && this.open(); - }, - _minLengthMet: function minLengthMet(query) { - query = _.isString(query) ? query : this.input.getQuery() || ""; - return query.length >= this.minLength; - }, - _updateHint: function updateHint() { - var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; - $selectable = this.menu.getTopSelectable(); - data = this.menu.getSelectableData($selectable); - val = this.input.getInputValue(); - if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { - query = Input.normalizeQuery(val); - escapedQuery = _.escapeRegExChars(query); - frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); - match = frontMatchRegEx.exec(data.val); - match && this.input.setHint(val + match[1]); - } else { - this.input.clearHint(); - } - }, - isEnabled: function isEnabled() { - return this.enabled; - }, - enable: function enable() { - this.enabled = true; - }, - disable: function disable() { - this.enabled = false; - }, - isActive: function isActive() { - return this.active; - }, - activate: function activate() { - if (this.isActive()) { - return true; - } else if (!this.isEnabled() || this.eventBus.before("active")) { - return false; - } else { - this.active = true; - this.eventBus.trigger("active"); - return true; - } - }, - deactivate: function deactivate() { - if (!this.isActive()) { - return true; - } else if (this.eventBus.before("idle")) { - return false; - } else { - this.active = false; - this.close(); - this.eventBus.trigger("idle"); - return true; - } - }, - isOpen: function isOpen() { - return this.menu.isOpen(); - }, - open: function open() { - if (!this.isOpen() && !this.eventBus.before("open")) { - this.menu.open(); - this._updateHint(); - this.eventBus.trigger("open"); - } - return this.isOpen(); - }, - close: function close() { - if (this.isOpen() && !this.eventBus.before("close")) { - this.menu.close(); - this.input.clearHint(); - this.input.resetInputValue(); - this.eventBus.trigger("close"); - } - return !this.isOpen(); - }, - setVal: function setVal(val) { - this.input.setQuery(_.toStr(val)); - }, - getVal: function getVal() { - return this.input.getQuery(); - }, - select: function select($selectable) { - var data = this.menu.getSelectableData($selectable); - if (data && !this.eventBus.before("select", data.obj, data.dataset)) { - this.input.setQuery(data.val, true); - this.eventBus.trigger("select", data.obj, data.dataset); - this.close(); - return true; - } - return false; - }, - autocomplete: function autocomplete($selectable) { - var query, data, isValid; - query = this.input.getQuery(); - data = this.menu.getSelectableData($selectable); - isValid = data && query !== data.val; - if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { - this.input.setQuery(data.val); - this.eventBus.trigger("autocomplete", data.obj, data.dataset); - return true; - } - return false; - }, - moveCursor: function moveCursor(delta) { - var query, $candidate, data, suggestion, datasetName, cancelMove, id; - query = this.input.getQuery(); - $candidate = this.menu.selectableRelativeToCursor(delta); - data = this.menu.getSelectableData($candidate); - suggestion = data ? data.obj : null; - datasetName = data ? data.dataset : null; - id = $candidate ? $candidate.attr("id") : null; - this.input.trigger("cursorchange", id); - cancelMove = this._minLengthMet() && this.menu.update(query); - if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { - this.menu.setCursor($candidate); - if (data) { - this.input.setInputValue(data.val); - } else { - this.input.resetInputValue(); - this._updateHint(); - } - this.eventBus.trigger("cursorchange", suggestion, datasetName); - return true; - } - return false; - }, - destroy: function destroy() { - this.input.destroy(); - this.menu.destroy(); - } - }); - return Typeahead; - function c(ctx) { - var methods = [].slice.call(arguments, 1); - return function() { - var args = [].slice.call(arguments); - _.each(methods, function(method) { - return ctx[method].apply(ctx, args); - }); - }; - } - }(); - (function() { - "use strict"; - var old, keys, methods; - old = $.fn.typeahead; - keys = { - www: "tt-www", - attrs: "tt-attrs", - typeahead: "tt-typeahead" - }; - methods = { - initialize: function initialize(o, datasets) { - var www; - datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); - o = o || {}; - www = WWW(o.classNames); - return this.each(attach); - function attach() { - var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; - _.each(datasets, function(d) { - d.highlight = !!o.highlight; - }); - $input = $(this); - $wrapper = $(www.html.wrapper); - $hint = $elOrNull(o.hint); - $menu = $elOrNull(o.menu); - defaultHint = o.hint !== false && !$hint; - defaultMenu = o.menu !== false && !$menu; - defaultHint && ($hint = buildHintFromInput($input, www)); - defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); - $hint && $hint.val(""); - $input = prepInput($input, www); - if (defaultHint || defaultMenu) { - $wrapper.css(www.css.wrapper); - $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); - $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); - } - MenuConstructor = defaultMenu ? DefaultMenu : Menu; - eventBus = new EventBus({ - el: $input - }); - input = new Input({ - hint: $hint, - input: $input - }, www); - menu = new MenuConstructor({ - node: $menu, - datasets: datasets - }, www); - status = new Status({ - $input: $input, - menu: menu - }); - typeahead = new Typeahead({ - input: input, - menu: menu, - eventBus: eventBus, - minLength: o.minLength, - autoselect: o.autoselect - }, www); - $input.data(keys.www, www); - $input.data(keys.typeahead, typeahead); - } - }, - isEnabled: function isEnabled() { - var enabled; - ttEach(this.first(), function(t) { - enabled = t.isEnabled(); - }); - return enabled; - }, - enable: function enable() { - ttEach(this, function(t) { - t.enable(); - }); - return this; - }, - disable: function disable() { - ttEach(this, function(t) { - t.disable(); - }); - return this; - }, - isActive: function isActive() { - var active; - ttEach(this.first(), function(t) { - active = t.isActive(); - }); - return active; - }, - activate: function activate() { - ttEach(this, function(t) { - t.activate(); - }); - return this; - }, - deactivate: function deactivate() { - ttEach(this, function(t) { - t.deactivate(); - }); - return this; - }, - isOpen: function isOpen() { - var open; - ttEach(this.first(), function(t) { - open = t.isOpen(); - }); - return open; - }, - open: function open() { - ttEach(this, function(t) { - t.open(); - }); - return this; - }, - close: function close() { - ttEach(this, function(t) { - t.close(); - }); - return this; - }, - select: function select(el) { - var success = false, $el = $(el); - ttEach(this.first(), function(t) { - success = t.select($el); - }); - return success; - }, - autocomplete: function autocomplete(el) { - var success = false, $el = $(el); - ttEach(this.first(), function(t) { - success = t.autocomplete($el); - }); - return success; - }, - moveCursor: function moveCursoe(delta) { - var success = false; - ttEach(this.first(), function(t) { - success = t.moveCursor(delta); - }); - return success; - }, - val: function val(newVal) { - var query; - if (!arguments.length) { - ttEach(this.first(), function(t) { - query = t.getVal(); - }); - return query; - } else { - ttEach(this, function(t) { - t.setVal(_.toStr(newVal)); - }); - return this; - } - }, - destroy: function destroy() { - ttEach(this, function(typeahead, $input) { - revert($input); - typeahead.destroy(); - }); - return this; - } - }; - $.fn.typeahead = function(method) { - if (methods[method]) { - return methods[method].apply(this, [].slice.call(arguments, 1)); - } else { - return methods.initialize.apply(this, arguments); - } - }; - $.fn.typeahead.noConflict = function noConflict() { - $.fn.typeahead = old; - return this; - }; - function ttEach($els, fn) { - $els.each(function() { - var $input = $(this), typeahead; - (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); - }); - } - function buildHintFromInput($input, www) { - return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ - readonly: true, - required: false - }).removeAttr("id name placeholder").removeClass("required").attr({ - spellcheck: "false", - tabindex: -1 - }); - } - function prepInput($input, www) { - $input.data(keys.attrs, { - dir: $input.attr("dir"), - autocomplete: $input.attr("autocomplete"), - spellcheck: $input.attr("spellcheck"), - style: $input.attr("style") - }); - $input.addClass(www.classes.input).attr({ - spellcheck: false - }); - try { - !$input.attr("dir") && $input.attr("dir", "auto"); - } catch (e) {} - return $input; - } - function getBackgroundStyles($el) { - return { - backgroundAttachment: $el.css("background-attachment"), - backgroundClip: $el.css("background-clip"), - backgroundColor: $el.css("background-color"), - backgroundImage: $el.css("background-image"), - backgroundOrigin: $el.css("background-origin"), - backgroundPosition: $el.css("background-position"), - backgroundRepeat: $el.css("background-repeat"), - backgroundSize: $el.css("background-size") - }; - } - function revert($input) { - var www, $wrapper; - www = $input.data(keys.www); - $wrapper = $input.parent().filter(www.selectors.wrapper); - _.each($input.data(keys.attrs), function(val, key) { - _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); - }); - $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); - if ($wrapper.length) { - $input.detach().insertAfter($wrapper); - $wrapper.remove(); - } - } - function $elOrNull(obj) { - var isValid, $el; - isValid = _.isJQuery(obj) || _.isElement(obj); - $el = isValid ? $(obj).first() : []; - return $el.length ? $el : null; - } - })(); -}); \ No newline at end of file diff --git a/docs/search.json b/docs/search.json deleted file mode 100644 index 2b66ccdb..00000000 --- a/docs/search.json +++ /dev/null @@ -1 +0,0 @@ -{"Typealiases.html#/s:12XCoordinator24AnyNavigationCoordinatora":{"name":"AnyNavigationCoordinator","abstract":"

A type-erased Coordinator (AnyCoordinator) with a UINavigationController as rootViewController.

"},"Typealiases.html#/s:12XCoordinator20AnyTabBarCoordinatora":{"name":"AnyTabBarCoordinator","abstract":"

A type-erased Coordinator (AnyCoordinator) with a UITabBarController as rootViewController.

"},"Typealiases.html#/s:12XCoordinator18AnyViewCoordinatora":{"name":"AnyViewCoordinator","abstract":"

A type-erased Coordinator (AnyCoordinator) with a UIViewController as rootViewController.

"},"Typealiases.html#/s:12XCoordinator26BasicNavigationCoordinatora":{"name":"BasicNavigationCoordinator","abstract":"

A BasicCoordinator with a UINavigationController as its rootViewController.

"},"Typealiases.html#/s:12XCoordinator20BasicViewCoordinatora":{"name":"BasicViewCoordinator","abstract":"

A BasicCoordinator with a UIViewController as its rootViewController.

"},"Typealiases.html#/s:12XCoordinator22BasicTabBarCoordinatora":{"name":"BasicTabBarCoordinator","abstract":"

A BasicCoordinator with a UITabBarController as its rootViewController.

"},"Typealiases.html#/s:12XCoordinator19PresentationHandlera":{"name":"PresentationHandler","abstract":"

The completion handler for transitions.

"},"Typealiases.html#/s:12XCoordinator26ContextPresentationHandlera":{"name":"ContextPresentationHandler","abstract":"

The completion handler for transitions, which also provides the context information about the transition.

"},"Typealiases.html#/s:12XCoordinator20NavigationTransitiona":{"name":"NavigationTransition","abstract":"

NavigationTransition offers transitions that can be used"},"Typealiases.html#/s:12XCoordinator14PageTransitiona":{"name":"PageTransition","abstract":"

PageTransition offers transitions that can be used"},"Typealiases.html#/s:12XCoordinator15SplitTransitiona":{"name":"SplitTransition","abstract":"

SplitTransition offers different transitions common to a UISplitViewController rootViewController.

"},"Typealiases.html#/s:12XCoordinator16TabBarTransitiona":{"name":"TabBarTransition","abstract":"

TabBarTransition offers transitions that can be used"},"Typealiases.html#/s:12XCoordinator9AnyRoutera":{"name":"AnyRouter","abstract":"

Please use StrongRouter, WeakRouter or UnownedRouter instead.

"},"Typealiases.html#/s:12XCoordinator13UnownedRoutera":{"name":"UnownedRouter","abstract":"

An UnownedRouter is an unowned version of a router object to be used in view controllers or view models.

"},"Typealiases.html#/s:12XCoordinator14ViewTransitiona":{"name":"ViewTransition","abstract":"

ViewTransition offers transitions common to any UIViewController rootViewController.

"},"Typealiases.html#/s:12XCoordinator10WeakRoutera":{"name":"WeakRouter","abstract":"

A WeakRouter is a weak version of a router object to be used in view controllers or view models.

"},"Structs/WeakErased.html#/wrappedValue":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held weakly.

","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator10WeakErasedV12wrappedValuexSgvp":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held weakly.

","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator10WeakErasedV_5eraseACyxGqd___xqd__ctcRld__Clufc":{"name":"init(_:erase:)","abstract":"

Create a WeakErased wrapper using an initial value and a closure to create the type-erased object.","parent_name":"WeakErased"},"Structs/WeakErased.html#/s:12XCoordinator10WeakErasedV3set_5eraseyqd___xqd__ctRld__ClF":{"name":"set(_:erase:)","abstract":"

Set a new value by providing a non-type-erased value and a closure to create the type-erased object.

","parent_name":"WeakErased"},"Structs/UnownedErased.html#/wrappedValue":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held unowned.

","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator13UnownedErasedV12wrappedValuexvp":{"name":"wrappedValue","abstract":"

The type-erased or otherwise mapped version of the value being held unowned.

","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator13UnownedErasedV_5eraseACyxGqd___xqd__ctcRld__Clufc":{"name":"init(_:erase:)","abstract":"

Create an UnownedErased wrapper using an initial value and a closure to create the type-erased object.","parent_name":"UnownedErased"},"Structs/UnownedErased.html#/s:12XCoordinator13UnownedErasedV3set_5eraseyqd___xqd__ctRld__ClF":{"name":"set(_:erase:)","abstract":"

Set a new value by providing a non-type-erased value and a closure to create the type-erased object.

","parent_name":"UnownedErased"},"Structs/TransitionOptions.html#/s:12XCoordinator17TransitionOptionsV8animatedSbvp":{"name":"animated","abstract":"

Specifies whether or not the transition should be animated.

","parent_name":"TransitionOptions"},"Structs/TransitionOptions.html#/s:12XCoordinator17TransitionOptionsV8animatedACSb_tcfc":{"name":"init(animated:)","abstract":"

Creates transition options on the basis of whether or not it should be animated.

","parent_name":"TransitionOptions"},"Structs/Transition.html#/s:12XCoordinator10TransitionV14PerformClosurea":{"name":"PerformClosure","abstract":"

Perform is the type of closure used to perform the transition.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV12presentablesSayAA11Presentable_pGvp":{"name":"presentables","abstract":"

The presentables this transition is putting into the view hierarchy. This is especially useful for","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV9animationAA0B9Animation_pSgvp":{"name":"animation","abstract":"

The transition animation this transition is using, i.e. the presentation or dismissal animation","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV12presentables14animationInUse7performACyxGSayAA11Presentable_pG_AA0B9Animation_pSgyx_AA0B7OptionsVyycSgtctcfc":{"name":"init(presentables:animationInUse:perform:)","abstract":"

Create your custom transitions with this initializer.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7perform2on4with10completionyx_AA0B7OptionsVyycSgtF":{"name":"perform(on:with:completion:)","abstract":"

Performs a transition on the given viewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE4push_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"push(_:animation:)","abstract":"

Pushes a presentable on the rootViewController’s navigation stack.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop9animationACyxGAA9AnimationCSg_tFZ":{"name":"pop(animation:)","abstract":"

Pops the topViewController from the rootViewController’s navigation stack.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop2to9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"pop(to:animation:)","abstract":"

Pops viewControllers from the rootViewController’s navigation stack until the specified","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE9popToRoot9animationACyxGAA9AnimationCSg_tFZ":{"name":"popToRoot(animation:)","abstract":"

Pops viewControllers from the rootViewController’s navigation stack until only one viewController","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ":{"name":"set(_:animation:)","abstract":"

Replaces the navigation stack of the rootViewController with the specified presentables.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo20UIPageViewControllerCRbzrlE3set__9directionACyxGAA11Presentable_p_AaI_pSgSo0cdE19NavigationDirectionVtFZ":{"name":"set(_:_:direction:)","abstract":"

Sets the current page(s) of the rootViewController. Make sure to set","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ":{"name":"set(_:animation:)","abstract":"

Transition to set the tabs of the rootViewController with an optional custom animation.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"select(_:animation:)","abstract":"

Transition to select a tab with an optional custom animation.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select5index9animationACyxGSi_AA9AnimationCSgtFZ":{"name":"select(index:animation:)","abstract":"

Transition to select a tab with an optional custom animation.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV4showyACyxGAA11Presentable_pFZ":{"name":"show(_:)","abstract":"

Shows a viewController by calling show on the rootViewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV10showDetailyACyxGAA11Presentable_pFZ":{"name":"showDetail(_:)","abstract":"

Shows a detail viewController by calling showDetail on the rootViewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV13presentOnRoot_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"presentOnRoot(_:animation:)","abstract":"

Transition to present the given presentable on the rootViewController.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7present_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ":{"name":"present(_:animation:)","abstract":"

Transition to present the given presentable. It uses the rootViewController’s presentedViewController,","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV5embed_2inACyxGAA11Presentable_p_AA9Container_ptFZ":{"name":"embed(_:in:)","abstract":"

Transition to embed the given presentable in a specific container (i.e. a view or viewController).

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV13dismissToRoot9animationACyxGAA9AnimationCSg_tFZ":{"name":"dismissToRoot(animation:)","abstract":"

Transition to call dismiss on the rootViewController. Also take a look at the dismiss transition,","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7dismiss9animationACyxGAA9AnimationCSg_tFZ":{"name":"dismiss(animation:)","abstract":"

Transition to call dismiss on the rootViewController’s presentedViewController, if present.","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV4noneACyxGyFZ":{"name":"none()","abstract":"

No transition at all. May be useful for testing or debugging purposes, or to ignore specific","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ":{"name":"multiple(_:)","abstract":"

With this transition you can chain multiple transitions of the same type together.

","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ":{"name":"route(_:on:)","abstract":"

Use this transition to trigger a route on another coordinator. TransitionOptions and","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ":{"name":"trigger(_:on:)","abstract":"

Use this transition to trigger a route on another router. TransitionOptions and","parent_name":"Transition"},"Structs/Transition.html#/s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ":{"name":"perform(_:on:)","abstract":"

Performs a transition on a different viewController than the coordinator’s rootViewController.

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

This struct represents the common implementation of the TransitionProtocol."},"Structs/TransitionOptions.html":{"name":"TransitionOptions","abstract":"

TransitionOptions specifies transition customization points defined at the point of triggering a transition.

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

UnownedErased is a property wrapper to hold objects with an unowned reference when using type-erasure.

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

WeakErased is a property wrapper to hold objects with a weak reference when using type-erasure.

"},"Protocols/TransitionProtocol.html#/s:12XCoordinator18TransitionProtocolP18RootViewControllerQa":{"name":"RootViewController","abstract":"

The type of the rootViewController that can execute the transition.

","parent_name":"TransitionProtocol"},"Protocols/TransitionProtocol.html#/s:12XCoordinator18TransitionProtocolP7perform2on4with10completiony18RootViewControllerQz_AA0B7OptionsVyycSgtF":{"name":"perform(on:with:completion:)","abstract":"

Performs a transition on the given viewController.

","parent_name":"TransitionProtocol"},"Protocols/TransitionProtocol.html#/s:12XCoordinator18TransitionProtocolP8multipleyxSayxGFZ":{"name":"multiple(_:)","abstract":"

Creates a compound transition by chaining multiple transitions together.

","parent_name":"TransitionProtocol"},"Protocols/TransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP0B4TypeQa":{"name":"TransitionType","abstract":"

The type of transitions that can be executed on the rootViewController.

","parent_name":"TransitionPerformer"},"Protocols/TransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","abstract":"

The rootViewController on which transitions are performed.

","parent_name":"TransitionPerformer"},"Protocols/TransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP07performB0_4with10completiony0B4TypeQz_AA0B7OptionsVyycSgtF":{"name":"performTransition(_:with:completion:)","abstract":"

Perform a transition.

","parent_name":"TransitionPerformer"},"Protocols/PercentDrivenInteractionController.html#/s:12XCoordinator34PercentDrivenInteractionControllerP6updateyy12CoreGraphics7CGFloatVF":{"name":"update(_:)","abstract":"

Updates the animation to be at the specified progress.

","parent_name":"PercentDrivenInteractionController"},"Protocols/PercentDrivenInteractionController.html#/s:12XCoordinator34PercentDrivenInteractionControllerP6cancelyyF":{"name":"cancel()","abstract":"

Cancels the animation, e.g. by cleaning up and reversing any progress made.

","parent_name":"PercentDrivenInteractionController"},"Protocols/PercentDrivenInteractionController.html#/s:12XCoordinator34PercentDrivenInteractionControllerP6finishyyF":{"name":"finish()","abstract":"

Finishes the animation by completing it from the current progress onwards.

","parent_name":"PercentDrivenInteractionController"},"Protocols/TransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP21interactionControllerAA024PercentDrivenInteractionE0_pSgvp":{"name":"interactionController","abstract":"

The interaction controller of an animation.","parent_name":"TransitionAnimation"},"Protocols/TransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP5startyyF":{"name":"start()","abstract":"

Starts the animation by possibly creating a new interaction controller.

","parent_name":"TransitionAnimation"},"Protocols/TransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP7cleanupyyF":{"name":"cleanup()","abstract":"

Cleans up a TransitionAnimation after an animation has been completed, e.g. by deleting an interaction controller.

","parent_name":"TransitionAnimation"},"Protocols/Router.html#/s:12XCoordinator6RouterP9RouteTypeQa":{"name":"RouteType","abstract":"

RouteType defines which routes can be triggered in a certain Router implementation.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","abstract":"

Triggers routes and returns context in completion-handler.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE7trigger_4withy9RouteTypeQz_AA17TransitionOptionsVtF":{"name":"trigger(_:with:)","abstract":"

Triggers the specified route without the need of specifying a completion handler.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE7trigger_10completiony9RouteTypeQz_yycSgtF":{"name":"trigger(_:completion:)","abstract":"

Triggers the specified route with default transition options enabling the animation of the transition.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE7trigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyycSgtF":{"name":"trigger(_:with:completion:)","abstract":"

Triggers the specified route by performing a transition.

","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE06strongB0AA06StrongB0Cy9RouteTypeQzGvp":{"name":"strongRouter","abstract":"

Creates a StrongRouter object from the given router to abstract from concrete implementations","parent_name":"Router"},"Protocols/Router.html#/s:12XCoordinator6RouterPAAE6router3forAA06StrongB0Cyqd__GSgqd___tAA5RouteRd__lF":{"name":"router(for:)","abstract":"

Returns a router for the specified route, if possible.

","parent_name":"Router"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","abstract":"

The viewController of the Presentable.

","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP6router3forAA12StrongRouterCyqd__GSgqd___tAA5RouteRd__lF":{"name":"router(for:)","abstract":"

This method can be used to retrieve whether the presentable can trigger a specific route","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","abstract":"

This method is called whenever a Presentable is shown to the user.","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","abstract":"

This method is used to register a parent coordinator to a child coordinator.

","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","abstract":"

This method gets called when the transition of a child coordinator is being reported to its parent.

","parent_name":"Presentable"},"Protocols/Presentable.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","abstract":"

Sets the presentable as the root of the window.

","parent_name":"Presentable"},"Protocols/TransitionContext.html#/s:12XCoordinator17TransitionContextP12presentablesSayAA11Presentable_pGvp":{"name":"presentables","abstract":"

The presentables being shown to the user by the transition.

","parent_name":"TransitionContext"},"Protocols/TransitionContext.html#/s:12XCoordinator17TransitionContextP9animationAA0B9Animation_pSgvp":{"name":"animation","abstract":"

The transition animation directly used in the transition, if applicable.

","parent_name":"TransitionContext"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP17prepareTransition3for0D4TypeQz05RouteF0Qz_tF":{"name":"prepareTransition(for:)","abstract":"

This method prepares transitions for routes.","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP8addChildyyAA11Presentable_pF":{"name":"addChild(_:)","abstract":"

This method adds a child to a coordinator’s children.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP11removeChildyyAA11Presentable_pF":{"name":"removeChild(_:)","abstract":"

This method removes a child to a coordinator’s children.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorP22removeChildrenIfNeededyyF":{"name":"removeChildrenIfNeeded()","abstract":"

This method removes all children that are no longer in the view hierarchy.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAAE18RootViewControllera":{"name":"RootViewController","abstract":"

Shortcut for Coordinator.TransitionType.RootViewController

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAAE14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","abstract":"

A Coordinator uses its rootViewController as viewController.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE10weakRouterAA10WeakErasedVyAA06StrongD0Cy9RouteTypeQzGGvp":{"name":"weakRouter","abstract":"

Creates a WeakRouter object from the given router to abstract from concrete implementations","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE13unownedRouterAA13UnownedErasedVyAA06StrongD0Cy9RouteTypeQzGGvp":{"name":"unownedRouter","abstract":"

Creates an UnownedRouter object from the given router to abstract from concrete implementations","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE03anyB0AA03AnyB0Cy9RouteTypeQz010TransitionF0QzGvp":{"name":"anyCoordinator","abstract":"

Creates an AnyCoordinator based on the current coordinator.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE5chain6routes14TransitionTypeQzSay05RouteF0QzG_tF":{"name":"chain(routes:)","abstract":"

With chain(routes:) different routes can be chained together to form a combined transition.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator19TransitionPerformerP07performB0_4with10completiony0B4TypeQz_AA0B7OptionsVyycSgtF":{"name":"performTransition(_:with:completion:)","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_qd_0_tSo16UIViewControllerCRbd__STRd_0_AG0eG0RtzAA0F0_p7ElementRtd_0_r0_lF":{"name":"deepLink(_:_:)","abstract":"

Deep-Linking can be used to chain routes of different types together.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE8deepLinkyAA10TransitionVyqd__G9RouteTypeQz_AA0F0_pdtSo16UIViewControllerCRbd__AG0eG0RtzlF":{"name":"deepLink(_:_:)","abstract":"

Deep-Linking can be used to chain routes of different types together.

","parent_name":"Coordinator"},"Protocols/Coordinator.html#/s:12XCoordinator11CoordinatorPAARlzCrlE12registerPeek3for5routeAA10TransitionVyqd__GAA9Container_p_9RouteTypeQztSo16UIViewControllerCRbd__AI0gJ0RtzlF":{"name":"registerPeek(for:route:)","abstract":"

Use this transition to register 3D Touch Peek and Pop functionality.

","parent_name":"Coordinator"},"Protocols/Container.html#/s:12XCoordinator9ContainerP4viewSo6UIViewCSgvp":{"name":"view","abstract":"

The view of the Container.

","parent_name":"Container"},"Protocols/Container.html#/s:12XCoordinator9ContainerP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","abstract":"

The viewController of the Container.

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

Container abstracts away from the difference of UIView and UIViewController

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

Coordinator is the protocol every coordinator conforms to.

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

TransitionContext provides context information about transitions.

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

Presentable represents all objects that can be presented (i.e. shown) to the user.

"},"Protocols.html#/s:12XCoordinator5RouteP":{"name":"Route","abstract":"

This is the protocol your route types need to conform to.

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

The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator.

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

TransitionAnimation aims to provide a common protocol for any type of transition animation used in an Animation object.

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

PercentDrivenInteractionController is used for interaction controller types that can updated based on a percentage of completion."},"Protocols/TransitionPerformer.html":{"name":"TransitionPerformer","abstract":"

The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator."},"Protocols/TransitionProtocol.html":{"name":"TransitionProtocol","abstract":"

TransitionProtocol is used to abstract any concrete transition implementation.

"},"Extensions/UIView.html#/s:12XCoordinator9ContainerP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"UIView"},"Extensions/UIView.html#/s:12XCoordinator9ContainerP4viewSo6UIViewCSgvp":{"name":"view","parent_name":"UIView"},"Extensions/UIViewController.html#/s:12XCoordinator9ContainerP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"UIViewController"},"Extensions/UIViewController.html":{"name":"UIViewController"},"Extensions/UIView.html":{"name":"UIView"},"Classes/ViewCoordinator.html#/s:12XCoordinator15ViewCoordinatorC04rootB10Controller12initialRouteACyxGSo06UIViewE0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","parent_name":"ViewCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC8delegateSo05UITabC18ControllerDelegate_pSgvp":{"name":"delegate","abstract":"

Use this delegate to get informed about tabbarController-related notifications and delegate methods","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController12initialRouteACyxGSo05UITabcG0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabsACyxGSo05UITabcG0C_SayAA11Presentable_pGtcfc":{"name":"init(rootViewController:tabs:)","abstract":"

Creates a TabBarCoordinator with a specified set of tabs.

","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabs6selectACyxGSo05UITabcG0C_SayAA11Presentable_pGAaJ_ptcfc":{"name":"init(rootViewController:tabs:select:)","abstract":"

Creates a TabBarCoordinator with a specified set of tabs and selects a specific presentable.

","parent_name":"TabBarCoordinator"},"Classes/TabBarCoordinator.html#/s:12XCoordinator17TabBarCoordinatorC18rootViewController4tabs6selectACyxGSo05UITabcG0C_SayAA11Presentable_pGSitcfc":{"name":"init(rootViewController:tabs:select:)","abstract":"

Creates a TabBarCoordinator with a specified set of tabs and selects a presentable at a given index.

","parent_name":"TabBarCoordinator"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:interactionControllerForAnimationController:":{"name":"tabBarController(_:interactionControllerFor:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:animationControllerForTransitionFromViewController:toViewController:":{"name":"tabBarController(_:animationControllerForTransitionFrom:to:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:didSelectViewController:":{"name":"tabBarController(_:didSelect:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:shouldSelectViewController:":{"name":"tabBarController(_:shouldSelect:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:willBeginCustomizingViewControllers:":{"name":"tabBarController(_:willBeginCustomizing:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:didEndCustomizingViewControllers:changed:":{"name":"tabBarController(_:didEndCustomizing:changed:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/TabBarAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)TabBarAnimationDelegate(im)tabBarController:willEndCustomizingViewControllers:changed:":{"name":"tabBarController(_:willEndCustomizing:changed:)","abstract":"

See UITabBarControllerDelegate","parent_name":"TabBarAnimationDelegate"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterCyACyxGqd__c9RouteTypeQyd__RszAA0C0Rd__lufc":{"name":"init(_:)","abstract":"

Creates a StrongRouter object from a given router.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC14contextTrigger_4with10completionyx_AA17TransitionOptionsVyAA0H7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","abstract":"

Triggers routes and provides the transition context in the completion-handler.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC7trigger_4with10completionyx_AA17TransitionOptionsVyycSgtF":{"name":"trigger(_:with:completion:)","abstract":"

Triggers the specified route by performing a transition.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC9presented4fromyAA11Presentable_pSg_tF":{"name":"presented(from:)","abstract":"

This method is called whenever a Presentable is shown to the user.","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator12StrongRouterC14viewControllerSo06UIViewE0CSgvp":{"name":"viewController","abstract":"

The viewController of the Presentable.

","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"StrongRouter"},"Classes/StrongRouter.html#/s:12XCoordinator11PresentableP24childTransitionCompletedyyF":{"name":"childTransitionCompleted()","parent_name":"StrongRouter"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP21interactionControllerAA024PercentDrivenInteractionE0_pSgvp":{"name":"interactionController","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator25StaticTransitionAnimationC8duration07performD0ACSd_ySo36UIViewControllerContextTransitioning_pctcfc":{"name":"init(duration:performAnimation:)","abstract":"

Creates a StaticTransitionAnimation to be used as presentation or dismissal transition animation in","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)StaticTransitionAnimation(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)StaticTransitionAnimation(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP5startyyF":{"name":"start()","parent_name":"StaticTransitionAnimation"},"Classes/StaticTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP7cleanupyyF":{"name":"cleanup()","parent_name":"StaticTransitionAnimation"},"Classes/SplitCoordinator.html#/s:12XCoordinator16SplitCoordinatorC18rootViewController12initialRouteACyxGSo07UISpliteF0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","parent_name":"SplitCoordinator"},"Classes/SplitCoordinator.html#/s:12XCoordinator16SplitCoordinatorC18rootViewController6master6detailACyxGSo07UISpliteF0C_AA11Presentable_pAaJ_pSgtcfc":{"name":"init(rootViewController:master:detail:)","abstract":"

Creates a SplitCoordinator and sets the specified presentables as the rootViewController’s","parent_name":"SplitCoordinator"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC6parentAA13UnownedErasedVyAA06StrongC0CyxGGvp":{"name":"parent","abstract":"

A type-erased Router object of the parent router.

","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC14viewControllerSo06UIViewE0CSgvp":{"name":"viewController","abstract":"

The viewController used in transitions, e.g. when pushing, presenting","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC14viewController6parent3mapACyxq_GSo06UIViewE0C_AA13UnownedErasedVyAA06StrongC0CyxGGxq_cSgtcfc":{"name":"init(viewController:parent:map:)","abstract":"

Creates a RedirectionRouter with a certain viewController, a parent router","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator6RouterP14contextTrigger_4with10completiony9RouteTypeQz_AA17TransitionOptionsVyAA0I7Context_pcSgtF":{"name":"contextTrigger(_:with:completion:)","parent_name":"RedirectionRouter"},"Classes/RedirectionRouter.html#/s:12XCoordinator17RedirectionRouterC16mapToParentRouteyxq_F":{"name":"mapToParentRoute(_:)","abstract":"

Map RouteType to ParentRoute.

","parent_name":"RedirectionRouter"},"Classes/PageCoordinatorDataSource.html#/s:12XCoordinator25PageCoordinatorDataSourceC5pagesSaySo16UIViewControllerCGvp":{"name":"pages","abstract":"

The pages of the UIPageViewController in sequential order.

","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/s:12XCoordinator25PageCoordinatorDataSourceC4loopSbvp":{"name":"loop","abstract":"

Whether or not the pages of the UIPageViewController should be in a loop,","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/s:12XCoordinator25PageCoordinatorDataSourceC5pages4loopACSaySo16UIViewControllerCG_Sbtcfc":{"name":"init(pages:loop:)","abstract":"

Creates a PageCoordinatorDataSource with the given pages and looping capabilities.

","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)presentationCountForPageViewController:":{"name":"presentationCount(for:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)presentationIndexForPageViewController:":{"name":"presentationIndex(for:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)pageViewController:viewControllerBeforeViewController:":{"name":"pageViewController(_:viewControllerBefore:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinatorDataSource.html#/c:@M@XCoordinator@objc(cs)PageCoordinatorDataSource(im)pageViewController:viewControllerAfterViewController:":{"name":"pageViewController(_:viewControllerAfter:)","abstract":"

See UIPageViewControllerDataSource","parent_name":"PageCoordinatorDataSource"},"Classes/PageCoordinator.html#/s:12XCoordinator15PageCoordinatorC10dataSourceSo024UIPageViewControllerDataE0_pvp":{"name":"dataSource","abstract":"

The dataSource of the rootViewController.

","parent_name":"PageCoordinator"},"Classes/PageCoordinator.html#/s:12XCoordinator15PageCoordinatorC18rootViewController5pages4loop3set9directionACyxGSo06UIPageeF0C_SayAA11Presentable_pGSbAaL_pSgSo0keF19NavigationDirectionVtcfc":{"name":"init(rootViewController:pages:loop:set:direction:)","abstract":"

Creates a PageCoordinator with several sequential (potentially looping) pages.

","parent_name":"PageCoordinator"},"Classes/PageCoordinator.html#/s:12XCoordinator15PageCoordinatorC18rootViewController10dataSource3set9directionACyxGSo06UIPageeF0C_So0kef4DataH0_pAA11Presentable_pSo0keF19NavigationDirectionVtcfc":{"name":"init(rootViewController:dataSource:set:direction:)","abstract":"

Creates a PageCoordinator with a custom dataSource.","parent_name":"PageCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC17animationDelegateAA0b9AnimationE0Cvp":{"name":"animationDelegate","abstract":"

The animation delegate controlling the rootViewController’s transition animations.","parent_name":"NavigationCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC8delegateSo30UINavigationControllerDelegate_pSgvp":{"name":"delegate","abstract":"

This represents a fallback-delegate to be notified about navigation controller events.","parent_name":"NavigationCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC18rootViewController12initialRouteACyxGSo012UINavigationF0C_xSgtcfc":{"name":"init(rootViewController:initialRoute:)","abstract":"

Creates a NavigationCoordinator and optionally triggers an initial route.

","parent_name":"NavigationCoordinator"},"Classes/NavigationCoordinator.html#/s:12XCoordinator21NavigationCoordinatorC18rootViewController0D0ACyxGSo012UINavigationF0C_AA11Presentable_ptcfc":{"name":"init(rootViewController:root:)","abstract":"

Creates a NavigationCoordinator and pushes a presentable onto the navigation stack right away.

","parent_name":"NavigationCoordinator"},"Classes/NavigationAnimationDelegate.html#/s:12XCoordinator27NavigationAnimationDelegateC17velocityThreshold12CoreGraphics7CGFloatVvp":{"name":"velocityThreshold","abstract":"

The velocity threshold needed for the interactive pop transition to succeed

","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/s:12XCoordinator27NavigationAnimationDelegateC27transitionProgressThreshold12CoreGraphics7CGFloatVvp":{"name":"transitionProgressThreshold","abstract":"

The transition progress threshold for the interactive pop transition to succeed

","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:interactionControllerForAnimationController:":{"name":"navigationController(_:interactionControllerFor:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:animationControllerForOperation:fromViewController:toViewController:":{"name":"navigationController(_:animationControllerFor:from:to:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:didShowViewController:animated:":{"name":"navigationController(_:didShow:animated:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)navigationController:willShowViewController:animated:":{"name":"navigationController(_:willShow:animated:)","abstract":"

See UINavigationControllerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)gestureRecognizerShouldBegin:":{"name":"gestureRecognizerShouldBegin(_:)","abstract":"

See UIGestureRecognizerDelegate documentation","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/c:@CM@XCoordinator@objc(cs)NavigationAnimationDelegate(im)handleInteractivePopGestureRecognizer:":{"name":"handleInteractivePopGestureRecognizer(_:)","abstract":"

This method handles changes of the navigation controller’s interactivePopGestureRecognizer.

","parent_name":"NavigationAnimationDelegate"},"Classes/NavigationAnimationDelegate.html#/s:12XCoordinator27NavigationAnimationDelegateC25setupPopGestureRecognizer3forySo22UINavigationControllerC_tF":{"name":"setupPopGestureRecognizer(for:)","abstract":"

This method sets up the interactivePopGestureRecognizer of the navigation controller","parent_name":"NavigationAnimationDelegate"},"Classes/InterruptibleTransitionAnimation.html#/s:12XCoordinator32InterruptibleTransitionAnimationC8duration16generateAnimator0F21InteractionControllerACSd_So25UIViewImplicitlyAnimating_pSo0jI20ContextTransitioning_pcAA013PercentDrivenhI0_pSgyctcfc":{"name":"init(duration:generateAnimator:generateInteractionController:)","abstract":"

Creates an interruptible transition animation based on duration, an animator generator closure","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/s:12XCoordinator32InterruptibleTransitionAnimationC8duration16generateAnimatorACSd_So25UIViewImplicitlyAnimating_pSo0H30ControllerContextTransitioning_pctcfc":{"name":"init(duration:generateAnimator:)","abstract":"

Creates an interruptible transition animation based on duration and an animator generator closure.

","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/s:12XCoordinator32InterruptibleTransitionAnimationC08generateB8Animator5usingSo25UIViewImplicitlyAnimating_pSo0H30ControllerContextTransitioning_p_tF":{"name":"generateInterruptibleAnimator(using:)","abstract":"

Generates an interruptible animator based on the transitionContext.","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InterruptibleTransitionAnimation(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InterruptibleTransitionAnimation"},"Classes/InterruptibleTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InterruptibleTransitionAnimation(im)interruptibleAnimatorForTransition:":{"name":"interruptibleAnimator(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InterruptibleTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator19TransitionAnimationP21interactionControllerAA024PercentDrivenInteractionE0_pSgvp":{"name":"interactionController","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC8duration10transition29generateInteractionControllerACSd_ySo06UIViewI20ContextTransitioning_pcAA013PercentDrivenhI0_pSgyctcfc":{"name":"init(duration:transition:generateInteractionController:)","abstract":"

Creates an InteractiveTransitionAnimation with a duration, an animation closure and a closure to","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC8duration10transitionACSd_ySo36UIViewControllerContextTransitioning_pctcfc":{"name":"init(duration:transition:)","abstract":"

Convenience initializer for init(duration:transition:generateInteractionController:).","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC010transitionD029generateInteractionControllerAcA06StaticcD0C_AA013PercentDrivengH0_pSgyctcfc":{"name":"init(transitionAnimation:generateInteractionController:)","abstract":"

Convenience initializer for init(duration:transition:generateInteractionController:).","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC010transitionD0AcA06StaticcD0C_tcfc":{"name":"init(transitionAnimation:)","abstract":"

Convenience initializer for init(duration:transition:).","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InteractiveTransitionAnimation(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/c:@M@XCoordinator@objc(cs)InteractiveTransitionAnimation(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

See UIViewControllerAnimatedTransitioning","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC29generateInteractionControllerAA013PercentDrivenfG0_pSgyF":{"name":"generateInteractionController()","abstract":"

This method is used to generate an applicable interaction controller.

","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC5startyyF":{"name":"start()","abstract":"

Starts the transition animation by generating an interaction controller.

","parent_name":"InteractiveTransitionAnimation"},"Classes/InteractiveTransitionAnimation.html#/s:12XCoordinator30InteractiveTransitionAnimationC7cleanupyyF":{"name":"cleanup()","abstract":"

Ends the transition animation by deleting the interaction controller.

","parent_name":"InteractiveTransitionAnimation"},"Classes/BasicCoordinator/InitialLoadingType.html#/s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO11immediatelyyAEyxq__GAGmAA5RouteRzAA18TransitionProtocolR_r0_lF":{"name":"immediately","abstract":"

The initial route is triggered before the coordinator is made visible (i.e. on initialization).

","parent_name":"InitialLoadingType"},"Classes/BasicCoordinator/InitialLoadingType.html#/s:12XCoordinator16BasicCoordinatorC18InitialLoadingTypeO9presentedyAEyxq__GAGmAA5RouteRzAA18TransitionProtocolR_r0_lF":{"name":"presented","abstract":"

The initial route is triggered after the coordinator is made visible.

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

InitialLoadingType differentiates between different points in time when the initital route is to","parent_name":"BasicCoordinator"},"Classes/BasicCoordinator.html#/s:12XCoordinator16BasicCoordinatorC18rootViewController12initialRoute0G11LoadingType17prepareTransitionACyxq_G04RooteF0Qy__xSgAC07InitialiJ0Oyxq__Gq_xcSgtcfc":{"name":"init(rootViewController:initialRoute:initialLoadingType:prepareTransition:)","abstract":"

Creates a BasicCoordinator.

","parent_name":"BasicCoordinator"},"Classes/BasicCoordinator.html#/s:12XCoordinator16BasicCoordinatorC9presented4fromyAA11Presentable_pSg_tF":{"name":"presented(from:)","abstract":"

This method is called whenever the BasicCoordinator is shown to the user.

","parent_name":"BasicCoordinator"},"Classes/BasicCoordinator.html#/s:12XCoordinator16BasicCoordinatorC17prepareTransition3forq_x_tF":{"name":"prepareTransition(for:)","parent_name":"BasicCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC8childrenSayAA11Presentable_pGvp":{"name":"children","abstract":"

The child coordinators that are currently in the view hierarchy.","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC18rootViewController12initialRouteACyxq_G04RooteF0Qy__xSgtcfc":{"name":"init(rootViewController:initialRoute:)","abstract":"

This initializer trigger a route before the coordinator is made visible.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC18rootViewController17initialTransitionACyxq_G04RooteF0Qy__q_Sgtcfc":{"name":"init(rootViewController:initialTransition:)","abstract":"

This initializer performs a transition before the coordinator is made visible.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11CoordinatorP22removeChildrenIfNeededyyF":{"name":"removeChildrenIfNeeded()","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11CoordinatorP8addChildyyAA11Presentable_pF":{"name":"addChild(_:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11CoordinatorP11removeChildyyAA11Presentable_pF":{"name":"removeChild(_:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC17prepareTransition3forq_x_tF":{"name":"prepareTransition(for:)","abstract":"

This method prepares transitions for routes.","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC18RootViewControllera":{"name":"RootViewController","abstract":"

Shortcut for BaseCoordinator.TransitionType.RootViewController

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy7handler10completionyx_qd__yqd___AA0F9Animation_pSgyXEtcyycSgtSo19UIGestureRecognizerCRbd__lF":{"name":"registerInteractiveTransition(for:triggeredBy:handler:completion:)","abstract":"

Register an interactive transition triggered by a gesture recognizer.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC29registerInteractiveTransition3for11triggeredBy8progress12shouldFinish10completionyx_qd__12CoreGraphics7CGFloatVqd__cSbqd__cyycSgtSo19UIGestureRecognizerCRbd__lF":{"name":"registerInteractiveTransition(for:triggeredBy:progress:shouldFinish:completion:)","abstract":"

Register an interactive transition triggered by a gesture recognizer.

","parent_name":"BaseCoordinator"},"Classes/BaseCoordinator.html#/s:12XCoordinator15BaseCoordinatorC32unregisterInteractiveTransitions11triggeredByySo19UIGestureRecognizerC_tF":{"name":"unregisterInteractiveTransitions(triggeredBy:)","abstract":"

Unregisters a previously registered interactive transition.

","parent_name":"BaseCoordinator"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"AnyTransitionPerformer"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","parent_name":"AnyTransitionPerformer"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"AnyTransitionPerformer"},"Classes/AnyTransitionPerformer.html#/s:12XCoordinator19TransitionPerformerP07performB0_4with10completiony0B4TypeQz_AA0B7OptionsVyycSgtF":{"name":"performTransition(_:with:completion:)","parent_name":"AnyTransitionPerformer"},"Classes/AnyCoordinator.html#/s:12XCoordinator14AnyCoordinatorCyACyxq_Gqd__c9RouteTypeQyd__Rsz010TransitionE0Qyd__Rs_AA0C0Rd__lufc":{"name":"init(_:)","abstract":"

Creates a type-erased Coordinator for a specific coordinator.

","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator19TransitionPerformerP18rootViewController0B4Type_04RooteF0QZvp":{"name":"rootViewController","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP14viewControllerSo06UIViewD0CSgvp":{"name":"viewController","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator14AnyCoordinatorC17prepareTransition3forq_x_tF":{"name":"prepareTransition(for:)","abstract":"

Prepare and return transitions for a given route.

","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP9presented4fromyAaB_pSg_tF":{"name":"presented(from:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP14registerParentyyAaB_XlF":{"name":"registerParent(_:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11PresentableP7setRoot3forySo8UIWindowC_tF":{"name":"setRoot(for:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11CoordinatorP8addChildyyAA11Presentable_pF":{"name":"addChild(_:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11CoordinatorP11removeChildyyAA11Presentable_pF":{"name":"removeChild(_:)","parent_name":"AnyCoordinator"},"Classes/AnyCoordinator.html#/s:12XCoordinator11CoordinatorP22removeChildrenIfNeededyyF":{"name":"removeChildrenIfNeeded()","parent_name":"AnyCoordinator"},"Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ":{"name":"default","abstract":"

Use Animation.default to override currently set animations","parent_name":"Animation"},"Classes/Animation.html#/s:12XCoordinator9AnimationC012presentationB0AA010TransitionB0_pSgvp":{"name":"presentationAnimation","abstract":"

The transition animation performed when transitioning to a presentable.

","parent_name":"Animation"},"Classes/Animation.html#/s:12XCoordinator9AnimationC09dismissalB0AA010TransitionB0_pSgvp":{"name":"dismissalAnimation","abstract":"

The transition animation performed when transitioning away from a presentable.

","parent_name":"Animation"},"Classes/Animation.html#/s:12XCoordinator9AnimationC12presentation9dismissalAcA010TransitionB0_pSg_AGtcfc":{"name":"init(presentation:dismissal:)","abstract":"

Creates an Animation object containing a presentation and a dismissal animation.

","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)animationControllerForPresentedController:presentingController:sourceController:":{"name":"animationController(forPresented:presenting:source:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)animationControllerForDismissedController:":{"name":"animationController(forDismissed:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)interactionControllerForPresentation:":{"name":"interactionControllerForPresentation(using:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html#/c:@CM@XCoordinator@objc(cs)Animation(im)interactionControllerForDismissal:":{"name":"interactionControllerForDismissal(using:)","abstract":"

See UIViewControllerTransitioningDelegate","parent_name":"Animation"},"Classes/Animation.html":{"name":"Animation","abstract":"

Animation is used to set presentation and dismissal animations for presentables.

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

AnyCoordinator is a type-erased Coordinator (RouteType & TransitionType) and"},"Classes/AnyTransitionPerformer.html":{"name":"AnyTransitionPerformer","abstract":"

AnyTransitionPerformer can be used as an abstraction from a specific TransitionPerformer implementation"},"Classes/BaseCoordinator.html":{"name":"BaseCoordinator","abstract":"

BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator.

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

BasicCoordinator is a coordinator class that can be used without subclassing.

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

InteractiveTransitionAnimation provides a simple interface to create interactive transition animations.

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

Use InterruptibleTransitionAnimation to define interactive transitions based on the"},"Classes/NavigationAnimationDelegate.html":{"name":"NavigationAnimationDelegate","abstract":"

NavigationAnimationDelegate is used as the delegate of a NavigationCoordinator’s rootViewController"},"Classes/NavigationCoordinator.html":{"name":"NavigationCoordinator","abstract":"

NavigationCoordinator acts as a base class for custom coordinators with a UINavigationController"},"Classes/PageCoordinator.html":{"name":"PageCoordinator","abstract":"

PageCoordinator provides a base class for your custom coordinator with a UIPageViewController rootViewController.

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

PageCoordinatorDataSource is a"},"Classes/RedirectionRouter.html":{"name":"RedirectionRouter","abstract":"

RedirectionRouters can be used to extract routes into different route types."},"Classes/SplitCoordinator.html":{"name":"SplitCoordinator","abstract":"

SplitCoordinator can be used as a basis for a coordinator with a rootViewController of type"},"Classes/StaticTransitionAnimation.html":{"name":"StaticTransitionAnimation","abstract":"

StaticTransitionAnimation can be used to realize static transition animations.

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

StrongRouter is a type-erasure of a given Router object and, therefore, can be used as an abstraction from a specific Router"},"Classes/TabBarAnimationDelegate.html":{"name":"TabBarAnimationDelegate","abstract":"

TabBarAnimationDelegate is used as the delegate of a TabBarCoordinator’s rootViewController"},"Classes/TabBarCoordinator.html":{"name":"TabBarCoordinator","abstract":"

Use a TabBarCoordinator to coordinate a flow where a UITabbarController serves as a rootViewController."},"Classes/ViewCoordinator.html":{"name":"ViewCoordinator","abstract":"

ViewCoordinator is a base class for custom coordinators with a UIViewController rootViewController.

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

The following classes 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.

"},"Typealiases.html":{"name":"Type Aliases","abstract":"

The following type aliases are available globally.

"}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json deleted file mode 100644 index efe446d6..00000000 --- a/docs/undocumented.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "warnings": [ - - ], - "source_directory": "/Users/pauljohanneskraft/Documents/QuickBirdStudios/Frameworks/XCoordinator" -} \ No newline at end of file diff --git a/scripts/docs.sh b/scripts/docs.sh deleted file mode 100755 index b2fa21dc..00000000 --- a/scripts/docs.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# Preparation - -cd "$( dirname "$0" )" - -# Constants - -jazzy_file_url="tmp_jazzy.json" - -# Execution - -cd .. -sourcekitten doc --spm-module XCoordinator -- \ - -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" \ - -Xswiftc "-target" -Xswiftc "x86_64-apple-ios13.0-simulator" \ - > $jazzy_file_url -jazzy --sourcekitten-sourcefile $jazzy_file_url - -# Cleanup - -rm $jazzy_file_url