From 5e2bd321780b801b26eeeccd919c0a7fd7502aaa Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 24 Apr 2023 12:18:07 +0200 Subject: [PATCH 01/35] Move documentation into doccarchive instead of using jazzy --- Package.resolved | 42 +- Package.swift | 11 +- {scripts => Scripts}/build.sh | 0 {scripts => Scripts}/check_docs.sh | 0 Scripts/docs.sh | 21 + Scripts/docs_preview.sh | 19 + .../{ => Animations}/Animation.swift | 0 .../CoordinatorPreviewingDelegateObject.swift | 0 .../GestureRecognizerTarget.swift | 4 +- .../InteractiveTransitionAnimation.swift | 0 .../InterruptibleTransitionAnimation.swift | 0 .../StaticTransitionAnimation.swift | 0 .../TransitionAnimation.swift | 0 .../{ => Animations}/UIView+Store.swift | 0 Sources/XCoordinator/AnyCoordinator.swift | 115 - .../XCoordinator/AnyTransitionPerformer.swift | 58 - .../{ => Coordinators}/BaseCoordinator.swift | 13 +- .../{ => Coordinators}/BasicCoordinator.swift | 0 .../{ => Coordinators}/Coordinator.swift | 36 +- .../RedirectionRouter.swift | 8 +- .../{ => Coordinators}/Router.swift | 34 +- .../{ => General}/Container.swift | 0 .../{ => General}/DeepLinking.swift | 23 +- .../{ => General}/Presentable.swift | 24 +- .../XCoordinator/{ => General}/Route.swift | 0 .../NavigationAnimationDelegate.swift | 0 .../NavigationCoordinator.swift | 0 .../NavigationTransition.swift | 0 .../UINavigationController+Transition.swift | 10 +- .../{ => Page}/PageCoordinator.swift | 48 +- .../PageCoordinatorDataSource.swift | 0 .../{ => Page}/PageTransition.swift | 0 .../UIPageViewController+Transition.swift | 1 + .../{ => Split}/SplitCoordinator.swift | 15 +- .../{ => Split}/SplitTransition.swift | 15 + Sources/XCoordinator/StrongRouter.swift | 119 - .../{ => Tab}/TabBarAnimationDelegate.swift | 0 .../{ => Tab}/TabBarCoordinator.swift | 0 .../{ => Tab}/TabBarTransition.swift | 0 .../UITabBarController+Transition.swift | 0 .../{ => Transitions}/Transition.swift | 0 .../{ => Transitions}/TransitionOptions.swift | 0 .../TransitionPerformer.swift | 2 +- .../TransitionProtocol.swift | 15 +- .../XCoordinator/UnownedErased+Router.swift | 62 - Sources/XCoordinator/UnownedErased.swift | 72 - .../{ => View}/Transition+Init.swift | 0 .../UIViewController+Transition.swift | 0 .../{ => View}/ViewCoordinator.swift | 0 Sources/XCoordinator/WeakErased+Router.swift | 52 - Sources/XCoordinator/WeakErased.swift | 74 - .../XCoordinator.docc/Documentation.md | 378 ++ Sources/ios.xcconfig | 10 - Tests/LinuxMain.swift | 7 - Tests/XCoordinatorTests/AnimationTests.swift | 2 +- Tests/XCoordinatorTests/TransitionTests.swift | 3 + .../XCoordinatorTests.xctestplan | 24 - .../css/chunk-384ef189.7ede1ea3.css | 9 + .../css/documentation-topic.29351f99.css | 9 + .../documentation-topic~topic.fccbd76c.css | 9 + ...opic~topic~tutorials-overview.1099452b.css | 9 + .../css/index.d5b499b0.css | 9 + .../css/topic.726a35dc.css | 9 + .../css/tutorials-overview.2a582c39.css | 9 + .../data/documentation/xcoordinator.json | 1 + .../documentation/xcoordinator/animation.json | 1 + .../animationcontroller(fordismissed:).json | 1 + ...ller(forpresented:presenting:source:).json | 1 + .../xcoordinator/animation/default.json | 1 + .../animation/dismissalanimation.json | 1 + .../init(presentation:dismissal:).json | 1 + ...ractioncontrollerfordismissal(using:).json | 1 + ...tioncontrollerforpresentation(using:).json | 1 + .../animation/presentationanimation.json | 1 + ...transitioningdelegate-implementations.json | 1 + .../xcoordinator/basecoordinator.json | 1 + .../basecoordinator/addchild(_:).json | 1 + .../basecoordinator/chain(routes:).json | 1 + .../basecoordinator/children.json | 1 + .../childtransitioncompleted().json | 1 + .../contexttrigger(_:with:).json | 1 + .../contexttrigger(_:with:completion:).json | 1 + .../coordinator-implementations.json | 1 + .../basecoordinator/deeplink(_:_:)-5tg0j.json | 1 + .../basecoordinator/deeplink(_:_:)-7vijh.json | 1 + ...nit(rootviewcontroller:initialroute:).json | 1 + ...ootviewcontroller:initialtransition:).json | 1 + ...performtransition(_:with:completion:).json | 1 + .../preparetransition(for:).json | 1 + .../presentable-implementations.json | 1 + .../basecoordinator/presented(from:).json | 1 + ...(for:triggeredby:handler:completion:).json | 1 + ...by:progress:shouldfinish:completion:).json | 1 + .../basecoordinator/registerparent(_:).json | 1 + .../registerpeek(for:route:).json | 1 + .../basecoordinator/removechild(_:).json | 1 + .../removechildrenifneeded().json | 1 + .../rootviewcontroller-swift.property.json | 1 + ...tviewcontroller-swift.typealias-6xno2.json | 1 + ...tviewcontroller-swift.typealias-8ybij.json | 1 + .../basecoordinator/router(for:).json | 1 + .../router-implementations.json | 1 + .../basecoordinator/setroot(for:).json | 1 + .../transitionperformer-implementations.json | 1 + .../basecoordinator/trigger(_:).json | 1 + .../trigger(_:completion:).json | 1 + .../basecoordinator/trigger(_:with:).json | 1 + .../trigger(_:with:completion:).json | 1 + ...rinteractivetransitions(triggeredby:).json | 1 + .../basecoordinator/viewcontroller-614jt.json | 1 + .../basecoordinator/viewcontroller-8iux.json | 1 + .../xcoordinator/basiccoordinator.json | 1 + ...nitialloadingtype:preparetransition:).json | 1 + .../basiccoordinator/initialloadingtype.json | 1 + .../initialloadingtype/!=(_:_:).json | 1 + .../equatable-implementations.json | 1 + .../initialloadingtype/immediately.json | 1 + .../initialloadingtype/presented.json | 1 + .../preparetransition(for:).json | 1 + .../basiccoordinator/presented(from:).json | 1 + .../basicnavigationcoordinator.json | 1 + .../xcoordinator/basictabbarcoordinator.json | 1 + .../xcoordinator/basicviewcoordinator.json | 1 + .../documentation/xcoordinator/container.json | 1 + .../xcoordinator/container/view.json | 1 + .../container/viewcontroller.json | 1 + .../contextpresentationhandler.json | 1 + .../xcoordinator/coordinator.json | 1 + .../coordinator/addchild(_:).json | 1 + .../coordinator/chain(routes:).json | 1 + .../childtransitioncompleted().json | 1 + .../contexttrigger(_:with:completion:).json | 1 + .../coordinator/deeplink(_:_:)-3460y.json | 1 + .../coordinator/deeplink(_:_:)-5e278.json | 1 + ...performtransition(_:with:completion:).json | 1 + .../coordinator/preparetransition(for:).json | 1 + .../presentable-implementations.json | 1 + .../coordinator/presented(from:).json | 1 + .../coordinator/registerpeek(for:route:).json | 1 + .../coordinator/removechild(_:).json | 1 + .../coordinator/removechildrenifneeded().json | 1 + .../coordinator/rootviewcontroller.json | 1 + .../coordinator/viewcontroller.json | 1 + .../interactivetransitionanimation.json | 1 + .../animatetransition(using:).json | 1 + .../cleanup().json | 1 + .../generateinteractioncontroller().json | 1 + .../init(duration:transition:).json | 1 + ...ition:generateinteractioncontroller:).json | 1 + .../init(transitionanimation:).json | 1 + ...ation:generateinteractioncontroller:).json | 1 + .../interactioncontroller.json | 1 + .../start().json | 1 + .../transitionduration(using:).json | 1 + .../interruptibletransitionanimation.json | 1 + .../animatetransition(using:).json | 1 + ...generateinterruptibleanimator(using:).json | 1 + .../init(duration:generateanimator:).json | 1 + ...mator:generateinteractioncontroller:).json | 1 + .../interruptibleanimator(using:).json | 1 + .../navigationanimationdelegate.json | 1 + .../gesturerecognizershouldbegin(_:).json | 1 + ...leinteractivepopgesturerecognizer(_:).json | 1 + ...er(_:animationcontrollerfor:from:to:).json | 1 + ...gationcontroller(_:didshow:animated:).json | 1 + ...ntroller(_:interactioncontrollerfor:).json | 1 + ...ationcontroller(_:willshow:animated:).json | 1 + .../setuppopgesturerecognizer(for:).json | 1 + .../transitionprogressthreshold.json | 1 + ...urerecognizerdelegate-implementations.json | 1 + ...ioncontrollerdelegate-implementations.json | 1 + .../velocitythreshold.json | 1 + .../xcoordinator/navigationcoordinator.json | 1 + .../animationdelegate.json | 1 + .../navigationcoordinator/delegate.json | 1 + ...nit(rootviewcontroller:initialroute:).json | 1 + .../init(rootviewcontroller:root:).json | 1 + .../xcoordinator/navigationtransition.json | 1 + .../xcoordinator/pagecoordinator.json | 1 + .../pagecoordinator/datasource.json | 1 + ...ntroller:datasource:set:_:direction:).json | 1 + ...ntroller:pages:loop:set:_:direction:).json | 1 + ...espacing:pages:loop:set:_:direction:).json | 1 + .../pagecoordinatordatasource.json | 1 + .../init(pages:loop:).json | 1 + .../pagecoordinatordatasource/loop.json | 1 + .../pagecoordinatordatasource/pages.json | 1 + ...iewcontroller(_:viewcontrollerafter:).json | 1 + ...ewcontroller(_:viewcontrollerbefore:).json | 1 + .../presentationcount(for:).json | 1 + .../presentationindex(for:).json | 1 + .../xcoordinator/pagetransition.json | 1 + .../percentdriveninteractioncontroller.json | 1 + .../cancel().json | 1 + .../finish().json | 1 + .../update(_:).json | 1 + .../xcoordinator/presentable.json | 1 + .../childtransitioncompleted()-3jrlv.json | 1 + .../childtransitioncompleted()-4nvzl.json | 1 + .../presentable/presented(from:)-7l34o.json | 1 + .../presentable/presented(from:)-vlfa.json | 1 + .../presentable/registerparent(_:)-1b0o3.json | 1 + .../presentable/registerparent(_:)-2syh0.json | 1 + .../presentable/router(for:).json | 1 + .../presentable/setroot(for:)-7uc80.json | 1 + .../presentable/setroot(for:)-8jtc1.json | 1 + .../presentable/viewcontroller.json | 1 + .../xcoordinator/presentationhandler.json | 1 + .../xcoordinator/redirectionrouter.json | 1 + .../childtransitioncompleted().json | 1 + .../contexttrigger(_:with:).json | 1 + .../contexttrigger(_:with:completion:).json | 1 + .../init(viewcontroller:parent:map:).json | 1 + .../maptoparentroute(_:).json | 1 + .../redirectionrouter/parent.json | 1 + .../presentable-implementations.json | 1 + .../redirectionrouter/presented(from:).json | 1 + .../redirectionrouter/registerparent(_:).json | 1 + .../redirectionrouter/router(for:).json | 1 + .../router-implementations.json | 1 + .../redirectionrouter/setroot(for:).json | 1 + .../redirectionrouter/trigger(_:).json | 1 + .../trigger(_:completion:).json | 1 + .../redirectionrouter/trigger(_:with:).json | 1 + .../trigger(_:with:completion:).json | 1 + .../redirectionrouter/viewcontroller.json | 1 + .../documentation/xcoordinator/route.json | 1 + .../documentation/xcoordinator/router.json | 1 + .../router/contexttrigger(_:with:).json | 1 + .../contexttrigger(_:with:completion:).json | 1 + .../xcoordinator/router/routetype.json | 1 + .../xcoordinator/router/trigger(_:).json | 1 + .../router/trigger(_:completion:).json | 1 + .../router/trigger(_:with:)-7y4ig.json | 1 + .../router/trigger(_:with:)-pmke.json | 1 + .../router/trigger(_:with:completion:).json | 1 + .../xcoordinator/splitcoordinator.json | 1 + ...nit(rootviewcontroller:initialroute:).json | 1 + ...ler:primary:secondary:supplementary:).json | 1 + .../xcoordinator/splittransition.json | 1 + .../statictransitionanimation.json | 1 + .../animatetransition(using:).json | 1 + .../statictransitionanimation/cleanup().json | 1 + .../init(duration:performanimation:).json | 1 + .../interactioncontroller.json | 1 + .../statictransitionanimation/start().json | 1 + .../transitionduration(using:).json | 1 + .../xcoordinator/tabbaranimationdelegate.json | 1 + ...ationcontrollerfortransitionfrom:to:).json | 1 + ...troller(_:didendcustomizing:changed:).json | 1 + .../tabbarcontroller(_:didselect:).json | 1 + ...ntroller(_:interactioncontrollerfor:).json | 1 + .../tabbarcontroller(_:shouldselect:).json | 1 + ...arcontroller(_:willbegincustomizing:).json | 1 + ...roller(_:willendcustomizing:changed:).json | 1 + ...barcontrollerdelegate-implementations.json | 1 + .../xcoordinator/tabbarcoordinator.json | 1 + .../tabbarcoordinator/delegate.json | 1 + ...nit(rootviewcontroller:initialroute:).json | 1 + .../init(rootviewcontroller:tabs:).json | 1 + ...ootviewcontroller:tabs:select:)-39l8c.json | 1 + ...rootviewcontroller:tabs:select:)-w397.json | 1 + .../xcoordinator/tabbartransition.json | 1 + .../xcoordinator/transition.json | 1 + .../xcoordinator/transition/animation.json | 1 + .../transition/dismiss(animation:).json | 1 + .../transition/dismisstoroot(animation:).json | 1 + .../xcoordinator/transition/embed(_:in:).json | 1 + ...presentables:animationinuse:perform:).json | 1 + .../transition/multiple(_:)-2uy55.json | 1 + .../transition/multiple(_:)-4o51b.json | 1 + .../xcoordinator/transition/none().json | 1 + .../transition/perform(_:on:).json | 1 + .../perform(on:with:completion:).json | 1 + .../transition/performclosure.json | 1 + .../transition/pop(animation:).json | 1 + .../transition/pop(to:animation:).json | 1 + .../transition/poptoroot(animation:).json | 1 + .../transition/present(_:animation:).json | 1 + .../xcoordinator/transition/presentables.json | 1 + .../presentonroot(_:animation:).json | 1 + .../transition/push(_:animation:).json | 1 + .../xcoordinator/transition/route(_:on:).json | 1 + .../transition/select(_:animation:).json | 1 + .../transition/select(index:animation:).json | 1 + .../xcoordinator/transition/set(_:).json | 1 + .../transition/set(_:_:direction:).json | 1 + .../transition/set(_:animation:)-4airv.json | 1 + .../transition/set(_:animation:)-9wr0e.json | 1 + .../xcoordinator/transition/set(_:for:).json | 1 + .../xcoordinator/transition/show(_:).json | 1 + .../transition/showdetail(_:).json | 1 + .../transitionprotocol-implementations.json | 1 + .../transition/trigger(_:on:).json | 1 + .../xcoordinator/transitionanimation.json | 1 + .../transitionanimation/cleanup().json | 1 + .../interactioncontroller.json | 1 + .../transitionanimation/start().json | 1 + .../xcoordinator/transitioncontext.json | 1 + .../transitioncontext/animation.json | 1 + .../transitioncontext/presentables.json | 1 + .../xcoordinator/transitionoptions.json | 1 + .../transitionoptions/animated.json | 1 + .../transitionoptions/init(animated:).json | 1 + .../xcoordinator/transitionperformer.json | 1 + ...performtransition(_:with:completion:).json | 1 + .../rootviewcontroller.json | 1 + .../transitionperformer/transitiontype.json | 1 + .../xcoordinator/transitionprotocol.json | 1 + .../multiple(_:)-5w9m5.json | 1 + .../transitionprotocol/multiple(_:)-ukju.json | 1 + .../perform(on:with:completion:).json | 1 + .../rootviewcontroller.json | 1 + .../xcoordinator/viewcoordinator.json | 1 + ...nit(rootviewcontroller:initialroute:).json | 1 + .../xcoordinator/viewtransition.json | 1 + .../developer-og-twitter.jpg | Bin 0 -> 12562 bytes XCoordinator.doccarchive/developer-og.jpg | Bin 0 -> 12856 bytes .../index.html | 1 + .../index.html | 1 + .../xcoordinator/animation/default/index.html | 1 + .../animation/dismissalanimation/index.html | 1 + .../xcoordinator/animation/index.html | 1 + .../init(presentation:dismissal:)/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../presentationanimation/index.html | 1 + .../index.html | 1 + .../basecoordinator/addchild(_:)/index.html | 1 + .../basecoordinator/chain(routes:)/index.html | 1 + .../basecoordinator/children/index.html | 1 + .../childtransitioncompleted()/index.html | 1 + .../contexttrigger(_:with:)/index.html | 1 + .../index.html | 1 + .../coordinator-implementations/index.html | 1 + .../deeplink(_:_:)-5tg0j/index.html | 1 + .../deeplink(_:_:)-7vijh/index.html | 1 + .../xcoordinator/basecoordinator/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../preparetransition(for:)/index.html | 1 + .../presentable-implementations/index.html | 1 + .../presented(from:)/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../registerparent(_:)/index.html | 1 + .../registerpeek(for:route:)/index.html | 1 + .../removechild(_:)/index.html | 1 + .../removechildrenifneeded()/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../basecoordinator/router(for:)/index.html | 1 + .../router-implementations/index.html | 1 + .../basecoordinator/setroot(for:)/index.html | 1 + .../index.html | 1 + .../basecoordinator/trigger(_:)/index.html | 1 + .../trigger(_:completion:)/index.html | 1 + .../trigger(_:with:)/index.html | 1 + .../trigger(_:with:completion:)/index.html | 1 + .../index.html | 1 + .../viewcontroller-614jt/index.html | 1 + .../viewcontroller-8iux/index.html | 1 + .../xcoordinator/basiccoordinator/index.html | 1 + .../index.html | 1 + .../initialloadingtype/!=(_:_:)/index.html | 1 + .../equatable-implementations/index.html | 1 + .../initialloadingtype/immediately/index.html | 1 + .../initialloadingtype/index.html | 1 + .../initialloadingtype/presented/index.html | 1 + .../preparetransition(for:)/index.html | 1 + .../presented(from:)/index.html | 1 + .../basicnavigationcoordinator/index.html | 1 + .../basictabbarcoordinator/index.html | 1 + .../basicviewcoordinator/index.html | 1 + .../xcoordinator/container/index.html | 1 + .../xcoordinator/container/view/index.html | 1 + .../container/viewcontroller/index.html | 1 + .../contextpresentationhandler/index.html | 1 + .../coordinator/addchild(_:)/index.html | 1 + .../coordinator/chain(routes:)/index.html | 1 + .../childtransitioncompleted()/index.html | 1 + .../index.html | 1 + .../deeplink(_:_:)-3460y/index.html | 1 + .../deeplink(_:_:)-5e278/index.html | 1 + .../xcoordinator/coordinator/index.html | 1 + .../index.html | 1 + .../preparetransition(for:)/index.html | 1 + .../presentable-implementations/index.html | 1 + .../coordinator/presented(from:)/index.html | 1 + .../registerpeek(for:route:)/index.html | 1 + .../coordinator/removechild(_:)/index.html | 1 + .../removechildrenifneeded()/index.html | 1 + .../coordinator/rootviewcontroller/index.html | 1 + .../coordinator/viewcontroller/index.html | 1 + .../documentation/xcoordinator/index.html | 1 + .../animatetransition(using:)/index.html | 1 + .../cleanup()/index.html | 1 + .../index.html | 1 + .../interactivetransitionanimation/index.html | 1 + .../init(duration:transition:)/index.html | 1 + .../index.html | 1 + .../init(transitionanimation:)/index.html | 1 + .../index.html | 1 + .../interactioncontroller/index.html | 1 + .../start()/index.html | 1 + .../transitionduration(using:)/index.html | 1 + .../animatetransition(using:)/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../interruptibleanimator(using:)/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../navigationanimationdelegate/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../transitionprogressthreshold/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../velocitythreshold/index.html | 1 + .../animationdelegate/index.html | 1 + .../navigationcoordinator/delegate/index.html | 1 + .../navigationcoordinator/index.html | 1 + .../index.html | 1 + .../init(rootviewcontroller:root:)/index.html | 1 + .../navigationtransition/index.html | 1 + .../pagecoordinator/datasource/index.html | 1 + .../xcoordinator/pagecoordinator/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../pagecoordinatordatasource/index.html | 1 + .../init(pages:loop:)/index.html | 1 + .../pagecoordinatordatasource/loop/index.html | 1 + .../pages/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../presentationcount(for:)/index.html | 1 + .../presentationindex(for:)/index.html | 1 + .../xcoordinator/pagetransition/index.html | 1 + .../cancel()/index.html | 1 + .../finish()/index.html | 1 + .../index.html | 1 + .../update(_:)/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../xcoordinator/presentable/index.html | 1 + .../presented(from:)-7l34o/index.html | 1 + .../presented(from:)-vlfa/index.html | 1 + .../registerparent(_:)-1b0o3/index.html | 1 + .../registerparent(_:)-2syh0/index.html | 1 + .../presentable/router(for:)/index.html | 1 + .../setroot(for:)-7uc80/index.html | 1 + .../setroot(for:)-8jtc1/index.html | 1 + .../presentable/viewcontroller/index.html | 1 + .../presentationhandler/index.html | 1 + .../childtransitioncompleted()/index.html | 1 + .../contexttrigger(_:with:)/index.html | 1 + .../index.html | 1 + .../xcoordinator/redirectionrouter/index.html | 1 + .../index.html | 1 + .../maptoparentroute(_:)/index.html | 1 + .../redirectionrouter/parent/index.html | 1 + .../presentable-implementations/index.html | 1 + .../presented(from:)/index.html | 1 + .../registerparent(_:)/index.html | 1 + .../redirectionrouter/router(for:)/index.html | 1 + .../router-implementations/index.html | 1 + .../setroot(for:)/index.html | 1 + .../redirectionrouter/trigger(_:)/index.html | 1 + .../trigger(_:completion:)/index.html | 1 + .../trigger(_:with:)/index.html | 1 + .../trigger(_:with:completion:)/index.html | 1 + .../viewcontroller/index.html | 1 + .../xcoordinator/route/index.html | 1 + .../router/contexttrigger(_:with:)/index.html | 1 + .../index.html | 1 + .../xcoordinator/router/index.html | 1 + .../xcoordinator/router/routetype/index.html | 1 + .../router/trigger(_:)/index.html | 1 + .../router/trigger(_:completion:)/index.html | 1 + .../router/trigger(_:with:)-7y4ig/index.html | 1 + .../router/trigger(_:with:)-pmke/index.html | 1 + .../trigger(_:with:completion:)/index.html | 1 + .../xcoordinator/splitcoordinator/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../xcoordinator/splittransition/index.html | 1 + .../animatetransition(using:)/index.html | 1 + .../cleanup()/index.html | 1 + .../statictransitionanimation/index.html | 1 + .../index.html | 1 + .../interactioncontroller/index.html | 1 + .../start()/index.html | 1 + .../transitionduration(using:)/index.html | 1 + .../tabbaranimationdelegate/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../tabbarcontroller(_:didselect:)/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../tabbarcoordinator/delegate/index.html | 1 + .../xcoordinator/tabbarcoordinator/index.html | 1 + .../index.html | 1 + .../init(rootviewcontroller:tabs:)/index.html | 1 + .../index.html | 1 + .../index.html | 1 + .../xcoordinator/tabbartransition/index.html | 1 + .../transition/animation/index.html | 1 + .../transition/dismiss(animation:)/index.html | 1 + .../dismisstoroot(animation:)/index.html | 1 + .../transition/embed(_:in:)/index.html | 1 + .../xcoordinator/transition/index.html | 1 + .../index.html | 1 + .../transition/multiple(_:)-2uy55/index.html | 1 + .../transition/multiple(_:)-4o51b/index.html | 1 + .../xcoordinator/transition/none()/index.html | 1 + .../transition/perform(_:on:)/index.html | 1 + .../perform(on:with:completion:)/index.html | 1 + .../transition/performclosure/index.html | 1 + .../transition/pop(animation:)/index.html | 1 + .../transition/pop(to:animation:)/index.html | 1 + .../poptoroot(animation:)/index.html | 1 + .../present(_:animation:)/index.html | 1 + .../transition/presentables/index.html | 1 + .../presentonroot(_:animation:)/index.html | 1 + .../transition/push(_:animation:)/index.html | 1 + .../transition/route(_:on:)/index.html | 1 + .../select(_:animation:)/index.html | 1 + .../select(index:animation:)/index.html | 1 + .../transition/set(_:)/index.html | 1 + .../transition/set(_:_:direction:)/index.html | 1 + .../set(_:animation:)-4airv/index.html | 1 + .../set(_:animation:)-9wr0e/index.html | 1 + .../transition/set(_:for:)/index.html | 1 + .../transition/show(_:)/index.html | 1 + .../transition/showdetail(_:)/index.html | 1 + .../index.html | 1 + .../transition/trigger(_:on:)/index.html | 1 + .../transitionanimation/cleanup()/index.html | 1 + .../transitionanimation/index.html | 1 + .../interactioncontroller/index.html | 1 + .../transitionanimation/start()/index.html | 1 + .../transitioncontext/animation/index.html | 1 + .../xcoordinator/transitioncontext/index.html | 1 + .../transitioncontext/presentables/index.html | 1 + .../transitionoptions/animated/index.html | 1 + .../xcoordinator/transitionoptions/index.html | 1 + .../init(animated:)/index.html | 1 + .../transitionperformer/index.html | 1 + .../index.html | 1 + .../rootviewcontroller/index.html | 1 + .../transitiontype/index.html | 1 + .../transitionprotocol/index.html | 1 + .../multiple(_:)-5w9m5/index.html | 1 + .../multiple(_:)-ukju/index.html | 1 + .../perform(on:with:completion:)/index.html | 1 + .../rootviewcontroller/index.html | 1 + .../xcoordinator/viewcoordinator/index.html | 1 + .../index.html | 1 + .../xcoordinator/viewtransition/index.html | 1 + XCoordinator.doccarchive/favicon.ico | Bin 0 -> 15406 bytes XCoordinator.doccarchive/favicon.svg | 11 + .../img/added-icon.d6f7e47d.svg | 11 + .../img/deprecated-icon.015b4f17.svg | 11 + .../img/modified-icon.f496e73d.svg | 11 + .../img/no-image@2x.df2a0a50.png | Bin 0 -> 6155 bytes XCoordinator.doccarchive/index.html | 1 + .../index/availability.index | Bin 0 -> 939 bytes XCoordinator.doccarchive/index/data.mdb | Bin 0 -> 245760 bytes XCoordinator.doccarchive/index/index.json | 1 + .../index/navigator.index | Bin 0 -> 54473 bytes .../js/chunk-2d0d3105.cd72cc8e.js | 10 + .../js/chunk-384ef189.bb1ed903.js | 10 + .../js/chunk-vendors.b24b7aaa.js | 21 + .../js/documentation-topic.2ed269e3.js | 10 + .../js/documentation-topic~topic.900fc80c.js | 20 + ...topic~topic~tutorials-overview.5b27b87b.js | 10 + .../js/highlight-js-bash.1b52852f.js | 10 + .../js/highlight-js-c.d1db3f17.js | 10 + .../js/highlight-js-cpp.eaddddbe.js | 10 + .../js/highlight-js-css.75eab1fe.js | 10 + .../highlight-js-custom-markdown.7cffc4b3.js | 10 + .../js/highlight-js-custom-swift.5cda5c20.js | 10 + .../js/highlight-js-diff.62d66733.js | 10 + .../js/highlight-js-http.163e45b6.js | 10 + .../js/highlight-js-java.8326d9d8.js | 10 + .../js/highlight-js-javascript.acb8a8eb.js | 10 + .../js/highlight-js-json.471128d2.js | 10 + .../js/highlight-js-llvm.6100b125.js | 10 + .../js/highlight-js-markdown.90077643.js | 10 + .../js/highlight-js-objectivec.bcdf5156.js | 10 + .../js/highlight-js-perl.757d7b6f.js | 10 + .../js/highlight-js-php.cc8d6c27.js | 10 + .../js/highlight-js-python.c214ed92.js | 10 + .../js/highlight-js-ruby.f889d392.js | 10 + .../js/highlight-js-scss.62ee18da.js | 10 + .../js/highlight-js-shell.dd7f411f.js | 10 + .../js/highlight-js-swift.84f3e88c.js | 10 + .../js/highlight-js-xml.9c3688c7.js | 10 + XCoordinator.doccarchive/js/index.aa320932.js | 9 + XCoordinator.doccarchive/js/topic.bb695832.js | 10 + .../js/tutorials-overview.2cadc732.js | 10 + XCoordinator.doccarchive/metadata.json | 1 + XCoordinator.podspec | 10 +- XCoordinator.xcodeproj/RxSwift_Info.plist | 25 - .../XCoordinatorCombine_Info.plist | 25 - .../XCoordinatorRx_Info.plist | 25 - .../XCoordinatorTests_Info.plist | 25 - .../XCoordinator_Info.plist | 25 - XCoordinator.xcodeproj/project.pbxproj | 3470 ----------------- .../xcschemes/XCoordinator-Package.xcscheme | 96 - .../xcschemes/XCoordinator.xcscheme | 67 - .../xcschemes/XCoordinatorCombine.xcscheme | 67 - .../xcschemes/XCoordinatorRx.xcscheme | 67 - .../xcschemes/XCoordinatorTests.xcscheme | 58 - docs/Classes.html | 950 ----- docs/Classes/Animation.html | 698 ---- docs/Classes/AnyCoordinator.html | 616 --- docs/Classes/AnyTransitionPerformer.html | 401 -- docs/Classes/BaseCoordinator.html | 1007 ----- docs/Classes/BasicCoordinator.html | 487 --- .../BasicCoordinator/InitialLoadingType.html | 327 -- .../InteractiveTransitionAnimation.html | 735 ---- .../InterruptibleTransitionAnimation.html | 589 --- docs/Classes/NavigationAnimationDelegate.html | 855 ---- docs/Classes/NavigationCoordinator.html | 458 --- docs/Classes/PageCoordinator.html | 525 --- docs/Classes/PageCoordinatorDataSource.html | 660 ---- docs/Classes/RedirectionRouter.html | 535 --- docs/Classes/SplitCoordinator.html | 369 -- docs/Classes/StaticTransitionAnimation.html | 526 --- docs/Classes/StrongRouter.html | 625 --- docs/Classes/TabBarAnimationDelegate.html | 725 ---- docs/Classes/TabBarCoordinator.html | 512 --- docs/Classes/ViewCoordinator.html | 305 -- docs/Extensions.html | 327 -- docs/Extensions/UIView.html | 323 -- docs/Extensions/UIViewController.html | 297 -- docs/Protocols.html | 616 --- docs/Protocols/Container.html | 339 -- docs/Protocols/Coordinator.html | 996 ----- .../PercentDrivenInteractionController.html | 365 -- docs/Protocols/Presentable.html | 551 --- docs/Protocols/Router.html | 685 ---- docs/Protocols/TransitionAnimation.html | 362 -- docs/Protocols/TransitionContext.html | 335 -- docs/Protocols/TransitionPerformer.html | 403 -- docs/Protocols/TransitionProtocol.html | 399 -- docs/Structs.html | 469 --- docs/Structs/Transition.html | 1772 --------- docs/Structs/TransitionOptions.html | 376 -- docs/Structs/UnownedErased.html | 289 -- docs/Structs/WeakErased.html | 289 -- docs/Typealiases.html | 760 ---- docs/css/highlight.css | 200 - docs/css/jazzy.css | 378 -- .../XCoordinator.docset/Contents/Info.plist | 20 - .../Contents/Resources/Documents/Classes.html | 950 ----- .../Documents/Classes/Animation.html | 698 ---- .../Documents/Classes/AnyCoordinator.html | 616 --- .../Classes/AnyTransitionPerformer.html | 401 -- .../Documents/Classes/BaseCoordinator.html | 1007 ----- .../Documents/Classes/BasicCoordinator.html | 487 --- .../BasicCoordinator/InitialLoadingType.html | 327 -- .../InteractiveTransitionAnimation.html | 735 ---- .../InterruptibleTransitionAnimation.html | 589 --- .../Classes/NavigationAnimationDelegate.html | 855 ---- .../Classes/NavigationCoordinator.html | 458 --- .../Documents/Classes/PageCoordinator.html | 525 --- .../Classes/PageCoordinatorDataSource.html | 660 ---- .../Documents/Classes/RedirectionRouter.html | 535 --- .../Documents/Classes/SplitCoordinator.html | 369 -- .../Classes/StaticTransitionAnimation.html | 526 --- .../Documents/Classes/StrongRouter.html | 625 --- .../Classes/TabBarAnimationDelegate.html | 725 ---- .../Documents/Classes/TabBarCoordinator.html | 512 --- .../Documents/Classes/ViewCoordinator.html | 305 -- .../Resources/Documents/Extensions.html | 327 -- .../Documents/Extensions/UIView.html | 323 -- .../Extensions/UIViewController.html | 297 -- .../Resources/Documents/Protocols.html | 616 --- .../Documents/Protocols/Container.html | 339 -- .../Documents/Protocols/Coordinator.html | 996 ----- .../PercentDrivenInteractionController.html | 365 -- .../Documents/Protocols/Presentable.html | 551 --- .../Resources/Documents/Protocols/Router.html | 685 ---- .../Protocols/TransitionAnimation.html | 362 -- .../Protocols/TransitionContext.html | 335 -- .../Protocols/TransitionPerformer.html | 403 -- .../Protocols/TransitionProtocol.html | 399 -- .../Contents/Resources/Documents/Structs.html | 469 --- .../Documents/Structs/Transition.html | 1772 --------- .../Documents/Structs/TransitionOptions.html | 376 -- .../Documents/Structs/UnownedErased.html | 289 -- .../Documents/Structs/WeakErased.html | 289 -- .../Resources/Documents/Typealiases.html | 760 ---- .../Resources/Documents/css/highlight.css | 200 - .../Resources/Documents/css/jazzy.css | 378 -- .../Resources/Documents/img/carat.png | Bin 274 -> 0 bytes .../Contents/Resources/Documents/img/dash.png | Bin 1338 -> 0 bytes .../Contents/Resources/Documents/img/gh.png | Bin 1571 -> 0 bytes .../Resources/Documents/img/spinner.gif | Bin 1849 -> 0 bytes .../Contents/Resources/Documents/index.html | 601 --- .../Contents/Resources/Documents/js/jazzy.js | 59 - .../Resources/Documents/js/jazzy.search.js | 70 - .../Resources/Documents/js/jquery.min.js | 2 - .../Resources/Documents/js/lunr.min.js | 1 - .../Documents/js/typeahead.jquery.js | 1674 -------- .../Contents/Resources/Documents/search.json | 1 - .../Contents/Resources/docSet.dsidx | Bin 98304 -> 0 bytes docs/docsets/XCoordinator.docset/icon.png | Bin 78295 -> 0 bytes docs/img/carat.png | Bin 274 -> 0 bytes docs/img/dash.png | Bin 1338 -> 0 bytes docs/img/gh.png | Bin 1571 -> 0 bytes docs/img/spinner.gif | Bin 1849 -> 0 bytes docs/index.html | 601 --- docs/js/jazzy.js | 59 - docs/js/jazzy.search.js | 70 - docs/js/jquery.min.js | 2 - docs/js/lunr.min.js | 1 - docs/js/typeahead.jquery.js | 1674 -------- docs/search.json | 1 - docs/undocumented.json | 6 - scripts/docs.sh | 22 - 734 files changed, 1534 insertions(+), 54423 deletions(-) rename {scripts => Scripts}/build.sh (100%) rename {scripts => Scripts}/check_docs.sh (100%) create mode 100755 Scripts/docs.sh create mode 100755 Scripts/docs_preview.sh rename Sources/XCoordinator/{ => Animations}/Animation.swift (100%) rename Sources/XCoordinator/{ => Animations}/CoordinatorPreviewingDelegateObject.swift (100%) rename Sources/XCoordinator/{ => Animations}/GestureRecognizerTarget.swift (84%) rename Sources/XCoordinator/{ => Animations}/InteractiveTransitionAnimation.swift (100%) rename Sources/XCoordinator/{ => Animations}/InterruptibleTransitionAnimation.swift (100%) rename Sources/XCoordinator/{ => Animations}/StaticTransitionAnimation.swift (100%) rename Sources/XCoordinator/{ => Animations}/TransitionAnimation.swift (100%) rename Sources/XCoordinator/{ => Animations}/UIView+Store.swift (100%) delete mode 100755 Sources/XCoordinator/AnyCoordinator.swift delete mode 100755 Sources/XCoordinator/AnyTransitionPerformer.swift rename Sources/XCoordinator/{ => Coordinators}/BaseCoordinator.swift (97%) rename Sources/XCoordinator/{ => Coordinators}/BasicCoordinator.swift (100%) rename Sources/XCoordinator/{ => Coordinators}/Coordinator.swift (74%) rename Sources/XCoordinator/{ => Coordinators}/RedirectionRouter.swift (93%) rename Sources/XCoordinator/{ => Coordinators}/Router.swift (84%) rename Sources/XCoordinator/{ => General}/Container.swift (100%) rename Sources/XCoordinator/{ => General}/DeepLinking.swift (85%) rename Sources/XCoordinator/{ => General}/Presentable.swift (83%) rename Sources/XCoordinator/{ => General}/Route.swift (100%) rename Sources/XCoordinator/{ => Navigation}/NavigationAnimationDelegate.swift (100%) rename Sources/XCoordinator/{ => Navigation}/NavigationCoordinator.swift (100%) rename Sources/XCoordinator/{ => Navigation}/NavigationTransition.swift (100%) rename Sources/XCoordinator/{ => Navigation}/UINavigationController+Transition.swift (93%) rename Sources/XCoordinator/{ => Page}/PageCoordinator.swift (70%) rename Sources/XCoordinator/{ => Page}/PageCoordinatorDataSource.swift (100%) rename Sources/XCoordinator/{ => Page}/PageTransition.swift (100%) rename Sources/XCoordinator/{ => Page}/UIPageViewController+Transition.swift (92%) rename Sources/XCoordinator/{ => Split}/SplitCoordinator.swift (71%) rename Sources/XCoordinator/{ => Split}/SplitTransition.swift (61%) delete mode 100755 Sources/XCoordinator/StrongRouter.swift rename Sources/XCoordinator/{ => Tab}/TabBarAnimationDelegate.swift (100%) rename Sources/XCoordinator/{ => Tab}/TabBarCoordinator.swift (100%) rename Sources/XCoordinator/{ => Tab}/TabBarTransition.swift (100%) rename Sources/XCoordinator/{ => Tab}/UITabBarController+Transition.swift (100%) rename Sources/XCoordinator/{ => Transitions}/Transition.swift (100%) rename Sources/XCoordinator/{ => Transitions}/TransitionOptions.swift (100%) rename Sources/XCoordinator/{ => Transitions}/TransitionPerformer.swift (95%) rename Sources/XCoordinator/{ => Transitions}/TransitionProtocol.swift (76%) delete mode 100644 Sources/XCoordinator/UnownedErased+Router.swift delete mode 100644 Sources/XCoordinator/UnownedErased.swift rename Sources/XCoordinator/{ => View}/Transition+Init.swift (100%) rename Sources/XCoordinator/{ => View}/UIViewController+Transition.swift (100%) rename Sources/XCoordinator/{ => View}/ViewCoordinator.swift (100%) delete mode 100644 Sources/XCoordinator/WeakErased+Router.swift delete mode 100755 Sources/XCoordinator/WeakErased.swift create mode 100644 Sources/XCoordinator/XCoordinator.docc/Documentation.md delete mode 100644 Sources/ios.xcconfig delete mode 100644 Tests/LinuxMain.swift delete mode 100644 Tests/XCoordinatorTests/XCoordinatorTests.xctestplan create mode 100644 XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css create mode 100644 XCoordinator.doccarchive/css/documentation-topic.29351f99.css create mode 100644 XCoordinator.doccarchive/css/documentation-topic~topic.fccbd76c.css create mode 100644 XCoordinator.doccarchive/css/documentation-topic~topic~tutorials-overview.1099452b.css create mode 100644 XCoordinator.doccarchive/css/index.d5b499b0.css create mode 100644 XCoordinator.doccarchive/css/topic.726a35dc.css create mode 100644 XCoordinator.doccarchive/css/tutorials-overview.2a582c39.css create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(fordismissed:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/default.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/dismissalanimation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/init(presentation:dismissal:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/presentationanimation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/addchild(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/chain(routes:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/children.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/childtransitioncompleted().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/coordinator-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/preparetransition(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presentable-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presented(from:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerparent(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerpeek(for:route:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechild(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechildrenifneeded().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/setroot(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/transitionperformer-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-614jt.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-8iux.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/preparetransition(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/presented(from:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basicnavigationcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basictabbarcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basicviewcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/container.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/container/view.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/container/viewcontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/contextpresentationhandler.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/addchild(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/chain(routes:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/childtransitioncompleted().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/performtransition(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/preparetransition(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presentable-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presented(from:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/registerpeek(for:route:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechild(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechildrenifneeded().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/rootviewcontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/viewcontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/cleanup().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/start().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/animationdelegate.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/delegate.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationtransition.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/datasource.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/loop.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pages.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagetransition.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/cancel().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/finish().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-7l34o.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-vlfa.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-2syh0.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/router(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-7uc80.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-8jtc1.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/viewcontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentationhandler.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/childtransitioncompleted().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/parent.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presentable-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presented(from:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/registerparent(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/setroot(for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/viewcontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/route.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/routetype.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-7y4ig.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-pmke.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splittransition.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/animatetransition(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/cleanup().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/interactioncontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/start().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/transitionduration(using:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/delegate.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbartransition.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/animation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismiss(animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismisstoroot(animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/embed(_:in:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-2uy55.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-4o51b.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/none().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(_:on:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(on:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/performclosure.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(to:animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/poptoroot(animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/present(_:animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentables.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentonroot(_:animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/push(_:animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/route(_:on:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(_:animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(index:animation:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:_:direction:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-4airv.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-9wr0e.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:for:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/show(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/showdetail(_:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/transitionprotocol-implementations.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/trigger(_:on:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/cleanup().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/interactioncontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/start().json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/animation.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/presentables.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/animated.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/init(animated:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/rootviewcontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/transitiontype.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/rootviewcontroller.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator.json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:).json create mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/viewtransition.json create mode 100644 XCoordinator.doccarchive/developer-og-twitter.jpg create mode 100644 XCoordinator.doccarchive/developer-og.jpg create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(fordismissed:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/default/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/dismissalanimation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/init(presentation:dismissal:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/presentationanimation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/addchild(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/chain(routes:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/children/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/childtransitioncompleted()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/coordinator-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/preparetransition(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presentable-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presented(from:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerparent(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerpeek(for:route:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechild(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechildrenifneeded()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/setroot(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/transitionperformer-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-614jt/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-8iux/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/preparetransition(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/presented(from:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basicnavigationcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basictabbarcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basicviewcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/container/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/container/view/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/container/viewcontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/contextpresentationhandler/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/addchild(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/chain(routes:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/childtransitioncompleted()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/performtransition(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/preparetransition(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presentable-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presented(from:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/registerpeek(for:route:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechild(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechildrenifneeded()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/rootviewcontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/viewcontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/cleanup()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/start()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/animationdelegate/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/delegate/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationtransition/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/datasource/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/loop/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pages/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagetransition/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/cancel()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/finish()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-7l34o/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-vlfa/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-2syh0/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/router(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-7uc80/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-8jtc1/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/viewcontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentationhandler/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/childtransitioncompleted()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/parent/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presentable-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presented(from:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/registerparent(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/setroot(for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/viewcontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/route/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/routetype/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-7y4ig/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-pmke/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splittransition/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/animatetransition(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/cleanup()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/interactioncontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/start()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/transitionduration(using:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/delegate/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbartransition/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/animation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/dismiss(animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/dismisstoroot(animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/embed(_:in:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-2uy55/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-4o51b/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/none()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(_:on:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(on:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/performclosure/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(to:animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/poptoroot(animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/present(_:animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/presentables/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/presentonroot(_:animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/push(_:animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/route(_:on:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/select(_:animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/select(index:animation:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:_:direction:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-4airv/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-9wr0e/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:for:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/show(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/showdetail(_:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/transitionprotocol-implementations/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/trigger(_:on:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/cleanup()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/interactioncontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/start()/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/animation/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/presentables/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/animated/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/init(animated:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/rootviewcontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/transitiontype/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/rootviewcontroller/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:)/index.html create mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/viewtransition/index.html create mode 100644 XCoordinator.doccarchive/favicon.ico create mode 100644 XCoordinator.doccarchive/favicon.svg create mode 100644 XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg create mode 100644 XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg create mode 100644 XCoordinator.doccarchive/img/modified-icon.f496e73d.svg create mode 100644 XCoordinator.doccarchive/img/no-image@2x.df2a0a50.png create mode 100644 XCoordinator.doccarchive/index.html create mode 100644 XCoordinator.doccarchive/index/availability.index create mode 100755 XCoordinator.doccarchive/index/data.mdb create mode 100644 XCoordinator.doccarchive/index/index.json create mode 100644 XCoordinator.doccarchive/index/navigator.index create mode 100644 XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js create mode 100644 XCoordinator.doccarchive/js/chunk-384ef189.bb1ed903.js create mode 100644 XCoordinator.doccarchive/js/chunk-vendors.b24b7aaa.js create mode 100644 XCoordinator.doccarchive/js/documentation-topic.2ed269e3.js create mode 100644 XCoordinator.doccarchive/js/documentation-topic~topic.900fc80c.js create mode 100644 XCoordinator.doccarchive/js/documentation-topic~topic~tutorials-overview.5b27b87b.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-bash.1b52852f.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-c.d1db3f17.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-cpp.eaddddbe.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-css.75eab1fe.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-custom-markdown.7cffc4b3.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-custom-swift.5cda5c20.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-diff.62d66733.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-http.163e45b6.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-java.8326d9d8.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-javascript.acb8a8eb.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-json.471128d2.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-llvm.6100b125.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-markdown.90077643.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-objectivec.bcdf5156.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-perl.757d7b6f.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-php.cc8d6c27.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-python.c214ed92.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-ruby.f889d392.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-scss.62ee18da.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-shell.dd7f411f.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-swift.84f3e88c.js create mode 100644 XCoordinator.doccarchive/js/highlight-js-xml.9c3688c7.js create mode 100644 XCoordinator.doccarchive/js/index.aa320932.js create mode 100644 XCoordinator.doccarchive/js/topic.bb695832.js create mode 100644 XCoordinator.doccarchive/js/tutorials-overview.2cadc732.js create mode 100644 XCoordinator.doccarchive/metadata.json delete mode 100644 XCoordinator.xcodeproj/RxSwift_Info.plist delete mode 100644 XCoordinator.xcodeproj/XCoordinatorCombine_Info.plist delete mode 100644 XCoordinator.xcodeproj/XCoordinatorRx_Info.plist delete mode 100644 XCoordinator.xcodeproj/XCoordinatorTests_Info.plist delete mode 100644 XCoordinator.xcodeproj/XCoordinator_Info.plist delete mode 100644 XCoordinator.xcodeproj/project.pbxproj delete mode 100644 XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator-Package.xcscheme delete mode 100644 XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinator.xcscheme delete mode 100644 XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorCombine.xcscheme delete mode 100644 XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorRx.xcscheme delete mode 100644 XCoordinator.xcodeproj/xcshareddata/xcschemes/XCoordinatorTests.xcscheme delete mode 100644 docs/Classes.html delete mode 100644 docs/Classes/Animation.html delete mode 100644 docs/Classes/AnyCoordinator.html delete mode 100644 docs/Classes/AnyTransitionPerformer.html delete mode 100644 docs/Classes/BaseCoordinator.html delete mode 100644 docs/Classes/BasicCoordinator.html delete mode 100644 docs/Classes/BasicCoordinator/InitialLoadingType.html delete mode 100644 docs/Classes/InteractiveTransitionAnimation.html delete mode 100644 docs/Classes/InterruptibleTransitionAnimation.html delete mode 100644 docs/Classes/NavigationAnimationDelegate.html delete mode 100644 docs/Classes/NavigationCoordinator.html delete mode 100644 docs/Classes/PageCoordinator.html delete mode 100644 docs/Classes/PageCoordinatorDataSource.html delete mode 100644 docs/Classes/RedirectionRouter.html delete mode 100644 docs/Classes/SplitCoordinator.html delete mode 100644 docs/Classes/StaticTransitionAnimation.html delete mode 100644 docs/Classes/StrongRouter.html delete mode 100644 docs/Classes/TabBarAnimationDelegate.html delete mode 100644 docs/Classes/TabBarCoordinator.html delete mode 100644 docs/Classes/ViewCoordinator.html delete mode 100644 docs/Extensions.html delete mode 100644 docs/Extensions/UIView.html delete mode 100644 docs/Extensions/UIViewController.html delete mode 100644 docs/Protocols.html delete mode 100644 docs/Protocols/Container.html delete mode 100644 docs/Protocols/Coordinator.html delete mode 100644 docs/Protocols/PercentDrivenInteractionController.html delete mode 100644 docs/Protocols/Presentable.html delete mode 100644 docs/Protocols/Router.html delete mode 100644 docs/Protocols/TransitionAnimation.html delete mode 100644 docs/Protocols/TransitionContext.html delete mode 100644 docs/Protocols/TransitionPerformer.html delete mode 100644 docs/Protocols/TransitionProtocol.html delete mode 100644 docs/Structs.html delete mode 100644 docs/Structs/Transition.html delete mode 100644 docs/Structs/TransitionOptions.html delete mode 100644 docs/Structs/UnownedErased.html delete mode 100644 docs/Structs/WeakErased.html delete mode 100644 docs/Typealiases.html delete mode 100644 docs/css/highlight.css delete mode 100644 docs/css/jazzy.css delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Info.plist delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/Animation.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/AnyTransitionPerformer.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BaseCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/BasicCoordinator/InitialLoadingType.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InteractiveTransitionAnimation.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/InterruptibleTransitionAnimation.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationAnimationDelegate.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/NavigationCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/PageCoordinatorDataSource.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/RedirectionRouter.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/SplitCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StaticTransitionAnimation.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/StrongRouter.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarAnimationDelegate.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/TabBarCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Classes/ViewCoordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIView.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Extensions/UIViewController.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Container.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Coordinator.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/PercentDrivenInteractionController.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Presentable.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/Router.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionAnimation.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionContext.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionPerformer.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Protocols/TransitionProtocol.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/Transition.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/TransitionOptions.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/UnownedErased.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Structs/WeakErased.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/Typealiases.html delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/highlight.css delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/css/jazzy.css delete mode 100755 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/carat.png delete mode 100755 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/dash.png delete mode 100755 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/gh.png delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/img/spinner.gif delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/index.html delete mode 100755 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.js delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jazzy.search.js delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/jquery.min.js delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/lunr.min.js delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/js/typeahead.jquery.js delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/Documents/search.json delete mode 100644 docs/docsets/XCoordinator.docset/Contents/Resources/docSet.dsidx delete mode 100644 docs/docsets/XCoordinator.docset/icon.png delete mode 100755 docs/img/carat.png delete mode 100755 docs/img/dash.png delete mode 100755 docs/img/gh.png delete mode 100644 docs/img/spinner.gif delete mode 100644 docs/index.html delete mode 100755 docs/js/jazzy.js delete mode 100644 docs/js/jazzy.search.js delete mode 100644 docs/js/jquery.min.js delete mode 100644 docs/js/lunr.min.js delete mode 100644 docs/js/typeahead.jquery.js delete mode 100644 docs/search.json delete mode 100644 docs/undocumented.json delete mode 100755 scripts/docs.sh 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 97% rename from Sources/XCoordinator/BaseCoordinator.swift rename to Sources/XCoordinator/Coordinators/BaseCoordinator.swift index 1ecacdc3..3264e786 100755 --- a/Sources/XCoordinator/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -68,6 +68,10 @@ open class BaseCoordinator // MARK: Open methods + public func router(for route: R) -> (any Router)? { + self as? BaseCoordinator + } + open func presented(from presentable: Presentable?) {} public func removeChildrenIfNeeded() { @@ -106,11 +110,6 @@ open class BaseCoordinator 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 100% rename from Sources/XCoordinator/BasicCoordinator.swift rename to Sources/XCoordinator/Coordinators/BasicCoordinator.swift diff --git a/Sources/XCoordinator/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift similarity index 74% rename from Sources/XCoordinator/Coordinator.swift rename to Sources/XCoordinator/Coordinators/Coordinator.swift index 59acc646..f38e0600 100755 --- a/Sources/XCoordinator/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -12,7 +12,7 @@ import UIKit public typealias PresentationHandler = () -> 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. @@ -72,38 +72,10 @@ 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 childTransitionCompleted() { @@ -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 83% rename from Sources/XCoordinator/Presentable.swift rename to Sources/XCoordinator/General/Presentable.swift index 88012106..d2615853 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. @@ -81,17 +81,29 @@ extension Presentable { 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?) {} } -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 100% rename from Sources/XCoordinator/NavigationCoordinator.swift rename to Sources/XCoordinator/Navigation/NavigationCoordinator.swift diff --git a/Sources/XCoordinator/NavigationTransition.swift b/Sources/XCoordinator/Navigation/NavigationTransition.swift similarity index 100% rename from Sources/XCoordinator/NavigationTransition.swift rename to Sources/XCoordinator/Navigation/NavigationTransition.swift 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 70% rename from Sources/XCoordinator/PageCoordinator.swift rename to Sources/XCoordinator/Page/PageCoordinator.swift index 4999f70a..a7a99912 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 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..d3b44ecf 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 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 100% rename from Sources/XCoordinator/TabBarTransition.swift rename to Sources/XCoordinator/Tab/TabBarTransition.swift 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 100% rename from Sources/XCoordinator/Transition.swift rename to Sources/XCoordinator/Transitions/Transition.swift 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 100% rename from Sources/XCoordinator/Transition+Init.swift rename to Sources/XCoordinator/View/Transition+Init.swift 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/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 0000000000000000000000000000000000000000..63c48359d11d9f755203ce58eeec9d3504a71f44 GIT binary patch literal 12562 zcmeHsWmH_v((d3k$lwHmyAMvVK#&kTxWfz{9D+-L;O-DCxVu|$2^t&*cXtcHF6VvE z_nou8weDK?*S+`0=^wqTYVY0qsp_YztJi*>e?9?FiJRC#OaUfe0000S0ssdA9s&79 z{O|U>2>1#BqN1Xrp#ss+fFKNX3=jb}5Qt4cjE6^nher$o{?-0@`CIv)Jsc(m1|}9J z4i**;J{A@h{y#b_{J&oT{hti*+zkMs!UGTi2yoN@cn}-{2=2KT&<=oud$GK<|Avc# zh=h!a0RQi%f8N6Zz`ry&1b9Rwq`yo^$Owq=C;&J<9A2Wg1e8^H_{tzEZXQlBE*&8V z01pR`0FMkrL&iizczGNi0S*@t079b1!=VCmeRLF8k%0Ke)zCQA;yWAXaKBT92E-FM zbWi3^@ld{1KJ$yMrj`8K%Zpsq)w9WYsfPP6gnz@SdWHdjFVNvZ2%r~B$=}xh^#6&# z|HlzPA$LI~{z2tTQ}Y){G7a$RKheVDopXdRNNN~jH~kxavZ$;1FK{{h6|Om`rX&A$ z<3+?f0RG-Q`p9BDEcwX7EF>DH()gxKR=T&=_@^gc>2R=~ywa9un-C`A;(@Bmndnu2 z_h>hBlSfgu*@}Eq{6rJ66IWwF^mRTr_vl=_L-DqoW92Vtsc4i<1davJtDh4ABjiDs z<9Q?6pR;gcblTeY0}jV!-gL*;UM|y~ob#St47a8_Fyz+zrl{;ipI}e-&ASh+Sv!39 zUXYx3A1-2C+$T)vcoK_|sBcKUD9pD1Oh%$P`Ll&9?dmeIF8Q{m{m!nx^J`K@-EO!D zi0xoI=%yO6Iz`_uRfJ3Mj{Yd$mNLUqwrB1g#_f>rKxTx4e$l`DN4rM$a!eY`sFE+{ ze3!j>P?O^q+cZM?BYcBVChd`g?uo4Y0{T(-R3%kUQ7owX0B9{d!i`Y4(}L?Kl%p_e zM(%<(>*|H#BmYB8sjKT3!wrHGQ@ay`ELNLTw1m$WY)%iQ(ad;mQC~%}kVX3Gp6J>> zHnSuq^T^kVi|VzEFojhd=QBAk$#(DR4)ZKq&cjgZ4skn4-I~o-?utv-yf&DQDX)7f z%!1L40VR3K6${ zi+N<>PhMq{^fX(Abhs|;#(Ob;neKTcx}YWN>#_Z0I_uVzz4zwv9JzhhgbeZamw=@2 zt=i%%x9Dt9E512?AfFtWUU{GA%vei`Mw*Qv#xBW+CBX( z1E#(5fn(X`X#N^qzSm%$&Ze6lF!GevKSbp#7nB$3`qiXR<~-oV;GuzZO253reGYJVbt# z+;v0tYs&c%{XQnfn47>-0kT4hp(~C1BiAg+FH@`5pp4tvImHQo1Tf(9RSrmm{nL`7 zNT6sk=A!4rvi3%jV9vNOv>UlT4Ns?DCmlcKOH6ugT&KHaBU@_HHY~yD)FkgS8!rC) zxvi;ph#Guv6ukP#flw?%0b;YyVOWhHy`vHhRDuGDg6_bZ5LohFjMbcc_%vQ_oFJ51 z&8W#~A>_9iQv@hViAQ~XvA+iouTUP1WQf)Rw;c&iz)AI);Ld}Y5A)0}l^gOb|aTU-I;k?bi9!z?VzVvTNZ==Sb2R3Uy0 zm*EH5t#BQD@32-|P;&XXic}D$U$RgcUh=tgg@GUIAV8y&CaN!nSlb^lB>1nzK3phRq!qs;Wn95gM$7PpYIXs!icO&^sHs zgP4*)zw;wT^RyCh#d0Fvo*TG7;H9;wJxM7UXgp0!JSIp;kyjz7pUnyjj5Ik1|2YB1 zlp_?Ygl?UBi25#$;=#*qt4>q}cwG{#Qm`G%K5169vAI=Kxfbv1&a%8lmogeiR7Dj{qJ&Lfy6DMm;vO+_-C@IhrghAw6ikmLtfe6m5Ose9A?K z!Ycb~l}V840>h_CLu-mAB9vcub=VlNVw0+)D)tUDmQU8o@x_cyG&QrcR$h|qm4*ev ztE1oD%x&0{aDyE`DBQO$T-ovKk6a2CqDbjO)AF1@`cLxH9-JIqCJZeXvMs#mGp4S3 z)wEYAHXvS&t1+jsRkYiBBD-A9Cc)Twb^tj<`eGyvS8%t(@}F6=iGQ-R ztaUxbmlY1gJKdaB(|8ECT8=A$kmB^!Qt?9nCb&O z{=0F`+Ix)d>p+V#At%?(XsEO6&5yr>`a?;WcVm7O49=LQq9toMm3zaM9j_9G_WPP6 zsbGqLbt(vz`NTe}0jyoi$}5_T@n;)*YV0?!L9lb*`GFxjE!AWRuD*hG!#{{Vx*#JA zw9Kg*YagA~VC>yT=W>O9zN1fL!VDa|I*qsgd-kh6+Mrhrk7UP;`!!Y5#+wrsk|l>$TzXE+)A^5MNeuXYZpSrM zn)K;?LX_qwt^0ijdi1(RwFGZvS6*n%q2}K4vbYX7Fq@yKS7VNKKI+KN;&;UuzxWhH z$lLkGO7K%Ft*dLBWhL(BGa!}q_sZHOrvBQZ(RQ|+&N5%A$e$3)tGi}!IUe%&v*qO@ z7=Op%5czeL#jdxIHo;e@F9vP}qs6OQ0?51pQHk(sS}Uy1^~UEVpo7prIM}Iao9pm^ zRemcwOPowT9VS#F zEXq?KfR702Q|kTcVwP=B%_rLIv@1qPn^Gr6wp+1X4eANaotO`2G!bmaX+bIp#1FUH zCx?9)2!8dZzlkKQrv=B1nl5_tW4*ikJStk=wkY05haOh)J|GDl)~Hy!zK7I2ZCi1c zSX;Z`C0Le5Hh*k~m0Oyrb3`wV5R{Taq0Su@xLmpgv#t6u?8>z?Y4M*khpN6lQ(91qvPZ{()g?i-vXmQ;+Jgt1>%RXDo+F-lG3_Dx!E9V&s zWfsczN8cgV&P1hTaIRu;b$tdn6|^4Kvy0uu4S2iMH~Z`L=9~-|>67naZ9I!s=(e`;WWWX-+|AytW84{Q`M z2{01X#r{Kg5cOw&HLU}7W#{daJg2179^o^|l4VISXr&%-hJ#F&#mrPT89()-<+QRc zY**ixLpQ9{HIE#T@yDHr&a8)jzRpULm3lLgEVGEYLA}SsrHea#?qOLxD?_PHQp_KO z^(#uCps1Rvc0L1l4;nba;&<)C>oAg4UrT}!Y0RDI$ra^+6Z>;h|8PSRPvE|g6 zmxA*W+4KC{2y%9`u9H;@O6HT=nG=mVjh48Q7D`RKy6wJv;D*xoa)8XfH|)1W#)OXH>x?0F zj<+JFZYE19obFqdI_(yJ@VU#{*@{`0V%#`;gtn?>*g@FYSYDaspG3qzmfLL#p%@Zb zvWK-h*kkV;JOlnNXyB2>0DyniGyf*T!M)g@0p%1n?)h(UZuHSZ@+2?OkTZDdv=Fyhds1Y0>cle3%G^0}sTg5~iPZ&%nlO2lS;FBkMI zIhMfVlqQ2{JDj*`TN9#(ud+67K@LZYkz;S+5=S?PM z#yq=tAcNVn03sEWV4C^c&!@$kD|Sq|F6LKysEtCu6Vtj(aT2AW3<$#Ed(Qw`nCG5H z;rc<#hZCYBYvxy+&~z}VS~}sZ*rJW-x^K2Ws1Ac@oNHs2$_a0k(Q6o`vxnzCHGeOK zr;R&=DkEP+>fzS9+wL{^*eX?OML!AI!09;Y?F!~>ZV?@3l)Ab0fcA#~qu)(|G-_%j ziYl1?icYglNLbua0+|BofCK)bTKe9h^%0yBnhYr?0#ywx=fk=ciJG7f^4bb|u)Vl~ z5;s6SX&ns1%-C@grv#dz;6!Y`J{Q`yY}&SzlEG^(bnBd}wRSQ@GFv1?bN z#KnN1sm=j?>NAqa6iK&JjLEgyo-Rg!;%(do!>jQ-yK7<6;}829e!_86eyPLXx$DLe z@O>CbZft*ocqOhnv7?e0$mf$lao>nFbctZsJk!ZLT>>0qdwb8vn z=XlV8$3r)v3Z??D6KALDRyJkYRtP55eWwaC9n5C3VvcNIMg0BlmEX8wa8JwhXT05tFQp3A*w3bF^@SwcE7^_-T+>J=ZIP&FpbzLCS-sFgnub%&)1+6 zSwGsfOPS9DEMzRIfn(otfGaU%Uk)VcZW>K>Ze$KH@9QlQ-SaGEHwi07QTKVx&qtNi}EpOPUMYsexTl1D#%e# zjRBjF@u*if?h?H$Dn$2}bT@70s>0oi9WqaKwIP&qdMk{0pX85AX4a1n7}(|>bPzuX zryggDK_+uM)W%|(;+S$AjJSnpbF;5(?c4RPuO9G!sMEWUQ$!JN1#s8-AoKf%A$zwk zTAtskZTc4KGaq}$sdSm1kzsT9tOcM^XKoo8J)yK8=2nnJJwKVkDS3A$5gHAfZH(b%1wxVfquymN(KvKD%n$v;NjUB z$27aTMGiAklmJ{@N?cCvNrMAFAwNco{9=)77$bO$WyA`orL$tC(QpgbUanw)7G-OR z`BqAk&#JTD6uChXhj`3^2AmQz?j3oP>s%@|PQ|n4^c%jy*Ds7gl_YbCX^Nb)BwcAe z`DY7b#I})&p3M6=wK^|((iKQOqse@C`d3Lv4i|gKMkmkxmVSz!EOEZS6G-wHA90M= zuGbD^-hSh~^3cm%=&MgKqOR~Rw5h5|f0EkdFK~iA%0{lfU+qf6n3m=YJbAY3^}P^Z zc!X#sts2uS<18h-^kK1tF~po{S-e5m836$&Lrg_3U2jJIm(#RvwwVt$++WixCI7#j z-pH|hpFAPfZNZ=EGG2K-KzqiT=>%I*N|l`&roAt1n%bXzW7tHlL{!h70gmQnGFXYe zphlr-vKuq%pwhn4rWxzPRO&*YO9Aby53l%_iL2V>)uli?FQ5l}lfytCY09D7z`F*LVxdL}^VFR2|T0W3HcX;_?lV&x9}J zHtKypb+!v*@a~uRrTppN+IgyU2oxS*IFRCJSj=%@8z^mgeF|HLk*7==WY~Tz9CVPI z=a!?)bDv%F1axHFDdl$R9V9~w<)~3@*7(apG8JxMelpjdZWw3I`r6`>n6R9;v+j58 z2ba|9QWrMJMpu!_htq5l^`h=$YSu}Yd0R)vUVGjJJg4p))DC6OfTU-DYCs!tK%4VP z*_^NgYsy&dpS-Ar$5mH1}v&9oqAq?Q%fEZu(T|KKeIrnQlvt8Exgb@zWNYCZn z;MP7~g8TzVD$exTnQHa&%3q9XetT z24{ubyBfdxwgDHIqQ@*06g?EIxl43y{(oUcXGMNKm7TxJk!~zjz?VFa0DqCy&T=D| z^Ped|l-SDKIXT)gtraeyrtXiqy|O+3ZSzo;&JN{Pkp+gTDv_YtFaL45GYzM3Rf-WN za*+@7Uk9oUXqh;Cav_tk-mddy#HZL<{}VW&Vq@L>38OZq-yP^Y+|>ECE2TO?Yo6T+ zRN@F%*y=hd&~89^jrpD}QzbqBLsI9s#W#5c1HihH@hRI#N9!uJiK754ueDC-&Tsvj zS)TfVh95HfRx*pgtMS7G)!jEfqOXh6#aqk>tcthzlAOg|{S?nL)*#Z&&26@3b6k!( z$#}zp*2Pqr-LnE?ybd?%&8?}+yAze3hQY196<9WQ#|89222LX-;&G`#JIMh;SP>Ae z$HtV=fO z;50J6<$&Z_0?$s*oml*_i{w~NHng<2Tem$iVI(pCg5F4u-Tt=ls#q+Fc(nnMc2ie++@ru?b2(dPfE3dd+o;u2qSn+ zh5RPst?cM*wu@?=Qw*Sg!h_T~T85-m6XZ2O>`&{@P^JjafrqZ$O23U&*D5)<3ldZl z4r+jto;TXgV`*z^^iE4n8oQ*C{^Pg5gPBWstJJ1HqQ|8UfPV+(AuhY|x!zZ&Ln2ZO5tv4U^Y0PoZEfkq7En{IS!TTNWV z=G28%7OtF}oht2+XF#;oNHSk)8fifK$am`821{2{X;}0#z<}5A9l4g#azUVGBf5~9 zyg4l`OoBK&%IQZm`BdqFik-`Ht=8AJ@8Qwo0^eE|rV39v3FoBQ<$_v0zl4Segbr@R z?SQ@KjgxK**_x+P(N_|7By+-IS=sjnY(Cc$x*Bu0<0EOX6X4YniILVfh|1a#EMRZ1YX5=E2#Q{_!c zOIsC!RBgJA#4sbJKl7T)8{!6`qB4%7ZawaWV0QjkQBh2XbiI97?XTm6j=9C=GZvjm z2nJ&N{_ioF5k-2mTWC5*uCqcq0eVN%s ztQBm>x>%4NChAxicEX^KMp*TI;Oa|3Xc<1r`^|fXUzWFb?39ryn$PPQkY>sd$yAye zb^=G2Y@)w|C8ixIv?4c{{z+`RV|t@|Sa>$v(ptuA3e0q_Ol*23lljA4HrXuDJwMoA zck*5lLqwXI|E7_&q*bUPR2F-M$!&(!%xj_8*6$bxzrswIaASNac(wz{9kgp_;Apy# z?_+Abb~jEDpg2S6bpg}p)vp3G0Fspxod3vMHK>k+$_0s%tgvNDoR=(-?IsT6i%2Qe zmTs^R-Y`v71ZoT+AxfXdAfpsUFR{ODBKPw823l}A3uAoQrU^LW1olF&f%*nyJFah3 zcnUnt!iI=jnHdUL3&I@^AdG1!C^XxaT zkcOn9#?H*h4RO&bW1D?{im{-bE|b8~`#M=|FKbH|!L4dt@^_2WvC1RYNT%VV5-F>C zOD9{cJd6^4=SyQqO9u^;yR`g95Hmb!N9VCU|MDDGg`|{bg=Vq_3HfM??~)CvwEF$L zcJ3VaQ2ARPkE*`i?{+a-6OY&ARSu;d6yre4v-uLDcB9@aKY7Y5#D*p|dYUNf0Kt3B z4Iq@-X88SXBUs`grmu6HigCj?&-|6)58Xe%`hHbdrp4>fd-B9;IIP3(bsf0g95tuN zvf-3C;R(J<-9;6(syaLWCvgI%=1lEdV~zNh%W`6=zA2W-hg;Hj_LNh5&CFC!i-aXp zf8s!N%@pN1b>U!laIy#Q>bppoo&lKs&OV7^YDsg2Hd8;v4GwP-@>DuDUW+g zoDQAp9TAitNbD?K#HmuFnllwS;qE0E<%6u!)h( z>bn^+>|1(|UVFTiu8*3y^2Q^m5i-t_x&kXY@}q&@ZEeEbN;iuu3*1|KcD%JXki6Do zZ3{;Cde0U2sK2^BIkZbd)y4a@m(pZP7H$F`q#;wv8cF^b2?5-pqD(1^>>@JuxN?Z!6YvvcD-J&eEdPPjstTla_u4_-lf|?|~nyhCFD(ZH%Eir^&6( zk5(=a^NPsTW#b!yXMhLM6B(J8XTh%1#tHvk-%3r_d@bgX`JwK3?3Lv!pVe1^G1BHv z)-#B%y@*uj)kd#M`jY7Pbi2~u#qJc*Y%ORfy1ir*rR%Ky^+s16D+1du^t|y5F(G|Y z!cyUC`)Jx$T!TUufui)74(t^LKvq}JmYeEA&!6sik>(GLf6^^)@7x;~hpdj&a%nDX zIgj}&#UL9@*rm4f6f1UatXHv&t4l&KR8P+OE=2ij*l4s&q^fetPYA}_aqBSCLeLD3 zVRSf$BZbZbzoLJ%MUA_Bu(``}l~~(KG;&5hn%Rc2KJnFCqqrLOW>Tgrw;8)3KGcLS zSznD{t6F7NMFPV@@fO#*qQ5#qMs%#uCx3}M#+W%U^l_6y$9Lh52*qHkkLG{eK9^3X zI0BOf36}8HxMe%P^?tc&5txp(Ce33}vY>Oo!~aqgXq<2*^GY+HLt}jHzY0Ii7-8&5 zwndcURm76F41yoSP0MZdx_OTny@a&`x%qB_i8PVs{nTa=L}M50H}pVR)p~4w$h0cy_oq{lgkjl|h=dS? zlKY6jMZTm$4!*a&AeRsm9k7T4ci&Db9qGOK>32`AhLA{=8A!CBj$>K>_1B_LX1c98 z#f*RrU6&B)Hms6Gt=b^YF1dh;Y|M;pHI7|=zcr{v=riC7{~4esx%t6J5u#x+Wa-cr$ zCRYRR4`@5?_XlNDH#RZtMvRyySx(At0WSCyG?*8v4OH_r5oft* z?rtjH+vy!ilw+wK-gKh{2;#HHL5nk=GFF4b<9=|FvVhPabAq6F+D36hdvc4z&J*V} z_t>qZs2ksk4efB2PYy_7)iN);6S#Un^?#JLvOa?$p}kpTrsn&h!rWx#82)<1s|XRBAx0oHq!B ze48XSJA2Fzai8njaEhw`%G=tXDGpM*3Ot-Hz-8Cv&w%P@z`*fehg(e#-5uCkw}uQn zU5b1t&c_MxE&%%Y>*?6ArnBJYWaE#S3n&$5cO~1Cz>Qe{=0|f~6^VcN#|0-(iFad- znu?Vohny^0onItTBcxS8WD+#Qn1&yS*`${ktpw?YUuQ2rdeq*lKW1Y6gre9XaSfAZ zGk$Mv5sVb~QY!6Q)S=VyxuBIDDoO)^lhe4rY0l-eF=)-;ewe~ho(ZR+cJG~Tk?iQ1 zY3TPl{duNehFlu{{wB}mK*O;ss)a5)%;}q%({Oc`9ib&S|CZ)h>3Di6M6xAxnZpmZ zk`U*TW&d%Y*ddj6*fOw{;%rCvGxp#b>j`1GxK#)NX-QD843BKKs8bL6*&F9CISYXl z%QjyNw6u@V#?1O{yjHNaX98S()^e8d#y$>b+U&KrV}CQu>rZ=0`HH-iFDc)CRHPQe zS@B|KYKaG8nfj-8+-2+%=OzIM-w|8t0zIa^f5Es4y(^N>J-~fGiv$qFcVa6oAfUG+O77M>bkP8@u5+M zdg&)vi7p}m5wTCM)sQFVB&*cy6dyCPsN>(p?H%k|IUu6L?N{QFNmCiIrotf8-M32N z(vuab?$ecvEPI%FG(gat48l-pM1K_}>o{QH>T6K;G~;U?P@~ng*d<@nzxRQW{Ui#i zY>0Po<}w?qk<}K8>sUhHD{s0pvXgkdSBW;uD;ZbUi_Z%g9L#j!Wsl`JySAy$61s5v z>p)wb@A2{4`U!J-fFjF0Nei*`Bb81+0GY6YiZ~A%sg>BM?uF){c#^0T;inC~Ppkzh zI+-rk5=eV(LdP@p6*j?q2N~Ck7c8x*5v7bfACR?;0`@- z61BZc^5M8S)2Qbpc5D;&QyaSNajZvYME15a{`OT&yFYtT5Pm_ZK#mz(nT@}Rw0R9n z*x>k~c96bduVS$)2=--+FpXVoOm>;LU%Lkk;tt(iO$`kmVS{cwnj%vKD! zG~3nT`+UOEz#y;MWTs>v(+0P!JEWSBqm!?Yy&&%8I%*=sk>*mzUcRSzP@zP!y9FLs zjE%C~m{kli;zNe68qQkX_7`nS%TSvIMmZNw5G#eHrF=Yw`N(&n4w<(8=q#e!X^+nS z@;&G#da}|>?(Rg(sVF!_Z=@S8p!fdP zKX2wYo^Sz!?KkK9V}#;O+wNfP4Md@E#5Ka71gaCkpo&rBwM0o;=3Q<}50YnAE9YYK z0+VI}8`k9)Sv3Z1*ZCD6CPMLf14ueKQTJDz`M*G02i9lpgBHa>?Bs|aadl+?a*&2k zi?F`j@(pZdfchS*+xM;H-Gmd01f++qe(RXdnJ&f0r6S)|sXt z+zr!!OZvpX*Z1o}OWKqrFA0V$IIV^<-D6nzUh%<*tRNzWfIGz;{_W>rL!_eBu)bfH z8nU6FJR?-MkktCdaLdq*o0#+`%(V^49C~`LluUt?biR8<6)_pXcwE%D1oKO!lSbo9 z+w(KNWEPDamJovanRkv+@A(k#R)MZ5`neGJm7+v#T{L;n1*X?ca|W4WV`PF%`+l&I2go>i=hHbvD8=t^3 zVBp3{Glf?Zo+&dz7NZP$*JXb4?$Gc{=w_&A4#bBfLM|&`CygN@+!@R*a?L5Qq_tQw zqmTIItFN-8eeVI``<9d~`mztu3lb@`sy3Nr4f>vDVVDKU-8&LWy9eni^o9CVjz)WfC!kNQ+~~5B8k|5 zu1Cn}=D|SYWFw3+g1;^N`cIYW6uv95(jsyns(>_sImawbDvss3$lPn0{IPjD=6k^$ zM5!SPEnUpyRXZeKLRyNU2CHzFqNKu`&EadJtiWl+msVkgV+#4r;@^j=#mGGtLrgqgB8=Ft zlQ+^d7z*X)UZke#MSa=NB~g1#L7<-qpiqPmD#pPes6fhZD8bX~Plj^#Z4XvpcrXqP z2~Y-KQU(In$ThZe_DZaV$lRuCo>#Y3PnDN1kVPN?DTroG4bWldEKTB<2@?S%XG)~^ zm~U2=mxKH_n#Pmjcd-%cZ}`TH6&=lDsLw+jS{jw<90oCnLFeyqR4hVL(l?C7GkrLK z4ZCvnP=?V`E@o1FNTERWEumNW_audo~xwDc%=6Z<4&dLrn1BApb#B|GWyo{sSKohy?uOX%YX&{U7-s z2L8jq|91>fdM%B$v-Z9ti7^n3TPsL3`HKN(VfO~+(*?fzf9OEO5*i=+^0*U-vE<69 z2MhYg`?m}bb2IgNDs<@sh>4Bu59)ojp48J5|F;JJrefZ(Fvnz=FeU6?zSp@%8(U#k z5R%Co_e|q0z+uqWCHvZHc!+=S$bNz_7x~#jHfFNASC%6CRm+&sc15Sa@vYQ z1`RV4s%S5kW2LO`-Te)Vk-4#SPFCdp71vF{_;A{d*JC7RtC3Wm7sb?pT zTm7bsdHR<8ddpyWjr~31@7IJqley!2wT;%?ExWx;NL~2(N-;MxlO$h2VRb2K9aT@> zUw5Bge^;+^vuHdhzLF7gtuvz0sl4O<@~t` zz6^ys(MW!9k>aDf_|wqGe;fOMsVvLYmEAndT{|??HI4;wmykP;DX6thMmUXsUl@U) z6M?~PscQj?!d+zO%J?BQyRmw+|6VgywF|xTZ-HpN?XR`0>)P(ImoqF^rF)Pua_+=#mv8!ChwhZA**TseoupOjAEOcSnJ;<|K@jb zne@K!ihG5Z#^R)+v0KZW0!YqJ(#T>wA?NEZ221pMF-7mt3GjyqR9X45HfE~i^xZlU z5PC&NJpiQrt~(@ap{d36>)Z_-zLVMP;KCs^`*W%^^F%NnVlmrV^%F znWbS<`u~OTC&focKm;J503HoT{x<$xIR4u}_}h5@CHJGtAdL^<-Kk_gSpUl`cc>_k z^joQwJ$W6K?pK9(a8CpIRes;EWfKlC)-Ke;W?!)+%PwWAopiyS8`qUOV;%d2rmfOV zZTQRmCF8iFDjRDKI2GP4MQMWMZ2Op@L1st;HqIj({NTzGF7K1WtVdbyQvS2E?|!Bw zE6sOt$0y(!;B*(SzxmDLAs;Pdy$uTps^F{j{bk+W+NrFQwt_hkqmROA~@k%)Xcr1~NTU}*0 zxXF&B6eEjEr|NgoPl1W$CWT}SccBrJRp*!~7zcAzKA%rnUs*-ORe~_`ti82L9#rSo zzJvYDOF3KCR`Aae+QxLgQog7#Q3hO#=x!&%!QlmT-Ir=$Bx-8PtFNhC$>I`+-AuF36 zL(4DMw1&9vqL|{)Cl+IGJ9!C*2Xoi$?Fz$z2Y2Z}j&E}V4!!Dc$`e(ZjlOXux1a@# zzagc2=bBsaE&p5@@OQ^yll#EU>G;7gfLr0tc;M_oEM1Kz_R>~laW+0$Vvqxop&as7 z-#4Xp0*V_UlNRC&;CBCJc(pEThGd7{ke(iCvp&CsRe-d;j1W$3RE2#^y5i~cnrysz zc-^OrsPJTIJX-GsRdYdn_D91!IVIMiDKWNPtHS-+p&L0Y%MYun4X*^kH>F!pnXnvP zG*_~|+rCdlq`tdMpATgp7{TT|+Ekza>?6x}o#=D_3}F2kDjZg(HLgdh({l9Lh&ZNM zvX9w}0<8sZ!DmIK#3qy0l&I-8hnh5yj{NCvk0no3e>Szdap0^uXjQ4%cBxLQD~32~ z@_k>_szh#hp%=_Q%LeAnTMuq=!UVR8!1_N^_`UifS;4LEoZ;y+#NG=MxHC)eYQ>x7 zP4l$S*FK?s2HX%ihH^)4I1%*7l{005Oot9vnDMg?BU!tYy1JeL5k+E&X!mofcA@MQ z$Y0`9Uc9X@5~>oD2nk-Y!yszDAINzmeV&8t4Jv#qjJoZGQ8m}fl zOYgFTQD)?`(mXrVW_=?){W_Vu@2rWMaR%c~-JJ0m0M}fg3*@$SSjrnR0dw;huYg4U zv_hQQjmYfkp^n>Ks1wmWr0Tq3blHPfp~y=a`Db>Cq!g~z@k|+Z@m?V&d=@*@bKkGY zR$|rn$TwHK{1bp13vzwznW!t|ACgx}F)OfP_7*l&(D7c(?P!|8N6O(-jB|!Z4OY3& zi^ymP-}liErRY|_7A3B4fh)voL;-rwX7>xWrbQ zXOU|DNa&-@*QLBcpHPP$2ZL!5r(urYsU9TZ3)GI|y|d-tcK!a4_a4o@QqSHgX#^$i9z>6Ww&ekUuxK7|FH9pdAfND&Xmrr61;vI!({0Lp=&$XKtt5W;vv!@>wRP?ahM{br+hlo~UPC)RMbj6S zCBHQDU2_IAs_PNH!WQVsW|haq;xERe8U&vRl4gy_Axx#on&@8Y2G!c`rJsb?0{qNZ zR$LC}0-LknO$%jIlDj?FOwL6COp-RN^gri+G*tV7>Ac*whmTY3VKu`++6i!$cPr)$ zres5@zNS|}f*dt^^d9{#(v5%s>2nz72Al9WD+gAk$hQpRlzCAy{@=X4U?^VoGH2Kq z#wN+eIfjvXHXK*C`I$`q&s{yx59jP+cPS(B>mQo>TYKskhgjEsSx6|?JCe2uDJ5ml zNHr-dp&rt2bE0`1PSf(*I;DM)P>vJE4y*wMe@uG3$0~=QG%vgz^lyH1OrcTj!0hwS zRD0fQQasds;IEXmq4^n9>r2a$%%lm|jY5CLYNQxR?58%L312gvd3==F4H{4Ok|Ykn z_fH}k<-F<(|9k``g(?-@pPE!Eqt?{ZN>Ks(MY#<$=DjKdQH4tUrcTO#1jgIc8Kd-O zSfL1HBPTY;tCj?Vl(r&`4SNi0MaoU!q$j{&eFQsWvbQOE2ECha)DT;}W`Kw)1`tmCCo%Xp9RcBw{~1uiWq9)u zhnKfLIV=vS3AWp+UTTs*Ki~*B4!k41BI)($eTWl>B(_9vR*Y>v28$uNL(e+eL|KSc zq%Q3)dUp!v6juy^u?x^yF7pPIdIzBkkDcI+XBf$6@gWEjkLHf zo3{n`yQBXKKc?vgxfl!Om~@5`m2E^Dyu;HrmtWZowchY$eg*($?ST0y7GP%;Mf_+%^8c`VBFdhTpeunonA zMM9L69*rBUU`Y4{?Z~;mid#%g>~J%`)PO?`e=AMB({98ISyA`#1ibw<%9`219!~%% zDkt6^S1wU3p<4e?3#P^{i5;Mm$5j3MI)`BTi7)q@;kz<#{>`_+XTTWz{>B>?W-wLR zpHWRl-$6Fk5IQ~^AfmW(IP-Fyxa?Ivjy-e0DWFC|EhVdh1S_ZSN1l*AnLS?6*M6(} zB9?i!kmC0CDGj^y%bcsH`PX%uh`(U|BG%u8AAk1_mHEkeqr_Y8wLZP9ud3VI)-R2< zKD;EG)tt+F2An;X4M%ncu!~~kU3_b@ucW1=S4E7J_9&?=#mJjcG>(paWE~f1vFcEL z-EW7VgXi0=WHblz_0Fo_i}iKRiH}To8{tGd(jPsCFxT6rX-w44_F0rCeAuid+u6ju z*n1>WhVs{2pls}VA~S44?P>?@TQuX<8ge7zoR?!-!y?o3FS-oh$#k*6LK(Cr0B9gI zvXVSEG9_f>Ufb9je%+2ERtBjWd1*vwbjkRocxNRs!f(-`yxby#Ym2cjOALr;+$cP> zA_tB6Z)QKYDA^p;nobtZn*+cIzO3dB!S0Ua8ore76r2>fx}lmV2lL!R{BzB348nf- zO>Q+#Z9kran)xJ6kT#wU!1P;CqJVuNL^EIO00sugoSn?TgPqLv`>$p^>-z8aY(%YH zgFe;dbX$KTFp}QUeFoS+C{qRcj4HLXe`((D0A9F8wST1SCU3TWGPKN-fZ)Fq*e6Sa zc6LPno*OYrw>isc+L(HZ>sTLiLSG6DY|4syDc;vjpG&BMdv^1*gxS?>E(G5}Eyc5n z@Pazq+m;w9HImt|at7&IxQw9aHj^5tQ0nUH@ds9Ob#!<0#*OZMj&&=L1Q$9SdFr0@ zic$GbECj0(DR4QlgS|E4FbAD57RT?x<0d2;p>$i6XOJ@guZ|mA+8)&rYu$7)CO1*? z%mjlQ8y0qgg&XUZ^rpMHkO_qQ#S0Nd`D*fAO>UOvda_FT(sq^zuU|;r9lbK@neji# zf;~G7`!T#ovsoG_>^03asx3{6C_TV61$4V*4|QtYEwAB2JykkIV~nZzV8r4|YCb^A zLe77Kh-(wJ(%on@6=R@BQw!h=I#fPkiPx z=gv>oMgV1{mTt;~*R@hkO+WlMP@je^xIR#a>{MS&X$6YkdD-u-(eWLSndumo1GlpJ zi=^@jEJ0xGQjC4dZE&@^Hbg(rHlc@gVN1}mJNJ>y<8V(sNV(&6z?cPXHWK1lg4d`T zZdvAZ&p>TW0(oQ{M3H(1Lq<|H{>|953WGk~cT58|^|vEdHoQRS!0xVou3b9kMbtzT z@5M@g&#Hdb3QdNTHoVpGSwT>34EoW7)1c{%!^qAL-GJuWZB5u<~HO6B{} zsGQP*1g3sm^2dN*we~~~16cm6!#eQXv9Q?!+VTzqMXKW@qsno?k9NfU2D1Eq$s59_ z5Gv@8j4y~^7Ta7IxHAxNuP%MwJ3hordf`1 zJi>harYwNYAG1*pPQ)=a+U-uhQ>r(L!#@o9dL0R^kQu4aXCo48$bu%LIKB+jxTPE5 zgdDC991n$(B~vh&GUV&Xjt}+Rd~|!e8d{s_ti+8KA+jt&sNSMQnv3ZZo;1F;GKT@SK#k3L+VA^*-?u&8FDIXMm_Z&NY>pTe*YV zQfFmLYl1MRHu(zYDR?V5TN{%Zj2It`;u@P8MtcoT%kD$>l-nW`AWM{4wn#0E5`9!x z8tOl*k-4u&zpAA+UZ^_ev~TX1cQAWh(Hx2&eJAFIue0On?X-tKp}^)iU|}IfeS^9w zf@+dkzHU_Xs-q=qO7_obZmg3!T;y*)IXOn8mIVa8pN9+y(0$H*>@QdNndQayaYoFwrO(WHUzI6V>BT#X(~4Rpp8kjqr3H6L~VSjK24Bo^_I^Io8)fy7iu?$ z+S`+?oZ2nHeJNSykXn_bqz3=}E&X@#cy12{exTR8y_O1jT8~+N^SEB~g#tYW+;>MS zL$j4r-`?d_CZ9-0ma!*`_O5Jiz%4R6t*|(#ROanol^0e&k~hJta2h_n__VSEHjx(P zJo`y{frqxBtKQs|1?PGhw25UY_J2vTVcRm^aTp<5hzje0UptX)0nuX{#< zBmx2$S$wx#N!}6Iiau86ppIMn6tF#S)=39(i1CN<{_@g$$u^Z``(hvgv&4+e_jSRd zm&!N3)cIQ5cDpH!xQT{l?V$oGd8aO6usqu=CyNgLptS7cGeDR`@I&d%jQP= zziBlXFp-BP^_Y=i3wX4Jh~)kvN%-^(Ao0=1to^vmD}76R7?b!(|J^F|ho+@t*|g@{ zTd>qz#@l@3pXZJaO^Sv*C>aUmHhhE{s#*c@x+e<}%ijo$?aq@q!8D{^9@yS!p@-EK ztA-ONS)e{Al%`yfNS4I8;S#srH;=EY|6KDJMYY&|+VAiiauT$kXt)9dp8==gYbzfy zW`LhM>7s41-b?$LQrr9rjt(Lv&6;wFYqxCjJX+aJXAPh-62HO4idEddgvIA=_zJW` z$6~WP?Zu1Q2$nDBZ`Xp|1&HAB9$LZtc(_};oS2GN%ld&9Xu*2J07P18RIaF~&0t`h zm>NpoA-R)6a040el}BFsyI1_~5dUX@Ql@5!uKuCqTa#PnD8{vX`3CrJJ6&r`*21$d z(@`fO6>tR4;zjMB&aQQawG@0K=*=N$Tkq;MUZpVgWQh7FCO3eq5X2lB%PTjUg|SQ zl}~;#Y5m*@y|AkwKi(K7fp^`i!>t$5D-&WMA^?I90rr9EDOLMA=#lt6`u2AFv-%;t zzr;Td4cE|t+}*Y{xXdC5+o^*0=4ZLYEGLGJbNeJJMomVi@o>1os^1WfBY09VMhh># zZJ=`0rD&|HVoKkd#%HQz-i}rIZkm{>C1(qZXGerGg2^CYELF{6s;x!;O(?QK0WdDi zBmxW;PW~LcWFM{SYh!{(OE(!K2#@!6o>WYmx$&JaIpfP9X%Te06QM8_cdZB2ZvZ`6tW8fQ~g!4DtX;hMvMBQwd^=M2|Y^!Bk7_UXw4_5{_(5* z7o+cZz+_%ZVMsPnDoutHTn3B%mqxv1>u^y;<}RKIow^u!GjqNBB`U9pB{c^-_jFe_ zu4|tFFN-xQHtFQc)mN2*0#8Nu+xZ7O_wj8pfkm+_sDxyz`W47#dFm_(y7&uIWhB@L zCFEf;vlqu2t`KLM09G;U=!N2EfNxt{HtXfqw~> zAkPHsJ;6E@M&CbHM(#P7ku0znxE2VC)lzn&$`pUdilxyA@E}AGmiGifwg zBW&Mgfb8iZQ7jWLlbnlW2R3Fjcc%YN&H9Aye{`0Nv8uj~Hk-2Hjg31LQ#MNlm%7AU zLpwzx?-H;I5}&x`&axXxjn^R?i5-u-JlXr4bB2o}zbX-m$}M*j!<_KH0X^vtNA>ui zN*m`o2D5@E;}{$|mq?!t-&;PNp{hPn^cqdGHkh3qUZ6Gj`waxssUkwXl?33$^q)CE zVcY>x*f-(5%931u%WBzEz)7WtO2 z+Mt@BCL6eOBrx|rytepX=5y0sICiiHT4ab75;AeI|Ayx@f`i>@I?gdEZ@A`Y{{ojM zKcwweVeohOk{!sjqK`PinK83KHtoEl?R<%}yvjH^ths z&xLFCE4i+Lb4#1M_Bf-?ACBp`Vdb#ySI0=hOtkC{zmR;W*U)F(_mrAy-VkP2MAPyn zjD^3KAXsi#-ZNQqbSJq5g1XwIiDz7Ft#OY{r!F}8%IE8d7PHv`b|;8Rbm!*)paNT! zNlZMgZt-DnY#7;;YyYo(tocR3HYE$#YxtatzKGTd9$KOFhz4vFp5Z7oh#|_xaF_X7 zCN#B$Pj2wmQ(;mrk;ZS@Iz%7*Q6QNvZ+>uChBPg~#G@v1`IGOPcIM-?Z_d_^t6HRp zpW5SvPQd&Xc0{}`CCa2poR6gxu*Xk#?VsAo&^rw9L!e$bAp=45?xL}tgI8(W?i6sz z^G;ZtlH>?y`Uw7P^Q@)Z$>8n&&tBbl;cbP{oWJ+zfolrRbVKVDY4O*M60lFDf^RAj za&b;bvl|$HWVjM+;S%VM0D8~qs2@4b#_CYI>a-Nf@Qi#m(EwGdU1YeZ*X*ryvn zQ^vh+VBIajlJ2ak&oVJWyHiu277o?vRHRF*M2X%C9;vD$e(aSAm@lCamsyURt2wD_oCRRmO zfR31Dh1&Pb8?Q?%pTP0;WxmuD3%5iHkM^w=sda1X*|q%6;M7X9R96Hjhu28)yn3y7 zUKMAVwET%)aLS9=aAi2{NCDpTz#q_)rwiR!u0DN{@=;e2voQ-8l+%5?J$S9ew-q-Y zLN4AueV*ia_R>#<_%Q3eUY&rB<=ED$S-{tGv32soT~BsQyA%UtEOy~#k#qqM?Hi*u zk`D$GSd?VNWi2=u8;q7c8@S(AHXUGUBzzX~9j&665grDqKV0xWPGBY6v*EEdi@a5| z%=PL8{%)U2$Zj>JZod7XOu6HMdLR`YI#}luFm;sCi;q4 zx1cXs|DF=4!(t(kIp2-egIOV?)r3^sUj68ezY!bH&9Jthf`iMWEn^c6?4T!)1AE(4 zJBb8?BOTp@Y`dK-)=*5VBbH^HA%@#r2^E3xRevb5Xu^lVvqzfW{^5bXeq15Y!E%5= zN%K6Xl69R4|G#H(jR#_I?gq;=K#X#%7(bMi;!qRgQvMQFRdo|%S!IE8S&q}8Xd&m7lsU~GBN;F;ja2&QbCvrsjezvY>+;HyM(C!r3 zdHe-vd7;PeNn$wlOzY`~7wFZBePxv89%I;@fO1x)NKGx9T$Xo}0EGKxG;*=-{TSc5 zS^4UoN8zTkvN{=3P=VsBJocF&Uq!<@^$=uZ%$@2uIfq@}DFNJ#0kW&%KQ|I@~nd_K-mnu4(FY*^1mrh1wpSl?gHw4rrs9KM@fh zxfV{uhoHE7y1N2Lqfz3nDiFn{2lcEy`t9=8`)0|?VLJ;d@Bblg`sKY>Ra_c@VZ2lTGKzUjOlHE$o!IUq8>UjIdu4>fmiWM!B45r;3&L2o|c^?Dsu$>^^%ZHJed$T^leZ%Hva$lbYh@wNk||DNqb^ z^>JaBGTR06hWCd@MY-)c4~D06eTI!SlIN};Ru7^8nY$H8P1@BPH~-{h+5U2_FUoqW zx?eJ~%fG2vaf)Xc)4l6{r@0X6&fSl#xB$EiWnx9yy;M-|(CBB!HX&f3Dq6Rg+`?Ps zN^JVcHG3}k+Y^UXb=V9NVv*+O5u%>ATl9(aR3eQjPxKbZ-&rkR)XJnKBT9jr^t)+r z&Dy%KyQG$>A};f!C12ccgZ*lcvYLI?nx2}B6p~cQeRpnOS@}2#tB{KsMFqQt;F2X| z{L;Ia&nK9p&-^G1<2Ad_9f=}co3CXQZa@TzDIht;dUtf<;`>jWqFd%5B)!1ug=?>D z7_tBP=keCCjLt%J6*TqH%BO$u+Fu9eedY+_RHeqUsK#p1FSQ{M5l*HWD=U+Ol-H-SKE4wIAPsOGg+#Z(Lkaud^TZijlyVZ6?mJM84{Ys&P{#-j+%cTL{_ z5rs%;bDDSzs-7$6&2)4mAc}ON(=(xRQBK+DkP4QnZw`L_8Y(BXr zKt$+#6&$|E)yU#@tm2kIIhol!uU+0fHQ9HL0f=JKm11H~6X=*-9e8Vqg4`dK6*Yww zf>jiDIQq$TlG7OrLP}OGXTbGZbfE5pgTg^x5sU!k2I0RMYwdABQ zYupmGBBvmfo||f7hgIJwqVSSMD>Td;i7D+p7pkApAl2cnwi#jgstd8StQDR}f58!2 zLGGR{e?*)ufogl7u zuP9uJr4>n|25v?^l_5_uKGbNb=g{@{L_LVlFyy|5SkSgmsbsciPFfitPq$ce!%fKp z@@dA`Y@`+1fg8Xt(o#Z`YK({FxW?J{-TH^O2F*b8?%bC%E?Qk;d}v#MAfJ ZDocumentation
\ 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 0000000000000000000000000000000000000000..5231da6dc99b41b8c9b720113cc4991529eb215e GIT binary patch literal 15406 zcmeI0eXLhy9l(EZk(V;zI<*U%aPfsugKmE)10f(cwHIH|L9U{ah=EJiM6*Bqr=-%B zThmgUiaYBb7lU3O68JDrPAE|?)})tN@Xd!mX^#urc&8-W~DL~ zA3}(DSI?zd>5t=7SPZK&9IMk-CKECK0-k`U;cFR=)oIfwPriimM=%tA34>uqhGTWw z^!XyhV$KJkAAAL7f)e5#tD6n_=o|X*H*J9*!w=xkaDO&l!&TI))8<%TW5QhB$+!uI zgTK|W+?WyW{SEqf|1Ajfd@f__<&V_U0+&D*$rJDKckKge;Kf=4$g1yzV zevDUKll89O?gaefnyh#KgdEOCSXb^j@flUKe{ri#JZG9=8hAeSq6{S0`EUiecg3+f zZG9m_NO~Q(PhNvAI0l^=j@4OB}1yrjNeH7;BDt zWHdpouphn+qu>SD3}=Ay(+tPz{s`+qUt^3l$7rZUrr_*cu7eQkS-Ka@9VD)=PTM~C zrZ)2K)rVdOADP-OM$Xw7xcdj5kIxhq;`Ko_erfdtCwz5ab>P+hI^p zWY@g<`siy+5ObN+++jY0EnHnEt*{XW2W2+i&GoiO7lwKDwcQT8Anwv1zHlea=$Fm1)sI(CEUl?<>-x#b&fv;*0N?0-z}1g&&lU_V`|9mi=Myc zxnOMGv-X*JZYk~$*X38eNyO)Q1TIeW;kK-PSOZPLIl9{09^9bKRvHMhR+!J{={mSZ}p2hmSQ_*J4%V8!QhMz&m7p^a$ z^Ea%@vFY>ojNl(%&1dX-i1m)OS<~8~eqN2^sc*ib`r1PMD;PT$d2{UC)jR*@Gu9lb z#PdG}W6}C^o%kE#cV3(;%xkO*<7(I6Kmv;PpL@ss=bx5&QdZv>WApZ(=SkRq=Jo9H zOi1N;&!1OGn0Nm8w?sI9tm#?k8t_@A=jET!Ez8mCw>Be<@qQT?o7${ltr-yHM8ALR z<0f#uP6N-~fbUS(;DksQY(6ueUAPZdeT_-qzthm=y?;@6Kc`l%ek0_4e=O1|k)rjd z?=Bb=`SPepAKywB^;;M_*%tm}?1`+Ztu!H^3Y4AhQ*Fos_PR7-If9s>KVyrpLRc&otyT#a6*bmJiTl_eC4Te}Daj`>Vh+L>zB}qp%5jZldfi5@( zof(eRXh;0!C&y zR;NuLeNP6lk6|zgJOl58r@(i`R&ei$V|Ci}(bpJbPta6h`nD1o*f5aCHPx{SnpBrx!(-~ zAeN&3_0e}R82bo>`C!;xVZh`4g&u_3-dw&O(faiBSzn|gW=k0oKhE&S>*S8sr zHOG|@#2VJJrnUVI;TbWkN}BNU`8hx484R&}n44$8Ir9G$ozGNy>fe|xlb-rFW<0o;&1KG1tZfhWVo&x~Ca(Fp;C|c= zE#UKv#d*66Le5iSV>GU&e`A+sxy)(qSgdUi_F_-=W{*WO3WH~`z1;#sau|-z=iLcc z=h#EcMc8&`I1c*sY7TQf1LjWc-hUnJ$#vvAu1H+V`n?6dS02h?1-gCU-ddhx4>7B- zc}9xkpii&nFxOr%cWU?EUj7Z9tBW8{Tx;zR-tS$E^U!{*3O{4@le|2!uG*aDYKL@B zy3Q76b)Mro3$86dyU%-Zfjz`6!0w!i@ses#^MQCh%`y{q#M6>ODD!(GJ)J6Em&9%fBZMfdA(;5Q^kn4DO?Ka7K|+rmv;{ zGl^Lb=C;Qo8HC|iV6XOU@9ORY*WWjwOeSM=udRfSlsRInrGIm+0&|CXWtc0sp|#f^ zg1w&xt3llqD3j|jc7bQwhsqqW)zZJY9tQh&ua?PFjP~#(*t_3K8(}|`t$obh?>}S1 zZ&z0&we%m>fVt-sCCv1$FV7i!w)YXR6?`XordYR#d$IYP?uU<+_!)m0yqe*-D5rXJ zJpktZK9u>|qrKX*y^n-#VC+AjqlAB9^Bv-KXNg}2HhcHIDvmo!Fqh9iPtP`M^u_sUPIK3Kehwn0 z+V|I`_TWA^yc@2xy)J3_rufp#orIy zcK=`MZmv7P9*g8u3~jI-nxRZQ!#gq@mq{~5bDF#C`_1n!dyK!|xb6NwuvV^b!ff!F z6p7!sufrup4w=4|{>^31Uzg;xCwsHU4KNgfXj=$f@I1@{_fZ~e(Radk3+y4Lp1)tr z9pclgJv|5Zcq^oH+=Q+jdA^W=7vMjXm z#SG{E8E_3u{q3TPIJdL$M#?^_GE7(p-37q%mu$sJr7zSU1tN( z-38`*3{HVOsb>EgYYuan)7-IG`;%ZV_GEAUp-dVvhMcPz=dHEr==VSyjDtL>rvLE- z?f`R5gH)_-5B|PK!QQG7<9t>JVF~ygWATiB7PPx((s@JG{SDv2Rs1cf7;^_40&|%& z7Hj%9nfBkoN1+yR&29nrmcPOHcr9JY{oC*d7zL^HH2=*6YzA|fD~L6$Wz9~ohYO)r zaW8xtjCY<_LY!wH_dZi?cZ2g8OIiQ=E(Yh;9OepQjg??tYr9tMr5-WPe6A(Wt{35Y z2=y*t{1Ujgu7UXZ6!ou z4g7WtbCuV>w#k{VF~*vs1ucb-aRa=P;aJ^X(8oAqjCE`- zbDFz1)(dHR6xYY@7ee^YE1DL~HCqmqduHQ*85BwYUDcA^G yVOxe{bx(pm`c4GDf#W^T?Fke6@Nd!6;4Byct_N|fPMba_OV70Of&4$uz<&VCpkVL- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..041394edda9494abd40fb9225699cad7a7842b47 GIT binary patch literal 6155 zcmeHL2~$&97QQclpdz3SkX9rSR7Ow(Dvg2$6cn_T21Z#GqO>rqQ6V4!LR?W$aTkzP zT3N#~A<(SBMu@E-D4U95RRST2L`;B$By)o^zhP>sOjYXDyZ65H&iT&ref6%nI6E#| zvT6wcVA%mD2R8szumGUEG#0@XS5wy>cv*bf$twZ?z4gjJa=>lf6ae}S2ORbsIhVm_ ze+fRqsbdX4d3x{yQnT)<&nkL6biT%C z`q0)%n~>gP`l=G6_O|pi{b^xL7AbptpMCIvIBsM zMo<7e*U$j~yPpdEvOuWA_`&P6}+)s40)ir+f=n-2iuCmf4 z96>eZ9HvWL;kA6R4pn zBsc4A0!H4|2l+hSIeW1G5EXRR_0m_VtE;mo`^p;D0%M5M`0+_DYhWPDN`>$VhS(6Y zTVc^YwFl_k1xSvE<+}1KYKHlOIFXp|LtNDK0s=+usg-esqpSf9>Uu0RaP*b9IGrr# zz28PuZCU}N{PwiU52kjFl;fkWjVhnjG*V4HFL}%+caqa8Gi2jWQ)Oqy+R_Aff5oT0 zGV@gb6mrl8t| zlj%S&17@MryCb18%LF03gZ@X*nasg@T2M&HtJP}eD3mI-CN1D=%;c``Rb;MjDa|8E zkFpOJD^oD5e8N@ey8P{*n{Ohm_AmqbFaw;|nRM9_f&<(=Lz=3$v@^w;~JrUk=hlX-u#EEna7^RQwR`c8>Qj^0fS7NOgjVUWB ziPXpW8q8NtvDxggLCZKDLY%5b6RJS>;)kju7o|7rNMT_ua)6$#2F!pZu|{4mdhooGXqXXPq{4A?N}9Ba;*>9O{eELNR(W+r9tQ_|;L zoM<*60l8zqkz>qC6SVsW}* zjXOS+i9+KLlsT5MFDQNEa97dA2}Xk%O{=wf|9z!vE1_$5Jahj@P*CPC_?TozLrdRa z>~`HR9VahMbrsl8Tw}#}Ocpt}%g_?+KH%&~1)2`oK4k+BDJ8u_7E%?${P*(?FJ1gu z!x2=W(&p`tdiSlb;`zLk4;R#${#dL-MVv}0kqL==_O>`q`g_TMrxvV$fl4h*$$N}| zqE>DIQ`%6l`4r8}#@!Y?fN4WhMIzDo-2&ajMus!~OPd^cnnL%mD_qTQr!wBu%8InI z@>Mjcb5L}t+@4=S5stL@Dk$tz#iCMQrHy20y4fY?6WsPIa`|eM?}!2^V1#1KAFK{ma;X! zWPM8CAaqS}t)9yaV5m`tJ%zqN)8n#zW`6;WC%Rns`InjBNV$T7`}HmS?R(6_sP(Hc zD;Y2_n`?yv&<0z`6OcGXlA0*KcQuo#NVwZ-($zYdeC{&q)6Ce3^!J#q{moM08`+xm z)x<&k2j4Mso2C&sV3z*&uUd=B{yz7(Lnp^~bUEXhu`>c@I6uAQdbhhJ(7U(|3o^X@ z=(eW#oBbb-o^fNUFAz+|LE7HREJeZWKX*TTy8^S4#_jMxsR-fuSw$rL07aljE=Hdk$+!9fLzyP*YogOg7mR(u{OhWYl=qUHeDLx zrX;J=Ck=%buEp4{ODlm4CPStB?2g#2kvQ2C$?wIO>FX)i$n!C!28i+%Paco-6PaQ7 z44IhUpJ%fhGSTxbc?)ARTlIy`NS;(GqH&aH%`1zo0M|mwFNRa{knECRkU1!W_156$ zL^JIE>7Jf_a?0YnZ;`QI;ApUmuTYFVB05{rAG>d$%nm2|;sVn9$9m^da$8sqVaBmj zL(j~!G@I_grj2kHx(4p_Wm4j~CSO^Y1cS?m{Jd3uBaui`X3MlOcxAv^FkpioeTg@t zfNntl%E?YJWIv7WvqYWsU*PIWlbI%2G?5Q8i9 z&91$R20x)xu{_wwT*KYuzr}PW-KwSc26?P|>LnZZ-?vRUHa zld`&Yg`a)>qMj!ZIFlaYfb)JTP(2dYePUYjP#jaJQAqRaDvDS~f7i;;2-ba`8%d== zx3hZmKYU>-eYu+DmD7s)X=xOv zBimLy^FYR9+5YsFb`Q~m63Wxa$H(WezK_aMBu5+0|7*u;BPZS^)9Ub>UnXgRWZ1Nu zt|g^F-L)pRBES!Hnjon1bxMUBnfq#2oDNkE!&vWPhS}U-200{$2yHB`eC`-1QlSEP zRP|>otCWTptNxggeql;?fKD?w<}@sS_Th$Gon3j6+rEsG^ZF{pqi}V@xkI)4&c%wJ8XIIWh2$jg8%odjp49 zI+5v9ywRh~moM9ilpmX?>ou)N3lQarq8fquGMEAfrCixkRdtq;VS-SDl=%`W(Vdzq zpEyaQfKGj7N~5Bp(s4(iR9?7K3Vduc6!@5>fDFNYVAtXp_AK~~b(;=whT&{F-`kT? zdM0%($WUTb6BL-x4OREJlKg9uQj%`zL5VO9c>`V3JA4r;dv@9P+Y0M*jZmpZo`?HR zaEcoDTF=#QgJqxt0Xa$QFN3rpk<_N3K!Xxi(&^KkyQIxrb+8d;^SO5iDKs=xSpXFy zrxu~}84QL%BARrp9-`4aNrs=Mrlu57*K>>BW0YTysJDyzC&R)p)O^pzgBk-+JJsUB3r9)OV*F3}bucIo!x;K#S79|-(F;0FT#UkJ1v k>?0}opBDi@?jx}ksIf$DCE3`B1mN$$K4*v0y@U(@1|3!(tN;K2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..02d24f3d883fcec65c756cd1694e3aa3ff880ba5 GIT binary patch literal 939 zcmYc)$jK}&F)+Bo$i&RT>Khgjl9E`G7%w24lbDxYnwXv%k{^(hSdx}slv^AxAe5O` zl3J9On4IbZl`f7ffJt9xW9Q)H;^yI%R?#%Ga|<*MGzl~aGz~NiGz&Dk#K$in8Us`7 zmzbLx1vINDKczG|HRY0^kg!Nd9#AkOH?cT7IMY8^faS87xP+vXR7`GSR(?@fYEf}! zeqKy&W*&l5kXVwO0hJNp6=1j|!!N6VVh7M*Ir)&1GN5?^mlc(ii8t?}sv5dU>Keg` zIXNN>Q1BlLE^BG?>lheDrKA=Vr6wnqq^6)~ysWFIPrS9@khpAQY+_2h&p9ud^IKS= zSPC)5%G$=3cw@LO+4DO%Vll?a*~OK3WB4w)^Lu!r8zU!w*~{C9c-JiQ3%)GqFBA|M z6qK0~8eE>4RuWnaA_W*1g@l5=2ael?;ZS9ZBBKzZ3>*xC3}OsA42}%m3{ea*3~>wz z3`q$35HV)XBaLr++%pm@PgqL!$*dH zjNFV8jM9u6jJk}5j82T6j3JDPj2Vojj7^OFj8hnAGp=CV%6N$J2;)h{YmB!UA2GgX z{KLe_#LXnYB+I14q{(E)HcsSvFa#I^3;~7!Lx3T`5MT%} z1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyT zUvFa#I^HUev0B-R940?&@WGyd%O ztK%+_Jun0q0t^9$07HNwzz|>vFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoW zfFZyTU3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUD9ly#{*tSH^{GO-(GFQ_|5kY1 z5=f-2OfIDr5}CC7Zk>mp+n+#%$Bn=P90JsN$qjbjb~K@BX$#yx{^Iz1<0r@OAAgPc z0C2%#4-5f@07HNwzz|>vFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyT zU1pYZ6qGKA z-xm*ySA;V{PG}P@@hA8r{9681&f+?`x6lJ<3|)!-D0(=$G5Y$@$kE8Y$Uvky@>%$D_(J$h`0?-q;mPo! za4g&tULQWud1BY>u4B6n?n1j-cLjER*#AcVi~UdbKh&S?KhnRqKit2m|I@zr`kv|= z>TBuyJoG{6V(5j?4?_=z(xJnlu~2{LSm(yjC%y0XzS{ev-tYGw@3ngG?3H^vd)M`T z)bm!)*`8B9kM^{7mU`~(InZ;kbExNh_eA$y-MD+UGuYkKeI@vI@Lce8@I-Jncr17@ zh=T8Rz1HcU;YuBNUloo{!d&U2loJ1^ci(s3GnEw~>A*PrU%gSMhe z+Y8;-qVGpvk3JvWwC#J_o``-Ynv4#$-yOZO?x#a9-~8jDmxrDny4WEGpX|D~J=F2Y zP+{nvp}k$Fwm#eWMBDzMXIu9SJ$>{3wkzFRhc4yIB)*CMFD(&job-o|>U+()}-+W)JC%68U z&SQNC`sTOc+xGOmdRucJ>ijhHZs?WJGocfqQs|!0zEC)%1I8csUg|y8e7^nM_7A(R z-g3IVEqLzMi<>X6IoJD0_qCf!?WcMl>CN>X=^beMyu%Eh?S5qISZ}cB!lr%Qq25>4 zuJ66D<4Vt4>ptn+)csb^%RNu^Jk+zb{dh3lb9c}49VVxUvZUfahB~m;t`WBezA=-q z3WJGP$VtIh!MSh(*k>mCK}Jk+dU0LJB6Ls>mjmzY1KxYD=Kc4M{L25=pa=)6)3_ zbrxb|QrRS-0wZo}cu_U6sT#V*D_;Tr6Sge+Tvt{>({&BlCo0ZJOp+vVtw5p`x{*m2 za+ze3&;*$V6m2c(^J;48R;6m)ft;$=;BrGz$avZc zq>HA)sj6n``Y32~r>z-%uB%y&n28(|K4=?qnIaUEXd#z~$L$JRn26ae2827M#jQ6= zX(pXDM?lQXmu;E!KP#6Ram%G3s}iyV#Z<6747`8EmP4OcB*&X9%c=FeBJu*3G(i%@ z7)ThirP1dVNpsVK6v>o`BpJM-tHAXRTLOJvh6Gwh$ZWxvWv(->=v*=<_mU86$yq$3}o;c=0S?nHqz(164P2K0i7{aUAIwj`{!y{wVkp1Xy}t>VwE>&*BtZV zFU8~2y2gP5?g)YtO_Rt5wnSc`0TrKQYXkK8i_o%ueUJBx+?3^cb831Jlu0@o^9oT6 z%yTBzF%9@nw#M{%MH9(cw>(K4(PaZ_8xhcMkb1AJ z0e!Bkfv)8fhIf#iNW;)qOC~cK48h}txh#p2>7oWB)Fc^9(DAT4QqMbmXJoY`xowFL zcQl*N8B<{pQ*dyXkjBA8L=%Z5(15$_RMY2GNp&KXg5DlR=gB#rHk_WdCMWwrkmhK^ zAuMRJfg};@G~lqU4SimUHjv5HIZu}4pb)02qnL72v*_qzLqHG=B0&=?AzclDw6EEc z>2t%9eO;rs+xKB$3c8ZY_JWY;?Y2bvpOs3CB%HZh&&s%YRToEW4ZByy(;g|fBRW|{ zsgxW9rlM00Fo7AKNO%nqlLmalmQ0@;#%A&HiZ^9;ZE!V$p>3{^>H=YIpC~9iwCsXx z3X((v4%!;g=T*`u;*9({mcw(=aS~5NS(Rl$l{mf~xc;iGHGOVe>+8}eS4xnXYM(M#<}pNDQ!Sa$@`LhhI>Qr3x@4+E<7H03vf2s~ zopC#TZd|%ECM0C4JoqfnRALe2tHHWCH<2i92N9g32No1bCy19!MWzAH=#)M;tcOWR zHkn9ILE{Cz)u2*JOis9cmaOWgB0wb}I&SeuqR%UpBo*Rl(k}mQ%|Pk&Ope=RCE zW!=zKXf;jvq5&0`tZM`GxnUh(Z6=Wpm!Zyk`euRSO@kA3OO%8yz<0l0uIO{aGJItU zCyKL9S_EDeM3I=t;?2##+gXvI&voUvgP`d3hKhE-Tpk^Vi+Q>j6_M|@)3RxGWSEJ3 zDv{4?Nk@Q_Hl!1*VL{eZ!@Lb--Dk_C&kdx_O=Y!O((2(3Ib!w`OIRT9Y~w+n z>q@K+Dl%C**U3knxr@smLpvy%y2&BUSPwk++5GAAGWgR0W!MoCi#TJ(rpCCzLW{F1 zo6Thk86%VQk47DQRGzLq>56Fx(mIe5v-PLX4e0M#+F4{Z$C@vtrY3I$mT8AS{ZAwO z=@iH$1#oXohx5LYrfSJl+FT1P-I9i7lZWO+(lm*q0ivBQ`rN48s>BTeEQ+EgCh&XEsYnH{st*X#(s53c4+@2B^-wh&*bnYyF33xkl=yT(` zdgX{(B3E+zC&VL5HDpdPc_RS4oxXuSH!kPCn7eEU%htY}p46sbf#Bx=`k+&SWr8dd zR!uAp%QV2D^H>oqRVEk~ZmxOgiXw9=F9?<{N&oKB-Bt_pnXH=s3<9zaC&|zh=#)4@ z6q5${bdsh}-bDWf0d^1L@)A>XVp04QLW&MAm0-nE6ib5|_pdIm4FOo|Qea&HS(avg z;-SNu5ax6fnSzD?#Y0yV2q2P-k;q;3&?OipXo`w8ju(FBp(9y<#Wc(zjyL|n@Dt!=pY_-6lAx~gNHvvfm}crPE{4q-LEj15>lQF#&FR1?2; z9jY3i(>axxx+=*VAimT7tkT-4oByI^2#T!0Qa)$WGX{=)7~-jhB?DHXc+pEYG*~8= z1*lj2c`sdqIR&ii!P+){%}e*Sqb`5dfZYSAvVy9=S`)u^&Df2PIR!~FZ|auu58n7P zktGaEc~~{4ymU!6RmCu%_G>{eebG9&Apjf4swt?JtRbGx0bRMUPACf!R1%5Y0(588 zwd!ljfn&g(%B8(+-Im|&P@=^|?P$F^e1Y+$v#xx-5sY9#TVxs{3}Dc0W$9E0SnDx) z3ub390x+bTy>#FDt%DK_6J;K@gpe$&XT0%!vt2j7Z>_+k`}UQpbV1Z)$Yc&HbRXQM z`_`mfI&X4V)sSRK>S=F$UK1?nza&vJ>4}+Y{MuQKOZV-8R_V2~Er-rqgb*F+NYJf@UUROz)lb5%NTSc+iiIwySBD_4fzPc&5?Vf3h%?%Tm}`S{L2 zxO4&bRiSWN60c;ve0VItZZHRf0r9tL=)8ec87nXj`CXvL;g9D2FLA#nKzoU@O!#h~ zew)P7ib;1hns!qvEa1SvLp)aI2VYQQX(tGaJB09-IOC<8f(h%_Du*R~x0h}Z0ShpC z;WhnsFI~4_xI<*DtMVIOI@VwqrAvetIl4RQyIo_gYPk z`=*!f+pBWH9XVU8ld?xln7yrDvnW?rhH%PQa|%1AT@Yv?=> ziD1I0@9(_y>x?P=`>L*mH5eBUZcm5zB@V|7lKe^3)&=81|e7?<($ zHT2r^6D}XDTeT;{;3cR5{yls*{`E%hw0l!!7$->lIj>wng-!ydEzrgs@X~!VHJ88d z)R{}a&g=jo5i&)Q5$5p|Uj7Kd@IwG71Z5-8E%>9T{_^%l_c{{cw}BSQyJqK(OA0ox z|5N*^&e=cO_B4%>-Bkuva)^kzd{(Ek&A^SK7EzX}CB3i3;e?TstY5;8vqTdIsq0^gcGVLz9vz*P>b|9Luy;Qf zf$0m|<91RQT8e(l)yDPE1OV-CZNLDaD4LTar zz}dX{qIUG%U6J+%^{Sk?AvtG0xU;eM?bhm-a&Ev)V_Rc7x`QX$ztGaNV=3=f4my7^ zXA;VN3DtzIn$+zv%bKkInS?zQ4A5cwQgm>-BRCD`XtHW&7Tne3mL+LIV2e6kFms6# zNiVu_@9tWy#)$?8rEN>m&C|%!u_Hxy>(br>BcMc@mM{JyWN%wFX<+2anq4jcg&ZWo>H~6iq$)dwqXEaN9W*Xq&mN%!SIP>P!KOy7H zPMVgYVYy4m72%W+^mU6=54U%@Y02EEQC(?KUNPW7^KxZpbe#2ybxYC6fAZZe(JMR0 zl2_QvGQ3Hcp`9M;LP}4o*ht&Ro5PO`?;rjo zb~<(>wk~#7O{zilbzH#h_`EW&1eG`C`{kJYk@OsF(QK41ir*1qVDvFa#I^3;~7!Lx3T`5MT(bA_9)B9rXoQ?=-B(QDPKa>rzL5 zuGi7e8-AbOv=UCFO)_iyxG&#qvA3MIwSoV&Jbw3ic{#Qv*BaziHU@*#QQwS?|KWdc zkVm$dp8yu_N$6O_v6lU;QBIYsiRiT;aOFb{OV=ity3=bU_iR(M>u~$DQEp(3nkj4N zNv>-T`mc?13&XW49#)QB$tTO;2)jM=Tg&BRB#D+TX2X#?fCDXoKVB}UMNOm~ z+o3m?!nI-v@9_)0pz(6=HvIeL^NS2-Q&Yt4ncr9mCuL4d#GTR6-z|%i_qqvZ9C~qC zoFeZ1U4Pra`*tz^1vis8{UY@@SGSJadAK;&h-;a9p#ffHmgSnf7v7>}^fmadtBI%H z(t&z;XjXQfJ*X57j8vP~-!#grlETWhW9|(OuQtrZxkbXgS!|Hc&rKlL8~lH3l%t(q z_x8@gQqs~K8|zmZ<#zqszy^iMT(ac)s5###=UTt5?)`x0mc*y7PljkQ3)au&Ui)jn zk(QRfUM0>J3_f5!6LI*ST_wJTmNrN-9C1c_FE53!$J*Q5L-{@4I(7G@MtLsMFFPad z7aQh9QkfDdmngVKFJYw#cpRs9zB;|&U#);69iKUxz0f!x`+h&)T`um7{x2Kl2(^%2 z7FZpER2mA$GW_{Q`T1^n0Y{_?c4xeQu|jSF_ywJFYx0>!x%uv7aaz>>+9)3lTz1kc zglJZ}+WdK=Tzu_{qs^Z!jgRdYCF7Wg%ZIxZ1hZ;z*z$LD(5g2a5xxled-Mo<;^_Pjs+A|(lG5*uF! z2{iAX{sJUL+#9U^WOcdw^4FkAfHeH^(xtd_1SfOBSGtq)&TY$1kiWYK{Dv*>kCr0u zx}IG;Youl|S97b8JHGkh$|TtHAL<*U@>vsT3B<-@ zczE#Ip0j%%*web_mEA{oZ`yrgVE@3Ik(VM*MIMgiB1a?pA_I};$YcD3#b?E0|(js6$=pX`6AKihw#e{X-de^dXbeed-> z)i>1F()W4jgV4p$3!xu|9t@>JheKnb{?NwIC%y0XzS{ev-tYGw@3ngG?3H^vd)M`T z)bm!)*`8B9kM@*$?(I3yGt_gwd!qZUZrmO0ZtA`gd^>n9csh6@I2$|`JQzg5_qtx| zdamna*Zo}+U3Yciu3%SF*Okt@{wimjuMcw_O|ets}Lc<0Rn z-PSE{cW1i}4<>iK7aSYxAN*r@nqzawfiE6*M1tle8VH*(hdFLtv6iURod0F>wG`%zuXrHe6Mf5 zFV>S=|4Qevz5{*p+wg6B`d+=Qxes-I8hSVMO6Zx;iBKtYPiS8#9MU^ChCc4S)O)P? zeEYfWA9h{6<#c;n@Z7BzH(y?JuJ@7dYd4kJPxU_1o9jK&JJ9xdhZ#KE{m9m_-eAv# zP5Zh-y|1iY-+N)lm7cfOebTw9`>mdrd!FifsAp^Y@nE{=?w;qV%RlyE2rvW~0t^9$ z07HNwzz|>vFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUSLW4s`)K1U9mLT1S<(c zQvbk9=MA{io+BJwbxluOxpL{n$_6i5L_oX0lB0Yuc=p`DOBpI^6=_XH4 zJi2sEz_O%5sxhXgQeC=g8gO4ZwnSd0_a;>7hGHtnvIJG9XGW`ZC=doG8h*fjSONV=XRmCt&WNJY#9qyS%1a2Y67WaXd&hx4%zy-V- z;(ygkM}jH~lA>`Ep?AkP=Saon<-_$)lLn3fcbYDGH%HwZcF(rJnU>mNQnP#6^~57*EIQIjE)Ijl^0`9o77 zS-c`4T@88T^CpK?4M~=y(i34We;%%O<^@3#HS@+Ax(wx* z*;_;BO@kA3OOyn9bC?sKx8MeL9qCBWIC=)NO4k$-ZZcPphQ95k!_C^NEDNf{@$Ftd zCeLYbySZp!ZnHPO!D%9b`Xm`4mVz~2fviNdX1V-DXi=ac(jn|CUOL>(twG_mBwopS`S4hzsNOt%lKq{<%yNF4u+An=^@IGCz@-v5m5b z2`3b3FHx2W-*siWlHg>brGW*Og9z=W;2wKHgA^Vs^Mfy_v9uF3RVaPDCC+&1reH!3 zrgB))cYEmu5wM^lf!Flgy>#6|a0$7LbycPoA+B7knS!Omv0IU&7BVhf)@5FourA5k zhc$Fj&<%~pDreENqi%f3GU0L=BAFcbO)nkVWg;82pHMhYPIFLeh$0yl=0tjC*yST) zWI+wlG)aElO9$O~LxmvCq;^hjd_h(LH#p}j8iO@-9*9IRvBv$Km(C*v+B)c2TFNvCtoSQh-cd*0HSfmLPrElLBNyJ0WPIWy;!NZ+t_CR*KUlMYJBMp^Jt>EI}u_ z{+nL94lNNDWKA_pdIz7YkB)g-V|7lKe^3)&=Hb$N%g_aWzJ@NE3J3Mv)b&v>AFNv@ z49Q@$f&bVWUn!R>7&j=o>Wwc8kY$)d9B=%yH$Ls&R2jwz5`WH17gXpZ3{8PH=75*Z zBTF@8PBD3d-q_@(ixWgB3uge7TYLVOS=5s6XCQ!Tv1BmBwqkq<{Vta7EdSUNeT}yf&?$oR% z%e7diy!RZJZJ6@g!+34j#P`E}j*{q5B+Sg&!~ z;PwXfa{Nj-dA+l-_w9V5BW{{1x~kG}sur5l4VHNf(H>q)CbayZJe$t&<+Z4?l*V*) z$0oFYq3`cl%KH_2^1!dy@3bx}WsWtu-;R~`B~%l-YEl=kvL;`#-`Kt!J$%-xN+~fp z5!mB!T#61(cLXCXN0XLS&_pW4(WJYY+_EH1>e`ySo<+7TM?;_Wtb@|FrRe5qh>(zJ1?EJDF#$SFZIAY9DD0N%3-MOPK;%2?3J-)(ESX>~Mo=P8bQj!&jdOV`fD z!C5i6&(@KyJ=9I1`*zfQs$xhj)@=}B1FjlUV2Q*`jtflCCT`N&%PhsP#Xl#R8 zUUTGZ{pfl^T`bD;7f*$9S1fN`%G(R}oSZQ@T`#UHyV`HtV;MU?i0NXyVJTW*f08rKD^VUMXHQQ)Gu5{MN-~(c!G)ErRaMG{C_v;Z99) z=FLrwrORW~>3}GhUNAvSA;Pv^mWyO;HvBPE;lWi8*L3si}G@6?7D{2 zoQTKEYx~p>q*JffEk&d9{LND+-4cCcgF4XVI+GN%M3OESIVJkWCFLT3+0CM=ooY#luwvT-m8JIYdBzisKsCLD5P8tfnWD ziNYL^-~%G;PxYxnpqSH7WewQjaZ4bP1}#(NmC#Cr>WkHm35EX_e0!7y&&u{`UBDVErEmJT#siKQg{|JUqT>{MoUiWBbMi z#+t`I8@)VwVf4)C-Lo@E-8F`hj{;eL?-9`kfAehl6Po{T&gNk$GuaHKP`Hu9738{rqiPk?WMiSV6aG29jogg@Bz`mQs( zPVPFs%iMJbco=Beb*=w$|7-m}>i=H!6U)F!EkU>@YAke*?N@fbz4P48(>qV>oZWeB=fRzywmsIivF-GZ z(2n!1_q48SeSG_Y?eDd`*797-$(H+DCR*-l!7ag-rj{$)-rja@+o5f-Z9Uu8Z@aqn z($@1^pV|7@*7>da);qSI-EwNnqgzT_?%i@=%g~mVEuS}k(0sA^h2|eN%gvq5>zY5> z{MP2Pn@??ibaQF*y_*kgeshzxY0ak7x5>9%+<0{3smz4a&8 z?_K}#&8KgcZ+@l8YHDgaeUpCE)|<|(yLVmlx)*QMZ~T1igKIn2p1(oAq1mYwc3EaW z3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvtQ3LDp_5w!-L)={Z)`Ad)E?9A_f9pZO@D}+(?3`c;^cIPFJywBOYzCS01cXbA@TXygsM>^?gRdi zS$!^990$<9>ko0u&6F?1nlGiMCg~Bq9$!ecM9Kb;sVUjYQlo0aA7acUQ#>`VD*8gq z@f)O z*D9PeCub%fg@CB<9jxW#LV+Ik_iKRpOjgZ*1|eDBJ4$ILoi#^5H-Ac%q>!Ca{tVvn zr&K|cIws$S5aQz|Pft(FIcoCl*IHIlDkW1RF@HIb<#}^znwk>(^HjXD#-;Q;7cVz4}n|$kbF)|Pt&H*pL0SM73Yip2qFHuAf%^-Jo(bO9;5M$VlkBi*eJl*5o8L z$n}>U4$o-Q{L~`c&}=?uOi|-xziud04l*gYQG-)Qpc+XOX_+I4y7;VmUqY*Fl}S+^*L%^Tjzya_rZ>zFfT)yEf7KZJJm}?XNG3 z>-DastGQ&&{*TAlpW3|CY7>j(92+2NwNe);zr|D)IrrvkzwLlyNBp(r@UPeq`dJdn zi=szuK^xZDv7=hV=Yhlbj^*(6luy6Hqf}kcmv%07_4V*sP^{hC`KWDhT~7YoT7sP@ zp3@VP#K|-2@vg2EufD&)zV<#F1KLQ|<>}YFn9kXjpssbC*B&GvwvF?_!QNaflAN$* zQ6E!vWmT-=TvGzankMR4%Q+@^wjU^xHjQGwkVz%xsqGk8JEr5*4#>%4+IiNM=}%v! zoZELV>$dj$zX0va-buXrN1XO;|FZPH-VL}%?KIHAb6qqV$bpKF73b#7y^fR>>P~H7 zESuN9Ro2)ous(CnSmeu&#N}yk-|*|+v+dr?diyG;fO-}pNn#YhLh{?T&bO~bXBQH0 z9WEDsZ#4#Ew0Mr>;hxp9U!BS=)v+4?3UOPTy{n(%>s9kWc~Jt|^1WX?0=9RTnluYV zJI!?ZyP7r2Z2+qVvtayG?ciNkOaYqrv^N`v@46cJTRPVOH(X{I3DBO5a-$=*<#4MV z&{UdG#}bnI8LP{4fu$=LL^{TSGl{}P4g5|kPk-xj_NU!@A9UKO{dD?Tms4FGBRQuX zr+zk9#Lrv960|p?xkD#@b-DV}>$9f^cYTwEyfZSV{w3>j{6*=G(3t|&Ew&upt~(Zj zW(UTyg}KVS2UZpdRxAbF4=bkeuVr~uD$rrUQL}jP^(%{XqU6Rmz=^?B*w zkkk-N@Kq}kil!T1(7>avsVJf$(W!EkuJF95%Yw=2biuVsmqb+-b&Dfb$V=x90#0+m z;h&=XWer`%mZF39f<&!kT|PXxLIyv2;EIzgdEs;5AJBZ&vA?P6#I$oGR1hJvyeQq12b(GVjfXSgz12H%urPq}|m)|Rs05Wqy!b&>EIA|_o1a?*%RaJfprIVF+Ec5i$GoF7WM zq`@CuE^y=PNI|d`4Zd2{-}BPJu_kz6M&ObY|4R*>Q&e#2%nQh(GewsV`2R$rtb<2n z=@~Cw21m2J362mYjxO1`@xd=Q!LW9LO;hpGB@1b)U>Hz}AM^47AHSlhn;g;%Y9;UT z5p{zHH@23>m1nS3I(Wks6oWS;i&_J_bOCgMqKA0R`mvY4ph!9akHn@T(XKmpVtv0f`*|u(IrABzCvJSp9d%6vY}9GWS6dki%1z15(RP2OIHABBFO+A zceREtb1L`|28XE9zkBJjst{Q408irl-_+0r-Xt2hlIDc7UOH7A(yW4a>B}{A(XdQ{ z5E8^4Ub@Ij3KmU-6ijjI|{Oxnw-ql!U%f-DpK23wH!pL^*h z5x~nS6f&KsV+NOxsT-W42%H4Iuf24`(y)cVy)uvJ+|!M(8#-(g0k}w~i()Qa1?S2F zRB)nW>Y2wwH)IXmNrU(4?|Atr7Wh|%#$E=$yI#6vshoyX0{(JOdg6}EKANjoDRFv1v+suz6o5ZJlYG^<=9|}Do>1K5qqs3?iqll zM-rhS=1k?~vQ#RY(xHxmw{F!?w0pgD$WKjC!5c6y{H%tqX(G7l=LOEB^Cbr@37jr# zJXC8etJGsvl@9F&xZtH;s;51CTH!emXe#@mqQC3Q|EC@ZDj({pg??_W{J8OMw*T+M zbN+vWO?UoJIc*I*IsV4@leB?gABF%!fFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT)WUxEMvJ=cIo0Ij4YlA4}KCJNLA z2z(;>e@lVIkkH0nkQ|1G}#)thd1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoW zfFZyTUvFa#I^3;~9~e{=+vWB>11 z-8+5&>f8Tc7lohOAMijxKN|v)j!i-&(Nu_hOPO|S;2Sdut1!q-CFdrllt9Jye{JB0 z5b9`BiAkfc2^7|RxcP(e(=8vhKi6@g<3#KE)=zi7K7Oq2;*K-p`&-X+og9Cy`S|#~ zt>*Y0<7m8P{My(PJ1&o{-(Kq6*Z$hrU0pvKd%vU5{=KpJF@5ay?RSjfoyqO|SlihB z9amch+SiO-+y0#$KN)><^rg|KMxWUJ;pT@&&$hqamK%M$^T};TM}r-&?c6sy+p<6S z+|Gf~r?#B#Y#!Yjd}teL`E2C!$c2$JBae?v?0jHka^%oRY-F~zXJq}z8{1BHTpe!O zd1?6k@H4}Y4bKnj!*>in(;C`-sf8cTZoATU_m0QA+J@H*KiYo2rK#&Du{UF5TSm6O z6niT6a4Z)K?Km1c*7AABzSuylIkuTKye z(0QT-wQbn(-p-iXqXyb=*T=2v)vNdtKG%jj&f{R$GkC++K+B=#`*$AM_86Y*`f$fS z{K3{ow!Wi;wjNPl+HzGsyd^DPZk}x3AP1UHNq0%_izmbZvAKO~>s=kq;%CC%ZI^`$ z!WrQ^+wbjsfBT2q9v2=ECWX^&hlDGgCwIn#9$~%k1pgiWU`vv}n;+quIzs#g{`u`6 zbLTqW;a=fJc09`^cf8a3J+6tnf*$C48=XThZo8-bG&+H1(J@rmdJrLWu&ouHXlrc? z?tH&1fbQD)Vf0$p{n3f&3p?(L;%G416umO^_RzVZ6P>5p@7{iTXixCO&_qZ3&~t-d z8@#&b{ynXGp5DD@_xXWi0~-d;MedBe6CMa(-u3XVv0YdD@9*E(|6JdpzN?{UL-&TR z^`7p%r*}>7vpolU-sqm_-q8JQ@Sfm-&2Mh9Hm%uo`ZoEtiyMz_ynO5Itu42n-%#4H zcEe-0ytn@3`n~HvzWMac^3AU_Sxrq%r*G14+IrKOb@#4oUiadS`i-BjeQ<5(+VeN) zH#FbyvE%rnT;f;bYk!%^+Q1LsH&5$N)XW&g6iFA#{yCzvMkbRp6KSoG$wl*&XcTf< zI-e*cGHETHsJQWn8cCw1i`j7GZkyi|E8|z;Osb;7#e5Fr zUkWWqxZRfU$nqrAmcoE)bNl_}ajPUh@C}>G?=6o@xr)>(7OQZM0mzW%LpJ~KE`@(q zi$j%iTR~GRX!%SrXOO5v zpc5$9P^XD4@jG9*M9qR`8S-bZE%AYsOUyep{M#$zmCR(afv?$m{m#mGmCGkBR{0oZ z8;cCve1Cfxe52I@8TeD1&u=Y3TB)1~Eo~-=JN7P-MPokc=&4${d|PR_TJS8oJ2q zn$_>6OIQ&^VwwVyX^-s2=aDH9)lx)<@{RI}kUW{1waB-?J>>z2P2N&KQtB*OlaL>FxPqRrq3q_KH+@#cMi& z_(|oV~V8`dnA0GiHX;9))&?b`X_TW)M#n z46as&Iz3b1jBf(puh=r^b3-z6B%a7a4XTX)%NfV%C?iB`CCy@-n@%4F?q9Yg(dULF z*(oDt*ve&6P(YNVAZFaM2sJ|EM51U&(SHMY|C%j_J~t%Cm`EheYWc7yb09V{D5gvE zNzLJW_fk0PT0UWT3!vShCNml=`@{=#SrY9Y1>ERt)WJ-XF)u zzNYD%$r)IcWZg@z#Gjka=j7SjJ@G5_>G-rXKe2ZKU7I3vLTS`PH#kwXB-Ip%E{wSJ zTkMtS)T|;+4+Gh%#Rt#K7*j&bjlaQ;pCcI+YpP3k>-W@5wm4T(Aiyn66-^Uliswby zeZ%1tw^FIuw77sSlHx?3@GjkzP%^AEKaU_FU8`%HOmOp4QTGi;!jzer*3F2AZUNM$ zsvCx3@?LsHQ(-vM#|tlk4@+EAeHLOULCN58Y6)0x%ZQKq0SM#Wg)NRd?{VZZ-D@RF6hY&Q8q7pBQ5gTxtUE~ z83vI|T|`*KJVyg+WtT9l`zW_9pyyRtvJx8>&{K(YZeCsQp&L4|=ZGchrr6}6S8$rp z3cR4K^Uw{#D;mcWi(v6am+sUNNiuYF1CZ?$yXci9c}B{ufsh#|1r{f$Iwufb(sUY7 zp}TKnN`>U))R!P2;k;4NX+DQ$IgL81uB8{TkjYPc?&jQv0Fii(sIttfg5jlC_~g-K zE^q!XPkhr-CB@`8&C+x)y%L|x$l_%7nkRmRKFt|3CGFombb!cGI2ZzHqWW(hx@JMI zVHp^6s`06ZUg1-kn~KI-bfV)51S5py%h+q*nYVm+qF7v=N`2O#K7`+_I(d2y47xah7Dz zfZCEG#^Z&Y^r1_4IhCe`iCOIf2yokYQ{pWc{+f~`aqlmDV|Ln9i}RNuV6axkL~$;w z;V+tbP8Hr*Kqsj*N0Jv^dNl>QjB@yIApln-R72A7e6sjDgebm{S!qtt#S0MP zYE_Y*nw#aO60a?w=LA_4jK5hxpPtW7Wu#XZ&~r*IKWF?m4_#AD4vVs63cOgQySkPV z1tDp?0x!54S*mCvT{oc!sx+XI2B)vpWUYi|&U@&Fh5>4e=!S{@+C#6TOi9eoPN-)+ zbX^j#sK^SZ>ikO{dL@2h9`kDHuNKf}Ii*lYy|92@EXtFG_+PqoH)S(oYHDWUc?j^O zU_PD~1@d1#bd%>)3G>9nMDx-s8ci5UqY(ddH@+)jnj@tYd1j%6>_mEk7f!oxKwBAx%~ua~-mTf3CWc2d^{R&ghF@HZf@X#He6sn_wNCiQ}S%^6~2^h?`GHCJ&bHFwa~z68H@$7|I+Cht)AAScf}pOV1Y!`BooUL*4C9JQ~9tqpunEBr4ioJ z&^8aiq!^gBR>^Yl?1WPeZHFQPfOr*k=2k!FHRSTBw5U-1hLU-d_ zJ{We33_%dFBBL6*EW(1Tq;jT0&&as(6-6LKC7h+2wB>i{BGOD*2DylQ#Y-2kfHVVk z#&s>_rSnLa1wqzz*)oBCKm1W{^m*m^Q0}ta1JBMGf=ced!B~e-&QJfD>sZ7|lVNeX ztc#{y+EE=h1Pnumr5DaJU?(T$rRxatNhUm$vGrcM279cqJO(+;?W&<8V4+}v zBSzRu$C9cUSkif-PI~EzN_UV94(mMK6L$6F3C~%IE=h#%sG-Bg2*;ZS772}8jW57< zf~8xUYVGsVkst^06a_j;6p#J+R;nPPHspVjT6-!Fq>7GVJAPa-@cC z${LhnRadxPFCF$YG)}j4U03LNCzrp%W30&{FN>V$rOT!WZ$R0xq@7;6WMRyMIwF?n zDvrxXB1q6+T~OfVHlQDcKN_mR_tJ8Mmh6(JF{<`E)xOB7Bu+#1Ra?rjRgeP48M#6@ z5^zo*(chJ7{tK&aIASo!#+6!TY5TQmO$k=J3zA%PUdoSHMBPVOi~~ydFujtDWjF<^V?mzvvXI9 zr?mu~L}zOGl#Ge=yg+AOwe+Hp5vC>|SU@jGf?O)jFQ8Au5sj4KZEq{-nil7zv_fav zwfv_=b7F@3&O$n$nii+pUAm)xW(JpXw*c9!<&(+cI5)M~jql)=Nls5%v($>j7hhFp zXK{Q1JzW&$ri;;q^n58PDm2e)`J|_^sxEs+6P5I)(it7g-jSkBm(xN%ciRF!Dc;JM zY1)d`@=t2BiZ$yU$yNAF5e*5LuDjI6pG<1GgybDPRpL)-Q{1%mTMOb(q(#hSY5P>m zXClt!3JR@Bwe)yAK3O6g7SOGEj^j1&=&2&tn&ZGsm-a-pe5~1$I)i?9AwA2_@Ye4v zq;pdROI8=q$vlCR1#}I%mOm*La=EN`R9Ml6=BNYT@Pue9Xy&fGj#& zspW5SnVcj&xPWfV%%Pb={~~l0w=6oAsO4j16Oux1Uq}~HmQmWYfUZyToW}q9Lb{fW zTl|g%bgh(vLo~64^kl*ma;*#L3B8DN-qCIaA63;dSejW7AD2W@D(+uESJH^&XMzjq zWF7|ECl}D=tZ5ancjj1;E6u^MO!Cf@YMue zv~&m<*_^5&@=Sa#tw4a?M!O+1ST4%)K?qrJR%&iyVsfT!5pE?#Oqu3Qi*PF@lDuH- zg%JC+lq;vG897s+QzyS}1uHG1*%k<}+h6yc0-2hcC~REp9nr|;=J!E}eG1NfXL{Dm z=C~Ud;WjO6@+|k;5aP!mtEw3;Lx&lf57BfYrwj9a5EAu;RQv(ZNlcEmT$Rt7!2Mqe z_kKA3#`uflPmVt{o*h3jzIQx4zG?i~v7=-A#sv7uN?>~r-4^`iQM`a|_WHLZr#H}OmODf}?b;iGsT9>C4`Gv%^!K?(PsQ65(w zP(sQj`5`zUd09FsjY&TdpAg%`$Ay03B+P5y=W<*>cMeUWYtb{&vFMva$A?;nE)JFk zI|nc9ncVZ)RsrLl(yWv<-nGqEiGFvFa#I^3;~7!Lx3T` z5MT%}1Q-Gg0fqoWfFZyTUer^dh&!@~kS~SFvlN>c`@xK!nrleGY8kqP)NH&qc z8g<%V4ykCqA)v|z7(s|C(#^70Lx(PFnks=M3pj7W)YG6ZrG!uArwi1v-GY#8$(%@0 z$8`RX$r&<;VFb01#ocI975QXGYF9Nr9{t#_S*SMcUi2uyfq?^;W1%`VXs+!aOvsKlc{((eD73C zl{MDEdOom!SB)6KbwL}@#4^UKk7@C!8aEWBg;jB+v11!+#>UV;$+xjZcm4t&u&5aKTf zs+LTp&9xxMe~wL6367h);hmT-Ju2c2ZT1+1`0EZ%nv*k=)Uk#C>>Ji{a-pylLi`$F zK9g1RpFv30Cr2sGq_ZYc3h(&y2MLB&lBpS9o*ulVy3;fAb^Fo<_9}jtwocDXeY@7>cDw38 zeAnf)m|oPMZ&iZrsGJ@drm3YTKuCL1pN@GoKEp*l~SmrTAeJ5+lgq9z~b9!QuIC(}r zAlH@R)%W@ypIvKD+DO*r>DRoNcD!S|28><{);t&-mhTNBrVjTT?K~S!U(M}I zx~)C+8(o)EgWBuhWIXNF-@ONG|FZNZsZ5EKa~*DjN?2(^z@aGE_8zsTKPzdF@+ejokw4y}+$}4HvauqNSAfe04GM*9fORRK3Lq zsIdv_XzL!{v_ATaBIDDq@v9x1c}E`)&k_+uBeM=ykPe zpr$~IuUE~>H^Wer_kQsRRD9>;YHmRjigudm^mjGW>^6Ya77t2kwSzBT6;Q~4Z~faH z4VHs|f1u{x6GTUBb<^Xo1q%i=mEqN$wuaOLeqEjmeF^@8OX!?dp8nS5?AKNUhavPz z1lruBo!U>QuXQ=q)iIKD#;Mee|BCo|@7zn!-i(%ZI`ON^)t}y4cZ`EFCr%df&d8kJ zDo~f>FG_cW&J?I_vE}G?-LVifJ1~|l%vI*4u(C)nxI70RJc?=jYgrzZ3UpX-)GQt& zB8zmQrFM zGjH(ybHPhTL==&1XmGayU0ibYp>sH5AcNO%^}Ytc2XQ)hP64+xs!W&n=$M+mMQ@E* zM!qk8>q|s+xWaE;uKx1rj9c8aU<({D85S=|n)WAUZ7KT=0dW1S>muPbL`=F2nF?d6=Zt(IKKo=-_h}Wzid*cg= zq!YwTrXtfNOjjRX$EraD35(L-dgJptLPXFo6eqew=)_kDtn9;GN|tOWikA*fvqc#c z5(RP2OIHABB7x5=k-J($mpPRe!1s|P{kxYgs|q;&2KGGvH#Kwt9Or9-Ds#eFFP$n5 zX;wLjT&|&u23(K;cRUN?4liBgB?W^=b)?{NFI`Xs9;qf|v#bGqFZ|I|)4Z!&$``ho zHMbYtkRsR_q0y06C z$t%c$w9}0VH@->0Ef^1lOy}wBw@TLy4!n7&pPB-f6>+@qvl_ali2}XtfivlR z$>ndVMB|}aV_Bsa;#BF-ZXkeG(~M~^9}`+7UFX3YAEDbPZhYv|RU~Pmu3@_IR;6o- z4j0Q2qL_3`!=>xcmkAbwvwEM9>d?Q=q#aEU*`AK};XuW}aG$-RXhKx61i^heRd(T&m9hbD)HhCUj6 zZ1C{lwLNF|JOH=Mzq0%2?oGQ-4D26x6D;(fiaZ?2MUF=HMgDht*BT<{Rffl0H<#w- zrcLASW^Ow>o9xbf_e(5o8e+^338jWuvDAFmxb1d#ot@pLQHqMz{shsQg=X_^&W4>?G2>v(&nc2K^&U@bToa=Yy zdC$9Zbj#?!>X+*m>aW*dgpdB?^@r=b>*e~|`pJ=FBS%IKz&n52NMYn^?cLh%YA@HG ztIgCNsqLxNYn$Mo|Kac}!;Rs)hd-@;RJ~Yzqx#G0v(>5UVff_NsvD};E0-#7SAJ9Z zdF7c(Tsc^=Dnpf3mA{wYE5BJjRsKnNzWi8uf4NaUk7)J}m7G$s)K|Jze7|_Ec)ED9 zc&vD&c%Y~hZ{@N7zH)Nlh2plMbIMTv#g+FBo>sn6+@}=Ro+^zg{mKXTv`aUdSDNoM z&onn}eSYgp%^x-=n~i}(&1J*j8{=2T-xeHjG~%yEOLaf$xod+}9X;rtj{)E4yAZL1GW1FHQuVFsud64k^VLVId#m-TKeVCx&&mgtBU{c7oV(}hj(@B>J+Qra?yifQ zFE2Y+IZ?W?dVb(krC7M1P9{H~fYu2LaCt{U{7f_ot#<3w#}c(p1fkek;n=$Oj|9h$CIu zCH{^N(i^xdC=0t{TTL{fZ-VkYe%L!0|s~O7bp7bCU zfK8=2rq=99ulnF;guZK9>ye(ZKgnGxlQXfHg|Uc5%j^PKOt&ptw?j1)qjDHg=mxO` ztPJC#V6PE)rU`Zk*k{^#QI61Nmg%C_j`Mp_?uKAC7*32hW}g%4XMlJSg0vGO9@^VI z>Cqtq)dJ~Fqq=fC9o1G$OAGxt_>-94iVy-35Q54`Zf-oiX@y|BA&g+?6-7DdE+8hV z;Qpu|iE>SIL*0!nPtnLri0e^6+R{xMERtv)k0<99AGVz{SCNHTOMzJ?HnfM&9FVHeYEK(0OJkrsJH;h|r_k>&WV^{yy)JdlljLk!%~c3yhpA<80jGxe}53=nqp(F!vf`n*L&qEHVJ{H zX&x~mxt)pwz9!~5!|}-xdkT5zTdGTDYp1=4w|iC(<1SH)yu_GAARh+cQiCZPD?bxz zpo9oU>wp;>>n3^IrRgzG=x_%>n9{>y`oPC5rTV6A#6RefBj#)r>l9D*>!RGpOyua6 zhZw#aMg6{`(TMdC4EGm3=`F;kb>aXN_~SitkQ-Hu^U(LnFNfRd_;H9W8Fm}auf+6r zr(a>;VEg1Vz|&hg$lZ>LP_V(@#Pqbhxfb>brgl!0>n;`vxGi9g*)Pg9CC05JsvT-U zLDUb&2XqD-F=BP{*X89Z0S2jVVIyn(Rn(&(bTWeDDvsv7)FW50{m=o0Zf}4*#y`?V z>+Juc2a%Uv?-aF%m59&G5_wN$KF1!#E$7m9qKo#lnYwPH|MP;TM>FR z_hgpOl{LeOSzIGD>rHY|Csr$IqV+IS)2(W9G@5PCwW1bWtZ{kD@u=1HQ|x%yl7|=f zY@_)pvm|aHg1;kxDsxh&M%c}3v3r!b&15}2(`4!d*Lorl-Ln^83DAtbJ?FtQaxz-D zrzE61CE-1@B-*p4JJo`k=l-01B z$G%SA=sx64x59}juRY!3KDCuQVA*KFP7tr;wx>G?g}I{ef=e8^D z4x(-MCAO75n{A_CP4tjY-;(>o%{>x(>dT%Hih1gr_V?)-n)YW8B-YUr^&PTql%5%A zB<;X^rq0wNe$(CH?by=ef2JoEkTbv%EPz{Xdpek&?A-Z6HK6C~%=`<-@GZ`3*c?2t zM7yFEHY!g>E!NgwSX%z17txNJYDK3iORm*_^<_@)b+L|3O=|^K$L&kAk?&1teIYCF z&6B@-r%8eNrIR<+(rbq6N@m+pYbJ`G=(zSL{$Pb#VhNp^WNPhX`cjgkb7fxEU5yL- z4Sch(8<=_m%Nurf{3DlaA#TK(n5uU$pT#bip|mxRZNel^dq=XN zKVQD7HcE|J`;uIAinnCTdrw}+or$?)Y{$4Ij};3Rbvh5B8qf)3rY(GoVgG-VCczxT zdJwf$eQuU6A4*T5=u|PYj75w5p~S*Xcg8~goWjg=nEw3MaU9r*$u|=nboP*0L!P_I z|4O?xO&|$~IKfN)A{b|<=P)FI=5AJ29(!loctj4;HIkReep4W?-Op}u0&3^Xkv&(@ zc|xY<&hv{fp!kX9U3qdZ`pxN!2{v?IoLP2?O0t(p+9L`%#_RJ~F@t9np$Z`$RlAMF z#wGoRlWENYEqjxi(9H&!c^B8D^L*ZIY-$vXY0G2DO}DdbH%q_FWZIKz;Qft_6!zTQ zx3qeRm-r={tc7O*4<>c&%VS|@{%Xx(4~w-fg^!!dSC`efwb244-W8SVVk4GrHp#>; zH3oI=+!u%S9Oo;eY+S9%V^Qb%P3V-oN7LoPOR<5D>%s`@)+8Mlu^zoLrw!t`VEa0{ z^JA$NP}yv)rL)e={2YAtlu0*!WabjE$KwDBrQ^L(zH?c2TRONY*psv92&NMSJ_sNoY4g_WQq+S7OIX=m?`@ z-F(Zq39KNd?=Q=`f30N#n&G>zW!M3oe&F2)PIotDOe{Yo0ulj 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 0000000000000000000000000000000000000000..d2b944a7368d49209ccbcfb819d836d450994f6e GIT binary patch literal 54473 zcmdU2Ym8*aRUU^xNC<%>j-wbH+8!Kc;+dV<*Eub?Tf`rye~sGcz-XI`dU2{13}F*hlj3lNb8^@l*WoccFgY zP1($IqjFRW^+9iFBG7D$ho# zyxz55ch9xnxIJt%$DM2KjbWoV>aZ6}iLK+mIZnQrlI8ar1UEZM(pfe4|NGq2AQ(;t zWa@u>ov0YYs2l!})#vsbm>l`m9+%rStY-8M5?@xx!LTP5GweY2p z`4VM$8CCb=D;>Q>_q@<nxm+Y<)KRcBa z*J)Lo6$j?Xd?{x%bfZ#yt&`p{_uOb~o@op#jf8PybF%?E;0$g!3NA-!W_!-kEGbe; zEhE!%+W$nSeZ3@=Yxrn}#s+xN{!IMNyp!MgVSn6j_Pd21E%^|9+EHpAedR4;CS6N2 zGt##BwADU*ZKqeP*-iNn+a+e*?l(CKi4XRUyJ*a0Tiu+$adp-(UU-F`2%a@}q=lA;Ki0Jyg zBKQG;zWp%i(28sM$P^^$iQPfFcDma^bX`PZb_1Wgb7k3m5>h%w8bj1?S5mqaud>{2 zA2W#ZJ53)LmUJ2j_&d$q2<8uf}>QHm0kFNYK>xJE-S;vdUN z)>#BG##EF?8okyYe!!UqvCaI}75gprX*oW9ca|Fiz9ZA4;hj;bzQRdUMlqw{a&#E_ zrYX?+X-&ym^oktM)O|0j;^P zXX`c3ToS}TxKL|#MmwF+sL_poV7|y1B$54+Cg}@#T6gkw(dmuwNwA=TJ4LGS`*SbJl*Lwzf0qwv$9=$wBMB3{}j0oskAH{1)m< zls-z9EFfzo z5L5n;W2mAj&&U_LkYms(()XZhgD&aY;|>80dh<%B+Zwie_1cr?{q+5*3R<}&O_1%pn00n5FsJ;sZhG#?f7+ zXI%4s44dYSVR}9a@(w2;G3El28M1b3Zfn@zsUrwTGG^7xCg6k(863}{leDn@)8Sy4 zz+!L=+uNNH68K5FFkGR!@6GKIvm+PaRJMDJvLDFEa-lXJcDA?M$nl@qt=H7&7iwcOv=(a3K0Pa^s$P=8bhnyBMI=cM^ja`y zH2fz#Z|>HGzW{>igJ+|C@Q+sXCTO~GeE@s54K*1-nyQD46j$H;aJSzWFVsd?`jc+! zVfft9mE2FC>G!)YsLT_7EZi*%H`@c87U)s1;Ceuk=BZI|9(JQQ4vkjr4G4{QAK$!+ z)vihgOtgrm2u(UOMo+IX-R3aKw7_B7>0fK_&x#J)Y$IhzKTwF^tV5DT03O!1&b8Yu z7_5q7ND!cn&Q{O0L4WeWC=~JiV%seglY+nRg4iFUwR4T$u8lT_cxV2>DpuTtlS6O1 z|2T@}%}yNebWek2(v!Z88qLvMVjgG`FRtk!R|Tl27PUtKH5emfdAb0rqsf;$7DVsq z_DZC7vpXvysa|&FPoe6xlX$)jNBc~AL&p(4m#89{-0*D-){qoxj27?N-RxW?zW1YQ znaCtnQaw{lQnS%h(Ny)gD7~JlN~A3c7i7V!Oh_|mmV#x(*yNJ~aBnO@XtEzHE>Pi` zU2{kJZ>N1;*_jx?FWtzb&`d$EVgd|<)=}# z{>qrX-(g!TnGS`Tq&70CJON4Gj{ru`vOn!eJ>#C7ozInDV4Y%A8ROekT(unwR#B{Zf)BmxUnH$af%QB3hc8x&!9Bvp!EDPEd8f z$#iYi39;gIErmFo*ZcX}Q4;?-R2^)HUro7sCD%-xACc@HraA?3Nr}gLUZQ+o6s5Qh zQElUS(MmYisWfR)c*2%UUzHnU5B0DQbBGN?d#t*uF&2K2Givfq1N>Tyvvd)YBRTvt z9Ik;!IHE^JrOwdm`w{@yMb)Y*Cg!aUq9eWMic2(DNiyWh;1IxHqiTcm4oCQ+dlLLy zYhrr=}%&A+(i(2ZnriLq<+nsdm)pthJ9Ycmo^0fu?9buwy4 zf5EXcI$X9EYTIpWV#5APBP4D?4fg}d^!ogsJBNzR=(GY7aLM<>?M8JYzF&rbv{pz) zGNlz>@=21QUR%%G+_&!@_v8}2wvb;P?eXu8^|)`N4CJq&-t@pd^Cf!oBM^c%GLq?* zc|zh3{Tf%1flIU}Ow=T>LI>&F<4Pt+=Wn3u#J5b6WKDtT-GoYd0F@Xz(_@EeaT~|O zfkE6Khze2yi?`ujmPC*x^1unHJ*DWwj1@xpT~r-rNNgj0Y8<%jlrS|r8NmwcTzS-1 z??aA`u-Do-OW2s0ag+hsWs-`Mn%#DzHyIS?K#C=~l(a$N{dttOc-vIoL5A0w*9pJe zVAG_BtBe95;V)FmIU~wJlpP5oWEN+10jp8N@xBDI8;bR2>*k6M*=|t zRf$=ia<~dZGEth-X3shoV#)_*HiF}tf2Y|QcXw?Y4BPe;dI6`IcufFW69Itp@nGvlzEgOx0?=V3;CW>`-qchPZi|Xg-0eZi9P|gz^ zpNn$xCdYy71+xKXdpsFL(VP7t7uU`u$4q@(JvA32Qi~!dHG}F{ZGP!=G?o=Vm0Vwsn1bN9Q-Q*tN; zYnC=r*Xz8QJ)z{|H&HboV$sf%8I($VkgnfOgk{SEWWcmNPvFm^>W-I;m?Q!cm*72d zIiDFwGuNRXC61p&)xL5Cud+xa%w6M2q#&cFUh`whMpXzSBoRGer3?S%o97SBK;|j7H$=tunf-{3(6E^dr{1eKIsx5pA41E2lngZ-7XgFV;Xd1BUx@UpIWH-q4oH%!$abB z+h+93UT1>OVzEfM(u$MqlWH;dX^4?lxmFhM5Oetpnrnnbjlkl?-l zFP-eWVPv|&%eNoMw=-%Pk&TSVMwA0)JXTgl3Wi-Lg}s!7dv&z!6QA{vQ<924i$qI# zD-LQ-hP6A8U{8(*(p!}`aYddg18&J19a?-YAZU4rFOXnrN?+hfDX%~ZA4k=J&s}(x z<<0hC10UP1wI{O+<4=XQtBOtb(5!V1^k$yeK8UL2B6=b_s`jTR9z%Y7LoD>yT4P>; zS6RXU!rSo*8sT9q@%yC6QKBi{Msg@JMPR6E-5@*Z z!@t6?FPFU~zLP$agA7Fag@!?46#u`#lxCSK$dbyhOv&<@Hqr>j=f0pkZ(10J>Cb{S z&9rPcll3Z-ig6pcjQd&bPq07UrC@Yln@&XfY09DCf-c4w&4kc?;I1J-`pk`h+erw` ze={W8Mb%@OP{}@TS)UCP_=J)ngmhK*@yKl914Dr>9NRoiU%R;m_8<( z_U&;Cvwib{h1yO7;d6F3XYi5v;yp-;CF_&YW3=v2kd_hab6`S?Ra}&~&%{KQn|>=O zp>_04a1RQ_%$;}IQOr8=9(PX$GkeIeXpAUKFlp=%0{B1_z@3h;%w=L`bkHO+Gtlhj{e2t*Qp&Joo3z`J zi6$PiN>cu<4%HM%c}2P~6@N@5qf_zU<}j?er|1wS#8plrC_LPx%}vp<6BoG1 z;!w!YG}gS*2@MUz_DMF$&sd$lN1F%ng7-TtWxZhb%1Gq|N%D)R+6l^}Zrzcrly>8X zE8mxp1)G}?bFCX8*5}O(Cz=9##zEhjhK0cpS5OXdzAex`<_KYpTG`i;Oc`M<%-#Eu z`BJgDE6udv@d(l+=f4G99_&0F+s|-qs87End2yvir2Q|bT8(5D^hDSPvKcJ9yWO1- zN>c2ImM-DwvvDLk;&L9w`=Qd?-E$eUDwn`>coM$rM#ymkDiPI`lm1*tp)*fMRuuX# zqw2^?f@Lx03~Z9+<^$c`n+qF~jBM;B^J zr#BaP{zfQb??6O58uxSFJoWF;FG=C3O zyEciCHt;UX;YUacZOIUcJp4MU=HWDfqdaOK)p!7$>>^=da=ko!)ABrFe+gB?KIhGh>-$aq(7f|&$5fgO*@3I`eiOOItX`pTfw)osd!fJ_XlEj$r{h}ld zeM*D3+~+FJGHE}BsuhPS#Uk!d@`ExJDa-{Xl$R(H5_vDGCL&45TB3Is@6-9u{eXuG7eP}u@P=#&0eayOzPi*nlFHGcv57Z-O2(;@EF;rMKFkp zfUyvZ%$yPtl*qpZ%Y~tq`3c8SGEcfXdcKuJQKa|ngrn-+ash&+@LoC6{Rpb2dz3^` zMCf+1a0NpJcU|CiOZs(_=;9R?X#FVu`u=UYa0$PS59|t`*XI7FA!>^?JO@BJ@`M@6=ShrYk^z#g*)JzC;jDamhSiwvSCQ&ksl!&h3v8 z#q+3oZZC@~lIjZP2URBX0g|F+m0N(}!>GFd#p7PYyDU{aF7mSc9iW0=@`*d*Wx|P% zNv{8}$bz_ahzw=A#YedJ#3OetrEgOWAte!nZH_VL%4qkB zQP$@{SBpnxq^W6xi92{vsEgK2lvd>m(G(_gAE^z_C>^e)Y8>KB-h_8qjC8Q=p7FXx zadGYK*yq*1UTi?T0GIG>I#o+~@#Lg=&+_ZgG8Z4T$q*-UFNvd^9*uCy6?UstV?0rK zEw~letp5t;tmaF!6D0X|)Z1=ivtfCu`;REb1^F?6qS=L|Ww&CC0jxYnRotTENWKDo zg27LczlQ2B0l+~BQzSVgk&$(Mh@C6#{+X{eM!UEeJ$3asBXG1*LNuJD%x)WqhaKy1?*b!+YI_892LZ0$f7!wlx zxFPD=P9FEVzvLMwnwF6myYd^ltZ+P_tU!J!ify?hww%pqh4#h`M-Ry~GQW6o_jqTU z;`&hoN#Y_ID0e$ZGH1>cR~{rgLMnBh12))s+SrVE?nDN#B(EysI_Um2n8QxK6>^JD zi6rEc$Wu%gHrg7iD6+U36jud<|UMzT+!NVy}_{Z(Nk*hbX^B~fsaR8fp}yFCI` z$+@pFY&o3us^l!7^97-J)9NS~v^vfjHgT_}dr}<}{SNoto|a!pE?%k1V)EyYiQ&Dd z8iPy->H&rzJj^cpmg@&6lQ3T}`gRZ~r|3RV+dH=Ns^+$EVFAd0KMeFpzlW*=JyCSA z4jYLa86}qEIH4X~w$xl%A_Y?M8$gKiTe|^I*A{b{^V#V^YdL^ zeFq{=el;b^6_WiBsutyU;#HPY=HHnayLYc<2I~%f8nT0J+jCE@x4T<*nUjB2RIH>K zW^N`=U!BlR@$E@Ycvj8 zjxupL_Kp&u$rSa#0yH0)k@y%@6X!cD$Lz!G7fA^-eQQTKRZfLu zq!1s%l5V@-(N3gZY3>ndH0jbNQC1+kG+b;8?($#hLTdyO&U}6N#N7kEAxj_c$X!DZKF?reh3K1eMap; z!v?3#Zdo+`-#58G#ju1p+dG?Bb&;SH=kR#53@*1s!qaT9m`;qg)l0bStZs18=xF)X z9Ii$83~}}Py>|BZ6HE4?{VG-J4^TB(?pk1xkrR@2L;pVS9;vJks8FAgTKY4QDbjSZ z6YF!S4kAW+9|c&=#&N@h-{_TMqdy2#!~a6Iy8=A%{Us%eyC8$+3PyxXD8vS4F^&6~ zQ+EeAbO{pe`xXt(pNh&(tjT>&h8dg(KWYIkK4L!|#V2x%;ZBvi;j1f#3nS%%1?-`4zV1FVCTi`}Dbuzkgc;aQ_3S@kxM3yCD zhTE)k+_(C`+$t=O`_=M=8tu~Rbauxy2xMY)J{6VQS-i?3J|*mKdvf5=B@<9VP?VMdp=9&_7FeI2C)%QJsQmuPEH|FTMDAomsQI-hPLLJYgZtI(_cd_`6 zzBL%W6ve>BOBOMWSq!Ps8~kU=3jx!s$tC@eWg>M=BHeu4hKd46l$K>ECDa2}0LnV( z`NiXn&hXm*52*KEA1=2E^%qcQZ+bEQWs&DO``?)r_smK)tr_lWq;+h%&SdzGtoFN; zo!)+w*<40Vr13#@mqWM|LwcouJ+xC(!eA?IQ2hX?Xd@(>@nfMTu93ffwv8yedoV~^ zwk?O}N1}LSHWkC;*37xf=t9<|T$oNkei>ez%J%@4o;ttQb&)uiDfZ9$EL7q4*%Q>4 zA4b*NXYX(zWX0Nt_gLN=_nZB0m0h$RPcXrkG-vkoYYn8ks9G|TR1hN;rU=U!O$45} zpl76#i=;V1)yYNK93iIFauE}sJk^W^E4n_@iujNu4BoaCM+3z;;X=E?cD7*FOW zez{TE+{T;b80U8T6KrmO;bbwevoSz-e-WnxWu)^z;9vLn`2H|BZ6~LC5ihGMr1`Lu>mr z%e?D&lPs0%E8YU`egak7C9%d0$A4m%%30&h25&S94h;IgvkovcL%wmYfe{^-|FoUH z)1i9MJ-Jr1uhXSjylHc~cu!~Y4AC&hs%0fM{M`;sBC8TMJWDtbT9Kgq3d>RAVpO9? zuSB3StuwYQb#!wd$3YeF)R9nv`g|1B23}=3W&U*=zi!}>&@ArEvCtFa?d7XP{{>Vn z(swx2r`*$sv;h5K91GopgOk@fSFezRzee?wxUX}Fx&Mzv;%&o$oK<+CPF`kN52xEjAm#~f&n570v{=JCvG`r!Y%jY%j)UPj*l0)=WXsOJCF=tl7dOr2ud6@ z$%2wLkXj=3_=1Xzjx!ELoO)Vn`xci+mKD**07DPuWd}~y)$%~*o%5(-pFK8v)Pth? zVic8(C&_wLM0IE~Ra*cb1AMx=d@HqucUkshrM!7|OX2NdNs~oR_izhg{ zyL$|yy#Or*O%cQ{ss`~2Qbv({t^wh~ly+;s5R!%nAU=JTtoBm|2BPiuRs-8ot7MVO z^p0y5J;PrcZ}0FLY?Jau9~~vSkE7~z_v;)gi7Os@&ji1yR`DY468M(d(r|VV4}joT zP_;&j{ygh2R8pbo+Ll3{48gfk?<4kWn%svRBd4-Loc&KV`1E{fL=fzWV^?G zz3W%{lWyxwdmGm=MSh3WB*OSJY(?r>#G(4xQLHk7;HDu6|NS0d|8>-SnR7(59GuKO zUZ04QF3IXdj@Su%17=2x{f`Y;yRDUf8nJtdjLTd?I{uT2!NRZqEE1Va)1Hg`sP2)+ zVXe*hTBvOe`#U zXEVq(D_;kc>>g2l1XYhs$&sYi;ikLSMFY*xk`U1Qqk!(ft1RLN zjZP#{(ww!G=j{@d`61E5A+IrInwlq)_#|(^;K*c`C7Wn}0w&yXQTk#RjY%4{zYN2z zAVl>Hs_rn!BFV-%BcJM7Bn={!NBVKl=0ZTeDnE&LS@x&Ol`=^L^}DF~nIzfoYJ@^F zgj~wTp=Xk`EFJ0W)SV32UcDKAvAoDWW^QxOd)?D8AYZSNbJ19&6=)Ud(@SZs61u5O zzI-#Gzt8z<5ww?0QIw|`6GKG%=GM@mr_SC8=IRA90za*Xe2DJaC3i-=OWx=(Qu3Juy88H zVr8DWsT-4{?B(4OG9s;!3bK6q=HVM3kK4<_wfy7~@nrT9><3MSSw88L1mqOZzoKe& zy+nDTq~b1+I@1_>kwis@c=(}SYjrXj_jfwanhh$k-_pgxaBsU*OkRO;&~Eoy&49L$ znJ269MOIn+kr7&6OE~9nSN^L>Skbh)8b@}McinJsYgEsF(sWhkCsRvxRuGc=Zgq3g z8#ijk*p^NTWzK;>WBdd|y&D>nRR~DrLZR|hUH-QyXO|skP4}$E*$ZZQ$Y!4D`8}}mQPg~Y zD%%LEM9N_%z4~;Im_C52hl))1&fr}Z(*e^>_duiQYZLfnuO!W@q6~ z>lOb>UWg{s$o!w6^?1l5lc}o)!OYBgKd-EkUJrU`&l^o=0~*m>`|_Ux%+I1~jS{%x zzk{Zxh3lZpjj8ss)4ehN8Srr?k&jVgivz%@r^oj8)4gHRU;IoVOtG;C05dg#w)c|m zjqtC4?lXl5xA88^s^9TbrL*k}yTr|tvjKs)V*WEwd=53g)34)QmY}IBSbY$itk}vW z3jVFwqUPS%{~f4)6;)#wJ0xjaKM%kT(tVuQ7|3Nf>hhOaO(HJvZ$v;CU#opNrHt|} z`oJ8)C2-dBLDDGM291_VSga^7r0_K>h$x?d>6o%6NfVnimc6xpE$aC7jQ6Lr#0)PP9!pd?UGM_xZj2J z{H4&@gajAXiHu3S*W;Nkv+lo=^$k1g_WNr_IQYdBh^5p@VwvUJ+wVu$q4U-N=Fn5o z&Z{v$T;!0C_pUwLeG34+AM((8B$gqSZOS;z@)1giDbon_99*13k^WM<|u_q0*5y;H{<%^S4AC}gVC=Ay^J*AGPb5}SP5@fBK} S#I{doljDx|#Pxf3PW&G_1fJdi literal 0 HcmV?d00001 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 29d2f7fd4955fca6bc6fb740e0373a2c358c398e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF 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 6f694c7a012b417908da3687a0a39aa182e91c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1338 zcmaJ>U2NM_6t){^r>#wcfL0VSTvuX@)$vd4#5N6WVkc|1rR}naMb)(7I5(};#!el# zbtCASsp?W-qE8zSJoFVdA%-T$WL8RI_B? zd+t5o`T5Q{p6=<|U$?VqCxRe#u}(PwSIl{LRKstfSbPYV7pzFiI$~t4QN;vEC}X4n z7RxDpAOV!j*w8ni4MAK3S~6v&;)g`l$axh<$7|>E5RD*h?RH*K2Y`j8L7%1v@%vZi za7@bt@uOUvisvQJuXPqpaHQCkREqd6M>0WG?6AwXR*T65ziuw$&~q$MS$o zfPyh>s<0l}mI@eh_hd(oB8*1tHZ@ojWl%QM;T+Jdm>k66jW?rZ#Atx!qns4-g&E4v z(=;FQ%W^avW?3J{L@2IeV>_(Ca)Lk1vm70uX*$9Rewm8!AxRF0BcZTNSFka?U@5u^ zDtpMY2lVtCmQm<8@|YxHuf`Qs(;a!QQ=g4=WngL}AQLr> z9JWrdsBIHKHXF!fSydodRsaOc@jgNkSU^x9kY&;UP<}3pZ{joC5f_Tevd>4eG~;)Y z=eZ~qp=5#aaUn*E3OES^BApKTU&mCAU>iEyt^S9?)&v0^j*SWDqjRZr20>6rTPSJ& zlzz0f);`}+^~w}lP1PK7Ew3f7ot#*uJ@>1Yo3J0TdsRKpA+*n9JnDXDrM~YvF`;uS|vAh|-QdmRf4AqG=`U z#v1n_Lxg8;&z#YCU2K`_W{-A zUf_|V)B9U(WZ~PP>)O(JZ|Vc-*qP&Q{c~BE~6izDPQq)#Nu*KOf(n^(VHY9;fiINM65``pc+9*v(mL$bwfCjbc%v9V{8r9iX|O%>Nr%pLD2qT{mty}c=LVleeamv znz3SOSm@kP8jThvOOq(56Yzh*fz(booe!uZij=BJC6+_lbvQ~B8nA2>kXdv_RDtRY z`5QXWWEySCe6vbTs^#f?J!WC*{1~RgVx!nJTJjQyO{dRANgx|FnymtGbD9%JmCh9^y)##j7{Dcqfn*1ta$rG89pJF6w-S7Z037$rr|y0;1Onp_ zGFJdT6Q!1C0AdVB0WOmpuV=AgAQ550Tn+-mivTtYPJmz*#75#_n9oV%!#rSOfmAfy zki%C~=fTp1{O#BLpJ|0jj#m6#|LRWit-vq3PE1z9ZqyvET4sX$-Icqy7t z<=aq5ff86AuBZBu6EjJsYWM0uejufWFTwPA7Su}0Bm$7KFb!q{Um_8~A{LUG#1l(l zSehUda@kU8LIRg9fkk2tZ;~ss5~R+mM<==F7hLHpxqLB>>PQS%Vc7b~?q!%T5+h8Q z4G=4Nzyi5WZ?^gkasJ{?Xhm`JC#WG6$1K2jb@=9&D3EgD#3UhGh#*21rJjulVXjCF zvp76q62jt0zzMG5C7DlfMgPl%C^3+~wf|}Lq=}jz|MmIcQjh1Ok6NjD$Em^Iv26D> z8tt_TnM9~^Tt8mflRGPOrrX|HtT3gG4LEuuk{g2Rn}QgJIa?gZo))!!=o_l9bvD%A zZ`aHajl8#~u?!4f7F#*b*->A=R2L)6!>saz?h>#wTXT-I(XmQ zx{84skS>k=i~i`(6k4C7;Zpfx%dCPVjPayMf8pugtGM=~s=Id1l#8MZJ1-73wV#Q3 zR3>v3%}jbQs1f_Z0xo;%=LILlA+nTpKI4ha%xWW}uqHrNao~&T4AY6m`P$_n-6h*g zhoX+e4n%~gl_lhe#s+AMb7d{5WzvYTa%6Q~si@@4{;s(0zU|H&P3fE+t{7X`S#Cj@ zC#vd}^4pcBD*77Ny5=j$h8EL2_t$O38$SQiJ6fPjJMimypr~MB2(&P0aI|h}$64<0 z>_~duqNjaT=DM^6+N{&B_lED;F2wrl?!4Lk*2((x!fmrcsw+=cI^qttuZ9C}-m~5E z-ryYVpL%^xR#&(0YI5hz<(}F7-p)?FPcyJO-zVO>%9ZDXJH8pnY;GJYFDQ>vd#j_* zRrd}L(r=!g+1#nQwsO?kpS`Qq8`NxE+Zy{gf7*_7J*U2V_|NpLo{iasj7VCg_V9&| ShohtYzipXxh2)4xTkMB!bsTr6|ge_{#vAVj^!DyNA-l zJ&$jDFNv;BTZXX@Qk-7+S5ErF>mkOcZ@lQv>F1VyCEMe2Ud@f<|L%#&QJi${E`2lR zqKFaW2Y$aTRxUY&ae$IHsN;Z;rdZ%CjYLTv!tMi234j-ON=CnvK-1QU|MG$YErn{gHZ@0Q6&?xSyply?S$EVNXH;gp?S5kV2-)$ga^gw`(f4Mm_Y(`RbgRkQTHF2@zL}dCiLk$RoZIc{xZL z_J*d5)Kb;#oKCFyfL*NGSs?y;e(QKvPJe1#G)h5*6E(?L9$nt?UaQJfP^$GDL0PU; z?r}C|);JQ4HES3w5VMlY7x6xfJAzDKlHE~>x;D`Fa=WygYot{pfFehH69o9pK|72W zwC6?t^AnATIJa=kewn=ep?Nk(aZ*pZo}51`S=^)jPRb`~l^VE}08>P3OJtQlXx1K8 z8Q}_u=F*fS;=k=?(fIv#+%811NTx8^}rHwvH%LbYmpFl9p1A{Idh@2x$ zuVp7)VD9}Uc(*(C**!QOdS(6B)$5^Tq5p3q*7un&_Z-NKEiEYg$D{Uq&sa>wj|za5 zJ6M~p)z+E6*X${8j6Ci+sqZ}zxeCAo0gZmZuhl+)Q%1U$Br_`NXcA-3yBdYMha+{o z{?q0Q(kaR2n`M29{!pwpgX6+CPQEgIO%x*0#!TC=c-ZPSkLO>OcmQUao5%-3w)U`F zRz?uGCEKQDh!TQPDmyd;iDX$TkMIe)%61q51Y2b-ie4r00!csilXgKL$txqj|6D(# z@(#!nQ}3R1JGeB3B5Tuqdvyg@*!-bq`9`pmasNGvy9^*+cd1Y*g>HK#rl7i79QQAG zl4SL_wW@WY1d+F?j0gFInGhsRrqvV3SKl{oqW+;9!fu|u@J)h4WM!0Cu02l@p60b#5M9c{dKh=_eRw~yl zWT0gw8RePzf%i8X&twiB|LF0bI@CYE{x1PI;Ylr4RJzU#Zc0j!c07g&q7=_eSd(sH z9VKChd?}^52IKcMqolAWiQH;HSp1Ploa$t zQhg|2sK;%Eb!By`)j9G1w?>`Wt6IK3gB}~uoue(MlRiIoZ#d{pgJZ8b{^{HO8)@%= zX)og3`*D5v1g;*Lz8@Sm(Q|&}PUytlb@Q_dzKFOzKK!Z_&?GO4+JO-)iPH=fs{(`& zZ9{oNn~LUZaeN!>i9p*0N^sHye8nw4xSi!REaP@@^Jy66|)Y9_AFoLlrlkg(42 zVq2J??I(+1*BcSKsTyO7LCho{8tVQm1b>*GQ*H~Mn71Lhy`alw%;D@CU^0)5Ng{cHz@LS7QZ o8uGHYt7)tmZjae5ge5$b`e_;HIklOseoIbqeod19BU-8d00{dbSpWb4 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 3e8f50573c106d7fdd5ff6f395a69f75606ee852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98304 zcmeHw3wT?{b>;x%y&%AsUos8Tv?R;2B+D`ZJ_M4oEQ1h9)3PLr6eUZtOhW)f!2$sg z04b7^EDzkIuG=Jiq)D2jN!ldsZnJKhrfIWz^^r7bH%;0mZ8vR`Hr+H$)1*z)ZS!if z>6y8A?%dY^7a&McUhw-Y(!jlQ&YYP!GjksQnL74(vXIzvK9ie^7Pj=Fn~=+e9@(-5 zAy*4R=nnXg{kY+eM)p7O+ok(k@F%qK;6PI=eCuw15VgMu|I~l#5~xd{E`hoP>Jq3+ zpe}*B1nLr~OQ0@+x&-PH*zgiK?e=u|x4E#COve*T(RA!WCYMh{bFmBK6NfSGo;^kXwiq^4-UC(R4mpNM_PUv*h3WgBJ>Oscqf)p1GySx=<@xx`%*+z`H&&QT z!LLYaba|VMcKPukD$*L#RcVGJ%S&T=x-pgT!uc3}=pGpz^A~r;GU-BMsc<}(oSjYN zp!b)Og$qNm%v?5=AR}0f9QICT77B^nM6l1;`b-~bJQ(1uFAvg3kHZ2ywlWhA+s%vR za5yj?iYR=}WMfmah0)AbI$(n!;K@v;uoEn2)i4?iPUK*br|Dv!2&t|0LTk%YnStr? zlb~TTmm)KT(d-r(?eXLOtnz#!zVm!8Gq-x0gIa@qq`~EIba*B^H47ByH_IsK$Gy44 zY%))z8O;HsFhHgyXP9!LiD~F(u+P}$GNt-NYV_*eG79_gzSxCiD$W;ZM41fG=T(#L z=@YfRygYiT3zkC{jw~h94WHsZ3z+^!N#&axf5?nqAD!-X){$ zU3kZ(Tr`_a#7{(13yG@8n$~}?N8jSoVm90<0im<{Po2=wKcBf%oB1MDbutmXSXxg7 z_#^kfO?8f)YIS{R6T7oDvU zQG1vdY=snqea7Z2$|!aVRYsfji@tK2`t@c~Lqy{}d^1r*Co7_%e>ifJgtm5EBz;%* z`fw^4&690BO8!U)&wZ3H<(256b_wn3$P-1(Hyfu7^%-A_j<-o@N5{OnJ5d}uK z)d-14qv<%D4IB!fXRo-4=(I;dy&YGpZ#_6@^KSG>Sw@2$xM4V&PsWt-)ZKraGTvkV zdi113Wlp~(3!#dp19mS*6d&|s%U?&xQXaggM@+|mtnzF$9!f zsao6tyO*O+yJWP#1AE|0ClY~+_wD#u`1cn4B>a0bj=;a|I0*l?;ydAAA8vquo1*ZK zhkPgB=k~&fLTdY22!4>a_6J}r5?ua};azUpiB<)E$F{^VqG{dcY7{r|oT zGP(Y{*8KjzeNiUYe-|9tM2Bie*ABLkD5vkTN9%i6WODsiM7qBB|801`Os@Z~N)Omh z%Xh?F}re_;*<84oJ_9&u5u^s%4rG@+nb-2 z$@Smm^srqy>5}K|yO(5g{dX;{_x-=?f=sUeF8vADeB^f2SJV189lRH_cMVH${jZpg zp07?m^F^wv{Eb9^J1A$Qyt6=*)Pa&psxpcW?*D!~MAXx^iq%tDPMql`*pEMhA15q~ zIc5Q7Od%7?r1IUm(~`&@64X625e`qLRwB97$l4i9FTz>Ci#y~lf3e-InsQWYUL+OG z!;P&QjyF1{M2zJ>k4vYkjDIbHSHxLO-!XqiL zMWg@Id>4pToZJd*Lb%6flM5ITC)E$cZ{WX!GnuV7QOkuA`3v z#Woz2`~Af|uq&k!F>;bn4lXuUbl#SToK9>f!r`e*5X{l+T+2+Ok;!u_Fl+WI^kxP% za@6t<)^xqucP0x`hdU~9+yF;l_$-W`?gh3x@EJMkFHS2fT;1TP_lxsCo}LDm2smGe zjLa73$~qJ5(US=FX-rcZA(aO0!BiA%|E5lik-0O>`$4Sb%S-gbkm_?fvAj&21To@5 zy1#t|#qgj!LdHdHduIlE-BNNx=QD)e?Z6vo94cs|S!tO5)h&m*id$i6fvG+kqY}25 zu-QtRD!>rLxY)EoF;d{(GTq$Mo}K6k+7bit^z^}Oj)Aw}U@p0sNRM-#Mgl}$i&^wK zU|Pb%M8gH$PS1dh|H(u=nS&V)(@3$92>5oUYe_TJ`hn0dkfFo@`J}(-W#h{Q3rkSo z&f){?KtsQET&3z*0~rMD5v$e%dbhevSeybn9x@BwsOl%{L)FWS<7Auf$01 z_2a{?crrhi%;#0-_NujZNNvxembvl*B@CXv)BAkV2Q`G(XjRzwfis zA<66h3Ew&Im%YE@J>~6oy`|}kjUPtuLa&s*Eq$=*HBHf`F3%S{zu-CR>6BlRpOX&| zk?Vi%m9}4R%Zcd&_)%X^O`{*ZvWu zm2dS+yE-DI6%ldcSIS%eQILZjIOHbRYQ;FmbPYW^QR;A51mm8*PxM`zFpqxIbCKYH zwc#lGt3%R(j#Fkq9gG&DQ<(+W$qaoqiHtv`bm0FTmV%q++~W|Yl8mMv&qN{QWR@J# zM$!v&I`)$>omjf9k1MTx@|1MAV-{M2Z9TUDF)eTo;De$~6$69i9#&fZ-n2B{5mQ3G}`#PrG%D387vejsUXOwn` zHTm<0-AYIU-{7^*Xn*9p&Ck#V&~pz+{>_7G1KQKtAM7>dVZ6Tgs<0I7I;y+Gv5_?Y z*2kW)?s!zsqHQeik+%Bx>39$^PM;1>z=n6p zrOY|rDTh9*pw)ZXas>9l1((SS>9jqI_p*7HTjcZZr&J~`T_GFmIJ|4Sv1+a8rV;y$j*6AR z-~b;S_UMG&274?zk|o50<%#R|3=vh6>1xD|Vl;k20;j5r-JZ!EuQH#ly;s%KD{bov zYt6!DtaV(ozA>8Y#=aOOhM-QDdV-3iGI==N(%ENSxuQ<%%`ri8yCSzhwW;WisC29= zLkQSjy17cWVYci$l%ti$;VhST89nb#7m(Ru?|VW5f4z&JxA`=3*rdQ=?^Q-eH;1ep z)_qBPR!GRi$M4d#q7si;`GhIyEucxH+3PikctmO)Nz{Fr0|_!Bg9d6R5KiF#wQYWeNeHP@Js;pbPV1E)zGYJ)Y#A? zk;9MZa{wO6oO>p=GnU__J-RbFx66jksE!QRr98`eVlISmTgy#MdG+_?cw3q0sSLDrIcv=nefO7)qZvZPgzYCf>zl=Iu$Y}$w+It_hkU?~GwM3h-Su}a1rlc#SHuE8H(_@7&`ix3n!(ewqQAd=%A%6}xePz+?FfnzIU;0;Y-4@4>9c~=Z_ zwi79Ti>5#@Jwe;2Bf*e%8)IaE*K^!|Jran3>Us%J z$_o%*!iPfm{Qr9XzXhbEp8sDVHc37IAAo== zyq*R{kR*Ue^3v63_?Xg=>iPd>Fe;O$r=I^`62ie8PEgPPXSN<)&_X@`zf=Ul z%R2vG6bIHL_WzUne;0a`-2Zp9eW3LVt>Z1PYyNKYi0{qbuXwjMWj!DE+$8^!+%5e? z%-tL)(fkXL`rxGOrKCVmUZ7J()C38KZD_ zb`fbb^RPgYaR!*>j^-bZp2qS4ig1-EXc%~_W=m~KV@nr9NHQR22%Er+8e+&8X?hr- zfBblk8cS;+oqpO-IVOVokOY;L<^7bCqjL~fkpv__9(%whQf1>bz#5|IqBL1_Dn)38 zM?xd1#2nd$sK?5NxSuvO z)00#dq9vY%WSoXYOZ7ECCGJd0{FZ2T(EBGkM zqpKy@M;Z}Q!uR(9@7N{V@+alvgkf`q>WTBI#I5VUrAg@kQ5SDua)8izt zS_v6p*=}lXJ!N`kP$NgT6U*9|2}j3CVl{yI#o{BuLGDgF$P%Sb5QWzhpkgOLv$azw zv=2Sg5dkBkYH05d*Pj(g-k8g zMNb*=0>z#}#=@e(4{wXVfbZNxP_>KAgy$MALkA37xHYUfD$u|KRG`7^LjJco)L^h5S#V%4mfT>1`!0F zkU6ym2}I=ne>ZwJYX408blV%-?rVL2>pd+Onm^vW-}f87Chyz4eNA6#+U0qN=U(}F zxef9HHZ{J`czeU!8}4<#*S*{ItFA5Z^7{Q`qV(#p&l;J|uGW=fAe9V-$IVa6XrCXS zg^|w!4m!V?=#k&6Cmtjh24lkn1U_(3LHAkFg(!hyygWna{Iq4xa|SqrWG{wnPtoMp zMJA|EPLy5)SbB;sf|%VRs0{;-7DeW)hC@#8M<6bC6ysb>aCCi<01Q!zr4ab9KIsgc zzIy5^ntQ_B=Hl{Z&KafUhubSBA_vBfODdzzX( zE^{lW;NZk1@05iQGlyD_OnNThZf#rtgQ9tjK6@Mhl>wxc^T*4GST#?@tck0VC}?7% z*gZv;<0;Mn6_5qBsbbPpDu&Qcfg}o}I5bJ?B5aP8NP;15s46A0b^wG&kHMx1nXgnj zwMfN(W&#?7ObAnQ0-v3H4-T7h5iLo1rZa>>|eHvVOG+%PD?Xl{(2OTx^T24iMfbUI=xAco+K zVhbL^-E>QE7hW0zljXoDF{l*xs57R7LB&@7RWQM3iLHsn*0pO7vUqs}W(**%knu9w zc4>NHt=P5YDEh!b>KW&OT5$4%3VF)Emhd>A`v}^EK7qU+^*!6t-28a^LHCnwFShys_Nk3Qj=^!&5y&pgk_f7kF5RQn4x7TjNHx>AGdev^mfaZ&L& zpsx10Rkv(3r5!@dQqjIJ$dXG#XO|6tBZ6X7MpN`SueY6nQdOW`{{`ko8;5y@LD|}c zFS-F_R7KM>GhhPL6R;8NH$4{#26&q=Dm{I6eiQ=FM^I-WPv}?hL3vweG3rjv%>jZe zpf;wKRp&pOAr!bomq#YT<+BM3QR0ns@521BqWT>T26fbz!y^Q|dS)yOOkI`AOJc>S!!}5$D5Q{I+QaU>RCNkMEGbjk(YFLN3w@I77Yz?Zt zDUrKX;$@O`?uex!^nTneA9jLaqSPo|56(-WsSKgt!j}M;<@rsd_J9y{ zfY_sam)C?ZnnFG0UW^0=*d!VrU_A6wPzvykf~qBZ=QxxDO~#Ui)Urx2Jqy|<6L_>Y zz~?;q3rwAyImq(^uUBCdeTe0BUhliYVeBFRCud#PFY09ww-O|fGYoFHwm#L08E7+2pOpL8--e{LA4;KZZeI{ zOr0YL?&zJxt@2g>^AY8s5?=tFOAH(Ztqj@_o4=Y8(`#aLN3@4(s)+{x3Ldc39id{- zipfl_a3a*qp@KDRvY9%t(GW+Zttkz5ghx%KbkR?~yb4{^w2p)+Q-B$E9SngJ!zPS| zxv=p)c!18Mk|;MD(!e)~H^J$@=nS_2_ zPs*KLWkAA+JOzyC4&NaaXDkdk@2An%@o~USC|+~L6N&8O$@E1yBH7%>%Xiffe#>za zpr=Z^1Q|>p@~n6c4ATpI34xh{trnd;2Y!aBrtw*WR%yq69MCOna8$JxDWzpY3{Qvi$kD&G!+FRS++_t6l zg_f_hOf~;q^EuyZeGT4YO_x2tD}PmfmF$J_lTQ z>V_~M4eUUptS6gbzv;P1ppTeOhJ(7Za1i34IUyP~2*+jhlmoCCGfSjG4b-Q>fJz16 z+sZLpgWT5sFko*#j1kn8-F(=L;;lWc{lQ-2=P9b+R<2Q(>iD86$t_Eu;GHQoo@9mIx$AwburPqGKtZ&6ZJ zzw&g?qJ#h#S{ItYUSz+a&!%9MhZi96sp~M8u6loEZ?NC`uBngEj`b8MP2CR9-eAA2 zQBV)&p|o_@emp;;#j9JWr|0QH?b0vQswmkkRXm-gf&EZ# zXf~OLni>;{#6=ork|O~XOd;#ZX(bh?(5+n)oS%X{dJ-h~M9GG-JxxJ0u{I=NvCto` zN}WE&1GA5j^Hd7_@);N?I5@FW+jTq*R(5W}Q)$ZiwGF^|?ar~ddyYCfy{g-aFLD@| zvW`yOk`_%mUBm$BQkY#(IdD}a!EjrOj00ZSC^&5R&_x<*G8SWIz2xj{B3C2%>2nVG zrDyH#)mNXXG)-~c1Wr9|{% z?YRr^X2~|hox>-}@U@blV<|YduV%M|lC#FM1;3?$fXL}O6Q^$UU|Bc1ZbU>{)3oaC zONT7S$PodDa*4UjVuE6=0}$)@`6G!$95PicArF<(?SYelUCR(kw0MqW?jQgWCwM6~IB|oE;35^LfXph9?DfW1zu6B4!`>?4ybgoYn_MzlV1L@G>ik%?WW4 zsLP)@Y^s`#Wj*<(PKHgrppLMQitBpNKsY60N6A8FN{exAv8#zxw2cMME*!3}0MS8e z;b~^wQo?d#V<2_gOsc6Q?Z%JdM@e~-kTU5+fkzv+8{z0<0AD~nldl9c-ZAhdD?Q1o z_66#l(c*N>1EI|;!2swS4m=NsG|5AM$mGzw1eC}hFz-{QzJVW-WB%f;Lh-7GNq!|V zvsf+0x!pVohAiY%#l-_DmjMrDMlpw?&q57#FyDI0aZe9tYs$FAfD6jjz_V(>MV~3& z?!nvq&r8mDR^_29OiD0`jmc*=9W#_G70jKWT?~|Uff;Snfw5pv$Ba!XoZWyy=fjae zXk0OJCm#zORRXEzXO`IJ@<+H|9*p2tVZydu^&~~h5`mfr zNbiU&XRs3aHtpCC91Jk#gN7XRQDw8&-#}HR^lSKX; zf0>IC%i~a-BBz)~(zcSb&0%e?`9a%$?^S5+RcNuH3{8*Iw`p(T$YvZxy1%IE@aG}K zjd-(!gQ;p0TXlGXdU?uC$6zhpS*QpndtkV=Du!!)NHHopCVky8g{kl#Sq<0bi6B}i z&Ss1~&xRSpxPCK^5LuI3RI&h-8_Z$u0O`bCkmh;5RvOEmf2;Chop^WAP1M!R!cOoQ zQojEDO4<#`+&V^w$voKZM%e?)okoa=#Yv|KHnspygxo ztECTne!B6WTIQPH>ic6~#QOp7HrK4aZPyjc=F`dPg!;G+03~<_EWw@zXE+OtfrmLcu3$m7+3= z{SbtWiA4c+BvRN&@3w{EJIKQQ*JtcBazp6<;(c(pfubIiH5PcR%z#zKD2r>?jT132 zT6~DC^Nu~k_yJMz$A{2InwAip;c8&1fv6(5t9H68@FTJF6O?q}JZVlM(KM^MLkayI z)UP2>I1bhYOH1PXirCagqLo|)_EQ+5fyp)S)QLrsg9D%Wvp>E;Ba-uv;c`SqYi1&4AgncN7+|5;soxH1)lZF@1o3 z1IOizzj#t41ChSI?!6Z=rmYq}XhZ0|?MKnOZWP<+CK8zH(v;c8zz%){5?lNvFUFMx-n2zS?BQ_YJj4Q-mrXf-#U}{in?%7A*%Zr?_oL=4Gf~TU> zdpm*45g|tJr-ib^Hl*3vULV58J`+rRyVTDK&J4?oAG<2|gQM6Dj=1BQ3F`Z!HW=oMQ^dQH@J*t|t>lOB zIPQ=U#2SoI)1H>|sNO=gWn$iFgmeUJucu%51^_Oo!U(W?9`Qv?#b+R0vzLY6Yj-zt ztV~#Pf2oTdax!kGs770Fko9;4GTF$)7^F3u`JH&3O7dp$Z4_z{f`-%>X}Y~wcNQn9 zqk7i@b7f>?-op`ZdPo$>V;4O{!W;vt6<*Y5WcB0ytnGP zbP#(h)gyFc#-OQ6GJxa z7|-i@jXOL6zyT=fFAm!D3T!$Xs8behgnb&tEiwY@S+`A}$Vd%?3QX(A%A^+rqUQIi zh~Q!+cu_b;W=70C!u_~eMo0a{E}Nb}t&4?Jd)=R>#~EC<9` z-eJQyF%@1vt~KgrmRGRXgRtZ;W^8y?&Y5OM3g5*??d_E7G7e67Gj-Ntn*{CFB%@g{ zqT6)d_Jl>Ov)5zYh?vn-Dp$-yI0BY50!*N}ra@HG!^#DGRgyFtU= z?0oVYyc=3@Bksi#)eDImy+-;+=Clw0(h&4ZSuJ&0bEf6wPW8t z7{VHW;&Y86Kl&tc|G4`uSF+{Tn=?&c^?ld(%7(1_2l9udFE?cxz9h|g{;lyT^hxhi z-hXNQeETzPf7>?M`Weq2*Qoo2>I?yE^45w>ayMMMgopJ?-iUejpl$e!JFf@nW#`Rt z#la5IrBERz=(=$#nmmw};d<2VvcDfO+bT~b65R9+F=i8%%Mn}yA+!!IM7Pfqa{Xn< zS*u9eM93Mgo??nyaxf&g7iNt8ZI^Yia+<>H?&dNixfyf9lrvtgn?jOjR%A#l8guK` zh4n)3F!0)tMO8Mp2>tJ?WJ&JRleSrsY@t-cLy3$k^yhF71R%^=w>3VES&b_st+N+v zQ56$*L8rEmz35Lak&%e#H54BSKJpGWfy&0=96kZ#P|Wa&{_;qD&t}N_-NU;TC5cd6 zq-_0GsG@``X%lQ)zYpUFcbfGqez-R&gEga{lC^e@UoS-ZS06Y7#SgELH96>TO+qA5 zrPHz0lKk2-Spg$@;=D&}F;+pdyej&q0+}oQK-pf`S4do^oyE3I^cAoMfd)!A&_K>Q zy-Ef2B`}8rKMT(I;WJB9cA_b^O1}P8h5XvyhdPXwYZ#&Xf@g=8!rij0k>GSR{b z;#`kSouj{$YA1jt2ar@27+@$T36BB@^5=_pd+^Qv=XX>nLIv43w*iC}QdzN)5=Gb} ziKC-D8IK%~m!B9Z#GJ|Judk74h*Pc{EfZv4M~TJ@VI<`08!4RmiFSTScy zu+u0%0&=F-SoMx8{{M@p{WWcW+1A?nBP~B{+0&f#ea$!H{b%o?rnh*$>DekzNq^Az ziH46hJm`MC>ocxf(8a3m?|2*BfdTibxM?ww$^fME^6?9x)GlOFaV7z_3zrYwG#Aq8 z36*#!5)4^L3KS9`aXf^fRxX&Oh4w%)f@ZTOr(XWNw6W95O zN|>C3Z^aK1V8^0I1ngJ~Mk~g2#W!Q9n%mul=QVpebIysU@G2%m$U+A8hI4#x0N{ni zY!P9omP<03L<9cvPh`SZF_hmW$)_S2kO)i_Uwqw?xz;iF6p&D%)-Nfy!3WzsB~2ln zqW#XAR$E!M4g44YTadEDwEIS<5^TYXhA7+(AGL}f$58v11QnARRHipKKuj^-g`ueM zK2nKGhZ-@SjwhD%hefs%o92uqep?)QCVZ0y5SwX(r;xm0lQt`*vy`@g*}L&}*c>3Mf$E?vS2!kDRXH{-XB+d11!>GA{_v!+Gv~}ElVUKmhjy&AQj`xbeE;CvFn zcenm*>rD-xX~}qIym4tveogZ+-{-(K@YN>dea^eT>2pnQsLB>l>z80-11L4gU2qss zZ)@JvqJzpF7fQb_2(3pS1Nbo#ap<-QpSqz!4$)6EJb`WkrRio`vmkHp!UtS=oq?XI zQ20#&>J5PFR&O@jy}<0~ux|JX$R;646pjbI+~N@*4~1`vhWZWC7+QfOEhZl&&76sZ zujcap3}bA0*}Vk)45;u3fH{Ly9G)+ncvXyCR3BE3ehP}$koaiP8rVRw#MXH26NalR z50FN$ZbE1jkGt%L+fr+SM;{v1HlCD8l(n5~EP>5hbhhbop#+j?s*IVZxJs)lPOXT&=kA`$i9#ML!0oOM*J>GJr!fHNZ7vc@v?i*1#%Zr)S$w zx#D1Db#Z*?T5?x4?DY8q()O;Cu1nxA%qHR|qN#-h_4VdrU z2Au3*kG_4tkXp>%G7Lfb%{fX6LW`> z_BIXm#2^awl$k+wlU*%WPRg_uMyDVl0qSuibWE()Z>MS~@hz#W;|DmNY4%==R9eBJ0h#Q%Q_ zdIf49X`5+1)AC~TZ#Bz+_V;Ylfaf7OBE6~cZyI+tNbX)&03KSaAG`zbBq8rvwVZQ- zYZ5W5vC@X#WsyyH zlC>Ev4JJU3(q9!$KyfpEgbr#%*rN?FsJ8trH?%5j0;~Tx-a{)z+TbNXU_r1KqK#q@ zLVYj?;fU!AG)hWm4ryN)Uxsf z}QEf1~jH>PC#l$0?U{&;)tBAd3Ca7Yp zNzW;?N^uwuK_;}<|NP}Loo9^D0W$;5ZV1r?Mtg#`+&PrlGu3O=Fr0AFA+Y&DOwvMj zB9pZQKHJ4P)cVNS(=Q}XLcYN$&|@e8z;B@uvJ4JD>23n0uvH0c)v6Wm`0u} z!65)k>H#b#uvGB-pv6{TJ|dUzk@)~n`rcoip@Q81{pb*CKi&45t>0+PwS2Q>ck?sN zcljEtwKTq=v8&l%t!Fo>*-gc}@EH&xNpGr5g#VvpH|6kYS`rj$x|@?|!l`65&unVddP{->)`p{b ze2SvtL0Qn!xuXuLI?GVR2tPqWU-1~k>5{lGeo?SH5;~-9@ekP)-6BUmD5eD`yCr;* zRwW%E*o;?2Uv4hgXmTCl$dX znY<_C?ksqB!*S;RWh); z#P3BYU;#;9_%MY#g{4*{7nZp-z#6ngYl0j%qV#q>(t5@8J57Q-o z79Prj-BkcV3X`Eq@?4kn5o}Ya^=-(jRgrg!x8cX()IkbKI$B5MA;7WHm2P}_){#7f z4@oGvX>Q!o-;wmfobIe)7@cnGz0#Jf!IQS-H?4de zFd2;YMbQa7o@jRK`n-b+*A2E|ftCt)82k;*>T+tKalCDevmV=eD)kzHGx zi@xvs(%#Q``w`vQ zDuf!|EW%~Ulh_<6?ox8MbcUp3I5}~(sBV)QC>{C-jAS?`L!HcKPojOifh^qgOrQC=JgHYVFd{UCSjNGPrf>9O}1^o(=)pREVH(sV&uxIdWDZ+fOxI z4M5EWI82=-T!{};d?cM{Gu<;2f`e4xVBhiOY~t8TK)L6R29B+Ob^B?+>n0{3q94TE zuq#mYN?yQ~Vq!<1#%{s|JtH~d!ikQz7{p5R@Hv142|*@-E1Q9uZ*($iQ*L!rIUFt# zJ2H80C6^i*)QDQJq3+V1r3uMFuzgNEw62MOrBK+F|8$^!(L z+Aw<;gT00dG+->zQ(0Qf-UYb+TQ?$#!vdLP`vtHl?2u~#aN1_rWmGk+rn0p$j3`cG zF$1hL!8ZXcsRlxt!+hDpSgk2IB6{l?c~ckeq5_BMM04k>npSjHO=VaCani&2Q>1Ob zq3tS$(5B^Q0SlHu-EZ{#e{%nC_k10-Pqn?O_4BPeT7IqNfamMYpKdg?1dP?tbm0(A-0B~X`uV+rKs9i$p3LRJpI~R#aM~Fy81RaUgWKk6t-|oV^a52}j3C#uVh$#o{BuL7u>Wknwo}VpM_<$p_Vz{m_dPaK96F!^Bc8 zBUMUBf3HHbpVBmsLegfA^pX7kdr%RzhuYrT*4g^jmM^tD*8G9y1HO;=9`pXW_gvFA znif3Y@x0BmS$?N{lk`yI+Zuk@5N{Z0aJxU`{t@?Mu77vE(e;>1MxTa8s`?qn&r0Y( z$0=b|9C|omClujR^w7|cuS#fl$B5~vQZ3N;!uX1WLLJBWkm^jOhPQ2>pluw+mn9VG zILn_1)7%u8z6_~C(30gj+TKaLBB8?_votHD1X`4#(Q*&dmZ$KtgvL8!rSna!?Fw^C zXsaQ-B%wVWW9C3PLp$a#>6`ud5*;;@x5@mXCGahR7bP^J`VGrA9;!exdaCSnELQ+wJU&ms3|NAI0L-8Yk~|H_oSykCPEZ&JvOLQN&pRVsQFi7Mj#D^~ z5u?Z2su(IBU$J+Vp?S367}bi2@@O8;dTtx>9JGOHQ6sZw0)51gn1FnW(}1b537-Qr z4+i30<#IMlpW375XU3=*K!*`eKmTL5jGv~9ihw|sKnQ{Ht$<5|9uY4td>fvj6KuiJ1gn67 zRZcX7pQ4Lyy6mE>fG2}c$}heVd{#!Js!O@@DjU403-SN^ny#SsSG4=uezxtN*87^j z*nF!m?7bU4tpC&{P?tbm0(A-0B~X_@T>>?h02C7k|5Ur1;K}XGf^#N6L<-ZJ?EofY zehrGm_YpDx?jI%P?pQo1gdeM(tg)G?bHwa~-dWr#L#dyL!l7NEo02G6=8lxMw+oCa zWn&O{&4)lit5j7ETB}xNVbJdYq$Ct>Ix7~D$*QxCLa3@15c*wwNIvW@j+uI--W@gD zpLuXAjb`cT7rqhEhEz+CJ{YL3Gp{cm^w1(5rrxl5t8@nff!GJy@MO|DtFYY|mT*al zrgHhBEn3fmmI5Z%uSy5{0A7J9@%;93Lfi;qa#*v(L4_My=LLN*2j~S5#6p#{;^*ML z78c~e@7ZdWzF-Cfb&xA8pMQWg3Y?#tA$s?|0*R$MppdLdScw`^LjC&0k~E`+mBiGz z60j2aAs-OHKuQv=CbYx>>1``=mmksrsfaChGmvqGi5*G|m%w6XFpZ(t5dVKm>rbNg zkF~$p{&0Is+sE2oXq#wzuuX3LV(SOti~3Jp0(A-0B~X_@T>^Cp)Fn`tKwScL3DhM} zm%y4xU}w=Mq3xY}2w>$FTGI;PP?aEf@==sjxk}{e_4=NoS3+Amw=0)$C|b!LRBz?V z9lY2CajKoWwEPdXG4229Q`?Ik($sFA`>sC5KcLTTF3J+>?A)$KN2m{}|3{zbFG@6) zSBbON5EkeoET+Qr9er=G*eIdy4lS*~{!Ny2pnXf<9Vs?QXkW*)@~vi}vyHkIJVV>* zF1kVX9S8I`ZUf``FX$WNMHh`-7n}0*QNhBeXj`EoqVdyHP?ETyiv}}tVEU52If$=O P*;#NH46jzLPLz|3!-d#(eeyI>2_w;{eDdC`YaX-Jn z%(5cb4}t=EK6=A!cp-?`o`?AN#ev-adqMm^A^?&2KO+49PlP#_9d!UjLcrD_>!if4 zq#xd}BzS*{t)v6tw)wZA|l0k1V5$8AEMbex&$0FeG$ z1@Rm9Vq)H-)gh4|+890wJv*VlIf)WD%Up-#M2Dhlf9pkKZsp?V6Q= zh%PTHehfL>=iz{`m6zDGRUX!2ebTr&B*fmK+CfX(Z+(^a^1%aMEltgZwcB}};GB@+ zYv*r@^ERJ4p8bmpJHtb~Rj|=)pDHF+z?WEFuBb#ENlmRAO5Z(KZ|pSKxS1maK@ESh zIdRWyi|$|Jprxt3z+zpi8`TdX@%Aid?n?b$j`!Ktta6g$;?jtE#Mb8H@y198KjDX`+LDWSFATO`(0H38 z06{csHcQGq##db8VKcx0_P)KdhoWh#W-F+uK5*~`ea2c{y{4|desGN0C@G~j?4usv z2-ABcIB)hU>3x$)k4?XjT7xLrb}rsHZUQ+vFLY*jH%4w*ZxI@MKTTZ$GBc&oHnzW` zFWFQlDex%K5Qpl#3XYYF2SPDn^*%L`kam$({VBJlFlpCD#bAn!!zQZh{nQ zo;vF=Ha@17mhXY??4fCz8Z z*_N*d1ixzO^f-6m+DnH&&D&hO!*{U93fl9n2Arm^4|)&(A*?gW`o|rr;~h8paB6Eo}>CWt=xX(~SBn_qIg; zM&lQaTaWZlrFftp9ei-xQ{`i_Cgz*+le)Tw?uaUD!h(A*o5~u&ziIt~hvlmV5E`4O zc9v>KZ)t(KS#)kNS43f%KCG=HJG-Rq@ChH>|82cURmCF z{{z1tK0A++dh8h}+&Kgz)j174mV$p=Id#Q1+TtPOxkSSIRtH3zX#DLCL9E7=@WAxs zecap5nL@iDVmRBj(PS2mH>SP_me6BsmZs+1%*++Gh`>7}LT5I72(W0L#dYvKs6gAjD=s%s+J~ zRIN!fJT;ZKyu1R0E`*;M32P@XNr3gNpSlSN1vIHVNA3O0oriD`^7_b0;f+~)Om*O3 zH(CFmd1^=DzCSMPvM;x(YiQ^ulM58lKn>0xjzRwkKv(*G1YaofOa7@R!+wEtq@}S& zpiCQds!>zac1c&xERoRZk#{YlWynJRU6;ea;;twUxu8+f7RxZYuFL{jZqqx0=KpEt zw2Qn;$Kp+{6=|MAxiDyBQ`c12LvD_%tKgOXOWICbeAV$866oUFh^{YztGjtpVCe7*gg;ufLiTe0n#O59!7PE~AjeAmc{`(_Cl zM%w4PDejF6!N6+N_?NBEbXF-U4KCD4aHUZp^gb-xqRKsBt59k{=;IrG9+lt6#+ZL@ zz`aF>#zsdMHi3DtSVPGdsB$y=|HOncU`GL~N=+*>m=Uh>XGiDWbn`&L5nW-A-mcq? z&hy)y$>WXDc{To|xdqAvr@=0i-eP|eKVZK;+n3N}z;92z1ZH|`OPD$b|2|`GbJ z{3eNq)wt=uy{j`C7he4N&L!7$F7f-<_^&q*x-1}|;t^3%eIe&hBnX2XMJ|rb#OB(1 zbAWgCNU5ZxI&dl7%ug2;HPyq(q$H&aEL%Dp)0LH|?EC3&vyr9T7F=^c=vHEea)L<) z$W9aVQO&cQePqrPI9R6ed_SX?;!M%R$mV{n`2(>oEzKmhPg5Ouux+tVi z%1^@iT`Rv&0n^^{xO(I)=I$PFy74~Xz_2-GrBWlxb>ewnZg)5!?(2S1zA662JZw8V z*|QCns;ZCv(-Sf6^+;pp1a=8HV>R___pfz}x05(GP=FBs@Bt_UzADgh)7g0QK8+=}eaB7#7kR_)Bc2d1k~iAx4c|wA$DadK z!u~jO^;OB3rY3Q?5&n6Tj8o z{_J$zY`pjB1BI_14JRToVt^s4-`NaFtL2*r+Lv3q`HI%n{tch4^zr~l8cVzIis7^I z77~E7=(h{JY$VXO@#S3~Nrd?*3yxS49;dHy{%07S)0F&9F9-v^ocnFWnv_In)wJdi zZLG_eXNSHdNI}@3-{${y_FsKdgQsFv|7U%2mi6QqNIjSC!9o>4*4F>8=_K)h^r{pD zu_a1EWT7wBb8>b!L_GUDpp>vI1RpEiXVVTWPb^zQmsNC?_a@X7Fk@f=CD*Y*d zUUGYo1*m46VCN8EALLuG+A-*S{JSGx_Q0k-?6+)s$IKRickFsO zP)cN@B7$uBU@GaM_P!KcA#j0WrLeS4`K7Q~v7*u|3bTaZZRQIjQS%1;lego-Jm#=*(SnaFo*LTT1SJ1lrPV^Z4?3?_M#--|@ z^QhalhjhHFXM^riK`>1;x!%_PND)cif60XEd#2UTUG41PF_FL`qL1;@(5+V!cTzR4 zgb$dP3O?5ybhH;> z8hhwE2YR~c&iqU_Q<-3}DMQ7}=-HgO@i`CwC2Hwy1ICYwHvS5dIO-jf9QAf(^ag%1 zcOrBlxHvehyFVgNJ@sC-O$0cg24 ztWV=>Pvg0rl6aP}&7xjoy##*zQt8D$)K52}f zAIFJmt`nvUhx5)k{V@DzcJj0gU88OCUc}hki~9bIjeFID4oIQ8UqPJG1*-d>#UF;h zOwVkkbBZ?_BBn#ING=;vkqWo+!a`v2V!QL8m~h>kf4_s0fvgm7!IJ$zTp$kH9?gop zMwcR%SFPw4m2LC3*7ZQPtsmn~IHG@EkW_SQQtZSYtLfpIcxmxFC2G2OXnmG~6IYZn z`04VH*-U<0t2N!VQL#Ulhg(hIZwm{l2gPR<{S-Tv=H*^VUQEr`XzRJsxP0gP*!=dS z?o|Jktc2l`7uOAY)99Lq&0$Vs&I!G~8>}`i9qn*k{zk8Uy;AEuMa5XfaiLTy-70>#0Gmoj;(d=?niSC zx#UX%Kj}O-6jt5o*d_3pU9Fke2|Lcskl%X#h&G!XQ}DoXwIwi15(v|~r#q%iYAGdH z&uVD3A(GZ6$^1pnO77*q^Qc1O<={QVy7P^8B!j_2rJr(t{(1b1MyX}Zkywju6f7I_ z$oq$@fc}xI(Q+FKURAgOv7UbWx?lOuW}@nppXO$b4GrRcHGim*>gWl5Fwq;ni^$B^ zx))nrgHSesY(taFKNW~5x;uqqY}PdigKN%cVf5QF*5Dd^&7QdxaUI%uV4_!VxU#emAh}qh@p{l&jCm#Ity%fw zvTfZ{R|;?{D0kj>q>ycHQt^Gb|Ni52vOZRkmt)h(obb@TJWp}QtWm8ZOis!g{mMZN z%8t1K(VCz6O^N)n$$)ARxnBGe6{;MH?U#tbUi^Juh{>9cDP2yfkFXRbcHb3XpF&qv zmI+T=916k|r2MDXsvZ5Nr+mG*G*3LlZ0Tmd$hUpM?I?--vUhU+b@8@n(z(k{A$fK2 zx?*E5!=7dz>)4qjaTlM0TPHnVF=BsE+%E6ZKXNJfn&qJILjB{2jfx?KS4oqZ&z6kJ zfFFM%SNgM-uR9ZRt$tR`@v_(m>m9fJxFquE;&{qpl*2=uqiEo$kKegouHU|AV$l)z zLX+%;Hu4Xs^cl-8umk0Z)zf?6_Pvc$C#6D+aHri7`L%7OdUt zp&`|wFJ10?C(7I)9|L0@rw!6sRyp0o=;c{sdmEee9i^{+U# zA#KbLERBmP2i&8vL^qjw9L12A8dng6j|&zc_IR&hluU%lm#}BomBd(HiYnO(N-xhD zimU|u*19NWcsIg7BTxZoI#SI*{-GURg9Mmx`rA* z{x}DJe~a=HgZ>0lmfk*M4q8CwF+H7;EQ`un5?LhFvu(C9nc}6iJsB)A!o>VT|0{0n z1d0T=c1dpRg31+UGt}s(QrwoF-bJcwbT(${;1f<5dnL(n^xV@NM}8(1E+GaQt>(tj zV^!01aa{qrrO4FnJ#rv&!g{_BbR|`bz&QqM@DWg7gIgb9lD`PMli|0Ib`rw-F@MZi zAJ=M+-YyqCtZ~@my!Q^7bm7MhzcQp(HilnGt{k`2P}KUfBO~zR9aT?1A&oOAET>20 zc2Y`4XYfb;Qz%w}WyRms6>pvv=-Jh!HlMc(RY=HjAM@v53$=qE^a+O>=*$*;2sk3J zQMFt6k%k|j&97N~^hM|I3Dh>s!Eps&*yP9O zvx8k!UiVmA@4Z-mnS_cSQKwAwz7mQ3UpbFG5d%UJ`F`|=;fe@er@=nE&Cdj=;YveCBI@ z=-aELRDDQTI9x$zSU#-d#zXCd9i?ZGEK*=cM`be@LxklTDR>!#^n2_rZP zd^>&9C0jZ9e#N#+-O4yf27Ph8mwAQuZ5cs&B_SDB)CWDPW0sr`-EV| z9rfu`AM)}uz4Iq<*0>GwOC4E`07qa(yC=V*3K|kner*e|lMww7s<}K6*drZ& zYwsuD<)a|Nlt_~hol{95&sm&tcwrcR`iArFQzW#^(2(Zw_o)l5?jOhl?V5=K*t`pD za1)>;z3}0bemL{V;+ky2j!7{bN)OUZk?YKj$~z3JZ-#J!>Y=L)lp8H*?o#Y_X6LgA z`Cz^+N*zg;FL>M`RqzhkiB*jj3wHO`O&qmu==op<(j}eVFvqd2oND(CxG5capPsOj zVGTzgpvWQB5yMOvfJw0T;xN3ytfINhWYGG!hR|;%#B87Fd=td#D%zyQJ`OskBM%D- zR3}AqNvMG|sZF%jGJCyk9A3AT1+@z4@swmZ66xEP4dd2HJU`!vfvTzm*GSMvj$?h1 zgvd>#r!?Jq#vxr8=lCIZ^jz%*n*V$y7d_I!_MbtN1`m)+5u_YkbVQ7{cIpA6nKv9n zjCpv;_Bq)0$?l9#fdE7y7wR+jHf3~RWrg^Qz5KSu>J`qd1Gv&-8~ivNE+22Q>rHqQ zvBX>UXt?iRp8)ri9`{_4#rnSFK!Sl~m5t7uMDER}3 z+Qp@+p`2_|*b9(W>wWeKO>sFR)~easEB_-;GX$-|eOX58m=s{LvFGnVU@1S>C>M|`PB z1a4to@0z-cbXrG<3J%Mu3&bV74jtHU0jYJ$B(UmRDCw*mmIENvgAbbxPR_IM@h*oR zn;+M0)jm#tDV^$21cCtL;~%ipt*>ISh}(Yy2{!!(tz#h)sJeM1NCJX<&wn! znE?J_B!o24J1+IdoLR-e-E-&x{VDqo)?_y?taO?gL$zDpHqY?Y?mFMMo0Tu_d%L1k=n$!^0^q?>K zc%F3spc^`hmAMiu&s#U3llYoPvXC>|EM0c`X+m{>woCr-FG@Q@l&!cE_;=;LA+m^3 zH}a5MZF{f0z`c&3H6;Q5f!Rlp06C2~v%{mH$3@xZD+e_??0u6#wKyjITMKyf+Xt2_ z@vM05{bThw?pAADsYpqxf_!qhV9#|J^#L1Z#5TjLS@D9u0(&3?o9IonMh3F z$u#EPMcE77ib(8jP3f4kfS=jdx<)~Mt0C9L&G~JGs+w{%DbM_%yO;bFtXlyDsG=;B z-;}`n0ZZEe0t6OOJv?GhMZJM2H3TbOpo~Tb3ZQSed_+W&=@^@rv&iIUq=JUS#33PU zsveLmu$tP9m2-=Kt(Skm7K%i2JG7Q|bwc6eq7!DiW%()+()u4VT#2jq2yzpP|2tyG zUfC7DBVV8w{tJHs(*$gtuK72fw6>^N#F_xR5(AWZWz$hP7p**zE3!hpMM$W4mmH;l zOeq)Sw@`M~RhD)Z|Cf9;MUv?5n=|N#DpF`=S0t-cfePzh+uGT?`)@H|G}tRb=JIfE8!Jyl3-L${1};wH zaC)stvF5BE`{&%LeP&qWB+C;Shc9{w?AiTy4u~-R1;Rz4 z+iBU1@;Lt({pIw%*aUYP>gs~qK=KuxP9ACTJt*P-Fn_hl&516Qx51fb#v+moKAe+r z(7#sT+Gw5*tu}tZ{@lTw*8z5gy_`R*h%2ij9GCSg_HKJ-nL8pMdCM$Bq0J%>&S?k%7`mpMaw8i`wL#hIqJ#=D*{%z z0Q>?%>b&aXM3UaScLG}wKf%>6kJF)nHx46ln2@yJ_7 zoi#nKqQi0=-^&FBs5TuDR~E$i=7*KLHO3mYM)ULBX=a=&HYJfCaW$>)ha^FPCpG^>M%g4@m+9G$Mv2G{DtnVoA*R`HnAsXr)jL0Sih?|V5k z_(=zMzfXQ)@&OBk*s`fGsU)(8%TyU)bD51zgZ+?6GojwxZX?uR4$A!N_JmIVBudo? zs$^U^+YL~{Hvxtkf4~Caj@4WbTud%W0_wvGOlqB0v9tY07TN@H#zg*7*`{1*!MhWT zR3qSsTtoL3i8B4lT!a7A;s1a~E9xlc@j(;2mee?gU5RNKP@ukUtF?J8*CKuzXD-Bz zZ{KSfoj-T&(J-}s!77~wA%z>T3>tvJ+vM_5M^BOae+b`>q z#i5*}*&(Hx8ar}FRkVl`(ol2};K7gfitL`#Mr%*=K?OZW1c5+PKmP5iqsrbZqB^Ml zS8T?UZEE3a*8!;gB&2zS<3U$)e3bta&WbSU4DBmo`|0G8o+%50@5pmm( z4Q9;wjU5SAQ7z3RqL7A}$$&JJwFx4A)yvcRlI`h|g}6-LUodaLg<%h!?Az}uULFZX z&l?|%E>0=u&Ho=vH`Tv!U>oFVr$mcO}-z zNQ*HX3ew`?#481=SG`V<{=CXx%a>@veWDRk&?~v`&uE;mWJ^z7RE;w2<3SWRM?kmF zxtXA*$^lMP;fVWrVpO%<4nQKdT$Q5-Gz&$Qmvy=7xW~Qyj!+m!MZZJHnK(920I+ zxmFR8WL5M-ehN;^G!}7j{E+LP;;RyDOt#y+)Mr2mDO`EJc3;_hm{a4{MqEdBDb$t( zQOvT{%p0t5`e>Z63h>osuI=SjxfM=WL#zexo3s~is?4!y6Ib&=%G zzzl9sl~@umfCmu#8#U>-6XHd~2Hf!9CqFrSxM@3e( zZa{qk#M@r+QQqU#&5=3RL0sWQvsa$b;O1=Om66&%9Vh^7PFoY~E`W6$}n`Gh2%M(ib8{&I+Xo8|4?#G%2v6N{j(Vaw!=0OW4E70GT2+`tH64+0BX zRClcMi7Rm*7}p_s$#>Z<_2#CF#2VF4Iw}_D^cr`4=YpPmsi3LH70wA8?aPfC@P<^6vtW(4`>H(ZgFx4py_WI<}&4JslH#3;T~0ROI!RVOBPh z$7-|2zB79m$}frsP0B*u;0w}M(d3OJOI~Q3B5k6G3%6xI!Ip!Ss7}OjoBV%_k^#is-bN`z| z5FjyyfBv^%uZy0!V4<3JjJp+w#Q(qu*X{{89XAnJ?!eWy_2Mcd6l+B2s441?ws77M zmKC6ep(6kV`KnF!-6~u&lQRZNg zLG}>#;`ItSFZc{YiR&p#7>Wd{6Y=qe=CFZ}`SA6T5OpSBlautlF>9Q@Gs`tImvB>wcURd*Wx#SlF zH4f(;_1&&2{^YlE4p7Q-3{~#*wlGxc8H=#WfbQX!3%(~u;pvH_B1=hAZ)MjJE_va) zEBhvXLr58x#kL0S$)(T;;p1X*KSm+jM+j3RNXg$b`Br$c|B57au!Od6n-|)Nx~QC+ zU>;bjmo7}Vgc912ZH;aUt=lSm-BF}HZs#8(BzQsG|Lx-oKG(KL*kFQ$=X9;zb=$vg zw48Z}_gm}|C{quG@)K276Mh_qXcYjy{nTUF{*S2EPW+c-x5X%=%#AT2SMpb4R9T>$ z^U1?v?ES8kijB_ZDl6&Vr9X0PcR*wpUxpa=OVMvd;9#5_VWkRl4+`+f=HZ-4BjENV z8Y0IPhV1>kYc~SZaW59;A-`+K87HqkyMP#3Nw~UA!q-tQtW6)%o0f&(vRPO zksTJV6Mk;q^i*m{17e1ca5a^I^_mOGEc4Kv2=5-lf)Jk?H}zQ?fJcH z>yQquB}ol=d;wf+S@t%`DGHke{lKCH@A9BP>D-r0)Gu8X0Z&bMm67R4Te-?WA8Fw}-UN_B z+;q0e_Y#zlv}PhE3YI`NBf>xT(0sUU>YnDP{Nv)l-MJzqNh5KZpmT!`oUQ7+%g$y5 z*%jXa=WJ1!GR(Cas6v#l(JKgZcnBw=1_vqvPA2%fjhO~=Y6wmw{+H8K4vH>~j~>5^ z^-^f&tvy$JVVtMiseQ_yvMz7pfZUA>RSE8_$vY5m6_AO&Li)TQ{gi3#ujYvkrVq13 z1}bRQ$nn<6Moq1@o;WwBZ$hStt!X?O%79Yrb-MC$HtCM0>+o@Po>Vx!E_)uQX8Z=lgz$ds{zm5iZ!`ib!QI8!@U1>%yZY?(L!qt z^_LaH6QhorB%tSYQ_x4H9rZ!i%UZ=nAAMbbcH zXt<3TfLf?SZ2~>Y{fVu%{C~)~{OoPkYSltJKZE9Vkz)$Y4;oGqYiiAM*M|vSzu41T zV9_{o$|#~xs%BfSJl)!v3YlvQb+>b2&$q)5{sV6!Bb=F&null?!M1=x<5g|deUK_b zhz~FmEaKMfRFQTxEM4F$#It^61-21shJUihEx@7)$q48E#W5hOGrm_jC71Z@0QMrN zim}(Km9PHFGWc=!?rvvX{v{>``yUfyOa-~`fKvM_hVcIX&QPaHv80_3{qNly`tY-@ zbbXcdk9Q6|_~+k@cH(^UM^dbzuE*G&^Xkw|4hi;nCRo@NOKV2I{(zFAN0zD)=R_hf z{_GWX)Z#ELm7I*JbQZN%acD0|ZBvCTpa<;PDX=CKe8NXAD6W4(ivrO+BH)djmc`o1 zmvTtpSXG$cC}1z92+%dZgBeLvekSOpqB$p2)Db=f4QH??uou}GC|Ik4Gw)z~Mpqo1 zTv87bjYe?|lqTcx@1JG=B-e?+9zE|?Fj)euW&44~*1?~*hIxn!@Xu?&NPzX`Q%*z6 ziL1R&G0~FDm9oH}BtmkqfBrIBR58ChwUp!k<%7)P0Kobmpz{WR@ldB z@;bq|BG_&oWAhLmg}w^jEe<^9s7Cw*xrdGfbsQpVgXaN(7TpX8QCm>5$i5nRC zJ1b}*VzcJ9$r`2`+|d9FTR9V7LwSm^eh3F2U=kFI;cy0OozS`+TCt3NJq4F2NooE@ zhIXWItO7y2eY@%|1{e5;{}I4QnK%WzE$inyM$ciVYa0(Pz~En`->$#B?OwL9zC#*! z*gm0gO!tg)2M3Y*E4?QC7uS=m+U0vAod3P zVY{{YR8MVL4CS`-5C^e=L_!DMaXIP=pNAx}w->(PKd}N4{?*6X6K?{=B+%q>*^#ZHUwW5+Lcd3onupv+drGyAOde} zuE)<7H2y&{vSXVmtIO2&KiK9D1x`DKC|rDXNh6#{V$CL}XiFut9{ zUyPzO!ONv59A~t^l%5_i1=xMo&fzI-<4)-1pnb%uhSFNI?x-VBZrVdk^5nST2lQ#8 zp|zhvU3G@(qJG~Zgv*r*7wyRt(%Ucx$Y8AkCh!WOnnt1B?6txmztl? zKPyV#tL8wWzlrX9(4|vtCIqgn$i^kc!+T2Tn(YFQsICx}^V;#d7;9_Rr;LVKf>I>Q z26Iwr%;8l%{>M3!-2p|~_H3+Aq#F43@?!##1rf}5e5NR2Xw`BjkaWTmdawV%u*{rM z1SZ4^_@py<5KzNw^Yy_z)`dz6DRmOFF-uXAVYwJor`Xvv?cbWa!H#kCpK-84Hh1K< zM!BwTERjR7^WFm4TQbw7+HJ+{`vYZmf5*%4wfh)Q`SGERwl=q8ML-Suc(Ak7{Q~!AdwtD%tkb+ zB5=ooYBMyagW)|Cu9RdGwHqs_)pnpg0}@+eZDyFC=fvRNY?xrMZ=!22ZOeGT34KlG zRpb&%FlH~1DB}xRm%R08sd;eOkO+M0OfA$SA!18#VM>-Wc{#E7*6ti2X_arzmO@Rt zEY9d7)6hy-B$#O(=3`Ke`KxFI%egXYHXPAM+J;4};jgzQTwrU_GWTm)89a{|IlI9T zPqLSq%&aMkl5pRzjhsV>`bbvv+T$T$kPNhg4Zz3Si5d40V+Fa6^A1`E1J1=YXJ_(2 z6E-jHB$kFSCs`P!Vi=PwOGJe;2of8qy{t%m-DBaILhP+`PWsDwX-`%!Gs}zNdOf(x zfW?{~c}2H|u&>WviL!Tl$IvKtt-vR6?v||`xsHyHyEI`Ve-vIouaQ7Ad6EEIJckX` zmUiGgi7gvW_ySAYeFrk;1lG5xpkYtvjh6*q{act@`{4}%AC{V-EVhy&mp*3RHHL0d$b2A?*$sLa(6Mh6=fxia`!R62@;CDnZwVN zs#wkvDGQv)`GXeP25c6n-V|^3EI-5`w@2>0zD|labxs4OZ}<|XHwuR~W^|oqEgKyj zpsGP#cOjLWPtYd!dk&hj?}UpTT%(-83>~asIh|ct@sI0=ktJ}e9;-i(Rdawn zBKD9}?@yC*v0~FQrRCY#c_FCDXeZ38lSX(KC7*48^SU&lza~6E041p6NI2syW|4$k zCzxErRI@y@p}Fy^W638<+J{h~9luKrtrW77%NOcli1GgN{kCt3m`;y$QC5y0$I$!{ zh~_72F=R(4;5Ph&)=2Qv7H0c6#sP?LaRbFN$kHThdwQUxVY3=gT+xAzpL z9tb#W9m}G~@WTBc2~U_V!16qr&J<+Jbj!EBI3t2(uk=E1vaIDy^#&N3t*(HVhj~>Kj4>#h(cp@W>wzC*j?{>ux?>BjoGHjn=lCw011R zhdHtE*G&R_dU$iw9TBBK5@b*tC{hu2?>m|?TV*0JMxg{Q_ktL*i{r`3aJ4fYgum_ujXPSkxP<-taPZ-!8R3b zX2ku%)Ey&vrLbWlLEUJAM54yPR)UO32OP^L{Fjtx0)`thj$P4*)ye%a+^M+Mi}X>7 zH(E{WRh{J*L>Q7EaygCqrYHbMIr%$O3Kqw7Ix?v@1)}tw@&ojd3Cs)yF}PTXi^a@) zvz;e_u;qjohEQzh+j`v7I78uUzI1;&rbb1@w2)&o`rMPYB0mroxt~`be$&6_gc!@i zf>WBS^}-nJZ+MuKRI0zDRPI!$1&>vgV2Zlo>_bo_C#={$gi%_?zGQ2n-GGm=;PJE2 zhoGnBD*JO8)fv;vK3ou1%V+kn+7GyP67|av#NP;OG1b@(Ym<1m=`W^HswW5he%}jr z6X00-k_YEB6Xvh_+?96+nLY}vyhrCTs4)-<`<6*lvP;|AndQ+rzu9#Zxw@2Mu%|ct z;F;BO1wE#b0*qLf$7pbQfgeDyDZwOw~ggb+l3EK|sb?V{41Q#CGj|Gz-3!xy;T2Pd6Sm9#bmizpB z!vQr!Y`#dKY_6R%UD!DYy0vGbf{$n+3u&G?V?83P6SP<7Ff%nwg1hP4>>I+o)zu-N$-z0=t_*-z|mC!S&iDO`h{AF}GWr7>lvL5$sX>mHQa z0;wsmDlXrHh&8M8=6Y~v;DpQ2fgRyuOyOtDBBpDE14IJ0>Nj9w4BLOlc|^i@M64Xv zQFctvdI?DLsg!8@(Sje>&lCMLq_HbjoN!%p8zH!sR>Ly+A+otuY zN&|N;Moz%S+*W^K7vq!gf4QTQM`(3-+YsjLLV5iOJ$h#|p`S-5Cy5m_K{}M~bT$5C z4iD7yzb@tcGwOYEycGud^@5Exi!^NsH;FRY-rFVqE#`+kKi;3_PZI;(Jus*Kf$9uP zsJOY4V)oGn0W=t-;av;{xz467bqEtG^Wzy2#rS!;R)|fL=-@+{413N%u z<5)En6wDc3)?1Pk3h{5o6s8+bL^-G{z=TvHfw12igr_;~U2p-rY9>MBWpDwqfi+Py z#K)-IODoDshJp2F=2TS7qDoluD?3I5PC&rEoXwfRkG(Sfm2qMnT=yE$oN?)84Z=2iVeoKO{u3`ugE(+xV6D2OFHBHJym+7Xp{o zKLot^4;l5ygS1pVRt}qbTjuLEfZ}Z+Jz_f8y$1k-Y@r8=;)GX7KqV*KPH@73Yb0_q zynI2ljJgmb$Z%NVV+f>jv3`O&#BTseCBPF#_2sm+VM3pGH$Dws0iw$e+>b`?rG=Uu zFL*>lsVT_G z`J|m(>$5x-J0mr^jF~f-a{(#imP7XLG!A%(nlK1T0z}EK(7d7|-NJs50ouL1iva=c zVo@Gz1_;e8lU0lg1P_G>G4g0F3IJ2r2SzsIsvMex8%^Mp%m%ep6ZfvBARuj)YAz*(KZaj`+cQvrcFGjMpTrI~{P~$H;iH(1 z8Xu-fIz-FkVmY+sA>1jc-XkiFJi}=4jzQ$T4N2z!LJx9z#t8N4p;u# zf(@RR-^CEx>l9iCWLCR0mW6r2Xan~8crWOfy34#$GQy7OLz{q;Sc{57G|!4x0pRyj z&vuu?TD*)>*0XzXVLp727TVf|5)uOH1McCJx4T(@gUNXRKpMTce zhu2g$rK~&K;1P2MY{3DuzWHwv$ded;HfgT`@zs%SwUUDdR2*g%L*L(w^{(@*1`tCM z^&t!rb&dey8Bo{>1zJKX;9E6uX0D7+cL@Lid;=UwE;8*)o#v*LVt#;~qF8Ox;qATr zLnpgFf}5in+_J5UO|Zu=lw*6HIb)DWm^Zin9SOOUT`c^dfSW)e67gMC!HXGMeyJ5< zXX1v^oW6cUQ=BXMKEw3!6`-mCX(69j`Da(lNA!0vNn4C^AmuI`FsLE`k2dJk{_*k; zs_^fTI?Ia?l?4mfiSPety--FTvzou<()KY<(^tj-%ny3?hRSltvj9bo*gv6nMY60u zCf>{UlUps9q}p)6))>&nV;5oyk1@;TS-07JWcgUP=y8~Ixs}(h&U$YAYd!Ek=u^&Z zAFog}5w6+Ow|W8_Gi9a!xdLdVVY_TjJ?Jq^MRBwG-@z#KFbqVs=JB^@cCS}wCPE`P_LJmz2*s$_64 zu%*GdHtN)smLzEa+_CmX7X5gR4<2X+dSZ?2$S4O{;-T%WmTV&GsK^05aKR4SQKBiB zBKPSH?m>HI)Cj@qZ$fMDl@B*g!sI|ZG}-!AlU-%ellzeDCc}YoI{a|c`yQ6538Zml zN2;sDP%A~7(RwV9A<9(+g;3pJmWSVkkiy5Iz8RdDJdrMs2#qg+x)qgY`XOK)lCxv&>k-J)KF!@WmY zGoD$d*$*h*68-uuVEUaMt!h7JIQ%Y_#bCCq2b{>cZX9sHG@wS<>-!wT$5(rgxBX8Lvllq!++0q(cA>Z;>jbfTsRgz{?&PNV-g-uB z)e1cjOcDzvuY`{*4#S$k9=iO|KUOd@!1k%aEOooBojadhfHjPVm&a5oIh=6Bnqk}x zcIR0#+$7T>r>kbkQTMn4EQ>@pSy6O#^UO~k@;O?dOGzt2wC$@fY34O~Cbw8@BtP;s?SEw1B>e{do_~xhs=fgsv##4P>e~!NKb^ULT@a+IJy#{c^Nq=m_V;UB= zb7HP!ydf+bjj#AevmyZA902d3t_ugAI=m9)2=2nH>QYLlYiYs*t-dEsgemWmi%RiV z^v#x8hUJ-)lkdocU<{>t#n4Z&IL6t!5kG4@_olJNm!t-+!rp8@Re}7~buK-)faYRw zhV&AnUb+n~o3Ijk_Rvn6@ZPaeaY)|BiS1>l9hDuij?sQ0p}1*&G+J^${#g2n68sm1 z@b}3r=L^=QoAvC5+oJKB=xoaxzV|C6fabg1^o*8o8F@#?vY%v3HUFTbQZCq$H%>>M zf+UhQZ)%!cGfde$D#e%Jfg;Y{`Om$@Fejj$5aR8;+*JPreTpU*1v)SPp;q8B8sl zJ@YYR9t*F#=(cY)wWJg&+t%J}`gWtD>kQ(3Ifn+<`Cfw!4U_S2-Ewrj!@FmQFrCIOifBy$Et>aW<&Kis2swMH>jNcXkLy9(zcj$iB5DKz5+?e><8 zz-YOIEq4Q=tU97cnl4Y3FMobF-V4gyUD@nX-0rR@V}ee>_q@cvxc(?mJ)BZ|_%rH( z*i7&7^z_zPq^;>L-RFxU7fi*@A^+;xBkw|HG(#GyY9=T9CkZ9A*-65qod*hW%SOmm zQpzP*y@J(QF}I=^)P~{PIlZ|(bqScpRc@oeGQ%=Q<>~$4PXjo%)q96Gq_AJ7akuP3=$KiHV zgj{RJ-HtQs>Elv`WR_Fng*T3?p;>ihgKZHT*9!JT#Fg2+Is1!U#|g7C3Nx&X_Oi#D zf}&J3lBI-R%dueveTR*&*{_xNLN*m;QDvpi-VnO~dQSOuuNU-eh&CO3EDu@Gp^Cv- z+3Q!Eze#Rr=xV9bbZo8X4UhUN2$9g>_K4~kXdwj3yidQ3t0BnR7$U{s;knyUeN$8S z)D8`Tn`~weTMa%e4BL1QQ%0s7XcBdEAP)i8W_c|J)3=)}z)X3g^WsOvJ3m}r3y4+3 z6m$oZwac@92|*fM!Nu3@(oE&zoL?8yepdXVgG#VJh!Y!6_CkYXeBS@V(v`w8&0bQp8NwvKz}7#@yeT zzQ0?4^wM?iy=QsO^Sqz;^FFtmiO*Ge4pH0x0?&!0JtXaz?wpEF#b8^X-G7P6O$m&s7nMWZu}{#!s5k?xBC_sk11O-{}8YFJTFi+8)_Y(*Bvj zMf%=t@Kea6yjV=h88tLB1tio~K~oP|XO3c-?d~%_ns5^q~MfBBC>b}d9N7q`eyQ7&*3~z&G@w!? zD1SdQ8_jF^zU6rDkgr%5H_`0)x8b+JwaBOR`3Tnvc(7@;;p0w3Sa$aOd-Jq8d^W@E zh`*d|tY|*uYk_#t>dRJ54wC_Q&-Hr~_IWd^okYF6#-J0T`*U!fN}gVs#DyDhXwy$h z|2*93>$e_0qj?YTgv)};{L_}}xpzWgM|ih+V3+%BL&L!J{~|vg`2Bs%pN+q2e`ddLZ2u85l)V5rTd7@E zVRs>VDw&dc^(aw&v&F9^-1X7GAE~gyog}xwdO!cE%!`=g4IuXge7=kGw~Z9nOBq{* z-{`K>6HP9UQ4Y&`x$hK(Jf=~K8TK_}(ObM&mlzF273s|BI#RtaP*jJ?=6-FwR8@!g zzvxI_O)++oFL%4P_~vMwTKwNz$Ik?mUI{IeDJv~UD7zOm+fCv6tea59v^49Z#Qs6V z-XG&4!H+wcf3GV0w-<|t3)$37%Qw1CZ!9ibTj$^-NJD@Z{5h-PFF%UNKr!9BM+457 zn=he$=={AhJJ@Q9PL-FDv@tC|RF=~vIm?cvULyPrmEMoo<^_^Q{AJc~w`md%{ajET ztvP&6%feZ^{mLz!gP_iW!C4?(R{fOg?%)t^_LSMHcu-LEQ%@c{HvHpt@6j(syNzq> zOrXG(L0k!jq zz;Z)w-(SBi)q_vY_v5Mqa1H@a9Z25$0myg_==PA9hb4X8TLW>|G4Ce_M)~<>$32<7+7V%=r|UjeTSJteuVR1F9@je9^LBMef(BWl-P-Q76ok;z997T zf;=sQGqIW!b54vj(z?%rI-=`C+Xq~pkelFDX~A3f8Y1HVu3h`_9TY!=p9DYKZo9cN z9DWVTEhKTH$` zwR;v-`^>{yXRciN=HW=I+d>XSqhjBI{*qwympdWr8f=jWTPj*B%Vzf7$(6lZu{-jp zlyD|XPc*`w&1m^7hf!Lm0aY_$=M)YWnf<#D&~zYk1}}o3bh1XRo8S0@=tuHoQTGp0 z2ujSoXcn@hE1mf%{<}8A6mXfTPsQ(g@fA-596=0$lC6RhjHe0?UF^-A#PdIC{IgPS zB1k5^&y{VQtGn62LTY;Fa$S>6xlAIL-=MB`VJK{KP9(3KP*lJWMY8@k0e`u40GP{F z;bK%+OppA|$<7l?g;1n*p$hWFny-Tkfhf?1CsM-MQC{uSs# zt5%Q5*s_WWiSG)K zQGk(3zO*7pyQv|9m5Y~dj)EbpV6YNMZH^(cv|mgzRsG{CC=aa$H*IG~#sr@fm5xZI zSWZ8N1Nz)ve9hGVqQ;a8ObAqw$oQ@791Fyo3sU+r&ZrZ2n<+%o%2+OOtX}nhaPLpf z+qY@%{yjkq9KjnvA^`1+dXFfkcKl+`vD>Oxqx)JHw>lJq&RJA}@+GYH@M20A8tOgFF_WXO zB>L0_bO+i4JaLt?w{31RX49Y2__cxrvyV>3wl0-zgNmlPe@Zg?mTBOw=6};J-az;$ zW70CRTpA}rAvfVh#^jI&lY?;;AQ-d6ep6z9stgu)l`{9E^-LQ=H-rPM4-GS66dSbt zH;<2|%AG&=VLkW-v4kxw``6r)(7?c)XO{TOApU82iD^ zQ$&7(5+Pm$n+iHN@PX-8amd z9Vag*SoS0U;ge{;tVV1f7jQ|Gx<`J!&=mdGpyi!b2y;lTWNuoIVWVNEVdrgyd<`fz zS!o;xSSDlsmv?o!q1I#;Xw{XxuV&FOUc1-{mBlU+;I3b|~-rBISN zNd>sbG|Ehir`G{Oy3X1*3r(n-meKr3&V4L2P90EeMFEt#Z630Q1ByKMU%EEc)e(`C zU;gG8_XU3%&lf+Otz+yfzg`o^5~juwBGL72F?OOTx;Gi5T9XS|^gGLNO`LUm?Pr3z zas9OQ9%q&JZccTjn_Xcqjh(`bsuZ8ETntl_`ysYolc7fD_k1Fcf;5d%ak{Ioqy3SD zt|_)MY=7i)T8zXy7E*@wc6ZA%xDFD6!Z1zYA8|+=#)g$4MrO6 zEd&>aHYUIS^VDwqneI)2H;<{H#&p_BWx*JKs?%o20)Gl3KGQsT;k$z3EOm5- zN@s_NfQYiHpwoE2v%HN%1^Eb}? zDIwkv5E%wk!R6`7^mZ%jLC7PCZ#BM^?y{nd3w#BjUe~@!2N$i}&ESP#K0;h1mT9#H zSnwndJlMN30OU?SyZltge|^c8(wQZN{c_zze?3N8M|0|~g4{+Uw*N4;43R1_v~W>y zyruSg%I&DPmxV6Y7z~By^LNXI039aT*)ARYAve183%}d;(k`Xr@CKnG1dglDr&E|XG?}$odmgsGi{c-QS zDaqZ^V`pX~)=^%AT>2*4yal}gt1>n749$&W+u;k%P?pOp6C-aCuj4=MD{qkx@KqLl zf8>x3 ztvub!JP#{5)1&9ru&Q2icX@^><*n+j)$xi-@wFi4a0`F$6y}u6KPe-+oC&C4<^wvp zfX-jpM!SmikmU61{Ql}i*1aTJxI^}J{Q$O{&Aitr$ODYKB~S`{`ir%apIRg`XA+%J zk>EnBX!kv!uiF)EJF$x^zy1;AH~TCU^cUt|UbW4xclsG$Yu}J)A2B}|KT)kNR3HB( z$M}hpU3E9bQ4O(rX4e1EdjF{$+0dsu=1!Xfw+q*y+S;^<>Jr79Rf-cPW1JUOX3DTW z4PMZ;z^npP8=$!Q$?2ftdKm~c>%gLXcqDA4UN03BX&*#V1kn3q-jg;ZzUmdZ84Al@x+B0&PlQ zWuQ*sCbE+8*bTN|<0vZvjP|(Hb)^MEt zUQCC#TYEDZH(40nZ1qpg!+1&>-K>xeYR5YaJu?-c@>djhqjF8j{Om3b!}_^1ZuQ6< zmqHhDiA_IT+Dt@}$+EUmcXiQ=)UK0By%)|VN?DY@(HOl&7a-IrTOcCSnLWbA!|Y#e zh?PC6CUy*zd-66KutS&U(n>rR4v76Q63JnKz~(w9xw4+39knMqvv$Re3c3j;7TcE& z4bH>o9QTOEzWMl+fo3vM6;hd!Jk|HH;lK6V=7&$@m5d)}uW@b*P6S2~m*^WWliF2C zW$2KU6VeD%X9W2HB*K!*Z7q~BAh!Ofx>=;NE|A<7ol4Cw;49{Atns=6YSZ;0RxFs% z|21VlhF?wU3D6tJYk+j!(H{Jup^;a)W`~%46Kkf)>rt>p?;bS&-QVq5fSc=%j0!%b zbYf&}XzN@-!CDAaouMmQl`f>)k`La&e(dLqQ|>*g30!mOiNTNEr6KY{db7sMOrTkT zw^}8Z_IbIcHqWxJ9^x!G1?I|eqvdO|G)4(;0~!Z2v{f>=aUsXWCNfLlC$hAK$Jm#q z2UMS6`diIsjSkMuIXA2}NysOCrMLBePI3IAqU${obH!!=)2i|<0})#mQ)3&roOlwy z_#*no;{iM46zkiz#`!A4IqMHU-gruSn&xt)i$}&8@lFrr4R}j^aZza%w}6^MVE!4p z==8bP>5GIKonZlZ$^19o<*$3|rCN(;Ixmq?)JfyPn6}1|=H@-U-xr(->r*+HPa}v( zc2Go`vlA4ScG6hw()D1>&3eQ>sutHwMoFp1S>2Xl*+Nf258++c0uyOy_lZ7C<^xBMSL%XON}k&3-v-v8RL+%3 zFW3ha909#-wj4YoR?xN}2me6Vs&ZgFQd&Mu zxof27NfGMSZ=Mk2zD}t6xqIkcq*#s3{mK)j(>zx#YSj{-y=pQ>Xg0 znZkdWJ#pn1{}&EQcV?EVW}Kw6mPNWF>AG@UqJTTvuEK5^4=+!zomAf!eRFG@Z-JF2 zr;2c!$QJEitimBknF_($^H-{#W~j-rM$5@`_}2`%c76mX&A-f*l-Uw%_*L6}6k4h!0$yIsC4Na3D| zY&Cy%bMnb_wDe(6z1;W&flZ&9d4`YvOf&HuAnv=qt3epYmz&0b6L zj!9He=2GsM>Ni9I%hZQ`8v0>pOSsmmRze!3bL*``8{@1UOs2wep$=y#EsSIE0VHo! zCA!xOX;=f}gq+QktBayfonxo%x+KDs-g$Tzy{UHw)F)Qa&34}URpiaJDFY0^Y}YM& zNEYfxLz{0(_)E9NxFd|$>=JQhYX%?e&>MQL9iPgk`zD!#uKPfw4m3Nh+j|o5*%N|$ z+;u0F1Yx+Zoz~WGyrzh88@(i(wZgAjvojLkiM9i=3#(t>Qjn4vBrA$?2u=jzW-6*|32zKm&SSXW_?qUd(oC_Q`{G()fXyy& z&g0*N_;`eP6$u)WKXzOc5zY9bE$h5Sj95NPx8X6(T%dSJ?vEPfa@C-IJ-^ z_h8s&lrAr-*U_FY%;As-WIO`x_9|M!HvK_xbMEy@PX;yYVbk2;!vP03%CET*qw%*V zbT9eJqYIL?W>0em>4F!0ht3$NfB5cgJFT}0)&+3)UR#q6dBv+ApZyXuW<+&&0bz}B z$@R?%Q*!gO$L_-p6UY7npUOmp5YuNH^2h-QB2C;y(Z-I)6b$1?u3X3h_x>J7 z2z>-=z|Oo;lflwyXaoY~-98iXdZvFhmB|V630q)rlTtK?!)dn3+f~P5c=j^FfMwhsZA!Y@h6CJgD9AY6eK0cQf#inL?AWG%Spmw!h)n1{M%o8@XYJWF z_#`X6?Dx}w?I#cEfbGn?ZI22lna-ln##&=QfC^PyrG%NA?SKTu%Vss>-nN-pNx|Ha zO9a`c2rO!NQEwfPHqPoY)SCb+b85F>LoYf~YPGH?xammHCq95jX-MvtL%}=Wf{%&K zBsKIR4qp1FlbO(cP4lCaagjZJ(1Ak3^ce0vTAA_xExHn{h7IgachZ~>w4$v~g9x z0Iw-XdOwK^RFXnOw-%m*+;=G)Bzw?rpQg=7?#=yAVyEVWS4UXrT%y4ugk!69W*;P1 z!2lLKZc&PezV%jg0VZgI+fkY2FEOHeN)#H9MaCOX&HWO)ln=h~;a>jdSP&-%9UM)E z7RI!H6~Wff8~`Eq_w#R4WKtr~Gnhy{*Q`63hA1SwC9tRS76Bj`%9(R1TRr}eG}y)V z>yIa7^_LW)-~e(Ly#2D8j!8}NClU9|N$v`Cb{d%K5Y`o#7qJqZN9YW_Gjf>(eDf$E zCVZh7pF6VM@ROZ3*!S}-KVzs)F}OSgD=;u4bAWWz{^~hM#zt?aQg#Eoi{Q0u`%w=g zm;f^Yzz`87;InunMFD+aPKT@)3v&Mra5^`fPoY%=54j6dCepK{t0B zB6q$r(V2O#0K9ayCbEX9KwAhH@n5Hz=~TN!ZnOoQu>sz6VEe3Yw5^cIDCS?5H0veC zX!h!&DB~?!L5&RUDj)(kfZhk>5)0p5`~cK(2P3kQ_Xc)Zo%@a9z%Xvy7Ey&({m^OA zV@&knmoUa;jnM@(7bL7k9!lPG4jB?PW8C*oZ+&$kGGo_HL^Pj(r}X}Tcdcm{+r$Rz z(Tta{+G=0~QIB!szYgHM4G0$X|30hd9=<)lfSpH_{0&>SjpKyFH~+mNBhDkusNTVV zOt3SqnhUIi)`M) zF+;5>Ywwta3;)irLIpBHP^2ax^zYrlxFKO{noIJI9}1R`&G<+>PZGsmGg#vmmOhmS zut~5UnjgNJb6&7i+D@2q^nH*SmSEo;vAXHsbD0I>oW76u?(Y?^g-lad|XrrAbF zPyUf;ISV$WakXC_jzDh`69DDzDIE-J&}WCUU_VI!2vBVD1rkv#g1~c~4M|m!24kUkK)86oHM^vcB%C*68IRUR43jnmH zYjEu=GB+emz#ZJxH8Tdf%=@vWQr?l&o%ns+|IA|Sehc(zSQ`mUS=v@0pzi>p8sTLK zu_e}NZ4d>yWgD$8UqH+5_)~AWB|;jYUU!w4c?LF4AxGM9z})U&5+2x|TcofC9UGk_ zj?XnzSaje4!^$mt*nJ)Dj(O|Llq2CS1mH~I6o`IR43tEVnnyACjqQM^8!)qWcKI6U zv*{ZYnh8L$grCOT!|&RzD1Cut>32SPkpFrmobJW$%uC?dF9FxW7qqf6r)b~vAqK?8 zDaKPZ(KHFs(Kj%K$g`c@09k^5xtR3P-E0k)H+I8h@^^Ih;Fhj%-s_%t=HuzHLEZ1A1Bd_I4Mf_2CT`- zq{xhJ$F-xofKn!!F*=FyLBUsL>41#MTgOSd-+ONlgxk}`zKZn0J~iy&lo-Oo*x#m+6ZX=#CamV$nWf)d)g@8f5*-<+llr_Ryi^MAQ4pFTx;i|L0}uYrZv z4VDprD9&^M8Ok-AkRf+p=%HxlvO7Ed z+7T$ova35?t0vvH9>vsYt$Xlmiz;i^c(yKty#`Eg|9Z~g?%+AaRlvUv{^jnvC#q+5 z2h-|6d4-2GWtO{8Uc{k+PuXO|c!ay>e{`;Kf#7YbBGpcvyUSi4& zW&LL)S1s&5(ItuwBMJ(xGl``zSWXpudfu9Vvhq@k+{eSKyG=Yx$2 zOc#4y8ZiHQ=)=^0!#!Z*WhkncBSpN3f)d|NV#Q^`4!w=zNhBMS`JE9ygx{a`4F5Ol zCzn^DWHv6y6mUMZssH>XZnFQx%1Rgw4@}0bITv9+wPx}|Hqy}ccTwK`K0yDl~S09XzW*GXcYxLQq6x=ijA`fh5x6^IR z@duCI0y-8et#0z(aaD_J4KB2NPze{{wT{mkWAFqHkqNN%h=)tLZluekk9qepk=4)YLvf7&-FaWI82pOUlz z7T0se>XjNYniw&;c0gla_ilO953-y@Y>XGv5`R z$ex6W(NVyaJ!2GrUL;BYZ=?XHwY_4-r%(0>jwthZ^(M*yN=YYNahgzHu*0N-T~Y7H zpe%F>B2=^{j4eR{Ifjbb&p+r3iB*yj8Y84(dzDWbtv` z1X2_{aYnMD``v7;CF((L*u!nO0S#k1M#P6?v3Z+_e=Tj|XRK@qi?NY{hMrusQQSFav!Rp- zYau>&i$aDESqO)NF33It^!MiUl(N;jE0|BaF0>RJFjJ$`PwC|Zy(OKgwMACa!(2~Y z3j|Y$Y>ydqN>(x(Jz?)MXanjLpNBkz0S{} z=JyxY>NKa7?xM8`!aK4?=3qYtyH$|&jmgmcdti00kRQiRRS0jWOYULPQq(p1NJb?0 zudja09p;9@-?m|m$YPS}_XgN5g>4Womq0bD4!$U;t~2~1?8oNu0xeW*wg-xTgXBP; z9-=sG(YU>cu)i!#udj;!DT=y%Qk{9SB||NZo4PRXXI&K^tTTlmWP^(0Wv@_&kmJSj zZLz&jYSts{tTPm86tx_f^c3#WF8}EMa1W&clm*Q@`L`PshmEd@fKoYSPJcnesIHr9wDgdEz z!W^@ozz)XeO>^UobFfIpq3LF)Fz0L z;UhUTnvh>%^s@G709DD@!KLh)tO3HlUw^3^0}Loo2WuV(6%oEYZ-a9{FJ3d+!)J2i zfP(KJ9p>+z$BfR_IaY5ajL_o&ZKIO;eEJ?MiNJ7LSyiEAyEEjvhxCes0-D~$bPN4c z#j6!~uwZ+|ifoI7Z~P9tN)v_L{B&h-H8ClU0!a{dX1w$)~Ithi8JRkyWYyo6T=rP2sj4z2w``i*y74vFlm|qfP*X z*vVX^_O6yixb6c+edZ7TNZFcV-Og_PUHSzhMPlJOuMj!LZ3SFXQ1W9F>#iwy&C0j= zaw7OZfCF7DS_X%=q@-P?#@!ymF|Z8K?fXt5f-*)S!gZurtl|{RExD#QTMeB)Z2K=z zgo3hsfI`1T**oGai~f6n+eA7afJJ9~owxQz25=?+0-C9YEKzXJ@Yt{MSk!FBkSHNauuYxA4Y>$LFXJw71)<=z zx))g=@9`^o{syHwvy`85n2BW&DT0f16MX2wgI#pE_93;dD-i~V2xNA9M{bi27jMuX~pVrO)f&Mqut5pQZm z?m+*05e8^1tk7)(&9D1nj9&$$mNmQr6#ZtKODSp6lDYixrL404(;|{(e|LK-&Z;o% zPoKq+lzsoq=S!7zosORAvns9~@2$iEUlk9~#A@7$Y@j8-EAvwRUa0z^Z?@pa=SXapy;8?%-alLr<+_+2(woa_1u%O>H4%+RH`ah z28Oiz)*YiFb=D5A5)x~2f2-h&z9c(nTWVsT?r19oL}I`-m8(t%Ib%-8h#Jc+sjBauW!K#gDv%UU-7diO>j^ql)SELQg+g ziAocd#yFio=1cJzERrc4Y1WGpQ5gev%TG;b?&}+MPvWEvNtSQhTC>fn%$6*GGO)Wx zUdqLQQ;2H%jb;vH&~4x^9H=rx)k-!R#NLo^XG%`%vc<;5g*CE^rKf>|ir$sqyz|fq zBJniN4r3^d+jWnc>v0Y51VbWNf|5s*{{(EiSJHd)JT9*nWO{!2B!x{kK#@wPWufd& zgH(Qr^tfzU$fC=Cx!AKXj=4-loTS$EYuYY__1E}*%Rp45|J&_;L0mp!If z60BW+t9Q>yX0l+1ONitQY?2gM3}9Owa!7Tw)IFk{F@*WV=Cx#MO;u#V~5hnbq*=V4x5biIn8u1b}U@j^j9G&*qLB= z*PbWXq6}j)rjMng4MVn?^_n5J`&ttOP3|+HkafO!e*zQX>9mUAmO6Ij@f6Oj*GLVU zB@-dPt@ATuMfQ8WGvy!*k-w|SPiQtpu8MJxI)Jh8m3r;QA!sew{Sr(4sZ>Xo1|%Ju zKF$~BMQT8f^VlIC4QTV8-}scf{hm#5nQb1zNP7y_#Vk!8K@f7Qo?yr-^g197VhRmW znp{3q{}fV=VS|zna$#+}f!^Q=7rBm1TdlFd#8}w_)i$r(5*w)3jDm^A&jC!ZW+4Tw z4va=QDbn+A!4hRa7(_~coW)Wv8$fC#^twDaSjuCT?9rI()PNZJqW`RdWp$L5a0{$h zGLT($$nFbIb#7Q^x*i;swrLzThLvvQlH?;b`a?I_A-9i{%Re8IEsn!RiEmexdZ9W# z$p5DWa38jUE76+i*XY&BJK%YZN8?O7Jyhy<_e*46{HdT+=QuF4i%hvSWvNBnEE_WG&x#AU zNNZMr_;O47(2KTH;;XOGj&ye^8VH6*@#}??xGZ5P8o%>Hv#|JBclu>n+rA}s z9xfT_BD_AQ?M!b}LJ~%L>)e0Mm145z^ryud^R3eiWNaXdWIiVB6j%VJxpBX~zv|=X zH)bIKsq3(TuieA47iMNI9$Dw}RM2?{KHNK4HYNLe!+3=lb|w*iwQXPM;2JFriq_Zu zdRdAfWmuWNrw$LWJ>%{SbHajkb?qFAx%s%wTJKE+7f`eW3PP`kSy16KOwf#nKKSyq zj0}E(Xb}8WdLm0{1(dd@NCZuqzOhu#3xI6ujc^{ME;d&|dI{(0mKSs*M()WBh z^tNBBO8T+30NgcG)v@Gwo6}@L{X%r55H-{i#zE=D8@Y$>3x;Yqe zDZ~(x&*q5fs)DZ@qc3`-ose;;^Ng^LPOUJ^tx!=)J+CabdWzaN-cE@HBvU}U@_{_A za*$tS8F9n_>Eu)kc6BMo3ZSSQ)^!9*YxYF-e83*~fF)qo-aK!3&*GKV(>-LiD;YBQ z==gI4N$*wLFzvskJymdOuPUVcTFgd?Tk5s>EAtO=X^sILIWtCgtZA$k#=5f}`YAx% z7+1(ilFqqW-tr~9XQj3h&N}xzF9m4t2|>xuyQxk>&+7+yd`2!pq@1si{_(oi{IE0% z5QyeC-Z2wdZHRWl2Cw1b5$(acjz{)6jL27f3jX|BV)a`2g^B?tF{d0Ww`6w^1xO)KQf91N+*EpC-;bjGBqQ>(>6iRR&KjrK@D;PLCW5(wuQaj9 z>VLNXdhj}}#CDXOp#yRP5^e}DBi@`Vp}ya9fi$E5V$BQ=Ix@}XaAjvX;rH06NE$Vr z#w@u|29)zN)q;t$rdU~(Y|xzZ+b|k`m2bI68mkiJTy|PUwPvmHOa}Hk>AxbNrRKW( zywu!@Io%*f>HDnkx(W;7F-Yntse}bPcfOZr&ULvmDx~a9kC^eqn%g{Hv06Uaz)^l) zB@S_C#oivSF@=0?ul>ymQJ)|8yJbK4>ktH~7NMzE>MOR@)9*ENiMiVVm055Q$*R|N zpb{#zFzZ2>i9dbCd46mvm=Mp{FbedXiSSP>*f@OwW&XK+GW&ioAm&b$|qj{USGuYU9T@%|C8(<`^JMls!}$t!|>J1`Rg6 z7JJQUR9jp+ZB$+WxNV*3X@<-x#$oZ;Gr;lSp9#*bC}&rWnHr&|BND1aDE71}Y-5jZ)*-_zH}0MShu-J5_8mOCEKC-O~8?h_-9^mG{&$N@IbJ-ydpbx02K zR^6b``$v{+2@^vYhFv=hAm)H_%RGqcs06I``^lVq1l1D@6yBSy+@3t7E-c8+q+4l$ zTya#U6ULp7a3TGUSCyR1=fZHFJqDk`OqEDSKc2%o_phH*8@=ELHe|>iGJ=r8K7InDokca7=e}L zQ;Z^h2zPsP`zTx|PY)RMm!^wCtisY(S(f31$+inwDq5W_jk|*YqJn z=D>UiJ)=jJ0g#SoVa9*Im{PmXEJX*FLs+Gs;|Y1-e-99T&AduO=_hePMX!AzA4U4x zCbIkLeGZ14ECG{+I{}Wev2~lE+_ptKW|~s>(tgERFLwWhoY6wYow)Lq*zvo*!1ITU z&Y!jYt|Nfo66MnHdCLn9!8Wx)kbmtzwqCXkr(Y)o09UR8oO2PICiXg$zm|-b z#_30mBq)I1-Rh`C(}nKOed zCI59Pduh&v=q695X@AH~4~Q#=Qy&bc|1y-lm|K$NoHh1u?{94j_Jb&gp&xV3B1dJn z5e0H!O8EAWZ((o5A%GCNVs}%T!2Dosdm5+mtSol=Rl$CTqEJ~kESwm{3q>E@r6Cwc z+in|;Mv@iPQ4&T*AFg$R&=eC7I6qyph#|tfQVi1s=zAwS-EWntXcs$ z7A8{se=Zf}q8c;mJ3Cg@jD=}o`epWrhrXz%q()E?<2V9P1mbB+gZlP?r_pwE@vRsEqW7~p6CTu!jD=T$XXD0|B zI8>c3?~TexF+Mo`-Q;_xmvNCqinY*8k;M9d;tvH{We|35djq6~A!U$j%J!Ox)L)TU zkYv7BSW0fz1V?IrFq9Mpf7U_W0M78kKhQxB4Pjq8pws&sJyTVj+i2aB**V!tU95Y7h| zwhpB8+`A3fS(agd&UC+^?9d%!jbp2`g)zv%mb z9pz%l@GJ-ZxRzw@blG-;)vQ&(&41xFb_MW1@i}ukP)*m#JB6O7550J#z-_FO>q3@U zKTEa>FtV#hY`3nMono{KZ82W8n*Y!Bv>VDEZk_5DDl;aj8JvtDG43Kzc@OhVZQ|R< z2CRy!#_@v;R^)0I*cKPSaRvwpT;g`LlYW|f2N=n*awgQ51N$6sJ)@I20K|do4S3_t z(;u+&t^npgJ%i_`Tn}EzxGCA@Yy@_(GIr7o|DF16aAE}GW+0ju1OZR$qZZN5(%RBe zW;1F+ku(o#i)V(QObMVy>U(F6FO-wn0F-HTz+p#J z8OOBU;Bf|i1LImE0)37+*0N{Mnva7jbb2l|*KPNQ($m5th30kqaR1B0hnTzjlHDs|DA1_G0FSIxq zcK614H>u)%EE0El4A?Xu{R+YHkjFkDA#}XP{ZMQYw%-|H`cwE z51SA6SZT?f7?yYhyZBumvbe*BPUvP9kAVXu7ASBF>nHw$khzRkU=Mu`9fL0Lvr2Q7 zsOrDF_vJXjL*IZ+{BE>r*9}jjM?C1&I-L#U1LRvC2yC+>(|$RH&&T~)g0h$`InitP zeMls5x{0T<74cVR{KiJtj{nFn9NL!M~t zUx_rJCB@%YqAdA`GtuVP#qKt%o`6y*@f!M0_s0mQZ`5NRPouu3(dvS*s$VP5K8*6w z(N{&XT~_vJ{l=~jnn@)J@WC8`QyEu}XUb5HN(dm%Z}0Mmiy{s}9Zd$G&$@cU1*ee$ zDQwwapq{?+$vZF4-c8_)d&Vm_3-S1He5q;EOM)1qhhC9cc7l&4{>Wz0zZTebZopp= zsUxY83f`0P^-7=5e${t$yF)qb@Da}@#`SrVr{T^!h0p$o z5mc?&afBuWKF*5qae<%Dx}g5B_?XhFY!MitI}-GxLZ5@UKA%w)K^zrlv#c3GeUG~J zmrV@3Ux#+_O|9o6kk);_8i*9ZgUOl*5F3zWg_dA2Gr?!#5h6hfOwPr;`YsQcnLMt# z>6EAjP4dP++LvJpectHz+SH7QLo%km!Gugn+pr83)0aO(4E#+yT%gx*3_E7vk}V81 zQqQtcWnMt~6MDyZRI%N!19Ts;4y8?42Oascs{vATuOYHqrH560MSHWi& zFYTzmdG{xAtAg|27zREFBjZa|F+XnWjX3>rU#6?i1<{d;+EA$pUVDvl#6VXF3;~hz z)>cZMlX9^bAyXJCHA8&+jzZp_R5+wu?xFuE>qu%%Xwor=Q2cMjHY?r+$IKJWN^cqk zSFXE{(fh@F+ZLf9=WZ4r9EBOIPaZ~-Jl=on-`^=M#Yn61@LX7I)j03_yIe#lfae?s z%R>~?Qvsy$eUFQ?4b?e(Hjvd&&>^cxe) zc`JWIn|Baqr#=I7FxJMC9_YlG19v|B8(2N1RK={Zf8OcYnEoU}i1og?Wg+yaUZFU; zIx9_o??0YkJ!|^8iDQk2pLGd7NNu=KzcUt-bUavUcKrG>tpO+Aiwjy3{Yx(sVEJ|M z*cmbZoo4qK-MgvojCp#_1NKp~9Qhz#&aQRGL=ho>;0;)`=H6MXJX>EQv0qR;tojw9 zCS%CdSIAUjM4Zm~{GxQ8SNhM@GnX=m^7!Nn<>Ch5=z7vuz_cz#P`Rs$esC&GG}s9L7X_PzH`ba zge$l9$!{T{fZ{8G4UtgjC3)0fB!rwbz>*uT8^r1>&;@Jl$R??y1PNqiA_x)L&@rBm zwF}}B9^26KB_^9BXzJG&D04x*W$g4V?sv1?N0>V*;Q+sDNPhS(59nK69;x1=pWpiS z4OhhJb3PXNwj@UXco&bqSWsL1n?uX>+&GtNxdB!fI%8Lhwe;WD;fE5Ce{imYwf$~c z7VIJN_oml;EnAAt$@TXuW~{V4Os`G>q#$FIK88*@KpGF9fFq|yuXBF>lo zD$vl#)_(Le+>{M1Fwo!e)6fTBb!qe}(@1$A{sCsq`}!_LFsRpy1AYzE2Wcy5tAT@* zQ2Jg15Bb{_1U6dCGdBNI$Pj8?{OS>e?fXzags%cm&^**|=RXD2Ur?;KIdlej>kU@_ zt}RpPv_O^8|dq6W_y{OL#d*RWL|)&z=)wWxcp4YIjM9>qVcSwM=oklt0rS@hhxc4QebrHX`~u25;R2 ze9+K_N_tAd2~0z^*3NUIp#Mh=CB2K*!6iz_cSbi?HG;46W$-(KXcdj*y zy2-=Kx7YVUeZT);vA_04Ov2Lj_!{EJMy|a2dx3eA$c{QL@#(igm;bou$0ceXL98}e zGs(0;n5?^)Wm-h%nboTPcpmb1u(9#nD)R;CI}_3yai=zZM?qEMgDCgcNYion4l`tM zVEwjSPu!`NM<cvftjGx1j;?iAUM&(s9IPUMR$eG+v0H>1y|q zcczi1twrD0So1D^eJc_}yz=@dY4K(PsqeR1_8*$23;tf9vxYPl`53hC_PAh2uVSyC z8C%}QL{zqZ*{UzkQMYS1lo>L zp?Xx$wV8EPG>Ahg$4nbE=Ivd$L|`{o+TIGbstU0i?;$K8E~EOztHF`!m{TLP-MbkR zdaJ+IYrm`jNHRY3YN7sLj#C_l$ocxrc!-;EYM2(eYt*LuY@<+3=TjrvK8!H0Nr zwe>pjmYNkqh&S=wSD80T=_v*;lg>S{@!;jbW;wUD z2W7%VM2P^RWd7HlAY%Pb5mv6``Ha$eXPfz>U&9kyQQ_JN>rX!LXcv!PIpsz&fX@T5 z_)r{am#evf`kUwYUC^UN?0bDtAryD9XGbBk&F`qbe#9MLTY_%F6|j_7fZr`n6*YFu zeb_A;@&YG-ln_7}UxE0}*X-8a=Na|vWGxjz@DzG~xh%ko$Vs+b%K?W7x&EI0@q5fa zzHVgyhbRFg)(2pG%o30pj*`zL|V9d2oMv z(eW|3yk|eFe&}4n)DI8L#yd^6 zfGxsr$dr#~Sr+<=SY>*J5_7fTB}83NmyP2fVar2)>=XI)1--AVW~ z6#wv=G1(l`3mPRr-QY{E{iK3hB&_ow=2^>U{hwo-8R1Q^mR4b2{!$*V^-_+>ZpQJ)=Xoe*ZNV~Q>RDFg5kQK09EAC zrz`JZ`RFv(hd-4?=0~kvfnv-nlN2~mhd`>a3(hY=&Mh6{wo3`;-nmX1!b0^eh{tqU zk=z*`fcb4_Hgw{78ZDT6{#N1&ThTXm>VDzO^Q*)(mvult4LX6}C_j;H`3^H+j#JT- zhnb?k&}y?53A{~soA6r2rIvPKn3^74`Xw(eol7@kU+?V<04;7EJtWmgdu?()>s6Yx zJQe4bqsNYRDVDC7ftnSV^{PJ4TX?-5CI}bIEv{8IU5*K@J;^mk0UwU^LCDh*rR#G;mrdF!J8Y0RU{+N=UG{Ur=Q)^@%z#9bhsFZbQu{Y6#TC2&NR$PVC{8I}fR*~|Y?kc@nnZEq zoAT{pd)$$G`gb+NQA2DyKeiJ11?R&^VsncDk*6-6du3g1l?f*+rnqCes~~D zEBW>6OQGvKjD=;ZOt>dJedW~Yxv^TSq|kVu2@1zpbsW$+$&Y_UXo)Y;A^IA@m7+S@ zt-J0T4{!O)_Ld{KFa^bSt^rb#bdUmipt_berWW9l&K ze1~6FE!cr!8>0iFH8uG~SI414;~@C3qdcEigS+RDtA6@IHg{!Y#1a*1?=cyaR+F5+ z4&tz~vfl`LL!>adZzP}q#o7RQe1cdJ2_LNHvsWARj3h*LXpJ(VXT-G_n}4 z9E2G_0P)3)b)3XTZ&D*yA3!#T5UlvIUk<|AV%~C=ge#Sr)@$;@@`YH<%_iiwlMp#_zVP3-@nORq+9=ilWG-2fINxhi%?!nL+>) z>IIzA3$Xxf80Qfy9h;lbfJ)*iWwz2&$_VE`3t=n7V1JsyhBGr-W%<&Th>FDf0T&(d zJD;U-^H)i7?bxKH=n1FC-isO`xF~bCit^@6?nI%b`?9euYKnonF1ZVV+w>EK8^?%+ zr8d7W*yZaUycBWPUl7=5wNaV?45<@vKbY3I4@q0rOUcdvSJ;XFxz1{49pM=sXC17oaz zX0MO;FauNhcVlUW^5&EA|$b20-TtIq-y&q8Qv2L=_+zeHpu?iRfWDzn@9(s1K!0`h0 zPi^#tmrcJB)4-p5)PU#^@MN>-?VGZ+Ss?vW)YrOjj{LGAIrt!oEV%5i6v16KY?4`m z7i&HL8%D=wAB=Z3tQ6Hc@2EQHzsxyY<*;v=W})AG*9pXs^t&AL3Q%9mZhih~0G;bJ z2rrI|lhkw=A)u(2#glXt9c!Mo%Nh`b{w?8?jYP@A`d<%o@c18ECOJEaX(IC0f0u$D znQU-<#nyjntS65n4L?XnwoUFI{V!sMpOapuPcc*T$EK+FF0hU&U$=nfW#oehFbVop z5X(<-8|U=*9CyaI>dEW_S?Qq$A?v21D8{9D;tCZ>-5}RV={!$NA1E?2NU}8ug^=EU z70p31micdFqa-~IStyKR(j@ah90KI7kbZ@X8~A@1H~AxefUHR5Z>6)4Kq;jyoenzE zN=#~&^cqUfC?EZQ`kJl^O|rx_3f?Z~A?GdmPmpBO@r^t~h%lgPOJ-A>AT2>#DMZqW z^csqBbg;<1f?U&zGtT~3k29IRniQgVS1sgV3zh>2oS{v>NGAZW3&G7(>B!<ViVAT#p# zISnp}S`tofY?#v64%G@9n%hN@0YFe^F#z4JbZ8kGIBAB{Yaob68cXbNB8ycT)*sN- z8%X4(787E%+IK9X%87cH7^{sYX+oF*MXSb>rRzcKV~cyHdwB0%sMD1)HVvshbyz`!g#608T5i-$17wHj(ABCoyy%o$M=MOcNn@3k$+bK zsmrQ2&6_X2ya?nz1>>KSm9P;;aaLcglXnM3hh6tkO?sU`?;2pNyu?}rKPkAfHkZHf zScQ!udWs%*FqpIRKvzyJ;d|XB0Kr7LEGmK5Y``U`3nHBBws0r z&p)S3AdK@L%7B3J2>_l#FLQR$r(_F^s7x_=o)*0P)b6ZtQNM%2|~k497WgZKX#l@S#tEHf7z zUE;3Csao<~MQ)Q7Za6`Zq??+Oqp6tIXvwo+!>prG%Yl^L@nMq)%t9OeCX>}v!0C*L z6Af8r6(`P;W?z#jY=aoMg`p43#@C!ChHW@vcQZS+B;H1$48xHWw{lS1iV?rSTZI_6vQqR)Kb{; z3P2u!Bp9iDy>!aCTdTY3D0u+9XE#05gAVJ(hOa%7XDx$MMG(khllnsrFK^%a35$}O zxGo3biLGZ>6^oGX&&>;6e)Ox2rO@gw?gf<0in>6a7Fa$NG_;NcZHb$Xx?vN93e~+{ z{$irm+UeWOz_a$$WGSlcyNa~r5r`t`Na5d9rfHJBB@F!r@0h%6z5&j~VUa5zU^KcJ zMYM9)8HAo)eBjh`nZnaMFq8e$@#}F>;_4s@%6kSW;d*W^$zU4zV3pXJIMRUz0cpT&2-PZ|wDpP8 z7zF)!K6AFh{v`>R)pfC@51iC67Y z0idcodgFYfPNzF^`DjTJ@DquwRQCxw`IAlndTmF*bo3sK^m>`^LZhg&$1mzZWwxXJ zizoIMj=t85$#DsZ{UhhZF80D8PcvV0IcOOUq)QUdA5~H1Bm92OHf;Um1Om9NWE^$5 zW*rL!bf&2}X-jJ(;N($h(UY}5+JHTP3&lBR6GS`*UC_%}MAZ{1x%Wl=32T6Mq4G(8 z?O3v)4-3c&;?p7?&0j^(3c**6NEb#()i?^pVbxoYJA$NR&ZZ%C^TiiJV^k32yx6=O zC1&x#eg6qs|5tP!v@Bl(!-$SpynavEqb!C~v4>VbjJ~cJ-L-bTQL+gyQ9^&LpiSJr zi-8rN2|cTzvF5*cWwtq=o-&bafh$O19X;q;-^QGTQKJ1{cX8Krz*ZAlZ4m3CX}FL$Wk-|0gIWex_%9@Q0z zLrEg|uT1YJ45y_RPF9{IyKu~XTaxKDM(A4D?(VFi9u0a0!~VlZ5l1Xlt_-wi*1+Di zp9+-AV|D4iV1=oe7U^do8&!l3*-%2d&L%e&#t|3ZqaFqALk@TG46fpF-|lr}L^cEG zNw!vP;bxVe(m>`GlmX3TA-}S{nH=CwCBALI#78^q*XR@5c}#i?E+KE612X6ZL`u-B z0D1PSe5py6+i=CGv1H`W(}Nz1@WDho;ZVjM#~?)p8dZJKP1zBFRKib}8f5i}Nz#&R^*B#o_<)NtN!kU{Kee z8K?v!1Y9FxblBMR1a9Te<`;_QZF$w5Cd=#d41(lXLefqH{s~xzGA^h?lElt-O{$*p z$CiI`g|0*$@3o;t)s;!>n5J?d0QE3zc$~g3x!QNA4gr)i(Ddxhhc3zi_%xyOS1(Ue zPyYy}G9N>1%}bJd7imTD7aO-U1P=^2k&{O+pht-Fg9K4dszsxI6H}|a{>Z12$EV3) zJN;@i8|k@CL`>pDM)5|d`Yq~?&*6=+jKs%A0#5=PM?{xSwnmO`2MSKN1mreJlMPFr z(yvS7gEcmH<_yA#Kj_ibPQ=qGl3K*S7>SEw`64G+(*yYu(QOJ0K;qjdE7dHUg8+51 zLhnf18LtTp_y3MSm-ZR{E~QW5Xi&C;z4 z2Dq`3&9sJMKbslW$4gogWVQ7%1dk9WU^EJ5ikd33GmU z4qe_;Cl1e0H);Vj>N{NIxU?gUVkHgd_YYT@RTO5wn}Ua?W}QD{5&;K+Nmz=(H+;u( zEGtd=XBGin32N#u_}VlvxPV5Kw6m^x;*~K5feTFO@=(qKnjdNk)MqAKCT*W=Yzk0MwCnft=?A0OT-f@>FO3kvGc;Mms*-`Qk$efMJ+#N96Ya|~SK zgpoBwpE7;ka=8u(L@CqVVP9MEmr z;Vh${kqwf76BCXbMnAO0!f+#eUk;Psub6Ur{t?wfCAcgG+e=M0Svtzhg?v-BLOFmn zOdS$mQE4ea?d~?jVT8tfV*aC1=_Qa$XLodP0iJ@4QV`_h;BLJF^JjG;9HeFHKw*D~ zJhP_(x(*OdVL+6TLKDOxj3T|Oe^!WZ6vJ$q4?i+ae>XZ;X^5>EMJ@AmD5bzcKb!_H z!0%Iy|JS3WhZ9Xeo27{+tEH)CR3A9zh+ZYRF4i3+MRHdjuYA_+%+iul0if{AhgOWA zpdTfPcE2{m^`Z|{qZk9nGg}eYL_&uh}FHfPG!?kP4*!9`u{_(4Lgn58TVEbr^|-X$NCW(voUCBj`+UTr zU2s3)6LX)kdoGpn`O|zQ&B+9<6yZ``+Y_}`A(`>uehthRBn2##W__MUlyB`96D_}k zEGNOv1gW08Lnz@@Y}FpBJRT?vLQ2Dn;pp1`8d%u;|1JXV_I@l@7Rc}?qHla{_uTY= zx`6JGea^i4^c?c)Pk~O8tj}X6vKIHaqkh%xcY#G#v&rVug0Z#|dzh*DZq!LoztF)3 zE5-oa*?v)qn=i0uVD!Ahg|5xCWB91fGOgY2{!xYgSz=tp^>R98`FBtz_g~E~5LbJO=W(eT{L*cerufe$>GS-E^!6 zIB^mrF2$8jo|f-u1;UyS$e9m3NA zB9Aeapt*gN!iCYPhXlr~4X$lRsG4FwfP1>|GRR$`vp3Vpk}#t0-8y1MehAbm1T-jGsiUP`!wV6&^6s%Qug;LZLsi@jPv6u6(^92#qZOGenY1OXp>vT*zDEVx0R;U&$sXPlaUJ2rR==&r zjBYoM-+hS8K{i%(M~TDrExUFqO!xZ4(8_o_1t>1$Vv$tCNom!*w~pMT{-oJcP2*ugi@N*Y@e|@(Ht_j`VTZgI_fV^J?>y2zG|7e_Z zQSSV!Y>5cxj`plQZYNvr9Hi1i{{MAH5CwjtN8mE_YMsNp{x7cyf z=~YPp;|Y54@#}j7n;TPp2OWjT(^R#m;to0pv83@G8dLg{QfcwEGc|bPutIIBGiKkF zZMvZ6!guH(#d61!+kgBEu?;-)HR0WQXs4%|mnM1-K50*HGXr&(E+H+4sm*T}H<3td zgdl|wo)i`tW3h@Obo~RB!P7^+uNtzrE4#JC8BsP1!#`)SaR(|dX~LFqFRp%U-#QGi zWJb>mq~q-XqgtfipW)%#L2pIFKFd*){7R!J#io>AUIJffbq9mL>Cx>YlSWbcE8{O% zvEkGL^kH|O#7{{LfEQb2ToDk1Dhj8rx{u`ZwbN4P_#zKC_JLbzdVl#aJ?NlKZc&cX zB5iHR5r1dyzIl5@fgeiexMUPm$ELMOSsWI87>s^}mnmy6S zjuka+#|1oiykvch@dunPj98|rRGfNt=*RPhmnPI-9F)YbDx$@BPOjX?Pww5;CP(pB z6ixRkw8jm^qTbYFpyNNHo{aZ@knz9|ITM=NZ9U=0=Mw43^cPOyD%u#vAJRonUmHBf zT77`6k}J?ewvmx2{}~F5_rG`A)5mR_MYpu=d1Y?)A3x@}(eJb(E_En7RcTI!ztPt^R^zs98q4qbP?c2F{_<3L~g zdvjmkA4Hv|4qeKEEl^TiA1LzAF6R7D(hT0o6Uy&*F|&xe>qdtT`eV;Au#ek7Md>@I zIVJ(Cvbbt0Cpn8Pm#+>9_(46k@)|0$4Zz;gP??4l7?LZ=Afb$;~iqiNCrVoG- z{E-%GCboM}09%g-SqmcFsDaL7K*p8Ei4P{$PwqU=}KX z$2NHC@WHMa?%qEv162;oqj-`z&KFT2YE7$iUev~smPfk%M6Qtp;D$$Oz_(i39n`Nf zPHD2_nzmWu4dH0>wB85iNQK5#LKqoLKqp?&`2|E#>>9jy<{{)3MHJlsYp%^6qM zp5Gxfc%1q}uJqKTQ2Ajlf8PBIQt62nr<+bN`8SZ%BuN}T2Svct!XCszc~D^K>xv7f z;e9hF_p;~rq2N6FwWFiCk-v!c5)w&r(UG2+BsQm~B^(vC_gWxiLvreCljq>B%mcJ3 z{9l3Ej$xzB*p6kh-CF?X*`>7%50!)`p8E6SZvG^!TfvRVn@GAy}8JWyLcy^;lz<=Hjr@|5DFeI zshDUlc=pU+S?H}0J^QVoJ-L8i7f>uo2)iTAAfe?5&g3-moKcY=O~mj-FX{HC60Y+IN@_t)eEE;pK(W5w2sWd4Di1lbY3AxWL0w`L^g z^ayr2N4AaLg$Z#6CPodHVV(?An4QkOd~Q-#FC3e2KjHq<GgC(gR}7z(W5B5PkspLat1}q!Qphcb!eA^T$`rsl~Sp91YPX{-;{T z0ntaN_#e#wpnsdVjQ77jRb|S=-A^zBjq@@1leis^Ec#>1-_8)Xbbz)9fw*v^Xa|zs=AGriMBux z_t|MZO`Fp|$oWrIQC}Q9_6HQyuI+AJ3ryz9{<`nYOzd0*?T+Fi1$Iuo4f{aj#LR1# z1|$~C+xh&9SbKqFpfbM3jBaGh56|YupBsRGg!Wgyl)rnDupAMLFctqzbL0C7)~92_ zsHxzluNG?VMP+j6NU7mfUPukoYv@T~O`{13oUnm^Lie)pFT($UZVcQ$>>As7b-e|N zgQ13Eg<4KOnzanMo8w%#{eGtADyP8*Ccu2CGM;L!XF0<3xnMHM%W#l2Rz6>qi|YJ| zS5={ibFsAlUH;&x0#hCCjt7SG_r9}DtDo6cI%B*8r)J)b(w=yjLq#(ciJm5uv98&? zW_+7emz_JcpXrbE3X}OoW&KFB0h?_PD8bV&0mm&jh&Gi5oCmwy=uio`)3)8+JUjla z%>5{&14is3k4W(lxLL!RFA;+QdAVRYdv@3$LdnHE`L3FQJ^tA^7ujvCHgx7C(c;F` zp)fJ_lwE{e#u6#BKPf@(xRJoM@j7++JTseax=iT%yrz6ON!c8Ie|YgNV5-n|+^07@ zfMNa@T2(&(8cpnR^pf4_)1i#BAijUi$` zemm@;x-ZY?w$f!>9_(v;KP+C@=wp2*l)FCidB)QN&ekUHNiK1V5p{>*{bh)?@W#D(x#dC&mC)#s7;D%VK=$d`}OPP z0z^jSuwjC0-l1DW9cvPUvi`S6ki3QKLuqJg#2Y zp?8N1K!%-14zBYOgFqNgTd&^^#jv}}=Oz1fS~ve%?OMsX_w5?Yw6X+<2GYRl zhEJCDfloGH!|QL|`^p{>If^{IV{9(tPWN7yBB02dKAJ#%X}0=fU6_Y9a;o_IkH1)rwKY6_&*y^hYsTfhFqV(SNOaVa=UZ zYQU%PcNec>?LHrT3W%an==#ed=Y%--?`s@U(`sa~D^$O=`kZ&keHvdws(-H#ve+&c zK#*4Ko$;b6XZve<0G+Z4bj@O|?*!KVpfPR&tzo3WMpFhGN3Uph4&dByV@6L_x4xb# z@x|IP0iKH1r|HDr%pLAlG2%2)V}T<_X3)0YaYLRp+toXK-x6KaX1T*Xv)Fj13IodH z>3=j{6G#)EKi3mRQz2r{xgB+FqFdX0Im%}0s&#d3jyL#pb%sa)j;XwldIdb+99=3Y_dXW&J6^6MwDZ>f#x)WwaP_%l3|s2;fI62@ew zgB1!e_KKJ0V8i{eOLKA@z&oUG=32ymr56Dm@y2Uedz-%sf>KiE=Y6}6zu2~U^*u-( zCm2}+q!M(UNgm4LEw(#+*AEZf8JNF+$DDak3bbZ3Xs%6k(sDKM*KLUtWN3Wk{w?wH ziuy(gCl9K{tN-?r+PD%OH1zQs8r|(0-M??1p{sn1PN}i&X8rTzT>ga#gGL=Qr!Rdh zuV^$%YTJc0p_>>A!X10GLWcPx{?@&b37f#&mt5NqItgl|5m@6RrwU&Eigm^t!O$T| zFxOLPNzC8JK`h^IKfH*)u(n`jzq_N_@^)mW{uMgs`Qz4Tu{VSQ1n83KtA7?8--GIm z$K<}`roO_XGHKULV?2LK5ETTV!lSC=zrKc%$WMKn)^!!1M9xOy#0ne zE4}KU)ZErnxBTo)g8Z8&NO)-eAp$CAxD}IlpX;W_x8Hp+)t^v|h_#&d^E8jvAMiOQ z*hcbr`)Tm8mYj1oR2WXYMU|yIE5?^F@Ob=&l(&f{F8Ey=+=LJJ{(}zAy6Wra^$)ui ztRqSqO3S;dQ^@K33WWyGB77K;H#rr1FYbzl;B_}T+{0wz0ab^nxWDK_$01u_#XCwR zMl|mr>*H;Ksd05?<0YVFkQ?V>7-WB;lvsLUP1&+g~npGMl>=G_A%bvK~Hg$){(r*k0N}kogzGt8kH0i zJ)v8rD?aRfu}(8}np&rJ&+Jo`Z>5fqlwtPbt~Bz1FRcSg=PNJhp-*&Yo#-Bee!S}J zKb`7s=#pHHynn@0cKnMIhm+ShrWK|8sMFS-sdW8MkJM#7z|WhLn0z|YENesbBCw(9 z5pHL%%-q5_poSBX$rIF2nz7-9rwFw7y{o zBE;Wz(>+99Ouc+g&A+Hm9`{6VuIKx0di2vmfvyRe&^s1}S9z&rDvp$uGj;yMr)*w# zBQ{RV7LGZGto^G0oCt<@6S&!*8Y*36T_?1wJEtqr&RZ`ialx~^1&K0aXQk`UG2g~< zi?%!qeQ&HQrkZlzUAE+*~qsAPjfhZ?*Pf{mv8OWTx)ZvkJmvwoRZvR94liQMOO9M-vZJ5n;9fo*D@Sz_N&c6KzWq)*_055>nuzW*Vh!J)O62?4tVJ1WVTLg&e$CI~ z9HQTUc-f18U!2wB(KWvNfNEvOn~%g?HwK`8p61YZ@K-*#(&G&Uo{fDGCAH|jiW1wWVu~mY?9kv&D zUYhS-tPy@hQ~3#aRvmWdO}F;F0Jpt+<8#int$J<`m$=rIy43a&lTW&B6?``q?&Nfa z*GTGIMm~ZGK6oy6bB;wzLO+??a&=bv3hvLicY~xq(cv2>wF&i zWV9gXy^gE2kh}QBR#(L~s!ij4 zzZWNQ_YufmwXS9J@bbE1aHhQS5qo{u<30jdRo4P~YRzf!oFY~qOdTkdug*Ur#d=fZ zn!I_A%1RBoAY_SDaLPj|x=zMFQOT1*?m0Ep?%##Vjh*0E5QVfY!o9^OKfg_4rMglM zA8d}B`%ivwcn&tzW*d1{5;g6w{*8YEmOxZr*Gof`b8i1Bj*l=TR9R^``T&VlTP#oM z`|c??Ih;5c5hE_Fe7%_QxM34Y(guMd6?0{00U5p1u*w=&Dx5RBU>$6zq z8ks9ofY4^0i{s9|2s&PoHnZ%0xFq7NwMOo)0=YQ)8tOA)!Ps}+^!FBWt z?m16@W4^jt>wb#CBh?W(X*_mmbiA*>1{YloIGuUT&h%7d_nA<`Bo9Fv*qsJ2oZU$d zp02rjp(j}MvOvfbVI}w;VX6vyfLt(wXcBb5^HT+yX(hQDvTo7<@=+2ujo{B=e0OOp z$fn2y3WmIdk`%I)}@ag_m6F2Rg z=LcFIO0|E24+e5)db;#hh^S`JTk7xTM}rvDd%ZcklcZp&WAg+V>Rz9(n-4S3hqlRP zW4RDIOv(@5Bw}*rHUyM)WSyJYU)WOR?^>c%KR@xhKUd_<13gWK8%lqQH`wwV#)f8rX4>`wPw};iVmTWMgJiGgUg0H&3eXcin z?6sI2O^poMaguxYfp)S(A#oDI*t4zMd>LQa4a${Y=4no3y)1ra-aM+xiY4rG!^-2H z*|TWzSY2g5Zbj$70&3>0=}ztYHo=u{!(X4ZA(U?Fm-X&Iw~~51=Bl%P*!$E2Sf~p= z+0hIWDB%TU>|q`9hpk?f{;+34I1R3~YmCs=h8A^Z-z6J2w>J6Q*YSidN6X7OKg50v z&v1f#72EsU3?T1&&q2qPV^rq^DC@*zS`Bjv^R<50^EC;MSt3T=FW>Z?yt9pp!J6!Y zJw!O>NZu~cHb?P0bZAj90YagXVr2bwL|RK_^i2#(w4I;+IC1-rSA_~%xasMEk;k#; z`b!&QyP1tB^I|_3&1~a!Sx|dr4RdWmKmN)O&*b{}-<|5Tfp4VARb%$Nw(#p9tR zS573~t&=#>o+EP8+U0c^vzil9`n;sx@AbeIL8e!L?CVc^`Dy~2ru)nl=Uy(V_#l3~ zj%&9c4V*2l$5$UfvH8yLf8Y@-*E#w+1o|S}*gkbhrAc*eGyVxNAasG7%Dd!TQ%cnz z@S@$^R8i0|sNpa-=6kOg;m>36 z7iR9G+Bdz1uWdEgj!lVBn)r~C0KlfJe_PAFTp{J`0z)aC*_h4^T1ilzsmz*zHg1KM zG3ffgKylp3psu{<@a>KSBEdai)cTm^_9rx=7dwD8V=yL-^+7j zz31N^EE56;9Ir7gF8#O^vSJZ6E`PMsX@kS3F27;1Z@cB+hr$Um)#foD_&0tMaXj>h96V5r^(EU^*lBfF3XVd*!>rCP*626j6ex z;xM!7YpM#?%-!BNDtR1t93;{Sn!UJ9RP}R?f74w(a>VDh{<)Zl+UVZC8j`AYL_!R{ zqwAI1pYQZPM2C_5qNX?*MDpO0C1!kF>o7JY(OM^JUot~K$~Vr%USXump=IKhy8<9O zzwBp6_7cA9VN;ai|Nm~FG`v!7_?-T#@G_YTfU#RON#w7CoyCh1Ox^bQe8s>sn)BPz= zu%`A}E_j(9pA5X~HS0UrJvC4w37B2ijg^rARdYgYNw|j;{{mqwJ% zst&)Fy%~1i4RR8!J4CWMO(K{-X5LJF%k6?|8k-4LeZ7H=r~17JSZYcOLpjavBRfRt zccHN)`ctXezVhdnUwy98n4efR*43p}EC?C;H*&Bt` z)`Mk+yHA;qC-2wd+grDPUb-d?*f+3E7FrB8>Ir2npx%8WN-l#~XtNm6XKWADakpW_rUO?e`j8Qoaaj!{l?u^98=k1}%T+c`f7e@AV zHL-{sxG(eBGo@+VWH6i%jgwo~>xt@9@7HRhPegwB^6=CqvuXPg}oil73D zS!?Kvy30liuiW_6JP}Llu4Y?#_E3{SQs zA8MYk&$)}f$Yfd`FF(#p7YJHodm`}wE$_Fu%iJ@<)^A)hQarv_<&9N{cn>5B-ncu4 z=HNJg!gUOZ)HM!(mEODV5aMokzYV{c^XpXHUxWE7*Ag&y6m_A9Yd1dP?l#uWz>0y* zAwNuardo%d|KWM<_ka!)_hnr4#|;n*0Sb~CZEkUZypmfzcZmD7FaIeE(;4(;?uhhB zHkpO7RI|CG&lG~tZ&9|^B?WNxXhp6mfa#Za_o~=uX zTyz{hFt?jHz47w~#0idQ{D65^?onNVM#%9C=pJUG{M)2!qH$u}_PA#jCo+1BFt6XT zewg1IQp}(ch#l$za|U{j&YhLnZ`>>q2_?*%?=+d61_EY@KVVzpZSg;zPn#f|x?y7N zcBtc>>SK<1yF_*Wi*aw}O(V~GbHMc?mQ^PhaGZDxZ%0S|5kgom+n=7|of#=`_8@)D1D7Je~QacZYiRDp~5mIBY z;=Z?qJB*5}o;)vdYGtYjjw?)P|MZIgYPfzD(Y^l+c22~$@MtThCB#`Dr_mj&L95PO z5d9H;KNO1iJnT}=6Vv(=1%JP$mx_7H(lt}jW?@qBW?$;_&9q(bBHc2|By;@lD(9oU+mXb_icuq#{OO_KF0yjN&v;i)ph`Pv-?CuW{@LS z%A7TAc`{VPTY4@3jSB3)W^~(5vbV%h4`<2ln=w9-&Tw!w?j761QLU4#w)@Wn95Ya`P zRbL#a9U!oLf9}hS?A6Y}xpjUa{+=u|n{_nVcifl*&+nYoJ!6m#Z7JG= zeVH7@&nP7{K6gH|8Wq{ZhlM5UPfp8r4jz4 zK}+`TW&*4xFad)D)7)V*YJDDrLPJ=aD61#DZ8Sy_ zzdr>vN}YRhre%`42GEA+cv29Ty@8I(>>s?$lo{B}T{7U8I|poLd&}tDW&Y0yp5yEOzK>y)Dfcq{RrHZ)kXtVkun!jZMn67-ThTW1 z60w>GepYmPeCXEsiQ;4PLllV+St24&zu(@UVF0@xg5MOIm}@?-_?(fAljA5@2uArw5pY+`(g0$UG0lYx6mq? zvV@5${*GLl$Ab?N51)VEcudcRUrx;4M*GZ3LBoLpw3k#ML~lW)tQw!MelB>;h2vm< zjww-fSBw90aHc{xL|Z5|eS1GTT{tmgih9sPcv+73sDUV1RZIiO3`H;q6$-LTtrQMS zyO|ZQ8K}l+Z7=~sIUEGlzkWdGRP4wKZj??o0nC-8F5YVTsD-S4#`-#kC{1;y#!=WlY|3V( z$0aCOslD+Agjh<_EY=y46`?mkyZ|G%;VgcFZpq zcQ^0QDCS8g4!hatsj}_Z^;YPDX`x@n5!Nd_rmIj{8dEb)O?||+^vDvd%Jo9T2^Xrj==zd7AGFKtVere-=>-o^{-cbX684} zuns~8EsFC}fAOjG3SY}&{^DU$GWDuZo9a&v^_EZ`K3>zohR9WbYJ~~N1dHwSO@)sV ze!rZyWR7qBpaE+CxToZ3-aq`rxew98Rx^`Wb~_D~#(A`FbR7?dH?~4d$ohY)#GT=n z^Xn|%lfd30X+HF)_kDGBc+`;aDyjj(V&5Q+AgrO4l*L%?4YMI-aMKgWbwZ8u(7|7$ z?lI52*YzS~Zx2A(6z@t*>QDjZhTjA3cM~>JbjN(7ucd9`5wCBc^RrZ&lJ5AAFr5uv zKM{O6t-Iz`@~Rn7vc=|VR-hEI1T-ytP&eJ0XeOrp2(LUjD)JPWS5Xz6WC|68K6d6X zEL}L*`@0a@@?kP;#W}rl$ykx=doi0!jxW=>Sz!pIh3J3~(c`P}avha;s?D87@Y)ce zeZcJcfum~cny!1x^9>LJmafakK3)rs{ZQVOk$4K!k>Q3+W(QB^^&91rdau`%vR%%5 zYN&k|N*1->ErpK`3?1BkM}3fX^T5?2%A7jUxRmx0ocCMem_m3jp4mb2z(`<=HPQ0# zFODU&1xwS zDU6}GXG+eUhc%@{Kv5S&-MkehI;Par=B9pLkx?%It1rFIqg@$pQ}G)_!^6eeP3 zK2A8-SRGy^Z;(`{C8w*t2!<8aU#l5X{9}K=ykf0yg1Oykb;Q#`%P9$V3Y|HSaVq}p zv8*T2kWE1G4~LS3X6qZ_Ry;evt@xX_M)|;k)g_trvMS%r!dv2<2M@KkOM>T;^DF8J zh8up=(;H9!7`&S_5UrBcvU)K^jlHjIc@fa9{7t(R=n-onWZS>I_=xt!s$F2iVU1l+L>fTZ>tGc7Wk)2lHBqab1&r zCnR`uZWWeJZT~dWd*=VhL}>WKjrNz2kFz0)!TOzd+>{w9MRz zCZ^9DQ1;+{*$gLs*~-EQ{)YQGU&*A+UT@yX8?*HMWr}JzI5J?Iqp` z$wNBenI$a7kyO+3zr}NtSCly=^zU88>9DMqe9g}m>*&_Lu|{vn{K_|J{aFYd z6p^ccc%xGw6EY^`kv#h!yX5lKN^M5A_#3bUg-cE29GEoZhUUy=Wsy{_3!rH1-aR~4 zeerwrgTa{BVf&th_Ir%zVwZtu#o%B6mI>!8P1M0=8B4M)^fmo#(dzl9(O)oIuC-r> zi^}nx1*ps1{q;wFQJ&q!g`8uiq-l9J)XIR^4*`h0)BgpA$G2 z_;FuF8Cs_TuwN}y6UD~4uirc7Zr0JAeb{b%;J_x(b8NZ$FWDFu?mC^uw_8`&^Qv;v zWb5fn+$ub|9J;%LS6^drA@oh&($y*Pj#^>&+I`O9}KY+O~JPo`Uf?o)v zUs97XCDb!E0z%zw){UcJ$oiefcl{<`51@wg{koH^No#!=JDILfyXvHeR-!4%tA zVJIuOiGhw0;yCNBo3`qgF9w7o&RtgfM9ip)1v8X1e_i}JTM&QXua#H_>bG_3SwfPN z63nh6m#8a03eEl%>m_LcLNWU^WK^PP3eblzdhAuy{5v$A0DW%)C+}+-VtRHs%PU)m zV2?Rq+`KGy-2;K0Qt((qRv7Q8ayQPAb>*9HHzRMiqcFlQ`BHD})O&U~gR8#_}7Gmlk{X(kT= z#VwY?DcsTELwW5>bl3Ct&tD&ESakEc)k(WZO1q3!Oj%7FP6lFdO@pN{$W!pr_~^Us zm0vfUK!q^=VC|1LL@;MT@C3cpNcwSJigEcROtb}ZQ*#sGBCADU&5m!O0s3D%U2^W;Y6bJ$WG9HuDq6u+U(;fu0=19>O) zYM|tsNIUr$F*uXxr-eClAK5$v-9K)@haKON$RQ~OpZ|^SOH4`xs zi!YkU)4bxO0@uCM?6N3p^|QKvvGEYaes$~idf@2;7hu$dB=@hXa^rbb;;n!>$T<46 zlaHU7`BPgYsVc%|1W~9RW8Epvy2uOdC4C^tShy5J7A99Mp83cOX58xjiD1#E-dHkFd#>Go1`zRt(`>nJD zDJ+hZ|48wdEz`YL2-^wyzyiv|g5Ia{u(C(e4-okxBs_g>P-FO$D(J1cTz)rnIc{`$ zyIj&c)%Ue-YB_u`=LyD0bLk(_srGy%SMiBq-)?RdC%6HY;y1v58HHmaU1u*ALoE$x z%N0%gWQFG)60L8>dQ&k(rq+A&jYIvD1lmAYC}1oyefEaDKoV5&nHT6xkAhmiZq@fN zMjG#oGAikq)0qgoyG%k4A~SIJJ%~m3NJ-)zEVEy4i}yKUY0TYx)7E`< z-#fue2<;M#E&T*_SR2|Vzq$6#=+uTKD{}lj(G%4OKDNV)Qgrtu@ z%HE}nidiIl=&H#9PA87hwlw4~yxZ>KHGT*hAMhTICtu-Nw{h*K3riQi3O*NAhEao? zy){TT+M3ykvz-@-&%?)8cCd#&gDZ-$zt{_ZEO7fVb?^8ZfW@FZA-)3fh%nhjTl(9c z^GI`G@3C-43^rvdG;V9cbX8CcBsRotmtZ$<wI zWvDrUI0`0O8u~HZkHwwpV=Nvn6>kOx%%&YufR;= zcM&`5<*IJD&>?uc|2dP??P5d^9jU4<$zu6%8)qtp@#JQkml0nddVbU5Px$lyLh1)Y zT|O^Qf|iuQd(g&?XG_k}%8YKRR+*yRw0+W#3Q}1h0}+R0YSrogi4A0`88nkB@!jE7 zc~2919bk)L)1h8VRq(1{K$kY7CSr=I6= z#js_{BMfPoqr_>KxH+7pISg#~{Yfg=D*SI=W{#5N$c-C99IM@AvztuK{9AozmISAO ztOef{OS71eyWfefW!ijMLHaS#EY+^PnO$e#FF=)rcStP#?cp>e(t*@nl<8j>fv&-% zM0|QG$#SrbZZ=$`VH;jsnqm2xpw~M~P)V4Wuz~gPxkIG)_J0zCpmA#qdl_5%tOthv zs#L`Y(U>Zk zK4i&g3@9T(vYSJnuv(JwvhoOGY4AdHl8*$#ZsS^Lu7DhOm;IH z{b@n>1ETy(xg@a_HzfKt&ZC6e{W5>DJeE@${p%spS7GJ;P5RA@2xvZkfCZQM8~7IC zw9MKfVjOCFeJy}}i^TFyDb-7!T%Xg0&q~NO-$3D_KhWFp3ZJFu1=S!rO$Y2}^6L%0 zusxXg;9KDeNKT|bY#rhR2~@iM2JYt{>eu{@`}d8LB=o3t9Z=!&TS}Q`pRxAVy$x9}@)_v(c-mX<Vx0zOP)y5o(7fS@Yi)?$lA_-A@zL-juvcKqSc4=sOAHA; zFgLD{>_x;h2fs$%psdr;_?l2)f8>#}yAWt~NKYe5WaZiESXHK=_B32fPo#8WV~qXc zgD^s%Jdee}UooaAqI09Mty=NR?%2VkPfUPP%3Glv5=pi%UY)&A^I+7F3?=!;L5nCp zi!8x7^Z@kEI560-=A&ch@-WRGQ`3J89JZgQceHL4#j^a#a5%I*yLFS+=E2XKKSSYe zTkOk%m;HS`g2&5koO$QQYu*o4wq>EKrV?D9e20f8WQrgLY(MborRWltUA#|5vx<@w z7RN6yc_$wUOnuRPEOv+2;5FlDOs9T$3l-B2p+nH#D!He9iidgRpv0Q)i+dEdtvgRY zS_sn{?R9>YqZWDF#Pghz^e&*mFGGb)PxIxwgO_!?U&1+H zfv_x4^%)ltoh zW56zcsXMScY>JGFh7S>tH2zSQdi_DQ6NhQ5^{5eTUfGweAni*Ba_%5KH5^VG)_8R7 zOGyuJ#raIJL|TyfN^gK27MbEl^v{jvRn!fqPn#FEU|+>gF>Ggy8#F4*q`Bc*`l-i~ zH!UB(9~mkdm)M<}<31V^whXr)6XrwqWxcI)3ZwVf!Q<9~jPdWS4f+YvB2O+(NzB;TQiHCZ&+(@-)i&Yt&o#hXvzxH z#8g=QhS`6OTCCtni~S`70c9xGKC-4QsKWp;^FqE4Z!IzUtyWOu-b{l4>tD6EQN|l3 zeV+D;P1|)asFEfT!WKfsHm#{z6ss^oQhmKW_9!^u3osTIHgJqG^eD#!73gpZ(* zT9+r262~3!9{rc7EEf(B7{z1#*Qx5s6fVk)Vz0^iq?e@Q!LUeQXzUU8ux9<>=MeAM zlHt$6qU^t5;|!E-9R+9q1o?LGE2d}+*WToDnMl^R)jBZgY?7!~0V}&JaO8e}&4Q|4 zSF?#m%OlPLUYtbNH_mQS5w;YOfzT(9ljCOs%Z~D&O)pQAgCB|3E1e<(T zI}nlI)xmk}E719x_GP&_;QZywITN_K#u{>NV(h~s^)f79AN|ia{c{0!-q0eiB=>Dx zf61$URfHD7I`dtc=Cf(}v13d2C&I8NvJaV`iv9iKCcF6|-VbYf5j-o-8tgHc+Iw~w zgbMe60L1<92g+jLH;!aXmqp`amux#w$b{pQGE&j*8fjRGAWp1GwH~G}M*(+0Rf0Jc zTzE>QLBC;qe+rwIwRi2{v>B-(zoqk{xtyc(-;V?xmVLBVP5hcD*(7){-DI$HY;0kAL^bkZ z$eb?e_oM$Hvyw{a{2Y=5=yg}(^TFd*5+UM`s=l?U|6XI8Zr-uXCjBC)dAlEn?E>U} zUM4`55RW;^E=0f+u~uvbbvXYP=Ju1Mxr%Xr%?6Ra#WuzmLfdQz`ECwxeShkaQZe@; z;X_7R`3lAit(ZoG5@;4d$7Qa-yJ&b>mSSv$PQQVAbj-}K3Y;Ejp-Gy9*khaC1DS)O z(f-a~s;2c9zJb9RKU_sjvN^=9_Of-y|B@f?+QG|0L6L&?gACV(|ClGd1p$H0p)(fp}m>CTXGLYV|)Q^|(jVOr(BXS;C`fNS&JpdN`fnyi4dbSG);pxW5=M)4TgT0aEFEEGL^$NggC|md zL2mf4;UvO&7?^#&|L}fpd&^HW{~hbK2MN|HF<-yrT&MMss=uD{Om-=1P3y-B)$d;W z%VC+kli%~MYhRoYVh}OD-)cSt|G1Qnq!ll__?H%P?_0hNV&||}z`-qPIV_h22tC1U z(j2gDi~LUNIgTA_gilE*<(}=Z6uoOzB{pxz{umvo+Ztbyyf`1{du1A5_>%bo^A@<| zNvgos5FW1t;W#zNSb&!WipFQuqoOl_9xVrOCOuFG*n)EUHJuzO-^sv1vn08v+_Y$| z>6oNQT0QMYKh*AMlleRqG|aTYnOqsFYVq`)?{W`+Hr8`tbBd@;&h4h9)*=T6a--Oy zMd>NF2Yfq0dv((u{lb3_DtjM*YG>sNLb`XK0{$DK^jlN1e753qQ;v(kJ4Fg$nmit zZ)-kJ9WMRmnZX&4E*H!!f&I0DxpdPG$rjPyXfbXuNY@d^oR(J16Y}rqaU4F~`0Q#u zQg|D+e(Z$mc+uQxBQ21w{{%|ci?%ge2~4iqQk2c_6Plepyd+(#kEHC}4LM?l!_O2q z98uMMq)I!R6Yj}ljeh-)l&CO2?+-X^jk~tSx3ezwCU-EK9u-^U@5bN|ImbM#SmUEe6ZPgDHiErTW!JOqyrZ3vUTs}0co^r+4xUDBwJ=$-dPE%@LFoFp;?A@#g-+bAL{ZBWUHPN z@ES45my-SK`0&)_Xg>~aPWXN9u&%N1%(pvydg=FI&e!~bC9AGU!b2~MnUxJ!gaN~j z3_L!7e>rb}f3ri%WpC1U;icI9E*a`KdS`93F>o6)t0S)Qum0+Jjf0zOG9*^6num$B zjAP`m1=GlrIkftOFK5Avf)k-T#nWj?`{XK+ff)+znhs+7@;lbiON1jv`*7jvS>rSG zff=Di(FGFq>|i303NmYO0JN5fEMyHi0V1^NvI`=L-1-&wtA6YwU2zwpu|WB7_M;cy z6u>~|mKzhd?CYA(2h7UnQ}1MPHJ@2}LbsO&pzj6&u(zOxy0R8*ihw?^|M2FBR@Oo0 zR$)-qYG!d1Sg{k1fOmY)Tf=XXG*^pKZo>>>+}?z{CLM4(othw|zDtlP=a9BAsr!?t ziA!4hI5tdEeGWXaVj&7s>xtGXXyz<%q;5>(*`kT3eXY1zbO!r#JQxK?pp z@S4#ANs8Joaq1Urm0xBEvrsnb!s_NNq>_g#Z_I=HCo{trHtJ@!lV&FB=36H{P)|9w zlvDOq%6Ij~w*xM@ZGy}<+loU`Tge!FgIw{#=W@&vAB6$a52t^SfA38JJ|~J*05_=3 z=2GDLL2srTZRQF+n@&B?`poC%@p!Y!@mj)dk7c%r+P*E{PEHxJ0s(z)6~c!%Ex18& z_28HAAd%C|k+0OFh^$pad5wtqAj@i+^3YF#4&VDyU)#p}$E^K^R2pd2nYjP7b>cv4GR2I zVK0Y-#=b|cu$t9_U7x|-mYKhLwOC*Zx$IL5Sk}*M1lK$EDDF($0$Yq%aB_Bppps-q zRD~*X>wd5q+|pu30if@| zUfv~!B+7hrcjn-PDHBrNsP|i?dD3;bvXb;~+xx<}T>T%%VN3&F z-V1}@_*mYpz621QQx_h6w(l{hmIHtO;}fS|lo1x=4i`8jYWS7JvMbg4n#IIp!4}l; zW3YI;VxeLmdi$3wZqA+a@<5;)?f(dG0l0Kbr?SrR;Jnb7oO4!H1O% zuftWnuR(+91A@I2;(dvJBz!Xp%Nz4o8jMQL`O4J7!-C*Z$L9DRtPnn zW+6&HV1e3VN$gbzY*}EwW@edDa`KtlX78UM&ALf#mV$9Agghx!zMV8L^JI#r=Dq#c zundP0Eu_zp8#?Dm1r_;CR!6Z|WN182lKLwIK`G{H&BN;6{NHE|wki~#BNSDENsJ-*)tU;zH6RHt!kjq#GZ z*{|zpNX_MGN@Locqx;u3&Or%b&&qIK1a%*Badv6L8Lio z184;g1{qwP*d745DK1wH5DCw)4o-Jm$8|_^+z!i8Sgytsz^{yR`!hbyA&8T4JD;SN zdbtzMJvZs;N6e}s{f?LdG;_X^G5K+l|5G{9S6N)r|B@GZz_=7sICSu>E^QL_V}BeG zWEf-`MYOs_5G0hZl&p98_uj*iAj!ePlWU*_(U!4-8FSI&6XX@MB=7@y_9F*!#8<+h zbTnwTRuO&d%!(OQuCsDu6>paJc|NtUQ%0;GVY1x}vsmfh{`*<#dMX!0gVPF^>C98G zN{Kjp6SQSHsP{bwOv8HU?INorDZ0mcLXrtMo&wIioM9dk{0@ZyLXujh`@(_;1?rX_ z$9@k)AfcxespxH6Fcuk9s78J=Q_3-j@k#`vQnY|&qEtXDU=7;f$B!nezvJ#KgW7E2 zuXH%ttvi3+Z50J>c>({SBpL8YLDYGy4WQ`JG?{C(ceMh+QHG%YDHwl{2`@vwanfQG z4d|C!Se#h{le2kx+v4=22Q0n0t*@Od%u{q4BOY#R51y1Vdd8*jBn8mR+w=beZ8ZGM zd2>Y)k#n`Sq#l0*6Qv#0(Jy64g(Ma9{Wn`@$hf#{;*|VykEIo-kb)-9KNlmr%TYznv&_Sth8fWwmt{ECFj{%_%XMAZff_=7@=ED^DfBQCJgHGb(?T$ZuV$F z++Yp)%$R)4=ijbUSYGiG)G?TIa|E3b==12Z$K$V(`0GP*5n z*~tF#Ko(V1b^uRP0R~<+0kfCPAdGcb7tpY@cfa*6^e;HJ&3JC1{;u6+thY&t*x$QR&X{_<)d)q zX!_h~k*r>Vl1jI}HzD_^V;@R`af!m?J+A@D9eO zQpX(W!Au_8#E(_@gH5lT5iIpzBN(n%;Lo#^1GRmO?h5zDM#x-jMYaWX{;Xvj-i&h;H{S`O3n#Nm-299^2WUcyN2$WzR%{xS(=! zvcU(mV}Ua}#Ci9!%*oD1CdzmJL7UD4=dTBu=igWh_Wdi@C+L*g)phgWCrY1iZDSjt zU<Dz9 z(k#yv2H!(X;t!i|UrOY}nvi`qQ^@G`^hPUI{b}3uKdnP`0`3Zb;Q`1!B<}iErnwR3 zo5dpEbF`bz$`7u&{|yQWb#%21xQ@~07|6ER&cQ}36v>=ES0*QA7VCi!iGGiv;nrV% z#POt-r0ThWDJyRT8T2|K$t@7%Vj9rR>nG~bd(GXXPK?^xY%&?$#2=lfK@H^R(I|-{ z@Bfw+G9{PnA^Kh5Vd9(rm616_;SIlA$A_cwz7^_U41c%9==Qd)%YYu}B1ag(7J=wv zE8W%yN;E^~qyBAQiNQjP`ZU#lmYwtAdx4DI6sM zl+(2829SM!&vVZ*U_SrHF}u*>4j6u$sqOmsmgBE!gmC?fP6zuczg)h?3olN& zUPjR`EacL3Pxph_WGIjzvcOd>i!Z_4c)_7SAeuSXyrqCSrnHoVlzPLpkZik19R3%K*vqyTc_X=@bATyPe?xy{aZL({KHXz zhC0?Zo5o-?_bzFk~W;K;F#`DlvT+e;L?j?sP6Mm?kwMHp?3(gH6Hn22*-Bj(cHGd6~R*e!_Ip_Ya4+FbuG4mz3=>cyFEk5RcXYmBkb1NFD8E8-RuYW-yKS5gfx#s3q?|>9 z0tsmPwELHDv8;}7f(hX7o=I;7-~L@?Poy0W`ZX7*zQh~LNKw+%zWmU}=}A^~^Tp|z zhdGta5WMVIx>KBl#D0(6Rj+g4r9T>@z>^v6ljYzZAnmbr`uotS@w^X>`HA!He|YC$ zS}S_%&)+p-O80IKDwzw*6vUql?^Fk<84Kjv%am?FOexV_X2_z4Q=ehlzG+k*8=M|q zhDC}H0qCLjFLZk%rHWK{Y+)nc+cre1AhW;jLKrw>f(!xUp&;CsN-4;p`kfsUAIRp1 zmM2G67pUozuZ$(m;|nS{L7dwvFk@v6ZyXmHxagy`tu_Xx1MXKHq%1+C_craS)shh& z8fy!9(g41IMa?|J*AV!~eTxjsPm-i$IRQ&JF1$+2Oj?DSocKG$2S9-_A=tj z>YVyAWG|@Ks#o1B23$;SE*jUX4<3NmOc2L|4E;eFD3)(V@_kA@)9t~`lo~Z9TX41c z@rJ-dk$a_$=veci-i(Ie=DQ_F6?fp-^uU52LcUu*)AA5bE4f=R`5=!u_x}C=q^;SB&EiAw00LC>-H@!$I4}%zErjAcmY~;) zTf7C6cqn1B5TKhN&mLHos6Uu}W~Y7^(9L&U#=E@nfi>h74=&*17BFQ2Iwupr{7RjD ztd^JTtW?((IZWZo*YcNGdcg{ZaUnvZd#A5lQnlHL{wYfX~H= zh9|BMkX*#7NikxwEL}0}bvm74)5f`~@F#V{CS)viF9>p67Q?GK^IYXUuSwe3WzD&l zx?1|LWLlctbNHLp3;7*lRnMWc-eyM-h;hzJ8ZD|Sx(-N-!F1fn0$sA1h!R$fRKOYY z-_%te>KnxX26TCZK=IGnsX1f=RxCoPbQ=o@=TmSezPzg=zmZ~ zPuHLC98%Cqcw|>sVK_frtOU<4WA^C5*zZ*gGpxBQ<1Z7K1x`6d^$fhM!|72TEJJ#p zbFaJDa$c6B2iY5pPBMo018`xMQ8+Nrje`MGW=o1#9#8}FcVa0e^zj~M2aP;ZSA##i zsbO^&0+6Hr&z@Q>kVg1rjB<4XH-x1Wn)0}tF~307*XcU!B;E%t5t8QmQ0EngQh}9c z<+OoC8fCI-Fs>~X95SHyL2=L>q4yV|THRtlTr*da=9bfx=9Zk&9~%=|!g(GXg)AxO zgzZsH^NP*%1@Ty6@`EbOw>L2x(%ZjAU$9@KuNdXL&|wg!CyLNN1i8(QdQGS!e^i|p zM0~K3;4^C1_vmbme1RIsy`cBQVgR5XCcryQlvv`L9^;CQ$Hp9-Yd8LN!RQiXLq68rBD7D>#Kf?b$hjj&}D{ba() z!GnG?N#1cpEdAi9^j^V(9Xe0W!H}PKIoZd02}^E&5ET90J!)LX|J6k@U~4Daa`3?& zZb-+|gX!@fn`Q)-hK)jr%`BTkZ#RyVOE@~S2@qn_k_cfsqJ5KA!R=*diA90ufQ1;g z|H;EpzjPa!?Tw1h3Z?kxE;}WgA6j;D?2zd9{b!+PZFN-)ClM?{>EzJ+7mUV_=r8a!skHIFPo+Wiq zvYiy5>wKJ4dhKx`c-t|k?x?|Y?Qw4NK-*l=P6mCB2fX@CBq&#$`CVC+6+7Q_ev|#j zL;7qi;!NNI^~tcDK#xS>pL;v+0H4d7CaYZAp?4R$VU>?09AKoPZ=(u(5S-Iu|I)yK zqF3CF|NOg(Oqr=2g9CSV6smreZG}y{bUZEF%JTAu+*bEVObwprLc}PwM~aiXjjc|n z5J23fT^2G)$2p!pFtJ?BE&|$(&zm00YPWm5$QKr}G0QW7N>h$RW4q*GW58kQy z(*dlw73uP$(~L@#-~$Ne2cVZ>`+Sk6s0A3e$6egN95WpO;JRxI;Eh_i;yg9*V@ZSN6&;*s<48hpx$iDur7)-L z70ZA`G!`t0KqqTyeaXG}&X-b86&lY@SIhZI2l;{0OrG2C1zDITtT1jX3wUwCA;h>F zK;u{#w)`!Q&{qknw*N&tNvyga>3X-MQX=vj=xp^Uf8XquDozNcUwK$iK^?kyV8v;; zP25-}z)Sd=M$Gw%%iv>8XIn^Pt!O$&{qz!2`3IBKOck9o5milt8>nYVCPKtnzlbX& z^+8k!18&gP{t13WyO?^-!WCz-m=`~ovo+4p-%1B1yho;AJYAN_!qBh_%xkn;4zNDQ zMgBSU)n4jZy=+ZAT>#spOo>UM^Fv|HCJeCEGV&L1fN`lc-4hg8yBzwxbWb+Br`zrL zFuhP4Om%~04;Whj&$3>8I375*#P7_ZTIK-ehdtJZ#{Q3y#d-EPd?R@-WZe(voPOAV z)=jc!vz=^sAUtheg992`y4io=@XB6GwHS#OUi|wXcKIJIDPhGyjPs*2d3U#MBjpc0 ziPHb!37B9L=Q8urfPIa=Y242JKNI{bZ!h1JwApApnGoj^<;yK}v^3B%h3;!~);H2b zd~`0K)U9S0mt*<0(e}pY1fD{eJ>cfRpj7|vLhfLF=yvEvv<3!J{O0%gKo=?wD(!gV z)tx)mWEcu#roTH%nHBda-cnex!ZIgrH>SViC?iEkwsOsy9U|nHzkHKutrypY;B!#-oqX4-br2t1RXTkgLRHKo`x{~<5**5!h!nrkMo2{>^!jn zbj(DK0(-~<$bY19v`gs|^@F-eN93I+Tq7It5SMY6>w1qP>c?h*eGU1$EreFljz1Wt z>_%iT$0r@CJD`|XvkhnBfeOxhgY+fQCCREYW{7T)bKHG`p z4)U=(C}zAXE7K`3Av{$c`rTbPBvW?Elp<9&!e&+^hlG`{Iv~*xa6|Ov0L6KeLHp8#X_3?0qC!2kEUi*K(nUm zWh#@yotMwbWWuc)cT2etzHHO0l>v~);3aHbC+f0MkSMU9OQ>h8I6`&%GUH*AYID9D zB-4ksEee|602gW6vdVprY!X?eO&%Zf0eEqy6E`s^5t-|TolLf!Zj8HrU^Up6mAnlM zflH;d9;o_ut+G#MQ>4how8Q4kLwMp%U>#)w(pv584&$S6=KgY*!=@VmdcGTsH03n8 zq-qibEnAv`*ZG*M`<8svO`7pDNi5hiMe0VJfiw|3P~?Nvb4Vt!qrOVc&rL7w^9!#7 zPhr?Uu>gtyq@CIyqb_LSpvQWsI;bM6aqYFg8W%l(ryuGL~d4Q*ZUKz#J*avg4DQ?WwRnWr3-^YTmflU0;Ag@HhtV>|o6T%)xsA zxlpZiz$FyS-I}gnvftffkNs11fJKfVsz{i;Y4iQ&9|6;>3IXWTLR2TX--7=&Z~9*$ z9I$OBH@4?8HNd+S%~d?=4alw2I}d764)RD$@WYv zrSxw3_qAB|FIC84Hvn!OeZx0{T58!KxR8 zCq#R8>qJQEp)Fsgd7S!S1MV9bQ9a&a+MK>7+$w}ewbd#1vF8xsa+*vj`ZS}iiEQ)b zUPY*{+#euqHGqX^-oezT+jtU;z=AGkQ)x&9Slf- zNa=mp2YG#Tskk}_m@W)9YFGD1Az02|%)@r+V`2u2g&>vW5P53=-pi!4{UJj+EvR2* z#}rHiRqWI_jZD0Fe=%`0)u|D{YtLXmgvI0Smf`~5QPD?0W&NZwO~(}wZjlOC@O&l) z4>HoR&uX;FmJ0KNgo0X4nc~xNpyTsp;S~di?J7Bv`zkxUqs%_~#JcmQ5CMl{=S@B^ zh``7vP4`-(!xWJ#+&aF%<8c=WWQ_vckmo%y5QfLnf&nQEuaL6mAgQ&xL=F9bP>H)^ z(`(4u-CSbmK@WmsSa5@BG)R8+lwI8dJyE0u$;o=LATb49gv38B2W*Z}{se!9qmGaZ zklMB>UWgq0$5O}ps;Ie<;O>8~?<}46XuD8l)(^JCC%Cp%BxMuaPSLUu%(D570HH!N zfw3arwAL>fW&ki~=9LJ}UHGPNk9+zM^QH?WoSyd7oJBrj+;n%Laoua)eXp!;3ixt? z+GFjx+717gUe*MqmKOTflD<;^4FA;9%1}zit{7WJPfF#pRte)G`Cq?73rIO&!!nGX zZ=q_GX=?_7wDp5;Ar{#KFEgyV;-fyaq`uB=1zJcKO~l<_XFxLkyS4caV;jDjhEQsE z?J!yxp1K1u@pu)e?aFFJHkzf_@aqrCNxO(~^%}AIr3+IO4RV~Lk)I^L0tT7GWIIyv zrkX)^#~&<6fRQB+pMCz@LvJ-fOFJmIio8a(H`D{=fBm;FOCbYMDaGMhNY8FNz1J@p z5>p|{J|c%aXMhhGAlGLX@?V{Qmrz5hpwzWpI1l}*WlCLQA!1o20zYoA45$@+;mUPlQec;e1*qqL3Uny|4PFy zRCUp0{e=E58bciP-?QvvsD(ZGi4yIL0TX9hiRLr57&+hY?es)3D@E2lx8|OO=)0FF zY=$o3cPBt<6g(4czNlR)j#=ASE~im&5P6u;*k1>0lGX@iYH8ndkp#gis&Oy zdJgko6(_R}B=M6S>L=hS{d@83wWTyPufOSN?NK;J=QZ44_6ZNJ;zA^yV)1VIH)pM7 zpOmdra8NnuOL7~v#f12FsB*JGM4gmkXhGwPWi&IMnFMU1mH=He07fV=)`{Q5t>U%aHau9DG}=fg}Apa<1VE5wY_G`j&L(ULqBkG7#~ye=eQHG1)E=)R@Dnx3eY_Qnei z4Z@Q8S~thv&BO{VkhZ!mRVsIkd2FT`=|Sj8+q~NjQ?ql$Oo1(+%OF*O8tompyQ_O1 z<`4OI>(m=0?w#!Y*9$zW6#eA_v_%FB9RO3uB3i--ea=^<y$Q{G&t! z9kX+hu7`jiVsP{7pprS`q!vd@e}wk zSmBuT;jfozaMs|3w6-{@Vjq?81#e}VJZ}JF|Mu0Ckc@;7kTlI~>QNG3ajpK{tCpvr;dNG9 z=u0YlQV^}Wugz_RnMJ$5klg?l2*m{)d$toFIw%~k@X_y#hvDJ=EPM_N|8Wg5=CyJw z7)b#cB!41vITU-BsQTkutgq%9K&lu6xP9yavX84iU?hk5uyrI>9iJtabRPldthlv7 z!97%+&0KH5+9!^0XR6?Gel*W_B~|%wA{>QbMh>AjlsAM;swa;E|5Ik9^>$!;oB0^3 z??Z*SeHYLx>a8WU;&NsqkKt$Br6Fz}9&lO7`BqW`S~i+grHJD_xz@~VF>@cNvPzWY zR_3;q+8MPif3oC|bD31YRBFKllF~ASom0W@8-@_Ppfk@unzKnAZL z9){8SU{2{Bv=Tv(4E&hk)Yj+K5V&xs&EKDSbQ>&z>LqE=!j(oaq@tZW1moXPT@Ys- z{D42V-AnGX*jl*J)7o@068xuA02!Tet%SebHJVNpV)107iTT9XMYyO_Qs4sx^O0*| z6rG091g{9lLH6MvTg(8@Z)qQDh)A&%h#EXvQ>T1d_=9*yhydjD3On8P1$MBdNAcbNe@XlX2nEl5K z!&5j3Im>NA+=HVY)0{x#R520;_YYJKTl64G?-KO5RN+{V7a$~;8N@ks^z!2YA(xN; z_nhBZdii!e%Wo~SD)=ea$R>hmXU@3YB~b-TXw9$b7eoR+4iX;3F=eFrWkw+OJX^v( zgt(g=O0JUkn%VtBJ-ujYKANL5<0Iss)z?}gj&)O{?2^ItaC%^5HU+xtZq(3@sfq4= z$hx|V3LT7{0yd@}jJgz*bM(qy4()RbO4lBN_?5Tj3XWiSsF~^b^xo_uW{()oj{gxx zmcP7E{7P z+0+N*SVg*xDyvkx1dA`_fAX}sOC`6Ecfh+Jx{;vZp)x})@+nRIlT4tS!(P?=0A_zS z`c$NZAwrf;B-5;m>D&K>z8o3VB0#Myi__&}^l!{j2P2TldFy87$`V5VvOvGvcN zr~sTQ==y)HfA!r&o;0d?gvK7&N9KcO7P9{VR$NeO=mf?&!g!M{1Iovt2YS1`DrPA_U~#_&9r1X1Gr0bq2gDPz4IIpfZRDrA_A@y2RGh8; z)KE9D8i@f9c+gwNA$MU@njpIO>&!yKX80eFk}XyN;*3g zn84LpK9@GCvF5=Q`*k|{?DM(p?Yz4OTSU+|$`tt7VW5}&bTS(e!v&-|JitT`2dz&Q z;Wb8BHPZDMJQ2aF@5;C$IZYqOnLz4vpsIaAl8Y9<$%}iMm$%A=pj$rwa|XgmrJof5 zZBt+dYw`0sdKZ;^3FM*>_#=_$YAdBkc1Qpt-V=xFzNXMc**Ar=Uh@C_kc6pBviar_ z7Eakdh@?>m(JupOvo-P1iyx~EtSmPAuNgms-G06>6NWo>t22E4O>|H$-z~`ZTj9?h zjLQZJFATx`Va>M@J^}Iz-Z~cB2?RT8-^Q3J_UQ@GkSZT19ui1LSElm2VRaRPJ73{i zA5J{XQoaC<5;if=2pw{>h5u%pR~Dcbf3OpO&W5;V9xT5BdpN0LbjWdI_ppp^pd<#U z^VjR3zNkGOYTpi|01tn zktVy+Gz~xw3g1&$ff05Hha?xG4fgvBuEGWK>#xV4OtU^IX>G0di?3b+ikt=8%~R;g zaP5v4$W`Eg6jHsGfO<+1Kntvo7u}%O{|m?Wlpl`EKpJio9ku9fYjCbJKK}SAz9}vQ ztg=8#a_zoHoa71hXkt(KU96MGg@0atJTH8i~9jOe38bLdYj{>Rb(ov5vIbXz& zHoEFzI)A2kNghhTbcldQ;S7wNfY8RuH`Nj41@Ta0Sq# zH$L8osq0jxxQwKeX}hbMz$0SZ^Mo5xUGVHKTSXlg&CN^@!}yI1mIika`{XW;UxqpX@!@e|NX8Pc{I{ z;}Q3yg^nKA^i{R#TPcnbJbLluCkb#yiYoVfmmr?Xv%q-ub?AN^ueUMneqQ&Q+OFOq z*7WMaUwpg8sH6=;=8kTeu1APxpgwFFsu0pC@ilXR!s>;mCWgF~iy+bKk!DncD-qI0 zDV3Bi3#j6&#-PLelb_IAy1{gQEuE@7ng4mYi{bA}+Pd^ExIij&uXvGMwD!ziQqV&` zac8SRG)Rl=9#eWfVyRfW-%U2L%yzK{LSZt+IX+b;Xc>AS|6Uhnvq*m0Gqm6V9<^8c z%_?NA5s%$mDEh647dk;eF}`zPr?N4IkW6$98Rld8hQNDpoi)hMVp#}2lZqCKhS9$w z)w~WCXnjuITfQngGy89he?$Ga+L~&JR9v=AeB~|bk2*Gz(S8V>Uy^4j{AVJeX4EVH ztcwDgH;CU)@Jkz4K;-u_hZ5TJk`2{0(y)suj*XOWXbF0g`MmD0bi-%dpR>;%sF)a* ze(vuZT*nShP1vKETt7^C9h5En)pOv?Zd|QZpCQHXzYEM)Z$8aSl)?{f3Sye@So0^( zCQBFV2eWvl-f;Xp@Y8Tf-&d>(t&@n-tEUAA_IQy>5+|ihyXkYL`|PRHe0fPtZ9tPJ znEN+KZ+`3c28YtC`t-+&(f_Qeeulg&KmB#{0tmG@=vPdXdtwKO2qPFaE}y<1%Mgbp zJ%)bb33?dWq9kq;_q7Y6MuF|;<~A;TD)YnPQHC+r-_?InYXf(J=d{$gfbA?(vqsbG z0FY1hKoUf70Soi(jZ*P1T_AG?$*z2zhuH@Ju=4&EM~%V3LxV5U`OGl{+l3A1WVfL= z&qmmfO$|a&J5N+0%_J}g!qU}UBmE+9EpgAcd&++#2>)Y3DNj37`YJnB2bE`5Mq^G(t=9W0!q*z5Ej!E3HuT- zY>C6ttTH+O*MyG3Zs+6M2NK|I!BYV(a^^8<#x+R}nYE-3 z1eQ*U(V~cpB3(j&#}!uV&13e;oGhF#|B0A4s23+9CU8FJDUaiL?ywV}bE2~D57RM+ zB7orh4FIh1D=sa$&xsnRP>-0Ey(&b>*$j~$)MXX=i6Z4yJPazM;xpYfEihYbI};x0 z&>=D_v(t%{#ounu_y1JT5K>Y|48C%zyh!KEfL6$(ykm8fun$#JjJd*$LF|Q(av(AM z@Pm;q+{oX(uKo_ctET*8@F`-;@X`TpD`GXLqx|`yddDfwnv3KY9NmT4=+$tj%IE;i zWEoM|SJ3AKdVjDZE_LLFi_UE1I!>eu@4ZX|851`S0B=nGxefk=KO$i zfFQ&M`t96)detSzvZ|AJeTt#yZO&AdGUxPR0$hJ6&hUHT1S4<@p8@A;P(bHLel`s^Yo=MRA496SWcd`6nN zK=IfVwgAL6pE@TrFn{XJ8=Z%kQT8`^GNS2CF*+m3sfW$uyLpROtKoouFyVtf!FhP{ zq<#FMkqY(Kl`&OH@wUe$vKY?xc)3`t-YI=SR48kSvqGIZTOU4!wo#DJ+~f2RUPb0C z1!%jAU4fmB@js1#-pUF$&s`QENR;}u(7Pz(2r_(^(u%0EeZQIToZaACTsPZFfxNu*F zc3a3B#o+6B|DZthQbLBVP)p$u4oeK#&`GT zX*VDH^0{R$T=}r@S}xcrGkD(^SV4@F8AL3=ynjt2H581neX^(H^Gv-*K-i~AkYjs7 zl{&2#*PXuHSe#c2wDoKOfQ(y70*BK_{3>1%$k9dYqxc!`1#D60pU5t>as5C~FqN8c z%Q-tAqt)U^*QlGDg9e#hbxOP7v)95SQL17c3G0E=zg%2~F=o+H2J4XFIO2yw2;+x2*)a7T=nxdqafud}1`ISD%Nj=dL z&!-)MB_Ku`z&NxXN4`ESuzf z361`9#buyJG^$x<6ZNZh zFYVW?P6E1x0(c5~Z<{<$mHps1{K~;D0n2eyR+a$@=ZVoH@E58}39?tsTx9F0M(jRj zIN7Zu&G2!Q%!KvH{BimBd=X|g6$TpP9CtrE!JYBRLzSvv^5ZTYFkRw8rLlU$Lp?}? z+U?SR+zt=5KMm6cGS?g)O>$(Rb1zie31cFmhg>R`M;FtboEQbJu+l>u0U|pk(uL!OQlR)P_Q8b4QpkRrjxg&n{LVC zY|?cZj+*n^_5S9I>x`aVz}$e9fMv$*IP5s1?iF7B@6)W9mPJ@{F+})n4HJ|$5>eb9 zkPCdC-(hkaZrEfhA030+ZvocIHvvHMK^leCNX(3O((KhFu!U6h`%PPFVDtfLzqiPK zBB(1`>$jwDLqsPpn0039liuGm6I$FoRG!8y1Q#dC3IdkbERLbgE>KMWqKDL!L72V4 zL*Fep+W~=yVJzVp>nM7UO4rpkcW9;dDfk-B+^ zjQ}?QSn&XWSZ#p--B?T~sq5Lvr9-#`SBP;#bQj`8&OjEWrkl!DFF|()A^zY@zxCPL zw?alLL*W_@ooGYh+&tu=R!!@;s!wlpUOKw|Dk#!5A}9#-KWnCZ9NWpzsfSRLM*Sth=FLGocF)tejOxp@-3`b;T~N z@TsJPG~-q;XF%?59aK2WqUd9g1E8o`8W8icE_akyUid3%|CWvy8l!I#36K$u8wm$5 z6mRVea3@?oN|X*$ON7CDOHn@=EeD`lQmX+Wd8WX8ch$v|%5+vDp1FfUH2r5@3aZ4mH_bP>&g?F-RY0kQ7*`yg+|yrUhLh>IRmC@hdUyyh=@E@ zH;I2S{!!phYoZSL;#G7NeOAHnCBkpDq0h^ktJ0-0j4M+$R4K_mNs8b|YcJSIqt?d_ zNs*V!CE*9!?7J`F)4lME4fg!&{%#LG{t zDUWa=Yl*?g(oU68lc|@|)R>NPS>`Y+jmsPd`tjQVjX`HM)0FtJZD9q_()G%HA{RAFvA{(6@R8zx*va3bN#}>lf_cOCLSm?-w7QSjCJ9R0y_vlMctK}IT~XAHo<%HO=Zw!ejz{xRd4O&2cv!ievZ*=`Xbz;{N1Ea?NF?b_LSW=RGOjjWSqkXp^Ezs9Fc4WRIM9rFm%`shW$=*HES31SciKFTE$#& zR|pqR*r4yC>^n$H977;dXV#DYY~tq;X}^&m|5-7N?!T=82yxbpc0Js?f4Shb-0xo+ z6N)>q*jtFNCxfb8V?2f=u7DrRvhrJVD{F>#nE;WjQJtz)m!WG7_!BkL#LrS*X+2&s zz4n8*m(}f2Z;kJhi_V0pi3LU`F0gr-8|3%NM34Xi1OWJKQwLYTQMJ%>qRHRYqE~Mr z{CXC6G9!EG`W+ko2IGkNjy*i|IHsi=8La1!np)5l+3K})WnSG)t=QYYVjfzGTsx0c zLJ%b~dyO_fcLEkhpp8wj*ukmygVz<&${|nHXl;GtB&G>etfxpBCF@iV*vFK^Z6d`F zBO12$`0CSgdH`shFE@_hez5W=Ye0b;l8N~Rs=}@9Fv)Z}X^t&k{}C zc%F^Nw!U|jKY0M9EJw3*YW7h%;B(0ffx;S+=c|*!;@i9D0^d_E-y-igcp4M-B3S>% z#Mi)4__p!b1lSrWDDhvT<(KDa6BS4RzXzy$idXhv#w`7T`ixogt4)^t4+3*w_J!1; zs}~#BU9S;>&mt|NBHdDux%BX;Q)q8GH_643>a;V>R(F61xVUXOShFV)(+go&jr}0Nv(51gHCn z_*oP89#Jjj)k0yeySd+07{2%WL@m=VMx5%a#UbHoX~Ffh9|lR%VWNd*r1KHp-l8 zsa{oV!z8yYQq9bQX6Cc_C2!>8g0eKwIw*atrry=} zHZ?EClKo8wgwb+(Mus7?@$aCzz7z<(W@2tsD#hA|b#n2^^=_%@)%Y>(5LFXe##t%$ zS1QYAA;nY@HwmX#zC63i5oG;1bXyYvTlmn`-ydMm??$lUPcNpNdw1*|02FN`+AmMv zfzO{dnX|Od(d*Z|9*|IBUjL?~SPHoC)9^ znE1$9NUbJs?e@^el-(RCyBZz1c8;wH4A%ONf6CZLSoOVpM1k%PZHeRt;VUH+au=-? zu9}g|SCu0eYcj8067Zo-D)3QMD>HDfUN;y`GTRI&#=Zgo)n>cmGRb2?tMb>Bxqh~` zD`QPnbAKBe1~jXmlmLKW^q#T4d1J6aT^r{+HcXqYIvxNB(N=dWwG`6Q+%SV08XIPY zuyF*EzW>KKAKWnig>7WvzbR2C;s2vb)*uVdcTz)LqiE_2SR|hIOZ+)B5$%MEN2?8R z%ogfk4LxQJb@a7`I(_HpbPRe#J+QTnY|7C7Ux28XpTmE_{a=8C8uK5(_E27$8UUO< M?RBcgE#&6E0ageg-2eap diff --git a/docs/img/carat.png b/docs/img/carat.png deleted file mode 100755 index 29d2f7fd4955fca6bc6fb740e0373a2c358c398e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF diff --git a/docs/img/dash.png b/docs/img/dash.png deleted file mode 100755 index 6f694c7a012b417908da3687a0a39aa182e91c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1338 zcmaJ>U2NM_6t){^r>#wcfL0VSTvuX@)$vd4#5N6WVkc|1rR}naMb)(7I5(};#!el# zbtCASsp?W-qE8zSJoFVdA%-T$WL8RI_B? zd+t5o`T5Q{p6=<|U$?VqCxRe#u}(PwSIl{LRKstfSbPYV7pzFiI$~t4QN;vEC}X4n z7RxDpAOV!j*w8ni4MAK3S~6v&;)g`l$axh<$7|>E5RD*h?RH*K2Y`j8L7%1v@%vZi za7@bt@uOUvisvQJuXPqpaHQCkREqd6M>0WG?6AwXR*T65ziuw$&~q$MS$o zfPyh>s<0l}mI@eh_hd(oB8*1tHZ@ojWl%QM;T+Jdm>k66jW?rZ#Atx!qns4-g&E4v z(=;FQ%W^avW?3J{L@2IeV>_(Ca)Lk1vm70uX*$9Rewm8!AxRF0BcZTNSFka?U@5u^ zDtpMY2lVtCmQm<8@|YxHuf`Qs(;a!QQ=g4=WngL}AQLr> z9JWrdsBIHKHXF!fSydodRsaOc@jgNkSU^x9kY&;UP<}3pZ{joC5f_Tevd>4eG~;)Y z=eZ~qp=5#aaUn*E3OES^BApKTU&mCAU>iEyt^S9?)&v0^j*SWDqjRZr20>6rTPSJ& zlzz0f);`}+^~w}lP1PK7Ew3f7ot#*uJ@>1Yo3J0TdsRKpA+*n9JnDXDrM~YvF`;uS|vAh|-QdmRf4AqG=`U z#v1n_Lxg8;&z#YCU2K`_W{-A zUf_|V)B9U(WZ~PP>)O(JZ|Vc-*qP&Q{c~BE~6izDPQq)#Nu*KOf(n^(VHY9;fiINM65``pc+9*v(mL$bwfCjbc%v9V{8r9iX|O%>Nr%pLD2qT{mty}c=LVleeamv znz3SOSm@kP8jThvOOq(56Yzh*fz(booe!uZij=BJC6+_lbvQ~B8nA2>kXdv_RDtRY z`5QXWWEySCe6vbTs^#f?J!WC*{1~RgVx!nJTJjQyO{dRANgx|FnymtGbD9%JmCh9^y)##j7{Dcqfn*1ta$rG89pJF6w-S7Z037$rr|y0;1Onp_ zGFJdT6Q!1C0AdVB0WOmpuV=AgAQ550Tn+-mivTtYPJmz*#75#_n9oV%!#rSOfmAfy zki%C~=fTp1{O#BLpJ|0jj#m6#|LRWit-vq3PE1z9ZqyvET4sX$-Icqy7t z<=aq5ff86AuBZBu6EjJsYWM0uejufWFTwPA7Su}0Bm$7KFb!q{Um_8~A{LUG#1l(l zSehUda@kU8LIRg9fkk2tZ;~ss5~R+mM<==F7hLHpxqLB>>PQS%Vc7b~?q!%T5+h8Q z4G=4Nzyi5WZ?^gkasJ{?Xhm`JC#WG6$1K2jb@=9&D3EgD#3UhGh#*21rJjulVXjCF zvp76q62jt0zzMG5C7DlfMgPl%C^3+~wf|}Lq=}jz|MmIcQjh1Ok6NjD$Em^Iv26D> z8tt_TnM9~^Tt8mflRGPOrrX|HtT3gG4LEuuk{g2Rn}QgJIa?gZo))!!=o_l9bvD%A zZ`aHajl8#~u?!4f7F#*b*->A=R2L)6!>saz?h>#wTXT-I(XmQ zx{84skS>k=i~i`(6k4C7;Zpfx%dCPVjPayMf8pugtGM=~s=Id1l#8MZJ1-73wV#Q3 zR3>v3%}jbQs1f_Z0xo;%=LILlA+nTpKI4ha%xWW}uqHrNao~&T4AY6m`P$_n-6h*g zhoX+e4n%~gl_lhe#s+AMb7d{5WzvYTa%6Q~si@@4{;s(0zU|H&P3fE+t{7X`S#Cj@ zC#vd}^4pcBD*77Ny5=j$h8EL2_t$O38$SQiJ6fPjJMimypr~MB2(&P0aI|h}$64<0 z>_~duqNjaT=DM^6+N{&B_lED;F2wrl?!4Lk*2((x!fmrcsw+=cI^qttuZ9C}-m~5E z-ryYVpL%^xR#&(0YI5hz<(}F7-p)?FPcyJO-zVO>%9ZDXJH8pnY;GJYFDQ>vd#j_* zRrd}L(r=!g+1#nQwsO?kpS`Qq8`NxE+Zy{gf7*_7J*U2V_|NpLo{iasj7VCg_V9&| ShohtYzipXxh2)4xTkMB!bsTr6|ge_{#vAVj^!DyNA-l zJ&$jDFNv;BTZXX@Qk-7+S5ErF>mkOcZ@lQv>F1VyCEMe2Ud@f<|L%#&QJi${E`2lR zqKFaW2Y$aTRxUY&ae$IHsN;Z;rdZ%CjYLTv!tMi234j-ON=CnvK-1QU|MG$YErn{gHZ@0Q6&?xSyply?S$EVNXH;gp?S5kV2-)$ga^gw`(f4Mm_Y(`RbgRkQTHF2@zL}dCiLk$RoZIc{xZL z_J*d5)Kb;#oKCFyfL*NGSs?y;e(QKvPJe1#G)h5*6E(?L9$nt?UaQJfP^$GDL0PU; z?r}C|);JQ4HES3w5VMlY7x6xfJAzDKlHE~>x;D`Fa=WygYot{pfFehH69o9pK|72W zwC6?t^AnATIJa=kewn=ep?Nk(aZ*pZo}51`S=^)jPRb`~l^VE}08>P3OJtQlXx1K8 z8Q}_u=F*fS;=k=?(fIv#+%811NTx8^}rHwvH%LbYmpFl9p1A{Idh@2x$ zuVp7)VD9}Uc(*(C**!QOdS(6B)$5^Tq5p3q*7un&_Z-NKEiEYg$D{Uq&sa>wj|za5 zJ6M~p)z+E6*X${8j6Ci+sqZ}zxeCAo0gZmZuhl+)Q%1U$Br_`NXcA-3yBdYMha+{o z{?q0Q(kaR2n`M29{!pwpgX6+CPQEgIO%x*0#!TC=c-ZPSkLO>OcmQUao5%-3w)U`F zRz?uGCEKQDh!TQPDmyd;iDX$TkMIe)%61q51Y2b-ie4r00!csilXgKL$txqj|6D(# z@(#!nQ}3R1JGeB3B5Tuqdvyg@*!-bq`9`pmasNGvy9^*+cd1Y*g>HK#rl7i79QQAG zl4SL_wW@WY1d+F?j0gFInGhsRrqvV3SKl{oqW+;9!fu|u@J)h4WM!0Cu02l@p60b#5M9c{dKh=_eRw~yl zWT0gw8RePzf%i8X&twiB|LF0bI@CYE{x1PI;Ylr4RJzU#Zc0j!c07g&q7=_eSd(sH z9VKChd?}^52IKcMqolAWiQH;HSp1Ploa$t zQhg|2sK;%Eb!By`)j9G1w?>`Wt6IK3gB}~uoue(MlRiIoZ#d{pgJZ8b{^{HO8)@%= zX)og3`*D5v1g;*Lz8@Sm(Q|&}PUytlb@Q_dzKFOzKK!Z_&?GO4+JO-)iPH=fs{(`& zZ9{oNn~LUZaeN!>i9p*0N^sHye8nw4xSi!REaP@@^Jy66|)Y9_AFoLlrlkg(42 zVq2J??I(+1*BcSKsTyO7LCho{8tVQm1b>*GQ*H~Mn71Lhy`alw%;D@CU^0)5Ng{cHz@LS7QZ o8uGHYt7)tmZjae5ge5$b`e_;HIklOseoIbqeod19BU-8d00{dbSpWb4 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 From e5ab085bbd758cb6edaa265b62bd2a8ea318c093 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 1 May 2023 11:55:37 +0200 Subject: [PATCH 02/35] Make rx extensions work with any --- Sources/XCoordinatorRx/Router+Rx.swift | 34 +++++++++++++++++--------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index 43760301..17cc226f 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -13,15 +13,6 @@ import RxSwift extension Router { - /// Use this to access the reactive extensions of `Router` objects. - public var rx: Reactive { - // swiftlint:disable:previous identifier_name - Reactive(self) - } -} - -extension Reactive where Base: Router { - /// /// This method transforms the completion block of a router's trigger method into an observable. /// @@ -34,9 +25,9 @@ extension Reactive where Base: Router { /// - Returns: /// An observable informing about the completion of the transition. /// - public func trigger(_ route: Base.RouteType, with options: TransitionOptions) -> Observable { - Observable.create { [base] observer -> Disposable in - base.trigger(route, with: options) { + public func rxTrigger(_ route: RouteType, with options: TransitionOptions = .init(animated: true)) -> Observable { + Observable.create { [self] observer -> Disposable in + self.trigger(route, with: options) { observer.onNext(()) observer.onCompleted() } @@ -44,6 +35,23 @@ extension Reactive where Base: Router { } } +} + +/* + +extension Router { + + /// Use this to access the reactive extensions of `Router` objects. + public var rx: Reactive> { + // swiftlint:disable:previous identifier_name + Reactive(router(for: RouteType.self)!) + } +} + +extension Reactive where Base: Router { + + + // MARK: Convenience methods /// @@ -62,4 +70,6 @@ extension Reactive where Base: Router { } } + */ + #endif From 3e1d1ab83a08ec0416f8715e3f1eae8ed233bad1 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 1 May 2023 12:39:03 +0200 Subject: [PATCH 03/35] Use any pretty much everywhere it might be needed for Swift 6 --- .../Coordinators/BaseCoordinator.swift | 10 +++++----- .../Coordinators/BasicCoordinator.swift | 2 +- .../XCoordinator/Coordinators/Coordinator.swift | 6 +++--- Sources/XCoordinator/General/Presentable.swift | 8 ++++---- .../Navigation/NavigationCoordinator.swift | 2 +- .../Navigation/NavigationTransition.swift | 6 +++--- Sources/XCoordinator/Page/PageCoordinator.swift | 14 +++++++------- Sources/XCoordinator/Page/PageTransition.swift | 4 ++-- Sources/XCoordinator/Split/SplitCoordinator.swift | 2 +- Sources/XCoordinator/Split/SplitTransition.swift | 4 ++-- Sources/XCoordinator/Tab/TabBarTransition.swift | 4 ++-- Sources/XCoordinator/Transitions/Transition.swift | 6 +++--- Sources/XCoordinator/View/Transition+Init.swift | 12 ++++++------ 13 files changed, 40 insertions(+), 40 deletions(-) diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index 3264e786..c117894e 100755 --- a/Sources/XCoordinator/Coordinators/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 @@ -72,19 +72,19 @@ open class BaseCoordinator self as? BaseCoordinator } - open func presented(from presentable: Presentable?) {} + 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() } @@ -103,7 +103,7 @@ 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() diff --git a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift index 8c94cabc..75e7b37d 100755 --- a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift @@ -87,7 +87,7 @@ open class BasicCoordinator: 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/Page/PageCoordinator.swift b/Sources/XCoordinator/Page/PageCoordinator.swift index a7a99912..2ae199d6 100755 --- a/Sources/XCoordinator/Page/PageCoordinator.swift +++ b/Sources/XCoordinator/Page/PageCoordinator.swift @@ -55,8 +55,8 @@ open class PageCoordinator: BaseCoordinator: BaseCoordinator: 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/Split/SplitCoordinator.swift b/Sources/XCoordinator/Split/SplitCoordinator.swift index d3b44ecf..caec6a02 100755 --- a/Sources/XCoordinator/Split/SplitCoordinator.swift +++ b/Sources/XCoordinator/Split/SplitCoordinator.swift @@ -34,7 +34,7 @@ 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 { @@ -30,7 +30,7 @@ extension Transition where RootViewController: UISplitViewController { } @available(iOS 14, *) - public static func set(_ presentable: Presentable?, for column: UISplitViewController.Column) -> Transition { + 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 { diff --git a/Sources/XCoordinator/Tab/TabBarTransition.swift b/Sources/XCoordinator/Tab/TabBarTransition.swift index deea83b0..4972f39c 100755 --- a/Sources/XCoordinator/Tab/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/Transitions/Transition.swift b/Sources/XCoordinator/Transitions/Transition.swift index ec85b90f..4fccae8f 100755 --- a/Sources/XCoordinator/Transitions/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/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index d73ae128..ac09c289 100755 --- a/Sources/XCoordinator/View/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) } From 2f68db87dffcc69d4ad3bdca5d0ca7c1f21ca78f Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 1 May 2023 13:08:00 +0200 Subject: [PATCH 04/35] Add asPresentable to Presentable protocol --- Sources/XCoordinator/General/Presentable.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sources/XCoordinator/General/Presentable.swift b/Sources/XCoordinator/General/Presentable.swift index a9fd41f7..11bfd275 100755 --- a/Sources/XCoordinator/General/Presentable.swift +++ b/Sources/XCoordinator/General/Presentable.swift @@ -95,6 +95,14 @@ extension 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 { From aef3a89868b4e12e6191f2d72282cb9415dbc6ea Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Fri, 5 May 2023 12:08:58 +0200 Subject: [PATCH 05/35] Readd rx extensions --- Sources/XCoordinatorRx/Router+Rx.swift | 53 +++++++++++--------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index 17cc226f..f5299814 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -11,46 +11,31 @@ import XCoordinator import RxSwift -extension Router { +public struct ReactiveRouter { - /// - /// This method transforms the completion block of a router's trigger method into an observable. - /// - /// - 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 rxTrigger(_ route: RouteType, with options: TransitionOptions = .init(animated: true)) -> Observable { - Observable.create { [self] observer -> Disposable in - self.trigger(route, with: options) { - observer.onNext(()) - observer.onCompleted() - } - return Disposables.create() - } + // 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(router(for: RouteType.self)!) + ReactiveRouter(self) } -} - -extension Reactive where Base: Router { +} +extension ReactiveRouter { // MARK: Convenience methods @@ -65,11 +50,17 @@ extension Reactive where Base: Router { /// - Returns: /// An observable informing about the completion of the transition. /// - public func trigger(_ route: Base.RouteType) -> Observable { - trigger(route, with: TransitionOptions(animated: true)) + 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(()) + observer.onCompleted() + } + return Disposables.create() + } } + } - */ #endif From f90e33a63f0087586d2134a59ccc0a56b023e030 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Fri, 9 May 2025 09:40:27 +0200 Subject: [PATCH 06/35] Make minor adjustments --- Sources/XCoordinator/Coordinators/Coordinator.swift | 2 +- Sources/XCoordinator/Transitions/TransitionProtocol.swift | 2 +- Sources/XCoordinator/View/Transition+Init.swift | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index 6692b70c..a65bfff6 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -20,7 +20,7 @@ public typealias ContextPresentationHandler = (any TransitionProtocol) -> Void /// It requires an object to be able to trigger routes and perform transitions. /// This connection is created using the `prepareTransition(for:)` method. /// -public protocol Coordinator: Router, TransitionPerformer { +public protocol Coordinator: Router, TransitionPerformer { /// /// This method prepares transitions for routes. diff --git a/Sources/XCoordinator/Transitions/TransitionProtocol.swift b/Sources/XCoordinator/Transitions/TransitionProtocol.swift index c61a3c08..2210b88f 100755 --- a/Sources/XCoordinator/Transitions/TransitionProtocol.swift +++ b/Sources/XCoordinator/Transitions/TransitionProtocol.swift @@ -13,7 +13,7 @@ import UIKit /// /// `Transition` is provided as an easily-extensible default transition type implementation. /// -public protocol TransitionProtocol { +public protocol TransitionProtocol { /// The type of the rootViewController that can execute the transition. associatedtype RootViewController: UIViewController diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index ac09c289..980f1377 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -183,7 +183,7 @@ extension Transition { /// - Parameter transitions: /// The transitions to be chained to form the new transition. /// - public static func multiple(_ transitions: C) -> Transition where C.Element == Transition { + public static func multiple(_ transitions: some Collection) -> Transition { Transition(presentables: transitions.flatMap { $0.presentables }, animationInUse: transitions.compactMap { $0.animation }.last ) { rootViewController, options, completion in From 168b950db2a6dd2fad447b4e5f4f469f81b2bd80 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 15:01:26 +0200 Subject: [PATCH 07/35] Add SwiftUI capabilities --- .../Coordinators/Coordinator.swift | 7 ++ .../SwiftUI/Environment+RouterContext.swift | 26 +++++++ .../SwiftUI/Presentable+Hosted.swift | 29 ++++++++ .../XCoordinator/SwiftUI/RouterContext.swift | 71 +++++++++++++++++++ .../SwiftUI/RouterContextReplacable.swift | 17 +++++ .../SwiftUI/RouterContextView.swift | 45 ++++++++++++ .../SwiftUI/RouterHostingController.swift | 23 ++++++ 7 files changed, 218 insertions(+) create mode 100644 Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift create mode 100644 Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift create mode 100644 Sources/XCoordinator/SwiftUI/RouterContext.swift create mode 100644 Sources/XCoordinator/SwiftUI/RouterContextReplacable.swift create mode 100644 Sources/XCoordinator/SwiftUI/RouterContextView.swift create mode 100644 Sources/XCoordinator/SwiftUI/RouterHostingController.swift diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index a65bfff6..0e7053b2 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -86,6 +86,13 @@ extension Coordinator where Self: AnyObject { with options: TransitionOptions, completion: ContextPresentationHandler?) { let transition = prepareTransition(for: route) + #if canImport(SwiftUI) + if #available(iOS 13.0, tvOS 13.0, *) { + for presentable in transition.presentables { + (presentable as? RouterContextReplacable)?.replaceContext(with: self) + } + } + #endif performTransition(transition, with: options) { completion?(transition) } } diff --git a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift new file mode 100644 index 00000000..ae219d33 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift @@ -0,0 +1,26 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import Foundation +import SwiftUI + +@available(iOS 13.0, tvOS 13.0, *) +private enum RouterContextKey: EnvironmentKey { + static var defaultValue: RouterContext { .init() } +} + +@available(iOS 13.0, tvOS 13.0, *) +extension EnvironmentValues { + public var router: RouterContext { + get { self[RouterContextKey.self] } + set { self[RouterContextKey.self] = newValue } + } +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift b/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift new file mode 100644 index 00000000..bb5e812e --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift @@ -0,0 +1,29 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13.0, tvOS 13.0, *) +extension Presentable { + + public static func hosted( + @ViewBuilder content: @escaping () -> Content + ) -> Self where Self == RouterHostingController { + RouterHostingController(rootView: .init(content: content, context: .init())) + } + + public static func hosted( + _ content: Content + ) -> Self where Self == RouterHostingController { + hosted { content } + } + +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RouterContext.swift b/Sources/XCoordinator/SwiftUI/RouterContext.swift new file mode 100644 index 00000000..1814358d --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RouterContext.swift @@ -0,0 +1,71 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import Foundation + +@available(iOS 13.0, tvOS 13.0, *) +public class RouterContext: RouterContextReplacable { + + // MARK: Stored Properties + + private weak var presentable: (any Presentable & AnyObject)? + + // MARK: Initialization + + public init() {} + + // MARK: Methods + + public func replaceContext(with router: any Router) { + self.presentable = router + } + + public func router(for route: RouteType) -> (any Router)? { + presentable?.router(for: route) + } + + @MainActor + @discardableResult + public func trigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true), + completion: PresentationHandler? = nil + ) -> Bool { + guard let router = router(for: route) else { + return false + } + router.trigger(route, with: options, completion: completion) + return true + } + +} + +#if swift(>=5.5.2) + +@available(iOS 13.0, tvOS 13.0, *) +extension RouterContext { + + @MainActor + @discardableResult + public func trigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) async -> Bool { + guard let router = router(for: route) else { + return false + } + await router.trigger(route, with: options) + return true + } + +} + +#endif + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RouterContextReplacable.swift b/Sources/XCoordinator/SwiftUI/RouterContextReplacable.swift new file mode 100644 index 00000000..c8d1f1e2 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RouterContextReplacable.swift @@ -0,0 +1,17 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import Foundation + +@available(iOS 13.0, tvOS 13.0, *) +public protocol RouterContextReplacable { + func replaceContext(with router: any Router) +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RouterContextView.swift b/Sources/XCoordinator/SwiftUI/RouterContextView.swift new file mode 100644 index 00000000..f18d76f7 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RouterContextView.swift @@ -0,0 +1,45 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13.0, tvOS 13.0, *) +public struct RouterContextView: View, RouterContextReplacable { + + // MARK: Stored Properties + + private let content: () -> Content + private let context: RouterContext + + // MARK: Computed Properties + + public var body: some View { + content() + .environment(\.router, context) + } + + // MARK: Initialization + + internal init( + @ViewBuilder content: @escaping () -> Content, + context: RouterContext + ) { + self.content = content + self.context = context + } + + // MARK: Methods + + public func replaceContext(with router: any Router) { + context.replaceContext(with: router) + } + +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RouterHostingController.swift b/Sources/XCoordinator/SwiftUI/RouterHostingController.swift new file mode 100644 index 00000000..7c52dcc5 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RouterHostingController.swift @@ -0,0 +1,23 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13.0, tvOS 13.0, *) +public class RouterHostingController: UIHostingController>, RouterContextReplacable { + + // MARK: Methods + + public func replaceContext(with router: any Router) { + rootView.replaceContext(with: router) + } + +} + +#endif From 9c5a84fb24d2dce2ac7c9c406cb00e8d32694495 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 15:15:33 +0200 Subject: [PATCH 08/35] Make sure replaceContext is always called --- .../XCoordinator/Coordinators/Coordinator.swift | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index 0e7053b2..0f0612d1 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -86,13 +86,6 @@ extension Coordinator where Self: AnyObject { with options: TransitionOptions, completion: ContextPresentationHandler?) { let transition = prepareTransition(for: route) - #if canImport(SwiftUI) - if #available(iOS 13.0, tvOS 13.0, *) { - for presentable in transition.presentables { - (presentable as? RouterContextReplacable)?.replaceContext(with: self) - } - } - #endif performTransition(transition, with: options) { completion?(transition) } } @@ -112,6 +105,13 @@ extension Coordinator where Self: AnyObject { public func performTransition(_ transition: TransitionType, with options: TransitionOptions, completion: PresentationHandler? = nil) { + #if canImport(SwiftUI) + if #available(iOS 13.0, tvOS 13.0, *) { + for presentable in transition.presentables { + (presentable as? RouterContextReplacable)?.replaceContext(with: self) + } + } + #endif transition.perform(on: rootViewController, with: options) { [self] in transition.presentables.forEach(addChild) removeChildrenIfNeeded() From 732ca5af880582f91030f82cce2a657ffc96628d Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 15:28:33 +0200 Subject: [PATCH 09/35] Add contextTrigger --- .../SwiftUI/Presentable+Hosted.swift | 2 +- .../XCoordinator/SwiftUI/RouterContext.swift | 26 +++++++++++++++++++ .../SwiftUI/RouterHostingController.swift | 14 ++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift b/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift index bb5e812e..41caffdf 100644 --- a/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift +++ b/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift @@ -15,7 +15,7 @@ extension Presentable { public static func hosted( @ViewBuilder content: @escaping () -> Content ) -> Self where Self == RouterHostingController { - RouterHostingController(rootView: .init(content: content, context: .init())) + RouterHostingController(rootView: content) } public static func hosted( diff --git a/Sources/XCoordinator/SwiftUI/RouterContext.swift b/Sources/XCoordinator/SwiftUI/RouterContext.swift index 1814358d..0d70073b 100644 --- a/Sources/XCoordinator/SwiftUI/RouterContext.swift +++ b/Sources/XCoordinator/SwiftUI/RouterContext.swift @@ -44,6 +44,20 @@ public class RouterContext: RouterContextReplacable { return true } + @MainActor + @discardableResult + public func contextTrigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true), + completion: ContextPresentationHandler? = nil + ) -> Bool { + guard let router = router(for: route) else { + return false + } + router.contextTrigger(route, with: options, completion: completion) + return true + } + } #if swift(>=5.5.2) @@ -64,6 +78,18 @@ extension RouterContext { return true } + @MainActor + @discardableResult + public func contextTrigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) async -> (any TransitionProtocol)? { + guard let router = router(for: route) else { + return nil + } + return await router.contextTrigger(route, with: options) + } + } #endif diff --git a/Sources/XCoordinator/SwiftUI/RouterHostingController.swift b/Sources/XCoordinator/SwiftUI/RouterHostingController.swift index 7c52dcc5..0c673e29 100644 --- a/Sources/XCoordinator/SwiftUI/RouterHostingController.swift +++ b/Sources/XCoordinator/SwiftUI/RouterHostingController.swift @@ -12,6 +12,20 @@ import SwiftUI @available(iOS 13.0, tvOS 13.0, *) public class RouterHostingController: UIHostingController>, RouterContextReplacable { + // MARK: Initialization + + public init(rootView: Content) { + super.init(rootView: .init(content: { rootView }, context: .init())) + } + + public init(@ViewBuilder rootView: @escaping () -> Content) { + super.init(rootView: .init(content: rootView, context: .init())) + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + // MARK: Methods public func replaceContext(with router: any Router) { From 350c11b2714948c9828a1b3b0118445776307964 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 15:42:40 +0200 Subject: [PATCH 10/35] Add reactive extensions for RouterContext and contextTrigger --- .../XCoordinatorCombine/Router+Combine.swift | 63 +++++++++++ Sources/XCoordinatorRx/Router+Rx.swift | 102 ++++++++++++++++++ 2 files changed, 165 insertions(+) diff --git a/Sources/XCoordinatorCombine/Router+Combine.swift b/Sources/XCoordinatorCombine/Router+Combine.swift index 9b9136aa..b31cd217 100644 --- a/Sources/XCoordinatorCombine/Router+Combine.swift +++ b/Sources/XCoordinatorCombine/Router+Combine.swift @@ -47,4 +47,67 @@ extension PublisherExtension where Base: Router { } +#if canImport(SwiftUI) + +@available(iOS 13.0, tvOS 13.0, *) +extension RouterContext { + + public var publishers: PublisherExtension { + .init(base: self) + } + + @available(iOS 13.0, tvOS 13.0, *) + public func triggerPublisher( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) -> Future { + Future { completion in + guard let router = self.router(for: route) else { + return completion(.success(false)) + } + router.trigger(route, with: options) { + completion(.success(true)) + } + } + } + + @available(iOS 13.0, tvOS 13.0, *) + public func contextTriggerPublisher( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) -> Future<(any TransitionProtocol)?, Never> { + Future { completion in + guard let router = self.router(for: route) else { + return completion(.success(nil)) + } + router.contextTrigger(route, with: options) { + completion(.success($0)) + } + } + } + +} + +@available(iOS 13.0, tvOS 13.0, *) +extension PublisherExtension where Base == RouterContext { + + public func contextTrigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) -> Future<(any TransitionProtocol)?, Never> { + base.contextTriggerPublisher(route, with: options) + } + + public func trigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) -> Future { + base.triggerPublisher(route, with: options) + } + +} + + +#endif + #endif diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index f5299814..9400c7ce 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -60,7 +60,109 @@ extension ReactiveRouter { } } + /// + /// 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 contextTrigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) -> Observable { + Observable.create { [base] observer -> Disposable in + base.contextTrigger(route, with: options) { + observer.onNext($0) + observer.onCompleted() + } + return Disposables.create() + } + } + +} + +#if canImport(SwiftUI) + +@available(iOS 13.0, tvOS 13.0, *) +extension RouterContext { + + /// Use this to access the reactive extensions of `RouterContext` objects. + public var rx: Reactive { + // swiftlint:disable:previous identifier_name + Reactive(self) + } +} + +@available(iOS 13.0, tvOS 13.0, *) +extension Reactive where Base == RouterContext { + + // 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: RouteType, + with options: TransitionOptions = .init(animated: true) + ) -> Observable { + Observable.create { [base] observer -> Disposable in + guard let router = base.router(for: route) else { + observer.onNext(false) + observer.onCompleted() + return Disposables.create() + } + router.trigger(route, with: options) { + observer.onNext(true) + observer.onCompleted() + } + return Disposables.create() + } + } + + /// + /// 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 contextTrigger( + _ route: RouteType, + with options: TransitionOptions = .init(animated: true) + ) -> Observable<(any TransitionProtocol)?> { + Observable.create { [base] observer -> Disposable in + guard let router = base.router(for: route) else { + observer.onNext(nil) + observer.onCompleted() + return Disposables.create() + } + router.contextTrigger(route, with: options) { + observer.onNext($0) + observer.onCompleted() + } + return Disposables.create() + } + } + } +#endif #endif From b9ab7f5e58bf23e40e511a47fb4f8e05ed24492a Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 15:51:10 +0200 Subject: [PATCH 11/35] Make sure children that were recently introduced are not removed directly --- Sources/XCoordinator/Coordinators/Coordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index 0f0612d1..d7cf6e1d 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -113,8 +113,8 @@ extension Coordinator where Self: AnyObject { } #endif transition.perform(on: rootViewController, with: options) { [self] in - transition.presentables.forEach(addChild) removeChildrenIfNeeded() + transition.presentables.forEach(addChild) completion?() } } From c45b526c05d3c3c522dbfbddab9e0f5657967c27 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 16:02:31 +0200 Subject: [PATCH 12/35] Make router(for:) method only use the type --- .../Coordinators/BaseCoordinator.swift | 2 +- .../Coordinators/RedirectionRouter.swift | 2 +- .../XCoordinator/General/DeepLinking.swift | 2 +- .../XCoordinator/General/Presentable.swift | 6 ++-- .../XCoordinator/SwiftUI/RouterContext.swift | 30 +++++++------------ .../XCoordinatorCombine/Router+Combine.swift | 4 +-- Sources/XCoordinatorRx/Router+Rx.swift | 4 +-- 7 files changed, 20 insertions(+), 30 deletions(-) diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index c117894e..0f411ce1 100755 --- a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -68,7 +68,7 @@ open class BaseCoordinator // MARK: Open methods - public func router(for route: R) -> (any Router)? { + public func router(for route: R.Type) -> (any Router)? { self as? BaseCoordinator } diff --git a/Sources/XCoordinator/Coordinators/RedirectionRouter.swift b/Sources/XCoordinator/Coordinators/RedirectionRouter.swift index c7311681..54e62c72 100755 --- a/Sources/XCoordinator/Coordinators/RedirectionRouter.swift +++ b/Sources/XCoordinator/Coordinators/RedirectionRouter.swift @@ -64,7 +64,7 @@ open class RedirectionRouter: Router { // MARK: Methods - public func router(for route: R) -> (any Router)? { + public func router(for route: R.Type) -> (any Router)? { self as? RedirectionRouter } diff --git a/Sources/XCoordinator/General/DeepLinking.swift b/Sources/XCoordinator/General/DeepLinking.swift index b7c339aa..fb9286b1 100755 --- a/Sources/XCoordinator/General/DeepLinking.swift +++ b/Sources/XCoordinator/General/DeepLinking.swift @@ -74,7 +74,7 @@ extension Transition { extension Route { private func router(fromStack stack: inout [Presentable]) -> (any Router)? { while !stack.isEmpty { - if let router = stack.last?.router(for: self) { + if let router = stack.last?.router(for: Self.self) { return router } stack.removeLast() diff --git a/Sources/XCoordinator/General/Presentable.swift b/Sources/XCoordinator/General/Presentable.swift index 11bfd275..7940258c 100755 --- a/Sources/XCoordinator/General/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) -> (any Router)? + func router(for route: R.Type) -> (any Router)? /// /// This method is called whenever a Presentable is shown to the user. @@ -106,12 +106,12 @@ extension Presentable { } extension UIViewController: Presentable { - public func router(for route: R) -> (any Router)? { + public func router(for route: R.Type) -> (any Router)? { nil } } extension UIWindow: Presentable { - public func router(for route: R) -> (any Router)? { + public func router(for route: R.Type) -> (any Router)? { nil } } diff --git a/Sources/XCoordinator/SwiftUI/RouterContext.swift b/Sources/XCoordinator/SwiftUI/RouterContext.swift index 0d70073b..48f80159 100644 --- a/Sources/XCoordinator/SwiftUI/RouterContext.swift +++ b/Sources/XCoordinator/SwiftUI/RouterContext.swift @@ -22,11 +22,15 @@ public class RouterContext: RouterContextReplacable { // MARK: Methods + public subscript(_ route: RouteType.Type) -> (any Router)? { + self.router(for: route) + } + public func replaceContext(with router: any Router) { self.presentable = router } - public func router(for route: RouteType) -> (any Router)? { + public func router(for route: RouteType.Type) -> (any Router)? { presentable?.router(for: route) } @@ -37,11 +41,7 @@ public class RouterContext: RouterContextReplacable { with options: TransitionOptions = .init(animated: true), completion: PresentationHandler? = nil ) -> Bool { - guard let router = router(for: route) else { - return false - } - router.trigger(route, with: options, completion: completion) - return true + self[RouteType.self]?.trigger(route, with: options, completion: completion) != nil } @MainActor @@ -51,11 +51,7 @@ public class RouterContext: RouterContextReplacable { with options: TransitionOptions = .init(animated: true), completion: ContextPresentationHandler? = nil ) -> Bool { - guard let router = router(for: route) else { - return false - } - router.contextTrigger(route, with: options, completion: completion) - return true + self[RouteType.self]?.contextTrigger(route, with: options, completion: completion) != nil } } @@ -71,11 +67,7 @@ extension RouterContext { _ route: RouteType, with options: TransitionOptions = .init(animated: true) ) async -> Bool { - guard let router = router(for: route) else { - return false - } - await router.trigger(route, with: options) - return true + await self[RouteType.self]?.trigger(route, with: options) != nil } @MainActor @@ -84,10 +76,8 @@ extension RouterContext { _ route: RouteType, with options: TransitionOptions = .init(animated: true) ) async -> (any TransitionProtocol)? { - guard let router = router(for: route) else { - return nil - } - return await router.contextTrigger(route, with: options) + await self[RouteType.self]?.contextTrigger(route, with: options) + } } diff --git a/Sources/XCoordinatorCombine/Router+Combine.swift b/Sources/XCoordinatorCombine/Router+Combine.swift index b31cd217..162baf23 100644 --- a/Sources/XCoordinatorCombine/Router+Combine.swift +++ b/Sources/XCoordinatorCombine/Router+Combine.swift @@ -62,7 +62,7 @@ extension RouterContext { with options: TransitionOptions = .init(animated: true) ) -> Future { Future { completion in - guard let router = self.router(for: route) else { + guard let router = self.router(for: RouteType.self) else { return completion(.success(false)) } router.trigger(route, with: options) { @@ -77,7 +77,7 @@ extension RouterContext { with options: TransitionOptions = .init(animated: true) ) -> Future<(any TransitionProtocol)?, Never> { Future { completion in - guard let router = self.router(for: route) else { + guard let router = self.router(for: RouteType.self) else { return completion(.success(nil)) } router.contextTrigger(route, with: options) { diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index 9400c7ce..1d6de612 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -119,7 +119,7 @@ extension Reactive where Base == RouterContext { with options: TransitionOptions = .init(animated: true) ) -> Observable { Observable.create { [base] observer -> Disposable in - guard let router = base.router(for: route) else { + guard let router = base.router(for: RouteType.self) else { observer.onNext(false) observer.onCompleted() return Disposables.create() @@ -148,7 +148,7 @@ extension Reactive where Base == RouterContext { with options: TransitionOptions = .init(animated: true) ) -> Observable<(any TransitionProtocol)?> { Observable.create { [base] observer -> Disposable in - guard let router = base.router(for: route) else { + guard let router = base.router(for: RouteType.self) else { observer.onNext(nil) observer.onCompleted() return Disposables.create() From b63c15e9ae844201ef4febdee84c2be4ef5d2020 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 16:38:15 +0200 Subject: [PATCH 13/35] Add Routing property wrapper --- .../SwiftUI/Environment+RouterContext.swift | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift index ae219d33..df9ceecd 100644 --- a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift +++ b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift @@ -12,15 +12,39 @@ import SwiftUI @available(iOS 13.0, tvOS 13.0, *) private enum RouterContextKey: EnvironmentKey { + static var defaultValue: RouterContext { .init() } + } @available(iOS 13.0, tvOS 13.0, *) extension EnvironmentValues { + public var router: RouterContext { get { self[RouterContextKey.self] } set { self[RouterContextKey.self] = newValue } } + +} + +@available(iOS 13.0, tvOS 13.0, *) +@propertyWrapper +public struct Routing: DynamicProperty { + + // MARK: Stored Properties + + @Environment(\.router) private var context + + // MARK: Computed Properties + + public var wrappedValue: (any Router)? { + context.router(for: RouteType.self) + } + + // MARK: Initialization + + public init(_ routeType: RouteType.Type) {} + } #endif From bd66f1eab0964f60767e263c32c82a5189a1a894 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 16:39:24 +0200 Subject: [PATCH 14/35] Remove RouterContext subscript --- Sources/XCoordinator/SwiftUI/RouterContext.swift | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Sources/XCoordinator/SwiftUI/RouterContext.swift b/Sources/XCoordinator/SwiftUI/RouterContext.swift index 48f80159..9d2951a7 100644 --- a/Sources/XCoordinator/SwiftUI/RouterContext.swift +++ b/Sources/XCoordinator/SwiftUI/RouterContext.swift @@ -22,10 +22,6 @@ public class RouterContext: RouterContextReplacable { // MARK: Methods - public subscript(_ route: RouteType.Type) -> (any Router)? { - self.router(for: route) - } - public func replaceContext(with router: any Router) { self.presentable = router } @@ -41,7 +37,7 @@ public class RouterContext: RouterContextReplacable { with options: TransitionOptions = .init(animated: true), completion: PresentationHandler? = nil ) -> Bool { - self[RouteType.self]?.trigger(route, with: options, completion: completion) != nil + router(for: RouteType.self)?.trigger(route, with: options, completion: completion) != nil } @MainActor @@ -51,7 +47,7 @@ public class RouterContext: RouterContextReplacable { with options: TransitionOptions = .init(animated: true), completion: ContextPresentationHandler? = nil ) -> Bool { - self[RouteType.self]?.contextTrigger(route, with: options, completion: completion) != nil + router(for: RouteType.self)?.contextTrigger(route, with: options, completion: completion) != nil } } @@ -67,7 +63,7 @@ extension RouterContext { _ route: RouteType, with options: TransitionOptions = .init(animated: true) ) async -> Bool { - await self[RouteType.self]?.trigger(route, with: options) != nil + await router(for: RouteType.self)?.trigger(route, with: options) != nil } @MainActor @@ -76,7 +72,7 @@ extension RouterContext { _ route: RouteType, with options: TransitionOptions = .init(animated: true) ) async -> (any TransitionProtocol)? { - await self[RouteType.self]?.contextTrigger(route, with: options) + await router(for: RouteType.self)?.contextTrigger(route, with: options) } From b9ef5701a96e575dbf18c5f55c73745aa470fc8b Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 16:41:55 +0200 Subject: [PATCH 15/35] Make Routing wrappedValue force-unwrapped by default --- .../XCoordinator/SwiftUI/Environment+RouterContext.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift index df9ceecd..b59f8bda 100644 --- a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift +++ b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift @@ -37,7 +37,11 @@ public struct Routing: DynamicProperty { // MARK: Computed Properties - public var wrappedValue: (any Router)? { + public var wrappedValue: any Router { + context.router(for: RouteType.self)! + } + + public var projectedValue: (any Router)? { context.router(for: RouteType.self) } From 76f59b5910a74ddd5576a2412859aff496f3dcaf Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 16:47:51 +0200 Subject: [PATCH 16/35] Update Routing interface --- .../SwiftUI/Environment+RouterContext.swift | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift index b59f8bda..517810d3 100644 --- a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift +++ b/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift @@ -38,11 +38,17 @@ public struct Routing: DynamicProperty { // MARK: Computed Properties public var wrappedValue: any Router { - context.router(for: RouteType.self)! + guard let router = context.router(for: RouteType.self) else { + fatalError(""" + The current environment does not contain a router with the route type of \"\(RouteType.self)\". + Please make sure to specify the correct route type when using this property wrapper. + """) + } + return router } - public var projectedValue: (any Router)? { - context.router(for: RouteType.self) + public var projectedValue: RouterContext { + context } // MARK: Initialization From 230478956f3a8c25d1952c19e26608e4167a44b5 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 17:42:07 +0200 Subject: [PATCH 17/35] Improve new SwiftUI API --- .../Coordinators/Coordinator.swift | 2 +- .../SwiftUI/Presentable+Hosted.swift | 29 ------- .../XCoordinator/SwiftUI/RouterContext.swift | 83 ------------------- .../SwiftUI/RouterHostingController.swift | 37 --------- ...ment+RouterContext.swift => Routing.swift} | 19 +++-- .../XCoordinator/SwiftUI/RoutingContext.swift | 39 +++++++++ ...e.swift => RoutingContextReplacable.swift} | 6 +- ...extView.swift => RoutingContextView.swift} | 12 +-- .../SwiftUI/RoutingController.swift | 61 ++++++++++++++ .../XCoordinatorCombine/Router+Combine.swift | 68 +++------------ Sources/XCoordinatorRx/Router+Rx.swift | 79 ------------------ 11 files changed, 131 insertions(+), 304 deletions(-) delete mode 100644 Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift delete mode 100644 Sources/XCoordinator/SwiftUI/RouterContext.swift delete mode 100644 Sources/XCoordinator/SwiftUI/RouterHostingController.swift rename Sources/XCoordinator/SwiftUI/{Environment+RouterContext.swift => Routing.swift} (66%) create mode 100644 Sources/XCoordinator/SwiftUI/RoutingContext.swift rename Sources/XCoordinator/SwiftUI/{RouterContextReplacable.swift => RoutingContextReplacable.swift} (58%) rename Sources/XCoordinator/SwiftUI/{RouterContextView.swift => RoutingContextView.swift} (65%) create mode 100644 Sources/XCoordinator/SwiftUI/RoutingController.swift diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index d7cf6e1d..fcf6fac6 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -108,7 +108,7 @@ extension Coordinator where Self: AnyObject { #if canImport(SwiftUI) if #available(iOS 13.0, tvOS 13.0, *) { for presentable in transition.presentables { - (presentable as? RouterContextReplacable)?.replaceContext(with: self) + (presentable as? RoutingContextReplacable)?.replaceContext(with: self, override: false) } } #endif diff --git a/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift b/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift deleted file mode 100644 index 41caffdf..00000000 --- a/Sources/XCoordinator/SwiftUI/Presentable+Hosted.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -#if canImport(SwiftUI) - -import SwiftUI - -@available(iOS 13.0, tvOS 13.0, *) -extension Presentable { - - public static func hosted( - @ViewBuilder content: @escaping () -> Content - ) -> Self where Self == RouterHostingController { - RouterHostingController(rootView: content) - } - - public static func hosted( - _ content: Content - ) -> Self where Self == RouterHostingController { - hosted { content } - } - -} - -#endif diff --git a/Sources/XCoordinator/SwiftUI/RouterContext.swift b/Sources/XCoordinator/SwiftUI/RouterContext.swift deleted file mode 100644 index 9d2951a7..00000000 --- a/Sources/XCoordinator/SwiftUI/RouterContext.swift +++ /dev/null @@ -1,83 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -#if canImport(SwiftUI) - -import Foundation - -@available(iOS 13.0, tvOS 13.0, *) -public class RouterContext: RouterContextReplacable { - - // MARK: Stored Properties - - private weak var presentable: (any Presentable & AnyObject)? - - // MARK: Initialization - - public init() {} - - // MARK: Methods - - public func replaceContext(with router: any Router) { - self.presentable = router - } - - public func router(for route: RouteType.Type) -> (any Router)? { - presentable?.router(for: route) - } - - @MainActor - @discardableResult - public func trigger( - _ route: RouteType, - with options: TransitionOptions = .init(animated: true), - completion: PresentationHandler? = nil - ) -> Bool { - router(for: RouteType.self)?.trigger(route, with: options, completion: completion) != nil - } - - @MainActor - @discardableResult - public func contextTrigger( - _ route: RouteType, - with options: TransitionOptions = .init(animated: true), - completion: ContextPresentationHandler? = nil - ) -> Bool { - router(for: RouteType.self)?.contextTrigger(route, with: options, completion: completion) != nil - } - -} - -#if swift(>=5.5.2) - -@available(iOS 13.0, tvOS 13.0, *) -extension RouterContext { - - @MainActor - @discardableResult - public func trigger( - _ route: RouteType, - with options: TransitionOptions = .init(animated: true) - ) async -> Bool { - await router(for: RouteType.self)?.trigger(route, with: options) != nil - } - - @MainActor - @discardableResult - public func contextTrigger( - _ route: RouteType, - with options: TransitionOptions = .init(animated: true) - ) async -> (any TransitionProtocol)? { - await router(for: RouteType.self)?.contextTrigger(route, with: options) - - } - -} - -#endif - -#endif diff --git a/Sources/XCoordinator/SwiftUI/RouterHostingController.swift b/Sources/XCoordinator/SwiftUI/RouterHostingController.swift deleted file mode 100644 index 0c673e29..00000000 --- a/Sources/XCoordinator/SwiftUI/RouterHostingController.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -#if canImport(SwiftUI) - -import SwiftUI - -@available(iOS 13.0, tvOS 13.0, *) -public class RouterHostingController: UIHostingController>, RouterContextReplacable { - - // MARK: Initialization - - public init(rootView: Content) { - super.init(rootView: .init(content: { rootView }, context: .init())) - } - - public init(@ViewBuilder rootView: @escaping () -> Content) { - super.init(rootView: .init(content: rootView, context: .init())) - } - - public required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - } - - // MARK: Methods - - public func replaceContext(with router: any Router) { - rootView.replaceContext(with: router) - } - -} - -#endif diff --git a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift b/Sources/XCoordinator/SwiftUI/Routing.swift similarity index 66% rename from Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift rename to Sources/XCoordinator/SwiftUI/Routing.swift index 517810d3..8ea108f7 100644 --- a/Sources/XCoordinator/SwiftUI/Environment+RouterContext.swift +++ b/Sources/XCoordinator/SwiftUI/Routing.swift @@ -7,22 +7,21 @@ #if canImport(SwiftUI) -import Foundation import SwiftUI @available(iOS 13.0, tvOS 13.0, *) -private enum RouterContextKey: EnvironmentKey { +private enum RoutingContextKey: EnvironmentKey { - static var defaultValue: RouterContext { .init() } + static var defaultValue: RoutingContext { .init() } } @available(iOS 13.0, tvOS 13.0, *) extension EnvironmentValues { - public var router: RouterContext { - get { self[RouterContextKey.self] } - set { self[RouterContextKey.self] = newValue } + internal var router: RoutingContext { + get { self[RoutingContextKey.self] } + set { self[RoutingContextKey.self] = newValue } } } @@ -47,8 +46,12 @@ public struct Routing: DynamicProperty { return router } - public var projectedValue: RouterContext { - context + public var projectedValue: (any Router)? { + context.router(for: RouteType.self) + } + + public func router(for: RouteType.Type) -> (any Router)? { + context.router(for: RouteType.self) } // MARK: Initialization diff --git a/Sources/XCoordinator/SwiftUI/RoutingContext.swift b/Sources/XCoordinator/SwiftUI/RoutingContext.swift new file mode 100644 index 00000000..a81f729e --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RoutingContext.swift @@ -0,0 +1,39 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import Foundation + +@available(iOS 13.0, tvOS 13.0, *) +internal class RoutingContext { + + // MARK: Stored Properties + + private weak var context: (any Router)? + + // MARK: Initialization + + internal init(_ router: (any Router)? = nil) { + self.context = router + } + + // MARK: Methods + + internal func replaceContext(with router: any Router, override: Bool) { + if context == nil || override { + context = router + } + } + + internal func router(for route: RouteType.Type) -> (any Router)? { + context?.router(for: route) + } + +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RouterContextReplacable.swift b/Sources/XCoordinator/SwiftUI/RoutingContextReplacable.swift similarity index 58% rename from Sources/XCoordinator/SwiftUI/RouterContextReplacable.swift rename to Sources/XCoordinator/SwiftUI/RoutingContextReplacable.swift index c8d1f1e2..0e265d9d 100644 --- a/Sources/XCoordinator/SwiftUI/RouterContextReplacable.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContextReplacable.swift @@ -10,8 +10,10 @@ import Foundation @available(iOS 13.0, tvOS 13.0, *) -public protocol RouterContextReplacable { - func replaceContext(with router: any Router) +public protocol RoutingContextReplacable { + + func replaceContext(with router: any Router, override: Bool) + } #endif diff --git a/Sources/XCoordinator/SwiftUI/RouterContextView.swift b/Sources/XCoordinator/SwiftUI/RoutingContextView.swift similarity index 65% rename from Sources/XCoordinator/SwiftUI/RouterContextView.swift rename to Sources/XCoordinator/SwiftUI/RoutingContextView.swift index f18d76f7..8778ef01 100644 --- a/Sources/XCoordinator/SwiftUI/RouterContextView.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContextView.swift @@ -10,12 +10,12 @@ import SwiftUI @available(iOS 13.0, tvOS 13.0, *) -public struct RouterContextView: View, RouterContextReplacable { +public struct RoutingContextView: View { // MARK: Stored Properties private let content: () -> Content - private let context: RouterContext + internal let context: RoutingContext // MARK: Computed Properties @@ -28,18 +28,12 @@ public struct RouterContextView: View, RouterContextReplacable { internal init( @ViewBuilder content: @escaping () -> Content, - context: RouterContext + context: RoutingContext ) { self.content = content self.context = context } - // MARK: Methods - - public func replaceContext(with router: any Router) { - context.replaceContext(with: router) - } - } #endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingController.swift b/Sources/XCoordinator/SwiftUI/RoutingController.swift new file mode 100644 index 00000000..d5126e80 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RoutingController.swift @@ -0,0 +1,61 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13.0, tvOS 13.0, *) +extension Presentable { + + public static func hosted( + by router: (any Router)? = nil, + @ViewBuilder content: @escaping () -> Content + ) -> Self where Self == RoutingController { + RoutingController(rootView: content, router: router) + } + + public static func hosted( + _ content: Content, + by router: (any Router)? = nil + ) -> Self where Self == RoutingController { + hosted(by: router) { content } + } + +} + +@available(iOS 13.0, tvOS 13.0, *) +public class RoutingController: UIHostingController>, RoutingContextReplacable { + + // MARK: Initialization + + public convenience init(rootView: Content, router: (any Router)? = nil) { + self.init(rootView: { rootView }, router: router) + } + + public init(@ViewBuilder rootView: @escaping () -> Content, router: (any Router)? = nil) { + super.init( + rootView: .init( + content: rootView, + context: .init(router) + ) + ) + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + // MARK: Methods + + public func replaceContext(with router: any Router, override: Bool = true) { + rootView.context.replaceContext(with: router, override: override) + } + +} + +#endif diff --git a/Sources/XCoordinatorCombine/Router+Combine.swift b/Sources/XCoordinatorCombine/Router+Combine.swift index 162baf23..f6d8f63b 100644 --- a/Sources/XCoordinatorCombine/Router+Combine.swift +++ b/Sources/XCoordinatorCombine/Router+Combine.swift @@ -33,54 +33,13 @@ extension Router { } } -} - -@available(iOS 13.0, tvOS 13.0, *) -extension PublisherExtension where Base: Router { - - public func trigger( - _ route: Base.RouteType, - with options: TransitionOptions = .init(animated: true) - ) -> Future { - base.triggerPublisher(route, with: options) - } - -} - -#if canImport(SwiftUI) - -@available(iOS 13.0, tvOS 13.0, *) -extension RouterContext { - - public var publishers: PublisherExtension { - .init(base: self) - } - - @available(iOS 13.0, tvOS 13.0, *) - public func triggerPublisher( - _ route: RouteType, - with options: TransitionOptions = .init(animated: true) - ) -> Future { - Future { completion in - guard let router = self.router(for: RouteType.self) else { - return completion(.success(false)) - } - router.trigger(route, with: options) { - completion(.success(true)) - } - } - } - @available(iOS 13.0, tvOS 13.0, *) - public func contextTriggerPublisher( + public func contextTriggerPublisher( _ route: RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future<(any TransitionProtocol)?, Never> { + ) -> Future { Future { completion in - guard let router = self.router(for: RouteType.self) else { - return completion(.success(nil)) - } - router.contextTrigger(route, with: options) { + self.contextTrigger(route, with: options) { completion(.success($0)) } } @@ -89,25 +48,22 @@ extension RouterContext { } @available(iOS 13.0, tvOS 13.0, *) -extension PublisherExtension where Base == RouterContext { +extension PublisherExtension where Base: Router { - public func contextTrigger( - _ route: RouteType, + public func trigger( + _ route: Base.RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future<(any TransitionProtocol)?, Never> { - base.contextTriggerPublisher(route, with: options) + ) -> Future { + base.triggerPublisher(route, with: options) } - public func trigger( - _ route: RouteType, + public func contextTrigger( + _ route: Base.RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future { - base.triggerPublisher(route, with: options) + ) -> Future { + base.contextTriggerPublisher(route, with: options) } } - -#endif - #endif diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index 1d6de612..2442009d 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -86,83 +86,4 @@ extension ReactiveRouter { } -#if canImport(SwiftUI) - -@available(iOS 13.0, tvOS 13.0, *) -extension RouterContext { - - /// Use this to access the reactive extensions of `RouterContext` objects. - public var rx: Reactive { - // swiftlint:disable:previous identifier_name - Reactive(self) - } -} - -@available(iOS 13.0, tvOS 13.0, *) -extension Reactive where Base == RouterContext { - - // 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: RouteType, - with options: TransitionOptions = .init(animated: true) - ) -> Observable { - Observable.create { [base] observer -> Disposable in - guard let router = base.router(for: RouteType.self) else { - observer.onNext(false) - observer.onCompleted() - return Disposables.create() - } - router.trigger(route, with: options) { - observer.onNext(true) - observer.onCompleted() - } - return Disposables.create() - } - } - - /// - /// 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 contextTrigger( - _ route: RouteType, - with options: TransitionOptions = .init(animated: true) - ) -> Observable<(any TransitionProtocol)?> { - Observable.create { [base] observer -> Disposable in - guard let router = base.router(for: RouteType.self) else { - observer.onNext(nil) - observer.onCompleted() - return Disposables.create() - } - router.contextTrigger(route, with: options) { - observer.onNext($0) - observer.onCompleted() - } - return Disposables.create() - } - } - -} - -#endif - #endif From 3454a6e959210ab3eebdb0677df144e7c5bf5df2 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 18:12:56 +0200 Subject: [PATCH 18/35] Hiding even more SwiftUI API --- .../Coordinators/Coordinator.swift | 2 +- Sources/XCoordinator/SwiftUI/Routing.swift | 24 ++---------- .../XCoordinator/SwiftUI/RoutingContext.swift | 38 ++++++++++++++----- .../SwiftUI/RoutingContextContaining.swift | 18 +++++++++ .../SwiftUI/RoutingContextReplacable.swift | 19 ---------- .../SwiftUI/RoutingContextView.swift | 17 ++++++--- .../SwiftUI/RoutingController.swift | 37 +++++------------- 7 files changed, 73 insertions(+), 82 deletions(-) create mode 100644 Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift delete mode 100644 Sources/XCoordinator/SwiftUI/RoutingContextReplacable.swift diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index fcf6fac6..bcc0e51f 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -108,7 +108,7 @@ extension Coordinator where Self: AnyObject { #if canImport(SwiftUI) if #available(iOS 13.0, tvOS 13.0, *) { for presentable in transition.presentables { - (presentable as? RoutingContextReplacable)?.replaceContext(with: self, override: false) + (presentable as? RoutingContextContaining)?.replaceRoutingContext(with: self, override: false) } } #endif diff --git a/Sources/XCoordinator/SwiftUI/Routing.swift b/Sources/XCoordinator/SwiftUI/Routing.swift index 8ea108f7..89392c94 100644 --- a/Sources/XCoordinator/SwiftUI/Routing.swift +++ b/Sources/XCoordinator/SwiftUI/Routing.swift @@ -1,38 +1,22 @@ // -// File.swift -// +// Routing.swift +// XCoordinator // // Created by Paul Kraft on 08.05.23. +// Copyright © 2023 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) import SwiftUI -@available(iOS 13.0, tvOS 13.0, *) -private enum RoutingContextKey: EnvironmentKey { - - static var defaultValue: RoutingContext { .init() } - -} - -@available(iOS 13.0, tvOS 13.0, *) -extension EnvironmentValues { - - internal var router: RoutingContext { - get { self[RoutingContextKey.self] } - set { self[RoutingContextKey.self] = newValue } - } - -} - @available(iOS 13.0, tvOS 13.0, *) @propertyWrapper public struct Routing: DynamicProperty { // MARK: Stored Properties - @Environment(\.router) private var context + @Environment(\.routingContext) private var context // MARK: Computed Properties diff --git a/Sources/XCoordinator/SwiftUI/RoutingContext.swift b/Sources/XCoordinator/SwiftUI/RoutingContext.swift index a81f729e..18517e6b 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingContext.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContext.swift @@ -1,16 +1,23 @@ // -// File.swift -// +// RoutingContext.swift +// XCoordinator // // Created by Paul Kraft on 08.05.23. +// Copyright © 2023 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) -import Foundation +import SwiftUI @available(iOS 13.0, tvOS 13.0, *) -internal class RoutingContext { +internal class RoutingContext: RoutingContextContaining { + + // MARK: Nested Types + + fileprivate enum Key: EnvironmentKey { + static var defaultValue: RoutingContext { .init() } + } // MARK: Stored Properties @@ -18,20 +25,31 @@ internal class RoutingContext { // MARK: Initialization - internal init(_ router: (any Router)? = nil) { - self.context = router + internal init(_ context: (any Router)? = nil) { + self.context = context } // MARK: Methods - internal func replaceContext(with router: any Router, override: Bool) { - if context == nil || override { - context = router + internal func replaceRoutingContext(with router: any Router, override: Bool) { + guard context == nil || override else { + return } + context = router } internal func router(for route: RouteType.Type) -> (any Router)? { - context?.router(for: route) + context?.router(for: RouteType.self) + } + +} + +@available(iOS 13.0, tvOS 13.0, *) +extension EnvironmentValues { + + internal var routingContext: RoutingContext { + get { self[RoutingContext.Key.self] } + set { self[RoutingContext.Key.self] = newValue } } } diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift b/Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift new file mode 100644 index 00000000..9e09a29b --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift @@ -0,0 +1,18 @@ +// +// RoutingContextContaining.swift +// XCoordinator +// +// Created by Paul Kraft on 08.05.23. +// Copyright © 2023 QuickBird Studios. All rights reserved. +// + +#if canImport(SwiftUI) + +@available(iOS 13.0, tvOS 13.0, *) +internal protocol RoutingContextContaining { + + func replaceRoutingContext(with router: any Router, override: Bool) + +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextReplacable.swift b/Sources/XCoordinator/SwiftUI/RoutingContextReplacable.swift deleted file mode 100644 index 0e265d9d..00000000 --- a/Sources/XCoordinator/SwiftUI/RoutingContextReplacable.swift +++ /dev/null @@ -1,19 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -#if canImport(SwiftUI) - -import Foundation - -@available(iOS 13.0, tvOS 13.0, *) -public protocol RoutingContextReplacable { - - func replaceContext(with router: any Router, override: Bool) - -} - -#endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextView.swift b/Sources/XCoordinator/SwiftUI/RoutingContextView.swift index 8778ef01..fc41fb66 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingContextView.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContextView.swift @@ -1,8 +1,9 @@ // -// File.swift -// +// RoutingContextView.swift +// XCoordinator // // Created by Paul Kraft on 08.05.23. +// Copyright © 2023 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) @@ -10,18 +11,18 @@ import SwiftUI @available(iOS 13.0, tvOS 13.0, *) -public struct RoutingContextView: View { +public struct RoutingContextView: View, RoutingContextContaining { // MARK: Stored Properties private let content: () -> Content - internal let context: RoutingContext + private let context: RoutingContext // MARK: Computed Properties public var body: some View { content() - .environment(\.router, context) + .environment(\.routingContext, context) } // MARK: Initialization @@ -34,6 +35,12 @@ public struct RoutingContextView: View { self.context = context } + // MARK: Methods + + internal func replaceRoutingContext(with router: any Router, override: Bool) { + context.replaceRoutingContext(with: router, override: override) + } + } #endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingController.swift b/Sources/XCoordinator/SwiftUI/RoutingController.swift index d5126e80..e8a5f7b5 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingController.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingController.swift @@ -1,14 +1,18 @@ // -// File.swift -// +// RoutingController.swift +// XCoordinator // // Created by Paul Kraft on 08.05.23. +// Copyright © 2023 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) import SwiftUI +@available(iOS 13.0, tvOS 13.0, *) +public typealias RoutingController = UIHostingController> + @available(iOS 13.0, tvOS 13.0, *) extension Presentable { @@ -16,7 +20,7 @@ extension Presentable { by router: (any Router)? = nil, @ViewBuilder content: @escaping () -> Content ) -> Self where Self == RoutingController { - RoutingController(rootView: content, router: router) + RoutingController(rootView: RoutingContextView(content: content, context: .init(router))) } public static func hosted( @@ -29,31 +33,10 @@ extension Presentable { } @available(iOS 13.0, tvOS 13.0, *) -public class RoutingController: UIHostingController>, RoutingContextReplacable { - - // MARK: Initialization - - public convenience init(rootView: Content, router: (any Router)? = nil) { - self.init(rootView: { rootView }, router: router) - } - - public init(@ViewBuilder rootView: @escaping () -> Content, router: (any Router)? = nil) { - super.init( - rootView: .init( - content: rootView, - context: .init(router) - ) - ) - } - - public required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - } - - // MARK: Methods +extension UIHostingController: RoutingContextContaining where Content: RoutingContextContaining { - public func replaceContext(with router: any Router, override: Bool = true) { - rootView.context.replaceContext(with: router, override: override) + func replaceRoutingContext(with router: any Router, override: Bool) { + rootView.replaceRoutingContext(with: router, override: override) } } From e58d0e3d250d5caa264229a2d380e639641dcf33 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 18:18:35 +0200 Subject: [PATCH 19/35] Minor improvements --- Sources/XCoordinator/SwiftUI/Routing.swift | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Sources/XCoordinator/SwiftUI/Routing.swift b/Sources/XCoordinator/SwiftUI/Routing.swift index 89392c94..d6234ecf 100644 --- a/Sources/XCoordinator/SwiftUI/Routing.swift +++ b/Sources/XCoordinator/SwiftUI/Routing.swift @@ -34,14 +34,16 @@ public struct Routing: DynamicProperty { context.router(for: RouteType.self) } - public func router(for: RouteType.Type) -> (any Router)? { - context.router(for: RouteType.self) - } - // MARK: Initialization public init(_ routeType: RouteType.Type) {} + // MARK: Methods + + public func router(for: R.Type) -> (any Router)? { + context.router(for: R.self) + } + } #endif From 7bc6bead3e8878b29bea1ec315b745b1f6319460 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 18:27:30 +0200 Subject: [PATCH 20/35] Bring back RoutingController --- .../SwiftUI/RoutingController.swift | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/Sources/XCoordinator/SwiftUI/RoutingController.swift b/Sources/XCoordinator/SwiftUI/RoutingController.swift index e8a5f7b5..c6e18cce 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingController.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingController.swift @@ -10,9 +10,6 @@ import SwiftUI -@available(iOS 13.0, tvOS 13.0, *) -public typealias RoutingController = UIHostingController> - @available(iOS 13.0, tvOS 13.0, *) extension Presentable { @@ -20,7 +17,7 @@ extension Presentable { by router: (any Router)? = nil, @ViewBuilder content: @escaping () -> Content ) -> Self where Self == RoutingController { - RoutingController(rootView: RoutingContextView(content: content, context: .init(router))) + RoutingController(rootView: content, router: router) } public static func hosted( @@ -33,9 +30,30 @@ extension Presentable { } @available(iOS 13.0, tvOS 13.0, *) -extension UIHostingController: RoutingContextContaining where Content: RoutingContextContaining { +public class RoutingController: UIHostingController>, RoutingContextContaining { + + // MARK: Initialization + + public convenience init(rootView: Content, router: (any Router)? = nil) { + self.init(rootView: { rootView }, router: router) + } + + public init(@ViewBuilder rootView: @escaping () -> Content, router: (any Router)? = nil) { + super.init( + rootView: .init( + content: rootView, + context: .init(router) + ) + ) + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + // MARK: Methods - func replaceRoutingContext(with router: any Router, override: Bool) { + internal func replaceRoutingContext(with router: any Router, override: Bool) { rootView.replaceRoutingContext(with: router, override: override) } From 38105c001362c3cde6d4fd6e955f6a13b6e4c6ea Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 8 May 2023 18:48:32 +0200 Subject: [PATCH 21/35] Add do transition for better SwiftUI interop --- .../XCoordinator/View/Transition+Init.swift | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index 980f1377..fc4317ea 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -275,3 +275,26 @@ extension Coordinator where Self: AnyObject { } } + +#if swift(>=5.5.2) + +@available(iOS 13.0, tvOS 13.0, *) +extension Transition { + + public static func `do`( + presentables: [any Presentable] = [], + animationInUse: TransitionAnimation? = nil, + priority: TaskPriority? = nil, + _ perform: @MainActor @escaping () async -> Void + ) -> Transition { + Transition(presentables: presentables, animationInUse: animationInUse) { _, _, completion in + Task(priority: priority) { @MainActor in + await perform() + completion?() + } + } + } + +} + +#endif From b49c1688d5d46b967890feaafdcd685334b46aa7 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Tue, 27 May 2025 11:30:22 +0200 Subject: [PATCH 22/35] Add some Readme changes --- Package.swift | 6 - README.md | 102 ++++++++++++++--- .../Animations/UIView+Store.swift | 16 +-- .../Combine}/Router+Combine.swift | 4 +- .../Coordinators/BaseCoordinator.swift | 1 + .../Coordinators/Coordinator.swift | 7 +- .../XCoordinator/Coordinators/Router.swift | 1 + .../Extensions/NSObject+References.swift | 25 ++++ .../XCoordinator/General/DeepLinking.swift | 2 + .../XCoordinator/General/Presentable.swift | 1 + .../XCoordinator/SwiftUI/Representable.swift | 50 ++++++++ .../SwiftUI/RepresentableContext.swift | 38 +++++++ Sources/XCoordinator/SwiftUI/Routing.swift | 17 +-- .../XCoordinator/SwiftUI/RoutingContext.swift | 98 +++++++++++----- .../SwiftUI/RoutingContextContaining.swift | 18 --- .../SwiftUI/RoutingContextProvider.swift | 14 +++ .../SwiftUI/RoutingContextView.swift | 46 -------- .../SwiftUI/RoutingController.swift | 94 +++++++++------ .../SwiftUI/Transition+SwiftUI.swift | 68 +++++++++++ .../XCoordinator/SwiftUI/View+Router.swift | 56 +++++++++ .../XCoordinator/SwiftUI/View+Trigger.swift | 107 ++++++++++++++++++ .../XCoordinator/SwiftUI/WrappedRouter.swift | 46 ++++++++ .../XCoordinator/Tab/TabBarCoordinator.swift | 67 +++++++++++ .../Transitions/TransitionPerformer.swift | 1 + .../Transitions/TransitionProtocol.swift | 1 + .../XCoordinator/View/Transition+Init.swift | 4 +- .../XCoordinator/View/ViewCoordinator.swift | 37 ++++++ Sources/XCoordinatorRx/Router+Rx.swift | 3 +- XCoordinator.podspec | 5 - 29 files changed, 750 insertions(+), 185 deletions(-) mode change 100755 => 100644 Sources/XCoordinator/Animations/UIView+Store.swift rename Sources/{XCoordinatorCombine => XCoordinator/Combine}/Router+Combine.swift (95%) create mode 100755 Sources/XCoordinator/Extensions/NSObject+References.swift create mode 100644 Sources/XCoordinator/SwiftUI/Representable.swift create mode 100644 Sources/XCoordinator/SwiftUI/RepresentableContext.swift delete mode 100644 Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift create mode 100644 Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift delete mode 100644 Sources/XCoordinator/SwiftUI/RoutingContextView.swift create mode 100644 Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift create mode 100644 Sources/XCoordinator/SwiftUI/View+Router.swift create mode 100644 Sources/XCoordinator/SwiftUI/View+Trigger.swift create mode 100644 Sources/XCoordinator/SwiftUI/WrappedRouter.swift diff --git a/Package.swift b/Package.swift index 24b79883..37e42ece 100644 --- a/Package.swift +++ b/Package.swift @@ -12,9 +12,6 @@ let package = Package( .library( name: "XCoordinatorRx", targets: ["XCoordinatorRx"]), - .library( - name: "XCoordinatorCombine", - targets: ["XCoordinatorCombine"]), ], dependencies: [ .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), @@ -27,9 +24,6 @@ let package = Package( .target( name: "XCoordinatorRx", dependencies: ["XCoordinator", "RxSwift"]), - .target( - name: "XCoordinatorCombine", - dependencies: ["XCoordinator"]), .testTarget( name: "XCoordinatorTests", dependencies: ["XCoordinator", "XCoordinatorRx"]), diff --git a/README.md b/README.md index 315ee43b..d57fd01f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@ # [![Build Status](https://travis-ci.com/quickbirdstudios/XCoordinator.svg?branch=master)](https://travis-ci.com/quickbirdstudios/XCoordinator) [![CocoaPods Compatible](https://img.shields.io/cocoapods/p/XCoordinator)](https://cocoapods.org/pods/XCoordinator) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Documentation](https://img.shields.io/badge/documentation-100%25-brightgreen)](https://quickbirdstudios.github.io/XCoordinator) [![Platform](https://img.shields.io/badge/platform-iOS-lightgrey.svg)](https://github.com/quickbirdstudios/XCoordinator) [![License](https://img.shields.io/cocoapods/l/XCoordinator.svg)](https://github.com/quickbirdstudios/XCoordinator/blob/master/LICENSE) -⚠️ We have recently released XCoordinator 2.0. Make sure to read [this section](#when-to-use-which-router-abstraction) 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. + + +⚠️ We have recently released XCoordinator 3.0. To upgrade your app to the newest version, please make sure to replace all occurrences of `WeakRouter` with `weak any Router`, `UnownedRouter` with `unowned any Router` and `StrongRouter` with `any Router`. The Combine extensions are now available right within the main framework, so no need to import/specify it separately. Further, make sure to check out the new SwiftUI additions! “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. @@ -66,9 +68,9 @@ Routes are triggered from within Coordinators or ViewModels. In the following, w ```swift class HomeViewModel { - let router: UnownedRouter + unowned let router: any Router - init(router: UnownedRouter) { + init(router: any Router) { self.router = router } @@ -96,7 +98,7 @@ To use coordinators from the launch of the app, make sure to create the app's `w @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { let window: UIWindow! = UIWindow() - let router = AppCoordinator().strongRouter + let router: any Router = AppCoordinator() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { router.setRoot(for: window) @@ -107,7 +109,75 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ## 🤸‍♂️ 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. +For more advanced use, XCoordinator offers many more customization options. We introduce SwiftUI interoperability, 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. + +### 🚀 SwiftUI + +To make the use of XCoordinator with SwiftUI easier, we provide the following capabilities: + +You can use an existing coordinator in your SwiftUI app by using the `WrappedRouter` view. The closure is performed when the view appears initially and the coordinator stays the same instance while being displayed. + +```swift +struct ContentView: View { + var body: some View { + WrappedRouter { + UsersCoordinator() + } + } +} +``` + +But how do you navigate to a SwiftUI view from a given coordinator, you are asking? Simply use `RoutingController`, a subclass of `UIHostingController` with some added functionality. + +```swift +class UsersCoordinator: NavigationCoordinator { + + /* ... */ + + override func prepareTransition(for route: UserRoute) -> NavigationTransition { + switch route { + case .user(let name): + let viewController = RoutingController { + UserView(name: name) + } + return .push(viewController) + /* ... */ + } + } +} +``` + +To gain access to a given parent router, you can use the `Routing` property wrapper. Simply specify it in your SwiftUI view like this: + +```swift +struct ChildView: View { + @Routing var usersRouter + + var body: some View { + Button { + usersRouter.trigger(...) + } label: { + Text("Trigger") + } + } +} +``` + +Further, if you happen to not want to trigger a UIKit transition, but instead would like to perform some SwiftUI state change, you can use one of the SwiftUI transitions, e.g. `Transition.withAnimation`. + +```swift +class HomeCoordinator: TabCoordinator { + @Binding var selection: HomeTab + + override func prepareTransition(for route: HomeRoute) -> TabTransition { + switch route { + case .select(let index): + return .withAnimation { selection = HomeTab.allCases[index] } + /* ... */ + } + } +} +``` ### 🌗 Custom Transitions @@ -179,7 +249,7 @@ class ParentCoordinator: NavigationCoordinator { } class ChildCoordinator: RedirectionRouter { - init(parent: UnownedRouter) { + init(parent: any Router) { let viewController = UIViewController() // this viewController is used when performing transitions with the Subcoordinator directly. super.init(viewController: viewController, parent: parent, map: nil) @@ -226,7 +296,7 @@ Reactive programming can be very useful to keep the state of view and model cons ```swift class LoginViewModelImpl: LoginViewModel, LoginViewModelInput, LoginViewModelOutput { - private let router: UnownedRouter + private unowned let router: any Router private lazy var loginAction = CocoaAction { [unowned self] in return self.router.rx.trigger(.home) @@ -247,7 +317,7 @@ let doneWithBothTransitions = .startWith(false) ``` -When using `XCoordinator` with the `Combine` extensions, you can use `router.publishers.trigger` instead of `router.rx.trigger`. +When using `XCoordinator` with `Combine`, you can use `router.publishers.trigger` instead of `router.rx.trigger`. ## 📚 Documentation & Example app @@ -326,27 +396,23 @@ The available transition types include: To integrate XCoordinator into your Xcode project using CocoaPods, add this to your `Podfile`: ```ruby -pod 'XCoordinator', '~> 2.0' +pod 'XCoordinator', '~> 3.0' ``` To use the RxSwift extensions, add this to your `Podfile`: ```ruby -pod 'XCoordinator/RxSwift', '~> 2.0' +pod 'XCoordinator/RxSwift', '~> 3.0' ``` -To use the Combine extensions, add this to your `Podfile`: - -```ruby -pod 'XCoordinator/Combine', '~> 2.0' -``` +Since XCoordinator 3.0, we have now integrated the `Combine` extensions into `XCoordinator` directly. #### Carthage To integrate XCoordinator into your Xcode project using Carthage, add this to your `Cartfile`: ``` -github "quickbirdstudios/XCoordinator" ~> 2.0 +github "quickbirdstudios/XCoordinator" ~> 3.0 ``` Then run `carthage update`. @@ -358,8 +424,8 @@ If this is your first time using Carthage in the project, you'll need to go thro 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. +You can then decide between two different frameworks: `XCoordinator` and`XCoordinatorRx`. +While `XCoordinator` contains the main framework and the `Combine` extensions, you can choose `XCoordinatorRx` to get `RxSwift` extensions as well. #### Manually diff --git a/Sources/XCoordinator/Animations/UIView+Store.swift b/Sources/XCoordinator/Animations/UIView+Store.swift old mode 100755 new mode 100644 index 58915aad..a1f2cbf9 --- a/Sources/XCoordinator/Animations/UIView+Store.swift +++ b/Sources/XCoordinator/Animations/UIView+Store.swift @@ -8,24 +8,10 @@ import UIKit -private var associatedObjectHandle: UInt8 = 0 - -extension UIView { - - var strongReferences: [Any] { - get { - objc_getAssociatedObject(self, &associatedObjectHandle) as? [Any] ?? [] - } - set { - objc_setAssociatedObject(self, &associatedObjectHandle, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) - } - } -} - extension UIView { @discardableResult - func removePreviewingContext(for _: TransitionType.Type) + internal func removePreviewingContext(for _: TransitionType.Type) -> UIViewControllerPreviewing? { guard let existingContextIndex = strongReferences .firstIndex(where: { $0 is CoordinatorPreviewingDelegateObject }), diff --git a/Sources/XCoordinatorCombine/Router+Combine.swift b/Sources/XCoordinator/Combine/Router+Combine.swift similarity index 95% rename from Sources/XCoordinatorCombine/Router+Combine.swift rename to Sources/XCoordinator/Combine/Router+Combine.swift index f6d8f63b..b31e00dd 100644 --- a/Sources/XCoordinatorCombine/Router+Combine.swift +++ b/Sources/XCoordinator/Combine/Router+Combine.swift @@ -6,11 +6,11 @@ // Copyright © 2018 QuickBird Studios. All rights reserved. // -#if canImport(Combine) && canImport(XCoordinator) +#if canImport(Combine) import Combine -import XCoordinator +@MainActor public struct PublisherExtension { public let base: Base } diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index 0f411ce1..bf409013 100755 --- a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -20,6 +20,7 @@ extension BaseCoordinator { /// `NavigationCoordinator`, `TabBarCoordinator`, `ViewCoordinator`, `SplitCoordinator` /// and `PageCoordinator`. /// +@MainActor open class BaseCoordinator: Coordinator { // MARK: Stored properties diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index bcc0e51f..b9d0a59e 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -20,6 +20,7 @@ public typealias ContextPresentationHandler = (any TransitionProtocol) -> Void /// It requires an object to be able to trigger routes and perform transitions. /// This connection is created using the `prepareTransition(for:)` method. /// +@MainActor public protocol Coordinator: Router, TransitionPerformer { /// @@ -75,7 +76,7 @@ extension Coordinator { // MARK: - Default implementations extension Coordinator where Self: AnyObject { - + public func presented(from presentable: (any Presentable)?) {} public func childTransitionCompleted() { @@ -106,9 +107,9 @@ extension Coordinator where Self: AnyObject { with options: TransitionOptions, completion: PresentationHandler? = nil) { #if canImport(SwiftUI) - if #available(iOS 13.0, tvOS 13.0, *) { + if #available(iOS 13, tvOS 13, *) { for presentable in transition.presentables { - (presentable as? RoutingContextContaining)?.replaceRoutingContext(with: self, override: false) + (presentable as? RoutingContextProvider)?.routingContext.add(self) } } #endif diff --git a/Sources/XCoordinator/Coordinators/Router.swift b/Sources/XCoordinator/Coordinators/Router.swift index 2b48b238..864a28c0 100755 --- a/Sources/XCoordinator/Coordinators/Router.swift +++ b/Sources/XCoordinator/Coordinators/Router.swift @@ -17,6 +17,7 @@ import Foundation /// the triggering of routes. /// This may especially be useful in viewModels when using them in different contexts. /// +@MainActor public protocol Router: Presentable, AnyObject { /// RouteType defines which routes can be triggered in a certain Router implementation. diff --git a/Sources/XCoordinator/Extensions/NSObject+References.swift b/Sources/XCoordinator/Extensions/NSObject+References.swift new file mode 100755 index 00000000..2f64b585 --- /dev/null +++ b/Sources/XCoordinator/Extensions/NSObject+References.swift @@ -0,0 +1,25 @@ +// +// NSObject+References.swift +// XCoordinator +// +// Created by Stefan Kofler on 19.07.18. +// Copyright © 2018 QuickBird Studios. All rights reserved. +// + +import Foundation + +private var associatedObjectHandle: UInt8 = 0 + +extension NSObject { + + internal var strongReferences: [Any] { + get { + objc_getAssociatedObject(self, &associatedObjectHandle) as? [Any] ?? [] + } + set { + objc_setAssociatedObject(self, &associatedObjectHandle, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } + +} + diff --git a/Sources/XCoordinator/General/DeepLinking.swift b/Sources/XCoordinator/General/DeepLinking.swift index fb9286b1..77befb4c 100755 --- a/Sources/XCoordinator/General/DeepLinking.swift +++ b/Sources/XCoordinator/General/DeepLinking.swift @@ -72,6 +72,7 @@ extension Transition { // MARK: - Route + DeepLink extension Route { + @MainActor private func router(fromStack stack: inout [Presentable]) -> (any Router)? { while !stack.isEmpty { if let router = stack.last?.router(for: Self.self) { @@ -82,6 +83,7 @@ extension Route { return nil } + @MainActor fileprivate func trigger(on presentables: [Presentable], remainingRoutes: ArraySlice, with options: TransitionOptions, diff --git a/Sources/XCoordinator/General/Presentable.swift b/Sources/XCoordinator/General/Presentable.swift index 7940258c..82b48f4e 100755 --- a/Sources/XCoordinator/General/Presentable.swift +++ b/Sources/XCoordinator/General/Presentable.swift @@ -14,6 +14,7 @@ import UIKit /// 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. /// +@MainActor public protocol Presentable { /// diff --git a/Sources/XCoordinator/SwiftUI/Representable.swift b/Sources/XCoordinator/SwiftUI/Representable.swift new file mode 100644 index 00000000..d713cfa6 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/Representable.swift @@ -0,0 +1,50 @@ +// +// Representable.swift +// XCoordinator +// +// Created by Paul Johannes Kraft (QB) on 15.05.25. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13, tvOS 13, *) +internal struct Representable: UIViewControllerRepresentable { + // MARK: Stored Properties + + private let create: () -> C + private let update: (UIViewController, Context) -> Void + + // MARK: Initialization + + internal init( + create: @escaping () -> C, + update: @escaping (UIViewController, Context) -> Void = { _, _ in } + ) { + self.create = create + self.update = update + } + + // MARK: Methods + + internal func makeCoordinator() -> C { + create() + } + + internal func makeUIViewController( + context: Context + ) -> UIViewController { + context.coordinator.viewController + } + + internal func updateUIViewController( + _ controller: UIViewController, + context: Context + ) { + update(controller, context) + } + +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RepresentableContext.swift b/Sources/XCoordinator/SwiftUI/RepresentableContext.swift new file mode 100644 index 00000000..c242a167 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RepresentableContext.swift @@ -0,0 +1,38 @@ +// +// RepresentableContext.swift +// XCoordinator +// +// Created by Paul Johannes Kraft (QB) on 20.05.25. +// + +#if canImport(SwiftUI) + +import SwiftUI +import UIKit + +@MainActor +@available(iOS 13, tvOS 13, *) +public protocol RepresentableContext { + associatedtype Coordinator = Void + + var coordinator: Coordinator { get } + var transaction: Transaction { get } + var environment: EnvironmentValues { get } + + @available(iOS 18.0, tvOS 18.0, visionOS 2.0, *) + @available(macOS, unavailable) + @available(watchOS, unavailable) + func animate(changes: () -> Void, completion: (() -> Void)?) +} + +@available(iOS 13, tvOS 13, *) +extension UIViewControllerRepresentableContext: RepresentableContext { + public typealias Coordinator = Representable.Coordinator +} + +@available(iOS 13, tvOS 13, *) +extension UIViewRepresentableContext: RepresentableContext { + public typealias Coordinator = Representable.Coordinator +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/Routing.swift b/Sources/XCoordinator/SwiftUI/Routing.swift index d6234ecf..981d258d 100644 --- a/Sources/XCoordinator/SwiftUI/Routing.swift +++ b/Sources/XCoordinator/SwiftUI/Routing.swift @@ -10,18 +10,19 @@ import SwiftUI -@available(iOS 13.0, tvOS 13.0, *) +@MainActor +@available(iOS 13, tvOS 13, *) @propertyWrapper public struct Routing: DynamicProperty { // MARK: Stored Properties - @Environment(\.routingContext) private var context + @Environment(\.routingContext) private var routingContext // MARK: Computed Properties public var wrappedValue: any Router { - guard let router = context.router(for: RouteType.self) else { + guard let router = routingContext[RouteType.self] else { fatalError(""" The current environment does not contain a router with the route type of \"\(RouteType.self)\". Please make sure to specify the correct route type when using this property wrapper. @@ -30,20 +31,20 @@ public struct Routing: DynamicProperty { return router } - public var projectedValue: (any Router)? { - context.router(for: RouteType.self) + public var projectedValue: RoutingContext { + routingContext } // MARK: Initialization - public init(_ routeType: RouteType.Type) {} + public init(_ routeType: RouteType.Type = RouteType.self) {} // MARK: Methods public func router(for: R.Type) -> (any Router)? { - context.router(for: R.self) + routingContext[R.self] } - + } #endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingContext.swift b/Sources/XCoordinator/SwiftUI/RoutingContext.swift index 18517e6b..a2219952 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingContext.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContext.swift @@ -10,48 +10,92 @@ import SwiftUI -@available(iOS 13.0, tvOS 13.0, *) -internal class RoutingContext: RoutingContextContaining { - +@MainActor +public struct RoutingContext: Equatable { + + // MARK: Static Functions + + public static func == (lhs: RoutingContext, rhs: RoutingContext) -> Bool { + return lhs.routers.mapValues { ObjectIdentifier($0) } == rhs.routers.mapValues { ObjectIdentifier($0) } + } + // MARK: Nested Types - - fileprivate enum Key: EnvironmentKey { - static var defaultValue: RoutingContext { .init() } + + @MainActor + fileprivate enum EnvironmentKey: SwiftUI.EnvironmentKey { + static var defaultValue: RoutingContext { RoutingContext() } } - - // MARK: Stored Properties - - private weak var context: (any Router)? - + + @MainActor + fileprivate enum PreferenceKey: SwiftUI.PreferenceKey { + static var defaultValue: RoutingContext { RoutingContext() } + + static func reduce(value: inout RoutingContext, nextValue: () -> RoutingContext) { + value.add(nextValue()) + } + } + + // MARK: Properties + + private var routers = [ObjectIdentifier: any Router]() + // MARK: Initialization - - internal init(_ context: (any Router)? = nil) { - self.context = context + + public nonisolated init() {} + + public init(_ routers: [any Router] = []) { + for router in routers { + add(router) + } } - + + // MARK: Subscripts + + public subscript(_ routeType: R.Type) -> (any Router)? { + get { routers[ObjectIdentifier(routeType)]?.router(for: routeType) } + set { routers[ObjectIdentifier(routeType)] = newValue } + } + // MARK: Methods - - internal func replaceRoutingContext(with router: any Router, override: Bool) { - guard context == nil || override else { - return + + public mutating func add(_ router: any Router) { + router.add(to: &self) + } + + private mutating func add(_ context: RoutingContext) { + for (key, value) in context.routers { + routers[key] = value } - context = router } + +} - internal func router(for route: RouteType.Type) -> (any Router)? { - context?.router(for: RouteType.self) +extension Router { + @MainActor + fileprivate func add(to context: inout RoutingContext) { + context[RouteType.self] = self } +} +@available(iOS 13, tvOS 13, *) +extension View { + internal func onRoutingContextChanged(perform: @escaping (RoutingContext) -> Void) -> some View { + onPreferenceChange(RoutingContext.PreferenceKey.self) { + perform($0) + } + } + + internal func routingContext(_ context: RoutingContext) -> some View { + preference(key: RoutingContext.PreferenceKey.self, value: context) + } } -@available(iOS 13.0, tvOS 13.0, *) +@available(iOS 13, tvOS 13, *) extension EnvironmentValues { - internal var routingContext: RoutingContext { - get { self[RoutingContext.Key.self] } - set { self[RoutingContext.Key.self] = newValue } + get { self[RoutingContext.EnvironmentKey.self] } + set { self[RoutingContext.EnvironmentKey.self] = newValue } } - } #endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift b/Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift deleted file mode 100644 index 9e09a29b..00000000 --- a/Sources/XCoordinator/SwiftUI/RoutingContextContaining.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// RoutingContextContaining.swift -// XCoordinator -// -// Created by Paul Kraft on 08.05.23. -// Copyright © 2023 QuickBird Studios. All rights reserved. -// - -#if canImport(SwiftUI) - -@available(iOS 13.0, tvOS 13.0, *) -internal protocol RoutingContextContaining { - - func replaceRoutingContext(with router: any Router, override: Bool) - -} - -#endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift b/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift new file mode 100644 index 00000000..76e45092 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift @@ -0,0 +1,14 @@ +// +// RoutingContextProvider.swift +// XCoordinator +// +// Created by Paul Kraft on 09.05.2025. +// + +#if canImport(SwiftUI) + +public protocol RoutingContextProvider { + var routingContext: RoutingContext { get nonmutating set } +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextView.swift b/Sources/XCoordinator/SwiftUI/RoutingContextView.swift deleted file mode 100644 index fc41fb66..00000000 --- a/Sources/XCoordinator/SwiftUI/RoutingContextView.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// RoutingContextView.swift -// XCoordinator -// -// Created by Paul Kraft on 08.05.23. -// Copyright © 2023 QuickBird Studios. All rights reserved. -// - -#if canImport(SwiftUI) - -import SwiftUI - -@available(iOS 13.0, tvOS 13.0, *) -public struct RoutingContextView: View, RoutingContextContaining { - - // MARK: Stored Properties - - private let content: () -> Content - private let context: RoutingContext - - // MARK: Computed Properties - - public var body: some View { - content() - .environment(\.routingContext, context) - } - - // MARK: Initialization - - internal init( - @ViewBuilder content: @escaping () -> Content, - context: RoutingContext - ) { - self.content = content - self.context = context - } - - // MARK: Methods - - internal func replaceRoutingContext(with router: any Router, override: Bool) { - context.replaceRoutingContext(with: router, override: override) - } - -} - -#endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingController.swift b/Sources/XCoordinator/SwiftUI/RoutingController.swift index c6e18cce..af6ed14d 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingController.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingController.swift @@ -10,51 +10,77 @@ import SwiftUI -@available(iOS 13.0, tvOS 13.0, *) -extension Presentable { - - public static func hosted( - by router: (any Router)? = nil, - @ViewBuilder content: @escaping () -> Content - ) -> Self where Self == RoutingController { - RoutingController(rootView: content, router: router) - } +@available(iOS 13, tvOS 13, *) +public class RoutingController: UIHostingController.InjectorView>, RoutingContextProvider { + + // MARK: Nested Types + + public struct InjectorView: View { + + // MARK: Stored Properties + + private let routingContext: RoutingContext + private let content: Content + private let onUpdate: (RoutingContext) -> Void + + // MARK: Computed Properties + + public var body: some View { + content + .environment(\.routingContext, routingContext) + .onRoutingContextChanged(perform: onUpdate) + } + + // MARK: Initialization + + fileprivate init( + context: RoutingContext, + content: Content, + onUpdate: @escaping (RoutingContext) -> Void + ) { + self.routingContext = context + self.content = content + self.onUpdate = onUpdate + } - public static func hosted( - _ content: Content, - by router: (any Router)? = nil - ) -> Self where Self == RoutingController { - hosted(by: router) { content } } -} - -@available(iOS 13.0, tvOS 13.0, *) -public class RoutingController: UIHostingController>, RoutingContextContaining { - + // MARK: Properties + + public var routingContext: RoutingContext + private var routingContent = RoutingContext() + // MARK: Initialization - public convenience init(rootView: Content, router: (any Router)? = nil) { - self.init(rootView: { rootView }, router: router) - } - - public init(@ViewBuilder rootView: @escaping () -> Content, router: (any Router)? = nil) { + public init( + context: RoutingContext = .init(), + rootView: Content + ) { + self.routingContext = context + var onUpdate: ((RoutingContext) -> Void)? super.init( - rootView: .init( - content: rootView, - context: .init(router) - ) + rootView: InjectorView( + context: context, + content: rootView + ) { updatedContext in + onUpdate?(updatedContext) + } ) + onUpdate = { [weak self] updatedContext in + self?.routingContext = updatedContext + } } - public required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) + public convenience init( + context: RoutingContext = .init(), + @ViewBuilder rootView: () -> Content + ) { + self.init(context: context, rootView: rootView()) } - // MARK: Methods - - internal func replaceRoutingContext(with router: any Router, override: Bool) { - rootView.replaceRoutingContext(with: router, override: override) + public required init?(coder aDecoder: NSCoder) { + self.routingContext = .init() + super.init(coder: aDecoder) } } diff --git a/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift new file mode 100644 index 00000000..12b1e258 --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift @@ -0,0 +1,68 @@ +// +// Transition+SwiftUI.swift +// XCoordinator +// +// Created by Paul Johannes Kraft (QB) on 12.05.25. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13, tvOS 13, *) +extension Transition { + + public static func withAnimation( + animation: SwiftUI.Animation? = .default, + _ body: @MainActor @escaping () -> Void + ) -> Transition { + return Transition( + presentables: [], + animationInUse: nil, + ) { _, options, completion in + if #available(iOS 17, tvOS 17, *) { + SwiftUI.withAnimation( + options.animated ? animation : nil + ) { + body() + } completion: { + completion?() + } + } else { + SwiftUI.withAnimation( + options.animated ? animation : nil + ) { + body() + } + completion?() + } + } + } + + public static func withTransaction( + _ transaction: @autoclosure @escaping () -> Transaction, + body: @MainActor @escaping () -> Void + ) -> Transition { + return Transition( + presentables: [], + animationInUse: nil, + ) { _, options, completion in + var transaction = transaction() + transaction.disablesAnimations = !options.animated + if #available(iOS 17, tvOS 17, *) { + transaction.addAnimationCompletion { + completion?() + } + } + SwiftUI.withTransaction(transaction) { + body() + } + if #unavailable(iOS 17, tvOS 17) { + completion?() + } + } + } + +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/View+Router.swift b/Sources/XCoordinator/SwiftUI/View+Router.swift new file mode 100644 index 00000000..4b2420ea --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/View+Router.swift @@ -0,0 +1,56 @@ +// +// View+Router.swift +// XCoordinator +// +// Created by Paul Johannes Kraft (QB) on 12.05.25. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13, tvOS 13, *) +private struct RouterModifier: ViewModifier { + + // MARK: Properties + + let router: (any Router)? + + // MARK: Methods + + func body(content: Content) -> some View { + content + .transformEnvironment(\EnvironmentValues.routingContext) { context in + context[RouteType.self] = router?.router(for: RouteType.self) + } + } + +} + +@available(iOS 13, tvOS 13, *) +extension View { + + public func redirect( + _ routeType: ChildRoute.Type = ChildRoute.self, + to parent: any Router, + map: @escaping (ChildRoute) -> ParentRoute + ) -> some View { + WrappedRouter { + let viewController = RoutingController(rootView: self) + let router = RedirectionRouter( + viewController: viewController, + parent: parent, + map: map + ) + viewController.routingContext.add(router) + return router + } + } + + public func router(_ router: (any Router)?) -> some View { + modifier(RouterModifier(router: router)) + } + +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/View+Trigger.swift b/Sources/XCoordinator/SwiftUI/View+Trigger.swift new file mode 100644 index 00000000..69415d6b --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/View+Trigger.swift @@ -0,0 +1,107 @@ +// +// Router+Binding.swift +// XCoordinator +// +// Created by Paul Kraft on 09.05.2025. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 15, tvOS 15, *) +private struct TriggerViewModifier: ViewModifier { + + // MARK: Properties + + let item: Item + let priority: TaskPriority + let skipFirst: Bool + let route: () -> RouteType? + let options: () -> TransitionOptions + let onCompleted: () async -> Void + + @Routing private var router + @State private var isFirstCall = true + + // MARK: Methods + + func body(content: Content) -> some View { + content.task(id: item, priority: priority) { + guard skipFirst || !isFirstCall else { + isFirstCall = false + return + } + guard let route = route() else { + return + } + await router.trigger(route, with: options()) + await onCompleted() + } + } + +} + +@available(iOS 15, tvOS 15, *) +extension View { + + public func triggerOnAppear( + priority: TaskPriority = .userInitiated, + route: @autoclosure @escaping () -> RouteType?, + with options: @autoclosure @escaping () -> TransitionOptions = TransitionOptions(animated: true), + onCompleted: @escaping () async -> Void = {} + ) -> some View { + self.modifier( + TriggerViewModifier( + item: true, + priority: priority, + skipFirst: false, + route: route, + options: options, + onCompleted: onCompleted + ) + ) + } + + public func triggerOnChange( + of item: Item, + priority: TaskPriority = .userInitiated, + route: @autoclosure @escaping () -> RouteType?, + with options: @autoclosure @escaping () -> TransitionOptions = TransitionOptions(animated: true), + onCompleted: @escaping () async -> Void = {} + ) -> some View { + self.modifier( + TriggerViewModifier( + item: item, + priority: priority, + skipFirst: true, + route: route, + options: options, + onCompleted: onCompleted + ) + ) + } + + public func trigger( + when condition: Bool, + priority: TaskPriority = .userInitiated, + route: @autoclosure @escaping () -> RouteType, + with options: @autoclosure @escaping () -> TransitionOptions = TransitionOptions(animated: true), + onCompleted: @escaping () async -> Void = {} + ) -> some View { + self.modifier( + TriggerViewModifier( + item: condition, + priority: priority, + skipFirst: true, + route: { + condition ? route() : nil + }, + options: options, + onCompleted: onCompleted + ) + ) + } +} + +#endif diff --git a/Sources/XCoordinator/SwiftUI/WrappedRouter.swift b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift new file mode 100644 index 00000000..9669c41f --- /dev/null +++ b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift @@ -0,0 +1,46 @@ +// +// WrappedRouter.swift +// XCoordinator +// +// Created by Paul Johannes Kraft (QB) on 20.05.25. +// + +#if canImport(SwiftUI) + +import SwiftUI + +@available(iOS 13, tvOS 13, *) +public struct WrappedRouter: View { + + // MARK: Stored Properties + + @State private var routingContext = RoutingContext() + private let create: () -> RouterType + private let update: (UIViewController, any RepresentableContext) -> Void + + // MARK: Computed Properties + + public var body: some View { + Representable { + let router = create() + routingContext.add(router) + return router + } update: { + update($0, $1) + } + .routingContext(routingContext) + } + + // MARK: Initialization + + public init( + create: @escaping () -> RouterType, + update: @escaping (UIViewController, any RepresentableContext) -> Void = { _, _ in } + ) { + self.create = create + self.update = update + } + +} + +#endif diff --git a/Sources/XCoordinator/Tab/TabBarCoordinator.swift b/Sources/XCoordinator/Tab/TabBarCoordinator.swift index d8ca8540..c7081708 100755 --- a/Sources/XCoordinator/Tab/TabBarCoordinator.swift +++ b/Sources/XCoordinator/Tab/TabBarCoordinator.swift @@ -6,6 +6,13 @@ // Copyright © 2018 QuickBird Studios. All rights reserved. // +#if canImport(Combine) && canImport(SwiftUI) + +import Combine +import SwiftUI + +#endif + import UIKit /// @@ -25,6 +32,8 @@ open class TabBarCoordinator: BaseCoordinator: BaseCoordinator( + rootViewController: RootViewController = .init(), + items: Items, + selection: Binding, + content: (Items.Element) -> UIViewController + ) where Items.Index == Int, Items.Element: Equatable { + let tabs = items.map(content) + let selectedTab = tabs[items.firstIndex(of: selection.wrappedValue) ?? 0] + if rootViewController.delegate == nil { + rootViewController.delegate = animationDelegate + } + super.init(rootViewController: rootViewController, + initialTransition: .multiple(.set(tabs), .select(selectedTab))) + + let cancellable = Publishers.Merge( + rootViewController + .publisher(for: \.selectedViewController) + .compactMap { [weak self] _ in self?.rootViewController.selectedIndex }, + rootViewController + .publisher(for: \.selectedIndex) + ) + .removeDuplicates() + .receive(on: DispatchQueue.main) + .sink { selection.wrappedValue = items[$0] } + strongReferences.append(cancellable) + } + + @available(iOS 13, tvOS 13, *) + public init( + rootViewController: RootViewController = .init(), + selection: Binding, + content: (Item) -> UIViewController + ) where Item.AllCases.Index == Int { + let tabs = Item.allCases.map(content) + let selectedTab = tabs[Item.allCases.firstIndex(of: selection.wrappedValue) ?? 0] + if rootViewController.delegate == nil { + rootViewController.delegate = animationDelegate + } + super.init(rootViewController: rootViewController, + initialTransition: .multiple(.set(tabs), .select(selectedTab))) + + let cancellable = Publishers.Merge( + rootViewController + .publisher(for: \.selectedViewController) + .compactMap { [weak self] _ in self?.rootViewController.selectedIndex }, + rootViewController + .publisher(for: \.selectedIndex) + ) + .removeDuplicates() + .receive(on: DispatchQueue.main) + .sink { selection.wrappedValue = Item.allCases[$0] } + strongReferences.append(cancellable) + } + #endif } diff --git a/Sources/XCoordinator/Transitions/TransitionPerformer.swift b/Sources/XCoordinator/Transitions/TransitionPerformer.swift index 58882164..b1032890 100755 --- a/Sources/XCoordinator/Transitions/TransitionPerformer.swift +++ b/Sources/XCoordinator/Transitions/TransitionPerformer.swift @@ -10,6 +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. /// +@MainActor public protocol TransitionPerformer: Presentable { /// The type of transitions that can be executed on the rootViewController. diff --git a/Sources/XCoordinator/Transitions/TransitionProtocol.swift b/Sources/XCoordinator/Transitions/TransitionProtocol.swift index 2210b88f..f12ddbf0 100755 --- a/Sources/XCoordinator/Transitions/TransitionProtocol.swift +++ b/Sources/XCoordinator/Transitions/TransitionProtocol.swift @@ -13,6 +13,7 @@ import UIKit /// /// `Transition` is provided as an easily-extensible default transition type implementation. /// +@MainActor public protocol TransitionProtocol { /// The type of the rootViewController that can execute the transition. diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index fc4317ea..e462499f 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -278,10 +278,10 @@ extension Coordinator where Self: AnyObject { #if swift(>=5.5.2) -@available(iOS 13.0, tvOS 13.0, *) +@available(iOS 13, tvOS 13, *) extension Transition { - public static func `do`( + public static func perform( presentables: [any Presentable] = [], animationInUse: TransitionAnimation? = nil, priority: TaskPriority? = nil, diff --git a/Sources/XCoordinator/View/ViewCoordinator.swift b/Sources/XCoordinator/View/ViewCoordinator.swift index 6c5a4769..fa93f475 100755 --- a/Sources/XCoordinator/View/ViewCoordinator.swift +++ b/Sources/XCoordinator/View/ViewCoordinator.swift @@ -6,6 +6,12 @@ // Copyright © 2018 QuickBird Studios. All rights reserved. // +#if canImport(SwiftUI) + +import SwiftUI + +#endif + import UIKit /// @@ -19,10 +25,41 @@ public typealias ViewTransition = Transition open class ViewCoordinator: BaseCoordinator { // MARK: Initialization + + public override init(rootViewController: RootViewController, initialTransition: TransitionType?) { + super.init(rootViewController: rootViewController, + initialTransition: initialTransition) + } public override init(rootViewController: RootViewController, initialRoute: RouteType? = nil) { super.init(rootViewController: rootViewController, initialRoute: initialRoute) } + + #if canImport(SwiftUI) + + @available(iOS 13, tvOS 13, *) + public init( + initialRoute: RouteType? = nil, + @ViewBuilder body: () -> Content + ) { + super.init( + rootViewController: RoutingController(rootView: body()), + initialRoute: initialRoute + ) + } + + @available(iOS 13, tvOS 13, *) + public init( + initialTransition: TransitionType?, + @ViewBuilder body: () -> Content + ) { + super.init( + rootViewController: RoutingController(rootView: body()), + initialTransition: initialTransition + ) + } + + #endif } diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index 2442009d..b35f4a5b 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -8,9 +8,10 @@ #if canImport(XCoordinator) && canImport(RxSwift) -import XCoordinator import RxSwift +import XCoordinator +@MainActor public struct ReactiveRouter { // MARK: Stored Properties diff --git a/XCoordinator.podspec b/XCoordinator.podspec index ea6a488b..546a7e7f 100644 --- a/XCoordinator.podspec +++ b/XCoordinator.podspec @@ -23,9 +23,4 @@ Pod::Spec.new do |spec| ss.dependency 'RxSwift', '~> 6.5' ss.source_files = 'Sources/XCoordinatorRx/*.swift' end - - spec.subspec 'Combine' do |ss| - ss.dependency 'XCoordinator/Core' - ss.source_files = 'Sources/XCoordinatorCombine/*.swift' - end end From 14aa459248a3fd50220eda4436dba4ed68768323 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Thu, 28 May 2026 16:01:37 +0200 Subject: [PATCH 23/35] Replace jazzy documentation with DocC --- .github/workflows/ci.yml | 76 ++++ .github/workflows/docs.yml | 51 +++ .gitignore | 20 +- .jazzy.yaml | 8 - .../contents.xcworkspacedata | 7 + .travis.yml | 12 - Package.resolved | 32 -- Package.swift | 8 +- README.md | 413 ++++++------------ Scripts/build.sh | 15 +- Scripts/check_docs.sh | 21 - Scripts/docs.sh | 19 +- Scripts/docs_preview.sh | 14 +- .../CoordinatorPreviewingDelegateObject.swift | 53 --- .../InterruptibleTransitionAnimation.swift | 4 +- .../Animations/UIView+Store.swift | 26 -- .../XCoordinator/Combine/Router+Combine.swift | 51 ++- .../Coordinators/BaseCoordinator.swift | 22 +- .../Coordinators/BasicCoordinator.swift | 15 +- .../Coordinators/RedirectionRouter.swift | 4 +- .../XCoordinator/Coordinators/Router.swift | 37 +- .../XCoordinator/General/DeepLinking.swift | 2 +- .../Navigation/NavigationCoordinator.swift | 19 +- .../XCoordinator/Page/PageCoordinator.swift | 66 +-- .../XCoordinator/Split/SplitCoordinator.swift | 19 +- .../XCoordinator/Split/SplitTransition.swift | 10 + .../XCoordinator/SwiftUI/Representable.swift | 1 - .../SwiftUI/RepresentableContext.swift | 28 +- Sources/XCoordinator/SwiftUI/Routing.swift | 33 +- .../XCoordinator/SwiftUI/RoutingContext.swift | 56 ++- .../SwiftUI/RoutingContextProvider.swift | 10 + .../SwiftUI/RoutingController.swift | 54 ++- .../SwiftUI/Transition+SwiftUI.swift | 39 +- .../XCoordinator/SwiftUI/View+Router.swift | 38 +- .../XCoordinator/SwiftUI/View+Trigger.swift | 61 ++- .../XCoordinator/SwiftUI/WrappedRouter.swift | 42 +- .../XCoordinator/Tab/TabBarCoordinator.swift | 58 ++- .../XCoordinator/View/Transition+Init.swift | 40 +- .../View/UIViewController+Transition.swift | 22 - .../XCoordinator/View/ViewCoordinator.swift | 36 +- .../XCoordinator.docc/Documentation.md | 379 ++++++---------- Sources/XCoordinatorRx/Router+Rx.swift | 34 +- Tests/XCoordinatorTests/TransitionTests.swift | 11 +- .../css/chunk-384ef189.7ede1ea3.css | 9 - .../css/documentation-topic.29351f99.css | 9 - .../documentation-topic~topic.fccbd76c.css | 9 - ...opic~topic~tutorials-overview.1099452b.css | 9 - .../css/index.d5b499b0.css | 9 - .../css/topic.726a35dc.css | 9 - .../css/tutorials-overview.2a582c39.css | 9 - .../data/documentation/xcoordinator.json | 1 - .../documentation/xcoordinator/animation.json | 1 - .../animationcontroller(fordismissed:).json | 1 - ...ller(forpresented:presenting:source:).json | 1 - .../xcoordinator/animation/default.json | 1 - .../animation/dismissalanimation.json | 1 - .../init(presentation:dismissal:).json | 1 - ...ractioncontrollerfordismissal(using:).json | 1 - ...tioncontrollerforpresentation(using:).json | 1 - .../animation/presentationanimation.json | 1 - ...transitioningdelegate-implementations.json | 1 - .../xcoordinator/basecoordinator.json | 1 - .../basecoordinator/addchild(_:).json | 1 - .../basecoordinator/chain(routes:).json | 1 - .../basecoordinator/children.json | 1 - .../childtransitioncompleted().json | 1 - .../contexttrigger(_:with:).json | 1 - .../contexttrigger(_:with:completion:).json | 1 - .../coordinator-implementations.json | 1 - .../basecoordinator/deeplink(_:_:)-5tg0j.json | 1 - .../basecoordinator/deeplink(_:_:)-7vijh.json | 1 - ...nit(rootviewcontroller:initialroute:).json | 1 - ...ootviewcontroller:initialtransition:).json | 1 - ...performtransition(_:with:completion:).json | 1 - .../preparetransition(for:).json | 1 - .../presentable-implementations.json | 1 - .../basecoordinator/presented(from:).json | 1 - ...(for:triggeredby:handler:completion:).json | 1 - ...by:progress:shouldfinish:completion:).json | 1 - .../basecoordinator/registerparent(_:).json | 1 - .../registerpeek(for:route:).json | 1 - .../basecoordinator/removechild(_:).json | 1 - .../removechildrenifneeded().json | 1 - .../rootviewcontroller-swift.property.json | 1 - ...tviewcontroller-swift.typealias-6xno2.json | 1 - ...tviewcontroller-swift.typealias-8ybij.json | 1 - .../basecoordinator/router(for:).json | 1 - .../router-implementations.json | 1 - .../basecoordinator/setroot(for:).json | 1 - .../transitionperformer-implementations.json | 1 - .../basecoordinator/trigger(_:).json | 1 - .../trigger(_:completion:).json | 1 - .../basecoordinator/trigger(_:with:).json | 1 - .../trigger(_:with:completion:).json | 1 - ...rinteractivetransitions(triggeredby:).json | 1 - .../basecoordinator/viewcontroller-614jt.json | 1 - .../basecoordinator/viewcontroller-8iux.json | 1 - .../xcoordinator/basiccoordinator.json | 1 - ...nitialloadingtype:preparetransition:).json | 1 - .../basiccoordinator/initialloadingtype.json | 1 - .../initialloadingtype/!=(_:_:).json | 1 - .../equatable-implementations.json | 1 - .../initialloadingtype/immediately.json | 1 - .../initialloadingtype/presented.json | 1 - .../preparetransition(for:).json | 1 - .../basiccoordinator/presented(from:).json | 1 - .../basicnavigationcoordinator.json | 1 - .../xcoordinator/basictabbarcoordinator.json | 1 - .../xcoordinator/basicviewcoordinator.json | 1 - .../documentation/xcoordinator/container.json | 1 - .../xcoordinator/container/view.json | 1 - .../container/viewcontroller.json | 1 - .../contextpresentationhandler.json | 1 - .../xcoordinator/coordinator.json | 1 - .../coordinator/addchild(_:).json | 1 - .../coordinator/chain(routes:).json | 1 - .../childtransitioncompleted().json | 1 - .../contexttrigger(_:with:completion:).json | 1 - .../coordinator/deeplink(_:_:)-3460y.json | 1 - .../coordinator/deeplink(_:_:)-5e278.json | 1 - ...performtransition(_:with:completion:).json | 1 - .../coordinator/preparetransition(for:).json | 1 - .../presentable-implementations.json | 1 - .../coordinator/presented(from:).json | 1 - .../coordinator/registerpeek(for:route:).json | 1 - .../coordinator/removechild(_:).json | 1 - .../coordinator/removechildrenifneeded().json | 1 - .../coordinator/rootviewcontroller.json | 1 - .../coordinator/viewcontroller.json | 1 - .../interactivetransitionanimation.json | 1 - .../animatetransition(using:).json | 1 - .../cleanup().json | 1 - .../generateinteractioncontroller().json | 1 - .../init(duration:transition:).json | 1 - ...ition:generateinteractioncontroller:).json | 1 - .../init(transitionanimation:).json | 1 - ...ation:generateinteractioncontroller:).json | 1 - .../interactioncontroller.json | 1 - .../start().json | 1 - .../transitionduration(using:).json | 1 - .../interruptibletransitionanimation.json | 1 - .../animatetransition(using:).json | 1 - ...generateinterruptibleanimator(using:).json | 1 - .../init(duration:generateanimator:).json | 1 - ...mator:generateinteractioncontroller:).json | 1 - .../interruptibleanimator(using:).json | 1 - .../navigationanimationdelegate.json | 1 - .../gesturerecognizershouldbegin(_:).json | 1 - ...leinteractivepopgesturerecognizer(_:).json | 1 - ...er(_:animationcontrollerfor:from:to:).json | 1 - ...gationcontroller(_:didshow:animated:).json | 1 - ...ntroller(_:interactioncontrollerfor:).json | 1 - ...ationcontroller(_:willshow:animated:).json | 1 - .../setuppopgesturerecognizer(for:).json | 1 - .../transitionprogressthreshold.json | 1 - ...urerecognizerdelegate-implementations.json | 1 - ...ioncontrollerdelegate-implementations.json | 1 - .../velocitythreshold.json | 1 - .../xcoordinator/navigationcoordinator.json | 1 - .../animationdelegate.json | 1 - .../navigationcoordinator/delegate.json | 1 - ...nit(rootviewcontroller:initialroute:).json | 1 - .../init(rootviewcontroller:root:).json | 1 - .../xcoordinator/navigationtransition.json | 1 - .../xcoordinator/pagecoordinator.json | 1 - .../pagecoordinator/datasource.json | 1 - ...ntroller:datasource:set:_:direction:).json | 1 - ...ntroller:pages:loop:set:_:direction:).json | 1 - ...espacing:pages:loop:set:_:direction:).json | 1 - .../pagecoordinatordatasource.json | 1 - .../init(pages:loop:).json | 1 - .../pagecoordinatordatasource/loop.json | 1 - .../pagecoordinatordatasource/pages.json | 1 - ...iewcontroller(_:viewcontrollerafter:).json | 1 - ...ewcontroller(_:viewcontrollerbefore:).json | 1 - .../presentationcount(for:).json | 1 - .../presentationindex(for:).json | 1 - .../xcoordinator/pagetransition.json | 1 - .../percentdriveninteractioncontroller.json | 1 - .../cancel().json | 1 - .../finish().json | 1 - .../update(_:).json | 1 - .../xcoordinator/presentable.json | 1 - .../childtransitioncompleted()-3jrlv.json | 1 - .../childtransitioncompleted()-4nvzl.json | 1 - .../presentable/presented(from:)-7l34o.json | 1 - .../presentable/presented(from:)-vlfa.json | 1 - .../presentable/registerparent(_:)-1b0o3.json | 1 - .../presentable/registerparent(_:)-2syh0.json | 1 - .../presentable/router(for:).json | 1 - .../presentable/setroot(for:)-7uc80.json | 1 - .../presentable/setroot(for:)-8jtc1.json | 1 - .../presentable/viewcontroller.json | 1 - .../xcoordinator/presentationhandler.json | 1 - .../xcoordinator/redirectionrouter.json | 1 - .../childtransitioncompleted().json | 1 - .../contexttrigger(_:with:).json | 1 - .../contexttrigger(_:with:completion:).json | 1 - .../init(viewcontroller:parent:map:).json | 1 - .../maptoparentroute(_:).json | 1 - .../redirectionrouter/parent.json | 1 - .../presentable-implementations.json | 1 - .../redirectionrouter/presented(from:).json | 1 - .../redirectionrouter/registerparent(_:).json | 1 - .../redirectionrouter/router(for:).json | 1 - .../router-implementations.json | 1 - .../redirectionrouter/setroot(for:).json | 1 - .../redirectionrouter/trigger(_:).json | 1 - .../trigger(_:completion:).json | 1 - .../redirectionrouter/trigger(_:with:).json | 1 - .../trigger(_:with:completion:).json | 1 - .../redirectionrouter/viewcontroller.json | 1 - .../documentation/xcoordinator/route.json | 1 - .../documentation/xcoordinator/router.json | 1 - .../router/contexttrigger(_:with:).json | 1 - .../contexttrigger(_:with:completion:).json | 1 - .../xcoordinator/router/routetype.json | 1 - .../xcoordinator/router/trigger(_:).json | 1 - .../router/trigger(_:completion:).json | 1 - .../router/trigger(_:with:)-7y4ig.json | 1 - .../router/trigger(_:with:)-pmke.json | 1 - .../router/trigger(_:with:completion:).json | 1 - .../xcoordinator/splitcoordinator.json | 1 - ...nit(rootviewcontroller:initialroute:).json | 1 - ...ler:primary:secondary:supplementary:).json | 1 - .../xcoordinator/splittransition.json | 1 - .../statictransitionanimation.json | 1 - .../animatetransition(using:).json | 1 - .../statictransitionanimation/cleanup().json | 1 - .../init(duration:performanimation:).json | 1 - .../interactioncontroller.json | 1 - .../statictransitionanimation/start().json | 1 - .../transitionduration(using:).json | 1 - .../xcoordinator/tabbaranimationdelegate.json | 1 - ...ationcontrollerfortransitionfrom:to:).json | 1 - ...troller(_:didendcustomizing:changed:).json | 1 - .../tabbarcontroller(_:didselect:).json | 1 - ...ntroller(_:interactioncontrollerfor:).json | 1 - .../tabbarcontroller(_:shouldselect:).json | 1 - ...arcontroller(_:willbegincustomizing:).json | 1 - ...roller(_:willendcustomizing:changed:).json | 1 - ...barcontrollerdelegate-implementations.json | 1 - .../xcoordinator/tabbarcoordinator.json | 1 - .../tabbarcoordinator/delegate.json | 1 - ...nit(rootviewcontroller:initialroute:).json | 1 - .../init(rootviewcontroller:tabs:).json | 1 - ...ootviewcontroller:tabs:select:)-39l8c.json | 1 - ...rootviewcontroller:tabs:select:)-w397.json | 1 - .../xcoordinator/tabbartransition.json | 1 - .../xcoordinator/transition.json | 1 - .../xcoordinator/transition/animation.json | 1 - .../transition/dismiss(animation:).json | 1 - .../transition/dismisstoroot(animation:).json | 1 - .../xcoordinator/transition/embed(_:in:).json | 1 - ...presentables:animationinuse:perform:).json | 1 - .../transition/multiple(_:)-2uy55.json | 1 - .../transition/multiple(_:)-4o51b.json | 1 - .../xcoordinator/transition/none().json | 1 - .../transition/perform(_:on:).json | 1 - .../perform(on:with:completion:).json | 1 - .../transition/performclosure.json | 1 - .../transition/pop(animation:).json | 1 - .../transition/pop(to:animation:).json | 1 - .../transition/poptoroot(animation:).json | 1 - .../transition/present(_:animation:).json | 1 - .../xcoordinator/transition/presentables.json | 1 - .../presentonroot(_:animation:).json | 1 - .../transition/push(_:animation:).json | 1 - .../xcoordinator/transition/route(_:on:).json | 1 - .../transition/select(_:animation:).json | 1 - .../transition/select(index:animation:).json | 1 - .../xcoordinator/transition/set(_:).json | 1 - .../transition/set(_:_:direction:).json | 1 - .../transition/set(_:animation:)-4airv.json | 1 - .../transition/set(_:animation:)-9wr0e.json | 1 - .../xcoordinator/transition/set(_:for:).json | 1 - .../xcoordinator/transition/show(_:).json | 1 - .../transition/showdetail(_:).json | 1 - .../transitionprotocol-implementations.json | 1 - .../transition/trigger(_:on:).json | 1 - .../xcoordinator/transitionanimation.json | 1 - .../transitionanimation/cleanup().json | 1 - .../interactioncontroller.json | 1 - .../transitionanimation/start().json | 1 - .../xcoordinator/transitioncontext.json | 1 - .../transitioncontext/animation.json | 1 - .../transitioncontext/presentables.json | 1 - .../xcoordinator/transitionoptions.json | 1 - .../transitionoptions/animated.json | 1 - .../transitionoptions/init(animated:).json | 1 - .../xcoordinator/transitionperformer.json | 1 - ...performtransition(_:with:completion:).json | 1 - .../rootviewcontroller.json | 1 - .../transitionperformer/transitiontype.json | 1 - .../xcoordinator/transitionprotocol.json | 1 - .../multiple(_:)-5w9m5.json | 1 - .../transitionprotocol/multiple(_:)-ukju.json | 1 - .../perform(on:with:completion:).json | 1 - .../rootviewcontroller.json | 1 - .../xcoordinator/viewcoordinator.json | 1 - ...nit(rootviewcontroller:initialroute:).json | 1 - .../xcoordinator/viewtransition.json | 1 - .../developer-og-twitter.jpg | Bin 12562 -> 0 bytes XCoordinator.doccarchive/developer-og.jpg | Bin 12856 -> 0 bytes .../index.html | 1 - .../index.html | 1 - .../xcoordinator/animation/default/index.html | 1 - .../animation/dismissalanimation/index.html | 1 - .../xcoordinator/animation/index.html | 1 - .../init(presentation:dismissal:)/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../presentationanimation/index.html | 1 - .../index.html | 1 - .../basecoordinator/addchild(_:)/index.html | 1 - .../basecoordinator/chain(routes:)/index.html | 1 - .../basecoordinator/children/index.html | 1 - .../childtransitioncompleted()/index.html | 1 - .../contexttrigger(_:with:)/index.html | 1 - .../index.html | 1 - .../coordinator-implementations/index.html | 1 - .../deeplink(_:_:)-5tg0j/index.html | 1 - .../deeplink(_:_:)-7vijh/index.html | 1 - .../xcoordinator/basecoordinator/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../preparetransition(for:)/index.html | 1 - .../presentable-implementations/index.html | 1 - .../presented(from:)/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../registerparent(_:)/index.html | 1 - .../registerpeek(for:route:)/index.html | 1 - .../removechild(_:)/index.html | 1 - .../removechildrenifneeded()/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../basecoordinator/router(for:)/index.html | 1 - .../router-implementations/index.html | 1 - .../basecoordinator/setroot(for:)/index.html | 1 - .../index.html | 1 - .../basecoordinator/trigger(_:)/index.html | 1 - .../trigger(_:completion:)/index.html | 1 - .../trigger(_:with:)/index.html | 1 - .../trigger(_:with:completion:)/index.html | 1 - .../index.html | 1 - .../viewcontroller-614jt/index.html | 1 - .../viewcontroller-8iux/index.html | 1 - .../xcoordinator/basiccoordinator/index.html | 1 - .../index.html | 1 - .../initialloadingtype/!=(_:_:)/index.html | 1 - .../equatable-implementations/index.html | 1 - .../initialloadingtype/immediately/index.html | 1 - .../initialloadingtype/index.html | 1 - .../initialloadingtype/presented/index.html | 1 - .../preparetransition(for:)/index.html | 1 - .../presented(from:)/index.html | 1 - .../basicnavigationcoordinator/index.html | 1 - .../basictabbarcoordinator/index.html | 1 - .../basicviewcoordinator/index.html | 1 - .../xcoordinator/container/index.html | 1 - .../xcoordinator/container/view/index.html | 1 - .../container/viewcontroller/index.html | 1 - .../contextpresentationhandler/index.html | 1 - .../coordinator/addchild(_:)/index.html | 1 - .../coordinator/chain(routes:)/index.html | 1 - .../childtransitioncompleted()/index.html | 1 - .../index.html | 1 - .../deeplink(_:_:)-3460y/index.html | 1 - .../deeplink(_:_:)-5e278/index.html | 1 - .../xcoordinator/coordinator/index.html | 1 - .../index.html | 1 - .../preparetransition(for:)/index.html | 1 - .../presentable-implementations/index.html | 1 - .../coordinator/presented(from:)/index.html | 1 - .../registerpeek(for:route:)/index.html | 1 - .../coordinator/removechild(_:)/index.html | 1 - .../removechildrenifneeded()/index.html | 1 - .../coordinator/rootviewcontroller/index.html | 1 - .../coordinator/viewcontroller/index.html | 1 - .../documentation/xcoordinator/index.html | 1 - .../animatetransition(using:)/index.html | 1 - .../cleanup()/index.html | 1 - .../index.html | 1 - .../interactivetransitionanimation/index.html | 1 - .../init(duration:transition:)/index.html | 1 - .../index.html | 1 - .../init(transitionanimation:)/index.html | 1 - .../index.html | 1 - .../interactioncontroller/index.html | 1 - .../start()/index.html | 1 - .../transitionduration(using:)/index.html | 1 - .../animatetransition(using:)/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../interruptibleanimator(using:)/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../navigationanimationdelegate/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../transitionprogressthreshold/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../velocitythreshold/index.html | 1 - .../animationdelegate/index.html | 1 - .../navigationcoordinator/delegate/index.html | 1 - .../navigationcoordinator/index.html | 1 - .../index.html | 1 - .../init(rootviewcontroller:root:)/index.html | 1 - .../navigationtransition/index.html | 1 - .../pagecoordinator/datasource/index.html | 1 - .../xcoordinator/pagecoordinator/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../pagecoordinatordatasource/index.html | 1 - .../init(pages:loop:)/index.html | 1 - .../pagecoordinatordatasource/loop/index.html | 1 - .../pages/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../presentationcount(for:)/index.html | 1 - .../presentationindex(for:)/index.html | 1 - .../xcoordinator/pagetransition/index.html | 1 - .../cancel()/index.html | 1 - .../finish()/index.html | 1 - .../index.html | 1 - .../update(_:)/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../xcoordinator/presentable/index.html | 1 - .../presented(from:)-7l34o/index.html | 1 - .../presented(from:)-vlfa/index.html | 1 - .../registerparent(_:)-1b0o3/index.html | 1 - .../registerparent(_:)-2syh0/index.html | 1 - .../presentable/router(for:)/index.html | 1 - .../setroot(for:)-7uc80/index.html | 1 - .../setroot(for:)-8jtc1/index.html | 1 - .../presentable/viewcontroller/index.html | 1 - .../presentationhandler/index.html | 1 - .../childtransitioncompleted()/index.html | 1 - .../contexttrigger(_:with:)/index.html | 1 - .../index.html | 1 - .../xcoordinator/redirectionrouter/index.html | 1 - .../index.html | 1 - .../maptoparentroute(_:)/index.html | 1 - .../redirectionrouter/parent/index.html | 1 - .../presentable-implementations/index.html | 1 - .../presented(from:)/index.html | 1 - .../registerparent(_:)/index.html | 1 - .../redirectionrouter/router(for:)/index.html | 1 - .../router-implementations/index.html | 1 - .../setroot(for:)/index.html | 1 - .../redirectionrouter/trigger(_:)/index.html | 1 - .../trigger(_:completion:)/index.html | 1 - .../trigger(_:with:)/index.html | 1 - .../trigger(_:with:completion:)/index.html | 1 - .../viewcontroller/index.html | 1 - .../xcoordinator/route/index.html | 1 - .../router/contexttrigger(_:with:)/index.html | 1 - .../index.html | 1 - .../xcoordinator/router/index.html | 1 - .../xcoordinator/router/routetype/index.html | 1 - .../router/trigger(_:)/index.html | 1 - .../router/trigger(_:completion:)/index.html | 1 - .../router/trigger(_:with:)-7y4ig/index.html | 1 - .../router/trigger(_:with:)-pmke/index.html | 1 - .../trigger(_:with:completion:)/index.html | 1 - .../xcoordinator/splitcoordinator/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../xcoordinator/splittransition/index.html | 1 - .../animatetransition(using:)/index.html | 1 - .../cleanup()/index.html | 1 - .../statictransitionanimation/index.html | 1 - .../index.html | 1 - .../interactioncontroller/index.html | 1 - .../start()/index.html | 1 - .../transitionduration(using:)/index.html | 1 - .../tabbaranimationdelegate/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../tabbarcontroller(_:didselect:)/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../tabbarcoordinator/delegate/index.html | 1 - .../xcoordinator/tabbarcoordinator/index.html | 1 - .../index.html | 1 - .../init(rootviewcontroller:tabs:)/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../xcoordinator/tabbartransition/index.html | 1 - .../transition/animation/index.html | 1 - .../transition/dismiss(animation:)/index.html | 1 - .../dismisstoroot(animation:)/index.html | 1 - .../transition/embed(_:in:)/index.html | 1 - .../xcoordinator/transition/index.html | 1 - .../index.html | 1 - .../transition/multiple(_:)-2uy55/index.html | 1 - .../transition/multiple(_:)-4o51b/index.html | 1 - .../xcoordinator/transition/none()/index.html | 1 - .../transition/perform(_:on:)/index.html | 1 - .../perform(on:with:completion:)/index.html | 1 - .../transition/performclosure/index.html | 1 - .../transition/pop(animation:)/index.html | 1 - .../transition/pop(to:animation:)/index.html | 1 - .../poptoroot(animation:)/index.html | 1 - .../present(_:animation:)/index.html | 1 - .../transition/presentables/index.html | 1 - .../presentonroot(_:animation:)/index.html | 1 - .../transition/push(_:animation:)/index.html | 1 - .../transition/route(_:on:)/index.html | 1 - .../select(_:animation:)/index.html | 1 - .../select(index:animation:)/index.html | 1 - .../transition/set(_:)/index.html | 1 - .../transition/set(_:_:direction:)/index.html | 1 - .../set(_:animation:)-4airv/index.html | 1 - .../set(_:animation:)-9wr0e/index.html | 1 - .../transition/set(_:for:)/index.html | 1 - .../transition/show(_:)/index.html | 1 - .../transition/showdetail(_:)/index.html | 1 - .../index.html | 1 - .../transition/trigger(_:on:)/index.html | 1 - .../transitionanimation/cleanup()/index.html | 1 - .../transitionanimation/index.html | 1 - .../interactioncontroller/index.html | 1 - .../transitionanimation/start()/index.html | 1 - .../transitioncontext/animation/index.html | 1 - .../xcoordinator/transitioncontext/index.html | 1 - .../transitioncontext/presentables/index.html | 1 - .../transitionoptions/animated/index.html | 1 - .../xcoordinator/transitionoptions/index.html | 1 - .../init(animated:)/index.html | 1 - .../transitionperformer/index.html | 1 - .../index.html | 1 - .../rootviewcontroller/index.html | 1 - .../transitiontype/index.html | 1 - .../transitionprotocol/index.html | 1 - .../multiple(_:)-5w9m5/index.html | 1 - .../multiple(_:)-ukju/index.html | 1 - .../perform(on:with:completion:)/index.html | 1 - .../rootviewcontroller/index.html | 1 - .../xcoordinator/viewcoordinator/index.html | 1 - .../index.html | 1 - .../xcoordinator/viewtransition/index.html | 1 - XCoordinator.doccarchive/favicon.ico | Bin 15406 -> 0 bytes XCoordinator.doccarchive/favicon.svg | 11 - .../img/added-icon.d6f7e47d.svg | 11 - .../img/deprecated-icon.015b4f17.svg | 11 - .../img/modified-icon.f496e73d.svg | 11 - .../img/no-image@2x.df2a0a50.png | Bin 6155 -> 0 bytes XCoordinator.doccarchive/index.html | 1 - .../index/availability.index | Bin 939 -> 0 bytes XCoordinator.doccarchive/index/data.mdb | Bin 245760 -> 0 bytes XCoordinator.doccarchive/index/index.json | 1 - .../index/navigator.index | Bin 54473 -> 0 bytes .../js/chunk-2d0d3105.cd72cc8e.js | 10 - .../js/chunk-384ef189.bb1ed903.js | 10 - .../js/chunk-vendors.b24b7aaa.js | 21 - .../js/documentation-topic.2ed269e3.js | 10 - .../js/documentation-topic~topic.900fc80c.js | 20 - ...topic~topic~tutorials-overview.5b27b87b.js | 10 - .../js/highlight-js-bash.1b52852f.js | 10 - .../js/highlight-js-c.d1db3f17.js | 10 - .../js/highlight-js-cpp.eaddddbe.js | 10 - .../js/highlight-js-css.75eab1fe.js | 10 - .../highlight-js-custom-markdown.7cffc4b3.js | 10 - .../js/highlight-js-custom-swift.5cda5c20.js | 10 - .../js/highlight-js-diff.62d66733.js | 10 - .../js/highlight-js-http.163e45b6.js | 10 - .../js/highlight-js-java.8326d9d8.js | 10 - .../js/highlight-js-javascript.acb8a8eb.js | 10 - .../js/highlight-js-json.471128d2.js | 10 - .../js/highlight-js-llvm.6100b125.js | 10 - .../js/highlight-js-markdown.90077643.js | 10 - .../js/highlight-js-objectivec.bcdf5156.js | 10 - .../js/highlight-js-perl.757d7b6f.js | 10 - .../js/highlight-js-php.cc8d6c27.js | 10 - .../js/highlight-js-python.c214ed92.js | 10 - .../js/highlight-js-ruby.f889d392.js | 10 - .../js/highlight-js-scss.62ee18da.js | 10 - .../js/highlight-js-shell.dd7f411f.js | 10 - .../js/highlight-js-swift.84f3e88c.js | 10 - .../js/highlight-js-xml.9c3688c7.js | 10 - XCoordinator.doccarchive/js/index.aa320932.js | 9 - XCoordinator.doccarchive/js/topic.bb695832.js | 10 - .../js/tutorials-overview.2cadc732.js | 10 - XCoordinator.doccarchive/metadata.json | 1 - XCoordinator.podspec | 12 +- 600 files changed, 998 insertions(+), 1924 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/docs.yml delete mode 100644 .jazzy.yaml create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata delete mode 100644 .travis.yml delete mode 100644 Package.resolved delete mode 100755 Scripts/check_docs.sh delete mode 100755 Sources/XCoordinator/Animations/CoordinatorPreviewingDelegateObject.swift delete mode 100644 Sources/XCoordinator/Animations/UIView+Store.swift delete mode 100644 XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css delete mode 100644 XCoordinator.doccarchive/css/documentation-topic.29351f99.css delete mode 100644 XCoordinator.doccarchive/css/documentation-topic~topic.fccbd76c.css delete mode 100644 XCoordinator.doccarchive/css/documentation-topic~topic~tutorials-overview.1099452b.css delete mode 100644 XCoordinator.doccarchive/css/index.d5b499b0.css delete mode 100644 XCoordinator.doccarchive/css/topic.726a35dc.css delete mode 100644 XCoordinator.doccarchive/css/tutorials-overview.2a582c39.css delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(fordismissed:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/default.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/dismissalanimation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/init(presentation:dismissal:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/presentationanimation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/addchild(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/chain(routes:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/children.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/childtransitioncompleted().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/coordinator-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/preparetransition(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presentable-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presented(from:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerparent(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerpeek(for:route:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechild(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechildrenifneeded().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/setroot(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/transitionperformer-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-614jt.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-8iux.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/preparetransition(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/presented(from:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basicnavigationcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basictabbarcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/basicviewcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/container.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/container/view.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/container/viewcontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/contextpresentationhandler.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/addchild(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/chain(routes:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/childtransitioncompleted().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/performtransition(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/preparetransition(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presentable-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presented(from:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/registerpeek(for:route:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechild(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechildrenifneeded().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/rootviewcontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/viewcontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/cleanup().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/start().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/animationdelegate.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/delegate.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/navigationtransition.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/datasource.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/loop.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pages.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/pagetransition.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/cancel().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/finish().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-7l34o.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-vlfa.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-2syh0.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/router(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-7uc80.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-8jtc1.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/viewcontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/presentationhandler.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/childtransitioncompleted().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/parent.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presentable-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presented(from:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/registerparent(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/setroot(for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/viewcontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/route.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/routetype.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-7y4ig.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-pmke.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/splittransition.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/animatetransition(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/cleanup().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/interactioncontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/start().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/transitionduration(using:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/delegate.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/tabbartransition.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/animation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismiss(animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismisstoroot(animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/embed(_:in:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-2uy55.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-4o51b.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/none().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(_:on:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(on:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/performclosure.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(to:animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/poptoroot(animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/present(_:animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentables.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentonroot(_:animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/push(_:animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/route(_:on:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(_:animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(index:animation:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:_:direction:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-4airv.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-9wr0e.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:for:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/show(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/showdetail(_:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/transitionprotocol-implementations.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transition/trigger(_:on:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/cleanup().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/interactioncontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/start().json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/animation.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/presentables.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/animated.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/init(animated:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/rootviewcontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/transitiontype.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/rootviewcontroller.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator.json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:).json delete mode 100644 XCoordinator.doccarchive/data/documentation/xcoordinator/viewtransition.json delete mode 100644 XCoordinator.doccarchive/developer-og-twitter.jpg delete mode 100644 XCoordinator.doccarchive/developer-og.jpg delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(fordismissed:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/default/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/dismissalanimation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/init(presentation:dismissal:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/presentationanimation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/addchild(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/chain(routes:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/children/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/childtransitioncompleted()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/coordinator-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/preparetransition(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presentable-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presented(from:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerparent(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerpeek(for:route:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechild(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechildrenifneeded()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/setroot(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/transitionperformer-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-614jt/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-8iux/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/preparetransition(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/presented(from:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basicnavigationcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basictabbarcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/basicviewcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/container/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/container/view/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/container/viewcontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/contextpresentationhandler/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/addchild(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/chain(routes:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/childtransitioncompleted()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/performtransition(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/preparetransition(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presentable-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presented(from:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/registerpeek(for:route:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechild(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechildrenifneeded()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/rootviewcontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/coordinator/viewcontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/cleanup()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/start()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/animationdelegate/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/delegate/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/navigationtransition/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/datasource/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/loop/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pages/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/pagetransition/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/cancel()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/finish()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-7l34o/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-vlfa/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-2syh0/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/router(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-7uc80/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-8jtc1/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentable/viewcontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/presentationhandler/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/childtransitioncompleted()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/parent/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presentable-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presented(from:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/registerparent(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/setroot(for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/viewcontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/route/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/routetype/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-7y4ig/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-pmke/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/splittransition/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/animatetransition(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/cleanup()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/interactioncontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/start()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/transitionduration(using:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/delegate/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/tabbartransition/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/animation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/dismiss(animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/dismisstoroot(animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/embed(_:in:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-2uy55/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-4o51b/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/none()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(_:on:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(on:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/performclosure/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(to:animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/poptoroot(animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/present(_:animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/presentables/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/presentonroot(_:animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/push(_:animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/route(_:on:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/select(_:animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/select(index:animation:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:_:direction:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-4airv/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-9wr0e/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:for:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/show(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/showdetail(_:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/transitionprotocol-implementations/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transition/trigger(_:on:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/cleanup()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/interactioncontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/start()/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/animation/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/presentables/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/animated/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/init(animated:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/rootviewcontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/transitiontype/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/rootviewcontroller/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:)/index.html delete mode 100644 XCoordinator.doccarchive/documentation/xcoordinator/viewtransition/index.html delete mode 100644 XCoordinator.doccarchive/favicon.ico delete mode 100644 XCoordinator.doccarchive/favicon.svg delete mode 100644 XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg delete mode 100644 XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg delete mode 100644 XCoordinator.doccarchive/img/modified-icon.f496e73d.svg delete mode 100644 XCoordinator.doccarchive/img/no-image@2x.df2a0a50.png delete mode 100644 XCoordinator.doccarchive/index.html delete mode 100644 XCoordinator.doccarchive/index/availability.index delete mode 100755 XCoordinator.doccarchive/index/data.mdb delete mode 100644 XCoordinator.doccarchive/index/index.json delete mode 100644 XCoordinator.doccarchive/index/navigator.index delete mode 100644 XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js delete mode 100644 XCoordinator.doccarchive/js/chunk-384ef189.bb1ed903.js delete mode 100644 XCoordinator.doccarchive/js/chunk-vendors.b24b7aaa.js delete mode 100644 XCoordinator.doccarchive/js/documentation-topic.2ed269e3.js delete mode 100644 XCoordinator.doccarchive/js/documentation-topic~topic.900fc80c.js delete mode 100644 XCoordinator.doccarchive/js/documentation-topic~topic~tutorials-overview.5b27b87b.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-bash.1b52852f.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-c.d1db3f17.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-cpp.eaddddbe.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-css.75eab1fe.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-custom-markdown.7cffc4b3.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-custom-swift.5cda5c20.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-diff.62d66733.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-http.163e45b6.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-java.8326d9d8.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-javascript.acb8a8eb.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-json.471128d2.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-llvm.6100b125.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-markdown.90077643.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-objectivec.bcdf5156.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-perl.757d7b6f.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-php.cc8d6c27.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-python.c214ed92.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-ruby.f889d392.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-scss.62ee18da.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-shell.dd7f411f.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-swift.84f3e88c.js delete mode 100644 XCoordinator.doccarchive/js/highlight-js-xml.9c3688c7.js delete mode 100644 XCoordinator.doccarchive/js/index.aa320932.js delete mode 100644 XCoordinator.doccarchive/js/topic.bb695832.js delete mode 100644 XCoordinator.doccarchive/js/tutorials-overview.2cadc732.js delete mode 100644 XCoordinator.doccarchive/metadata.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..2481847c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,76 @@ +name: CI + +on: + push: + branches: [master, main, "feature/**", "release/**"] + pull_request: + branches: [master, main] + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-test: + name: Build & Test (iOS Simulator) + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_15.4.app + + - name: Show toolchain + run: | + xcodebuild -version + swift --version + + - name: Resolve packages + run: swift package resolve + + - name: Build (iOS Simulator) + run: | + xcodebuild build \ + -scheme XCoordinator \ + -destination 'generic/platform=iOS Simulator' \ + -skipPackagePluginValidation \ + CODE_SIGNING_ALLOWED=NO + + - name: Test + run: | + xcodebuild test \ + -scheme XCoordinator \ + -destination 'platform=iOS Simulator,name=iPhone 15' \ + -skipPackagePluginValidation \ + CODE_SIGNING_ALLOWED=NO + + pod-lint: + name: CocoaPods lint + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_15.4.app + + - name: Lint podspec + run: pod lib lint --allow-warnings --fail-fast + + docs: + name: DocC build + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_15.4.app + + - name: Build documentation + run: | + swift package \ + --allow-writing-to-directory ./Documentation \ + generate-documentation \ + --target XCoordinator \ + --output-path ./Documentation \ + --transform-for-static-hosting \ + --warnings-as-errors diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..334ce2cb --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,51 @@ +name: Publish documentation + +on: + push: + tags: ["*"] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + build: + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_15.4.app + + - name: Build documentation + run: | + swift package \ + --allow-writing-to-directory ./Documentation \ + generate-documentation \ + --target XCoordinator \ + --output-path ./Documentation \ + --transform-for-static-hosting \ + --hosting-base-path XCoordinator \ + --warnings-as-errors + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./Documentation + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index eeceeef6..5c59d728 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ -# Mac OS X -*.DS_Store +# macOS +**/.DS_Store # Xcode -.build +.build/ *.pbxuser *.mode1v3 *.mode2v3 @@ -12,17 +12,21 @@ project.xcworkspace/ xcuserdata/ Pods/*.xcodeproj/xcuserdata/ +# Swift Package Manager +/.swiftpm/xcode/xcuserdata/ +/.swiftpm/xcode/package.xcworkspace/xcuserdata/ +/.swiftpm/configuration/ +Package.resolved + # Generated files *.o *.pyc -# Docs -docs/docsets/XCoordinator.tgz -docs/undocumented.json +# Documentation outputs +/Documentation/ +*.doccarchive/ # Backup files *~.nib \#*# .#* - -.swiftpm diff --git a/.jazzy.yaml b/.jazzy.yaml deleted file mode 100644 index a3a42f23..00000000 --- a/.jazzy.yaml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Stefan Kofler & Paul Kraft" -author_url: https://quickbirdstudios.com -podspec: XCoordinator.podspec -docset_icon: Images/logo-single.png -github_url: https://github.com/quickbirdstudios/XCoordinator -hide_documentation_coverage: true -theme: fullwidth -clean: true diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f4cf7c7..00000000 --- a/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: objective-c -osx_image: xcode11 - -install: -# - gem update -# - gem install jazzy -# - brew update -# - brew install sourcekitten -script: - - cd scripts - - ./build.sh -# - ./check_docs.sh diff --git a/Package.resolved b/Package.resolved deleted file mode 100644 index c012a0fc..00000000 --- a/Package.resolved +++ /dev/null @@ -1,32 +0,0 @@ -{ - "pins" : [ - { - "identity" : "rxswift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/ReactiveX/RxSwift.git", - "state" : { - "revision" : "7c17a6ccca06b5c107cfa4284e634562ddaf5951", - "version" : "6.2.0" - } - }, - { - "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 37e42ece..4a8959d8 100644 --- a/Package.swift +++ b/Package.swift @@ -1,10 +1,10 @@ -// swift-tools-version:5.8 +// swift-tools-version:5.9 import PackageDescription let package = Package( name: "XCoordinator", - platforms: [.iOS(.v11), .tvOS(.v11)], + platforms: [.iOS(.v14), .tvOS(.v14)], products: [ .library( name: "XCoordinator", @@ -14,8 +14,8 @@ let package = Package( targets: ["XCoordinatorRx"]), ], dependencies: [ - .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"), + .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.3.0"), + .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "6.5.0"), ], targets: [ .target( diff --git a/README.md b/README.md index d57fd01f..9539c5fd 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,60 @@

- + XCoordinator logo

-# [![Build Status](https://travis-ci.com/quickbirdstudios/XCoordinator.svg?branch=master)](https://travis-ci.com/quickbirdstudios/XCoordinator) [![CocoaPods Compatible](https://img.shields.io/cocoapods/p/XCoordinator)](https://cocoapods.org/pods/XCoordinator) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Documentation](https://img.shields.io/badge/documentation-100%25-brightgreen)](https://quickbirdstudios.github.io/XCoordinator) [![Platform](https://img.shields.io/badge/platform-iOS-lightgrey.svg)](https://github.com/quickbirdstudios/XCoordinator) [![License](https://img.shields.io/cocoapods/l/XCoordinator.svg)](https://github.com/quickbirdstudios/XCoordinator/blob/master/LICENSE) +# XCoordinator +[![CI](https://github.com/quickbirdstudios/XCoordinator/actions/workflows/ci.yml/badge.svg)](https://github.com/quickbirdstudios/XCoordinator/actions/workflows/ci.yml) +[![Swift](https://img.shields.io/badge/Swift-5.9-orange.svg)](https://swift.org) +[![Platforms](https://img.shields.io/badge/platforms-iOS%2014%20%7C%20tvOS%2014-lightgrey.svg)](https://github.com/quickbirdstudios/XCoordinator) +[![SwiftPM](https://img.shields.io/badge/SPM-compatible-brightgreen.svg)](https://swift.org/package-manager/) +[![CocoaPods](https://img.shields.io/cocoapods/v/XCoordinator)](https://cocoapods.org/pods/XCoordinator) +[![License](https://img.shields.io/cocoapods/l/XCoordinator.svg)](LICENSE) +**Type-safe, enum-driven navigation for UIKit and SwiftUI based on the Coordinator pattern.** -⚠️ We have recently released XCoordinator 3.0. To upgrade your app to the newest version, please make sure to replace all occurrences of `WeakRouter` with `weak any Router`, `UnownedRouter` with `unowned any Router` and `StrongRouter` with `any Router`. The Combine extensions are now available right within the main framework, so no need to import/specify it separately. Further, make sure to check out the new SwiftUI additions! +XCoordinator decouples navigation from view controllers and view models: you describe a flow as a `Route` enum, and a `Coordinator` decides which `Transition` to perform for each route. The result is reusable views, view models without navigation logic, and a single place to evolve the flow of your app. -“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. +- 📚 **API reference** — [hosted DocC documentation](https://quickbirdstudios.github.io/XCoordinator/) +- 🧪 **Example app** — [XCoordinator-Example](https://github.com/quickbirdstudios/XCoordinator-Example) — a complete MVVM-C app using XCoordinator +- 🚀 **What's new in 3.0** — see [Migrating from 2.x to 3.0](#-migrating-from-2x-to-30) below -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: +## Table of contents -

- -

+- [Why XCoordinator](#-why-xcoordinator) +- [Getting started](#%EF%B8%8F-getting-started) +- [SwiftUI interop](#-swiftui-interop) +- [Choosing a router reference](#-choosing-a-router-reference) +- [Custom transitions](#-custom-transitions) +- [Deep linking](#-deep-linking) +- [RedirectionRouter](#-redirectionrouter) +- [Combine and RxSwift](#-combine-and-rxswift) +- [Migrating from 2.x to 3.0](#-migrating-from-2x-to-30) +- [Installation](#-installation) +- [Requirements](#-requirements) +- [Contributing](#%EF%B8%8F-contributing) + +## 🤔 Why XCoordinator -## 🏃‍♂️Getting started +- **Type-safe routes** — enums give you autocompletion and compile-time errors instead of stringly-typed paths. +- **One place for navigation** — view models trigger routes; the coordinator decides what each route does. +- **UIKit and SwiftUI** — a single coordinator can mix `UIViewController` flows with SwiftUI views via `RoutingController`, `WrappedRouter`, and `@Routing`. +- **Reusable** — coordinators, transitions, and animations compose; the same view model works inside different flows. +- **Custom transitions and deep linking** built in — interactive transitions, presentation animations, and route chains across coordinator boundaries. -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.). +

+ MVVM-C diagram showing how Coordinator connects View, ViewModel, and Model +
How Coordinator fits into MVVM +

-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. +## 🏃‍♂️ Getting started -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`. +Define a `Route` enum and a `Coordinator` that prepares a transition for each case: ```swift enum UserListRoute: Route { case home - case users case user(String) - case registerUsersPeek(from: Container) case logout } @@ -43,20 +66,9 @@ class UserListCoordinator: NavigationCoordinator { 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) + return .push(HomeViewController()) + case .user(let name): + return .present(UserCoordinator(user: name), animation: .default) case .logout: return .dismiss() } @@ -64,35 +76,23 @@ class UserListCoordinator: NavigationCoordinator { } ``` -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. +Trigger routes from a view model that holds a typed router reference: ```swift class HomeViewModel { - unowned let router: any Router + unowned let router: any Router - init(router: any Router) { + init(router: any Router) { self.router = router } - /* ... */ - - func usersButtonPressed() { - router.trigger(.users) + func userButtonPressed(name: String) { + router.trigger(.user(name)) } } ``` -### 🏗 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. +Bootstrap the initial coordinator from your app delegate or `@main` entry point — hold a strong `any Router` to keep it alive: ```swift @UIApplicationMain @@ -107,15 +107,15 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } ``` -## 🤸‍♂️ Extras +### How transitions compose -For more advanced use, XCoordinator offers many more customization options. We introduce SwiftUI interoperability, 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. +An app's structure is defined by nesting coordinators. Whenever your app changes flow (a new navigation stack, a new tab bar) introduce a new coordinator. Each coordinator owns a `rootViewController` (a `UINavigationController`, `UITabBarController`, etc.) that becomes the destination when another coordinator pushes or presents it. -### 🚀 SwiftUI +## 🚀 SwiftUI interop -To make the use of XCoordinator with SwiftUI easier, we provide the following capabilities: +XCoordinator integrates with SwiftUI in two directions. -You can use an existing coordinator in your SwiftUI app by using the `WrappedRouter` view. The closure is performed when the view appears initially and the coordinator stays the same instance while being displayed. +**Embed a coordinator inside SwiftUI** with `WrappedRouter`. The closure builds the coordinator on first appearance and the instance is retained for the lifetime of the view: ```swift struct ContentView: View { @@ -127,321 +127,196 @@ struct ContentView: View { } ``` -But how do you navigate to a SwiftUI view from a given coordinator, you are asking? Simply use `RoutingController`, a subclass of `UIHostingController` with some added functionality. +**Push or present a SwiftUI view from a UIKit coordinator** with `RoutingController`, a `UIHostingController` subclass that propagates the current `RoutingContext` into the SwiftUI environment: ```swift class UsersCoordinator: NavigationCoordinator { - - /* ... */ - override func prepareTransition(for route: UserRoute) -> NavigationTransition { switch route { case .user(let name): - let viewController = RoutingController { - UserView(name: name) - } - return .push(viewController) - /* ... */ + return .push(RoutingController { UserView(name: name) }) } } } ``` -To gain access to a given parent router, you can use the `Routing` property wrapper. Simply specify it in your SwiftUI view like this: +**Trigger routes from inside a SwiftUI view** with `@Routing`: ```swift struct ChildView: View { @Routing var usersRouter - + var body: some View { - Button { - usersRouter.trigger(...) - } label: { - Text("Trigger") + Button("Open") { + usersRouter.trigger(.user("Bob")) } } } ``` -Further, if you happen to not want to trigger a UIKit transition, but instead would like to perform some SwiftUI state change, you can use one of the SwiftUI transitions, e.g. `Transition.withAnimation`. +**Drive SwiftUI state changes from `prepareTransition`** without performing a UIKit transition — use `Transition.withAnimation` or `Transition.withTransaction`: ```swift -class HomeCoordinator: TabCoordinator { +class HomeCoordinator: TabBarCoordinator { @Binding var selection: HomeTab - - override func prepareTransition(for route: HomeRoute) -> TabTransition { + + override func prepareTransition(for route: HomeRoute) -> TabBarTransition { switch route { - case .select(let index): - return .withAnimation { selection = HomeTab.allCases[index] } - /* ... */ + case .select(let tab): + return .withAnimation { selection = tab } } } } ``` -### 🌗 Custom Transitions +For declarative triggering, `triggerOnAppear`, `triggerOnChange(of:)`, and `trigger(when:)` view modifiers fire routes through `@Routing` automatically. -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. +## 🧭 Choosing a router reference -```swift -class UsersCoordinator: NavigationCoordinator { +Since 3.0, type erasure is provided by Swift's parameterized existential `any Router`. The previously dedicated `AnyRouter`, `StrongRouter`, `UnownedRouter`, and `WeakRouter` types are gone. Pick the ARC qualifier that matches the relationship: - /* ... */ - - 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: unownedRouter) - viewController.bind(to: viewModel) - return .push(viewController, animation: animation) - /* ... */ - } - } -} +```swift +let strongRouter: any Router = ... // own the coordinator +weak var weakRouter: (any Router)? = ... // sibling/parent reference +unowned let unownedRouter: any Router = ... // child holding parent ``` -### 🛤 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. +- **strong** — the app delegate or whatever object owns the coordinator's lifetime; also used to hold child coordinators. +- **weak** — view models or view controllers referring to a sibling or parent coordinator. +- **unowned** — same use case as weak when the holder is guaranteed not to outlive the coordinator. -```swift -class AppCoordinator: NavigationCoordinator { +## 🌗 Custom transitions - /* ... */ +Pass a custom `Animation` to common transitions (`push`, `pop`, `present`, `dismiss`). Pass `nil` to keep the previously configured animation; pass `Animation.default` to reset to UIKit defaults. - override func prepareTransition(for route: AppRoute) -> NavigationTransition { - switch route { - /* ... */ - case .deep: - return deepLink(AppRoute.login, AppRoute.home, HomeRoute.news, HomeRoute.dismiss) - } +```swift +override func prepareTransition(for route: UserRoute) -> NavigationTransition { + switch route { + case .user(let name): + let animation = Animation( + presentationAnimation: YourAwesomePresentationTransitionAnimation(), + dismissalAnimation: YourAwesomeDismissalTransitionAnimation() + ) + return .push(UserViewController(name: name), animation: animation) } } ``` -⚠️ 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 +For interactive transitions driven by gesture recognizers, see `BaseCoordinator.registerInteractiveTransition(for:triggeredBy:handler:completion:)` and its progress-based overload. -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)). +## 🛤 Deep linking -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`. +> [!IMPORTANT] +> Deep links are not validated at compile time. If a router for one of the chained route types cannot be located at runtime, XCoordinator calls `assertionFailure`. Be careful when reshaping your coordinator hierarchy. -The following code example illustrates how a `RedirectionRouter` is initialized and used. +Chain routes across coordinator boundaries using `deepLink(_:_:)`. The deep link walks the coordinator tree, switching to whichever router can handle the next route type: ```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: any Router) { - 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. +override func prepareTransition(for route: AppRoute) -> NavigationTransition { + switch route { + case .deep: + return deepLink(AppRoute.login, AppRoute.home, HomeRoute.news, HomeRoute.dismiss) } } ``` -### 🚏Using multiple coordinators with the same rootViewController +## 🚏 RedirectionRouter -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: +When a route enum has grown too large but you cannot introduce a new root view controller, `RedirectionRouter` lets you split a child route type onto a parent route type without owning its own transition type: ```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)` - } +class ChildCoordinator: RedirectionRouter { + init(parent: any Router) { + super.init(viewController: UIViewController(), parent: parent, map: nil) + } + + override func mapToParentRoute(for route: ChildRoute) -> ParentRoute { + // map ChildRoute cases onto ParentRoute cases } } ``` -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. +Alternatively, two sibling coordinators can share the same `rootViewController` by passing it into the second coordinator's initializer. -### 🚀 RxSwift/Combine extensions +## 🔀 Combine and RxSwift -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. +The Combine extensions are built into the main `XCoordinator` module. Use `router.publishers.trigger(_:)` to obtain a `Future` for a triggered route: ```swift -class LoginViewModelImpl: LoginViewModel, LoginViewModelInput, LoginViewModelOutput { - - private unowned let router: any Router - - private lazy var loginAction = CocoaAction { [unowned self] in - return self.router.rx.trigger(.home) - } - - /* ... */ -} - +router.publishers.trigger(.home) + .sink { /* transition finished */ } ``` -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: +For RxSwift, add the `XCoordinatorRx` product. The `router.rx.trigger(_:)` accessor returns an `Observable`: ```swift -let doneWithBothTransitions = - router.rx.trigger(.home) - .flatMap { [unowned self] in self.router.rx.trigger(.news) } - .map { true } - .startWith(false) +router.rx.trigger(.home) + .flatMap { [unowned self] in self.router.rx.trigger(.news) } ``` -When using `XCoordinator` with `Combine`, 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** +## ⬆️ Migrating from 2.x to 3.0 +3.0 removes the type-erased router wrappers and folds Combine into the main module. Migration is mechanical: -## ⁉️ Why XCoordinator +| 2.x | 3.0 | +| --- | --- | +| `AnyRouter` | `any Router` | +| `StrongRouter` | `any Router` | +| `WeakRouter` | `weak var router: (any Router)?` | +| `UnownedRouter` | `unowned let router: any Router` | +| `coordinator.unownedRouter` | pass `self` directly or capture explicitly | +| `pod 'XCoordinator/Combine'` | the Combine extensions are bundled into `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. +The SwiftUI interop layer (`RoutingController`, `WrappedRouter`, `@Routing`, `Transition.withAnimation`, …) is new in 3.0 — see [SwiftUI interop](#-swiftui-interop). -## 🔩 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](https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html). +## 🛠 Installation -### 🌗 Transition +### Swift Package Manager (recommended) -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. +Add the package to your `Package.swift`: -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. +```swift +.package(url: "https://github.com/quickbirdstudios/XCoordinator.git", from: "3.0.0") +``` -## 🛠 Installation +Then add the product you need to your target's dependencies — either `XCoordinator` (core + Combine + SwiftUI) or `XCoordinatorRx` (adds RxSwift). -#### CocoaPods +In Xcode, use **File → Add Package Dependencies** and paste the same URL. -To integrate XCoordinator into your Xcode project using CocoaPods, add this to your `Podfile`: +### CocoaPods ```ruby pod 'XCoordinator', '~> 3.0' ``` -To use the RxSwift extensions, add this to your `Podfile`: +For RxSwift bindings: ```ruby pod 'XCoordinator/RxSwift', '~> 3.0' ``` -Since XCoordinator 3.0, we have now integrated the `Combine` extensions into `XCoordinator` directly. - -#### Carthage +Combine is bundled into the main pod; no separate subspec is needed. -To integrate XCoordinator into your Xcode project using Carthage, add this to your `Cartfile`: +### Carthage ``` github "quickbirdstudios/XCoordinator" ~> 3.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 two different frameworks: `XCoordinator` and`XCoordinatorRx`. -While `XCoordinator` contains the main framework and the `Combine` extensions, you can choose `XCoordinatorRx` to get `RxSwift` 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). +## ✅ Requirements -To get more information on XCoordinator check out [our blog post](https://quickbirdstudios.com/blog/ios-navigation-library-based-on-the-coordinator-pattern/). +- iOS 14 / tvOS 14 +- Swift 5.9 +- Xcode 15 ## ❤️ 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 an [issue](https://github.com/quickbirdstudios/XCoordinator/issues) if you found a bug, want to discuss a feature request, or need help. +- Use [GitHub Discussions](https://github.com/quickbirdstudios/XCoordinator/discussions) for usage questions. +- Open a [pull request](https://github.com/quickbirdstudios/XCoordinator/pulls) if you want to contribute a change — please include tests where applicable. -Open a PR if you want to make changes to XCoordinator. +XCoordinator is created and maintained by [QuickBird Studios](https://quickbirdstudios.com). ## 📃 License -XCoordinator is released under an MIT license. See [License.md](https://github.com/quickbirdstudios/XCoordinator/blob/master/LICENSE) for more information. +XCoordinator is released under the MIT License. See [LICENSE](LICENSE) for more information. diff --git a/Scripts/build.sh b/Scripts/build.sh index 2c719037..e31baba7 100755 --- a/Scripts/build.sh +++ b/Scripts/build.sh @@ -1,11 +1,14 @@ #!/bin/sh -# Preparation +# Builds the XCoordinator package against the iOS Simulator SDK. +# Works on both Apple Silicon and Intel Macs — the toolchain selects the appropriate arch. -set -o pipefail +set -e -o pipefail -# Execution +cd "$(dirname "$0")/.." -swift build \ - -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" \ - -Xswiftc "-target" -Xswiftc "x86_64-apple-ios13.0-simulator" +xcodebuild build \ + -scheme XCoordinator \ + -destination 'generic/platform=iOS Simulator' \ + -skipPackagePluginValidation \ + CODE_SIGNING_ALLOWED=NO diff --git a/Scripts/check_docs.sh b/Scripts/check_docs.sh deleted file mode 100755 index 8692fabe..00000000 --- a/Scripts/check_docs.sh +++ /dev/null @@ -1,21 +0,0 @@ - -# Preparation - -cd "$( dirname "$0" )" -undocumented_file_url="../docs/undocumented.json" - -# Execution - -./docs.sh - -if [ -z "$(git status --untracked-files=no --porcelain)" ]; then - if [[ $(wc -l <$undocumented_file_url) -ge 2 ]]; then - echo "$(cat $undocumented_file_url)" - exit 1 - else - exit 0 - fi -else - echo "$(git status)\n$(git diff)" - exit 1 -fi diff --git a/Scripts/docs.sh b/Scripts/docs.sh index f4004eee..38b69b09 100755 --- a/Scripts/docs.sh +++ b/Scripts/docs.sh @@ -1,21 +1,16 @@ #!/bin/sh -# Preparation +# Generates static-hosting DocC output into ./Documentation. +# Uses the iOS Simulator SDK and lets the toolchain pick the matching target triple, +# so it runs unchanged on Apple Silicon and Intel Macs and on whatever Xcode is current. -set -o pipefail +set -e -o pipefail -# Constants - -TARGET_PLATFORM="iphoneos" -TARGET_SDK="arm64-apple-ios16.4" - -# Execution +cd "$(dirname "$0")/.." swift package \ - -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk $TARGET_PLATFORM --show-sdk-path`" \ - -Xswiftc "-target" -Xswiftc $TARGET_SDK \ --allow-writing-to-directory Documentation \ generate-documentation \ + --target XCoordinator \ --output-path Documentation \ - --transform-for-static-hosting \ - --target "XCoordinator" + --transform-for-static-hosting diff --git a/Scripts/docs_preview.sh b/Scripts/docs_preview.sh index b9a58fbc..b6d319a3 100755 --- a/Scripts/docs_preview.sh +++ b/Scripts/docs_preview.sh @@ -1,19 +1,13 @@ #!/bin/sh -# Preparation +# Previews DocC documentation in a local web server. +# Runs unchanged on Apple Silicon and Intel Macs. -set -o pipefail +set -e -o pipefail -# Constants - -TARGET_PLATFORM="iphoneos" -TARGET_SDK="arm64-apple-ios16.4" - -# Execution +cd "$(dirname "$0")/.." 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/Animations/CoordinatorPreviewingDelegateObject.swift b/Sources/XCoordinator/Animations/CoordinatorPreviewingDelegateObject.swift deleted file mode 100755 index 68d7fe6d..00000000 --- a/Sources/XCoordinator/Animations/CoordinatorPreviewingDelegateObject.swift +++ /dev/null @@ -1,53 +0,0 @@ -// -// CoordinatorPreviewingDelegateObject.swift -// XCoordinator -// -// Created by Stefan Kofler on 19.07.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -internal class CoordinatorPreviewingDelegateObject: -NSObject, UIViewControllerPreviewingDelegate { - - // MARK: Stored properties - - internal var context: UIViewControllerPreviewing? - - private weak var viewController: UIViewController? - - private let transition: () -> TransitionType - private let rootViewController: TransitionType.RootViewController - private let completion: PresentationHandler? - - // MARK: Initialization - - internal init(transition: @escaping () -> TransitionType, - rootViewController: TransitionType.RootViewController, - completion: PresentationHandler?) { - self.transition = transition - self.rootViewController = rootViewController - self.completion = completion - } - - // MARK: Methods - - internal func previewingContext(_ previewingContext: UIViewControllerPreviewing, - viewControllerForLocation location: CGPoint) -> UIViewController? { - - if let viewController = viewController { - return viewController - } - - let presentable = transition().presentables.last - presentable?.presented(from: nil) - viewController = presentable?.viewController - return viewController - } - - internal func previewingContext(_ previewingContext: UIViewControllerPreviewing, - commit viewControllerToCommit: UIViewController) { - transition().perform(on: rootViewController, with: .default, completion: completion) - } -} diff --git a/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift b/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift index 4259744d..fbcb9780 100755 --- a/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift +++ b/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift @@ -9,10 +9,8 @@ import UIKit /// /// Use InterruptibleTransitionAnimation to define interactive transitions based on the -/// [UIViewPropertyAnimator](https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator) -/// APIs introduced in iOS 10. +/// [UIViewPropertyAnimator](https://developer.apple.com/documentation/uikit/UIViewPropertyAnimator) APIs. /// -@available(iOS 10.0, tvOS 10.0, *) open class InterruptibleTransitionAnimation: InteractiveTransitionAnimation { // MARK: Stored properties diff --git a/Sources/XCoordinator/Animations/UIView+Store.swift b/Sources/XCoordinator/Animations/UIView+Store.swift deleted file mode 100644 index a1f2cbf9..00000000 --- a/Sources/XCoordinator/Animations/UIView+Store.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// UIView+Store.swift -// XCoordinator -// -// Created by Stefan Kofler on 19.07.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -extension UIView { - - @discardableResult - internal func removePreviewingContext(for _: TransitionType.Type) - -> UIViewControllerPreviewing? { - guard let existingContextIndex = strongReferences - .firstIndex(where: { $0 is CoordinatorPreviewingDelegateObject }), - let contextDelegate = strongReferences - .remove(at: existingContextIndex) as? CoordinatorPreviewingDelegateObject, - let context = contextDelegate.context else { - return nil - } - return context - } - -} diff --git a/Sources/XCoordinator/Combine/Router+Combine.swift b/Sources/XCoordinator/Combine/Router+Combine.swift index b31e00dd..aae73eb9 100644 --- a/Sources/XCoordinator/Combine/Router+Combine.swift +++ b/Sources/XCoordinator/Combine/Router+Combine.swift @@ -1,27 +1,49 @@ // // Router+Combine.swift -// XCoordinatorCombine +// XCoordinator // // Created by Paul Kraft on 28.08.19. -// Copyright © 2018 QuickBird Studios. All rights reserved. +// Copyright © 2019 QuickBird Studios. All rights reserved. // #if canImport(Combine) import Combine +/// +/// A namespace for Combine publishers exposed by a base value. +/// +/// Routers expose this namespace via `router.publishers`, mirroring the `router.rx` namespace +/// in `XCoordinatorRx`. Use the methods on this type — `trigger(_:with:)` and +/// `contextTrigger(_:with:)` — to obtain publishers for route triggers. +/// @MainActor public struct PublisherExtension { + + /// The underlying value (typically a `Router`) this namespace wraps. public let base: Base } extension Router { + /// The Combine namespace for this router. + /// + /// Use `router.publishers.trigger(_:)` to obtain a `Future` that completes when the + /// route's transition finishes. public var publishers: PublisherExtension { .init(base: self) } - @available(iOS 13.0, tvOS 13.0, *) + /// + /// Triggers a route and returns a future that completes when the transition finishes. + /// + /// Prefer the convenience accessor ``publishers`` for new code: `router.publishers.trigger(.home)`. + /// + /// - Parameters: + /// - route: The route to trigger. + /// - options: Transition options. Defaults to animated. + /// - Returns: A `Future` that emits `()` and finishes once the transition completes. + /// public func triggerPublisher( _ route: RouteType, with options: TransitionOptions = .init(animated: true) @@ -33,7 +55,17 @@ extension Router { } } - @available(iOS 13.0, tvOS 13.0, *) + /// + /// Triggers a route and returns a future that emits the resulting transition context. + /// + /// Useful for deep linking. Prefer ``publishers`` for new code: + /// `router.publishers.contextTrigger(.home)`. + /// + /// - Parameters: + /// - route: The route to trigger. + /// - options: Transition options. Defaults to animated. + /// - Returns: A `Future` that emits the transition context and finishes. + /// public func contextTriggerPublisher( _ route: RouteType, with options: TransitionOptions = .init(animated: true) @@ -47,9 +79,13 @@ extension Router { } -@available(iOS 13.0, tvOS 13.0, *) extension PublisherExtension where Base: Router { + /// Triggers a route on the wrapped router and returns a future that completes when the transition finishes. + /// + /// - Parameters: + /// - route: The route to trigger. + /// - options: Transition options. Defaults to animated. public func trigger( _ route: Base.RouteType, with options: TransitionOptions = .init(animated: true) @@ -57,6 +93,11 @@ extension PublisherExtension where Base: Router { base.triggerPublisher(route, with: options) } + /// Triggers a route on the wrapped router and returns a future emitting the resulting transition context. + /// + /// - Parameters: + /// - route: The route to trigger. + /// - options: Transition options. Defaults to animated. public func contextTrigger( _ route: Base.RouteType, with options: TransitionOptions = .init(animated: true) diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index bf409013..e0ef94d7 100755 --- a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -37,8 +37,14 @@ open class BaseCoordinator // MARK: Computed properties + /// The root view controller of this coordinator's flow. + /// + /// The root view controller's concrete type is determined by `TransitionType.RootViewController` — + /// e.g. a `UINavigationController` for a `NavigationCoordinator`. Transitions on this coordinator + /// are performed against this view controller. public private(set) var rootViewController: RootViewController - + + /// The presentable view controller for this coordinator. Returns ``rootViewController`` by default. open var viewController: UIViewController! { rootViewController } @@ -46,10 +52,11 @@ open class BaseCoordinator // MARK: Initialization /// - /// This initializer trigger a route before the coordinator is made visible. + /// Creates a coordinator and optionally triggers a route before the coordinator is made visible. /// - /// - Parameter initialRoute: - /// If a route is specified, it is triggered before making the coordinator visible. + /// - Parameters: + /// - rootViewController: The root view controller for this coordinator's flow. + /// - initialRoute: A route to trigger before the coordinator becomes visible. Pass `nil` to skip. /// public init(rootViewController: RootViewController, initialRoute: RouteType?) { self.rootViewController = rootViewController @@ -57,10 +64,11 @@ open class BaseCoordinator } /// - /// This initializer performs a transition before the coordinator is made visible. + /// Creates a coordinator and optionally performs a transition before the coordinator is made visible. /// - /// - Parameter initialTransition: - /// If a transition is specified, it is performed before making the coordinator visible. + /// - Parameters: + /// - rootViewController: The root view controller for this coordinator's flow. + /// - initialTransition: A transition to perform before the coordinator becomes visible. Pass `nil` to skip. /// public init(rootViewController: RootViewController, initialTransition: TransitionType?) { self.rootViewController = rootViewController diff --git a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift index 75e7b37d..d6a4e5d8 100755 --- a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift @@ -50,16 +50,11 @@ open class BasicCoordinator: 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. + /// Make sure to either override ``mapToParentRoute(_:)`` or to specify a closure for the `map` parameter. + /// If you override ``mapToParentRoute(_:)``, the `map` parameter is ignored. /// /// - Parameters: /// - viewController: diff --git a/Sources/XCoordinator/Coordinators/Router.swift b/Sources/XCoordinator/Coordinators/Router.swift index 864a28c0..eed76784 100755 --- a/Sources/XCoordinator/Coordinators/Router.swift +++ b/Sources/XCoordinator/Coordinators/Router.swift @@ -9,13 +9,12 @@ import Foundation /// -/// The Router protocol is used to abstract the transition-type specific characteristics of a Coordinator. +/// The Router protocol abstracts a coordinator down to its route-triggering capability. /// -/// 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. +/// In contrast to ``Coordinator``, `Router` does not specify a `TransitionType` and can therefore be +/// used as `any Router` to expose only the trigger surface to view models and views. +/// Pair the existential with the ARC qualifier that matches the relationship — `unowned`/`weak` for +/// child holding parent, `strong` for ownership. /// @MainActor public protocol Router: Presentable, AnyObject { @@ -87,16 +86,14 @@ extension Router { } -#if swift(>=5.5.2) - -@available(iOS 13.0, tvOS 13.0, *) extension Router { /// /// Triggers the specified route with default transition options enabling the animation of the transition. /// - /// - Parameters: - /// - route: The route to be triggered. + /// Suspends until the underlying transition has completed (including any animations). + /// + /// - Parameter route: The route to be triggered. /// @MainActor public func trigger(_ route: RouteType) async { await trigger(route, with: .default) @@ -105,6 +102,8 @@ extension Router { /// /// Triggers the specified route by performing a transition. /// + /// Suspends until the underlying transition has completed (including any animations). + /// /// - Parameters: /// - route: The route to be triggered. /// - options: Transition options for performing the transition, e.g. whether it should be animated. @@ -114,21 +113,15 @@ extension Router { } /// - /// Triggers routes and returns context in completion-handler. + /// Triggers a route and returns the resulting transition context. /// - /// Useful for deep linking. It is encouraged to use `trigger` instead, if the context is not needed. + /// Useful for deep linking. Prefer ``trigger(_:with:)`` 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). + /// - options: Transition options configuring the execution of transitions, e.g. whether it should be animated. /// - /// - Returns: - /// The transition context of the performed transition(s). - /// If the context is not needed, use `trigger` instead. + /// - Returns: The transition context of the performed transition(s). /// @MainActor public func contextTrigger(_ route: RouteType, with options: TransitionOptions) async -> any TransitionProtocol { await withCheckedContinuation { continuation in @@ -139,5 +132,3 @@ extension Router { } } - -#endif diff --git a/Sources/XCoordinator/General/DeepLinking.swift b/Sources/XCoordinator/General/DeepLinking.swift index 77befb4c..a67b14da 100755 --- a/Sources/XCoordinator/General/DeepLinking.swift +++ b/Sources/XCoordinator/General/DeepLinking.swift @@ -33,7 +33,7 @@ extension Coordinator where Self: AnyObject { /// /// Deep-Linking can be used to chain routes of different types together. /// - /// - Parameters + /// - Parameters: /// - route: /// The first route in the chain. /// It is given a special place because its exact type can be specified. diff --git a/Sources/XCoordinator/Navigation/NavigationCoordinator.swift b/Sources/XCoordinator/Navigation/NavigationCoordinator.swift index 15abbd74..2c89db99 100755 --- a/Sources/XCoordinator/Navigation/NavigationCoordinator.swift +++ b/Sources/XCoordinator/Navigation/NavigationCoordinator.swift @@ -21,10 +21,11 @@ open class NavigationCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator extension Transition where RootViewController: UISplitViewController { + /// + /// Replaces the split view controller's `viewControllers` with the given presentables. + /// + /// - Parameter presentables: The presentables that become the split controller's columns, in order. public static func set(_ presentables: [any Presentable]) -> Transition { Transition(presentables: presentables, animationInUse: nil) { rootViewController, _, completion in CATransaction.begin() @@ -29,6 +33,12 @@ extension Transition where RootViewController: UISplitViewController { } } + /// + /// Sets a single presentable into the given `UISplitViewController.Column` (iOS 14+ triple-column API). + /// + /// - Parameters: + /// - presentable: The presentable for the column. Pass `nil` to clear the column. + /// - column: The column to set. @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 diff --git a/Sources/XCoordinator/SwiftUI/Representable.swift b/Sources/XCoordinator/SwiftUI/Representable.swift index d713cfa6..57f422d5 100644 --- a/Sources/XCoordinator/SwiftUI/Representable.swift +++ b/Sources/XCoordinator/SwiftUI/Representable.swift @@ -9,7 +9,6 @@ import SwiftUI -@available(iOS 13, tvOS 13, *) internal struct Representable: UIViewControllerRepresentable { // MARK: Stored Properties diff --git a/Sources/XCoordinator/SwiftUI/RepresentableContext.swift b/Sources/XCoordinator/SwiftUI/RepresentableContext.swift index c242a167..5430de07 100644 --- a/Sources/XCoordinator/SwiftUI/RepresentableContext.swift +++ b/Sources/XCoordinator/SwiftUI/RepresentableContext.swift @@ -10,27 +10,47 @@ import SwiftUI import UIKit +/// +/// A common abstraction over the SwiftUI representable contexts. +/// +/// Both `UIViewControllerRepresentableContext` and `UIViewRepresentableContext` conform to +/// `RepresentableContext`, which lets callers handle either context type with the same code path. +/// @MainActor -@available(iOS 13, tvOS 13, *) public protocol RepresentableContext { + + /// The representable's coordinator instance. associatedtype Coordinator = Void - + + /// The coordinator instance produced by `makeCoordinator()`. var coordinator: Coordinator { get } + + /// The current SwiftUI transaction associated with this update. var transaction: Transaction { get } + + /// The SwiftUI environment values at the point of this update. var environment: EnvironmentValues { get } + /// + /// Runs the given changes inside a SwiftUI animation, calling the completion handler when it finishes. + /// + /// This bridges the iOS 18 `animate(changes:completion:)` API onto the representable contexts + /// so that callers can use it uniformly via the protocol. + /// + /// - Parameters: + /// - changes: The state mutations to animate. + /// - completion: A closure invoked once the animation has completed. + /// @available(iOS 18.0, tvOS 18.0, visionOS 2.0, *) @available(macOS, unavailable) @available(watchOS, unavailable) func animate(changes: () -> Void, completion: (() -> Void)?) } -@available(iOS 13, tvOS 13, *) extension UIViewControllerRepresentableContext: RepresentableContext { public typealias Coordinator = Representable.Coordinator } -@available(iOS 13, tvOS 13, *) extension UIViewRepresentableContext: RepresentableContext { public typealias Coordinator = Representable.Coordinator } diff --git a/Sources/XCoordinator/SwiftUI/Routing.swift b/Sources/XCoordinator/SwiftUI/Routing.swift index 981d258d..d51a8e55 100644 --- a/Sources/XCoordinator/SwiftUI/Routing.swift +++ b/Sources/XCoordinator/SwiftUI/Routing.swift @@ -10,8 +10,26 @@ import SwiftUI +/// +/// A property wrapper that resolves the nearest `Router` for a given `Route` type from the SwiftUI environment. +/// +/// Use `@Routing` inside a SwiftUI view to access the router responsible for a particular flow. +/// The wrapped value is non-optional — if no matching router is in scope, accessing it triggers a `fatalError`, +/// because that is a programmer error rather than a runtime condition. +/// +/// ```swift +/// struct ChildView: View { +/// @Routing var usersRouter +/// +/// var body: some View { +/// Button("Open") { usersRouter.trigger(.user("Bob")) } +/// } +/// } +/// ``` +/// +/// The projected value exposes the full ``RoutingContext`` for advanced lookups via `$router[OtherRoute.self]`. +/// @MainActor -@available(iOS 13, tvOS 13, *) @propertyWrapper public struct Routing: DynamicProperty { @@ -21,6 +39,11 @@ public struct Routing: DynamicProperty { // MARK: Computed Properties + /// The router responsible for `RouteType` in the current environment. + /// + /// - Important: Triggers `fatalError` if no router for `RouteType` was registered upstream. Make sure + /// the view is hosted within a ``RoutingController``, ``WrappedRouter``, or a `View.router(_:)` modifier + /// that provides a matching router. public var wrappedValue: any Router { guard let router = routingContext[RouteType.self] else { fatalError(""" @@ -31,20 +54,26 @@ public struct Routing: DynamicProperty { return router } + /// The full ``RoutingContext``, allowing access to routers for other route types via subscript. public var projectedValue: RoutingContext { routingContext } // MARK: Initialization + /// Creates a property wrapper that resolves a router for the given route type. public init(_ routeType: RouteType.Type = RouteType.self) {} // MARK: Methods + /// Looks up a router for a different route type in the same environment. + /// + /// - Parameter for: The route type to search for. + /// - Returns: The router for the given route type, or `nil` if no router is registered upstream. public func router(for: R.Type) -> (any Router)? { routingContext[R.self] } - + } #endif diff --git a/Sources/XCoordinator/SwiftUI/RoutingContext.swift b/Sources/XCoordinator/SwiftUI/RoutingContext.swift index a2219952..7296949f 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingContext.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContext.swift @@ -10,64 +10,82 @@ import SwiftUI +/// +/// A registry of `Router` instances keyed by their `Route` type, propagated through the SwiftUI environment. +/// +/// `RoutingContext` carries one router per route type so that `@Routing` can resolve the +/// appropriate router for any flow currently in scope. It is propagated two ways simultaneously: +/// +/// - **Down** through `EnvironmentValues.routingContext`, so descendants can read the available routers. +/// - **Up** through a `SwiftUI.PreferenceKey`, so hosts (e.g. ``RoutingController``) can observe routers +/// registered deeper in the view tree and merge them back into their own context. +/// @MainActor public struct RoutingContext: Equatable { - + // MARK: Static Functions - + + /// Two routing contexts are considered equal when they contain the same router instances + /// (compared by `ObjectIdentifier`) keyed by the same route types. public static func == (lhs: RoutingContext, rhs: RoutingContext) -> Bool { return lhs.routers.mapValues { ObjectIdentifier($0) } == rhs.routers.mapValues { ObjectIdentifier($0) } } - + // MARK: Nested Types - + @MainActor fileprivate enum EnvironmentKey: SwiftUI.EnvironmentKey { static var defaultValue: RoutingContext { RoutingContext() } } - + @MainActor fileprivate enum PreferenceKey: SwiftUI.PreferenceKey { static var defaultValue: RoutingContext { RoutingContext() } - + static func reduce(value: inout RoutingContext, nextValue: () -> RoutingContext) { value.add(nextValue()) } } - + // MARK: Properties - + private var routers = [ObjectIdentifier: any Router]() - + // MARK: Initialization - + + /// Creates an empty routing context. public nonisolated init() {} - + + /// Creates a routing context pre-populated with the given routers. + /// + /// - Parameter routers: Routers to register. Each is keyed by its concrete `RouteType`. public init(_ routers: [any Router] = []) { for router in routers { add(router) } } - + // MARK: Subscripts - + + /// Reads or writes the router responsible for the given route type. public subscript(_ routeType: R.Type) -> (any Router)? { get { routers[ObjectIdentifier(routeType)]?.router(for: routeType) } set { routers[ObjectIdentifier(routeType)] = newValue } } - + // MARK: Methods - + + /// Registers a router under its declared `RouteType`. Replaces any existing router for that type. public mutating func add(_ router: any Router) { router.add(to: &self) } - + private mutating func add(_ context: RoutingContext) { for (key, value) in context.routers { routers[key] = value } } - + } extension Router { @@ -77,20 +95,18 @@ extension Router { } } -@available(iOS 13, tvOS 13, *) extension View { internal func onRoutingContextChanged(perform: @escaping (RoutingContext) -> Void) -> some View { onPreferenceChange(RoutingContext.PreferenceKey.self) { perform($0) } } - + internal func routingContext(_ context: RoutingContext) -> some View { preference(key: RoutingContext.PreferenceKey.self, value: context) } } -@available(iOS 13, tvOS 13, *) extension EnvironmentValues { internal var routingContext: RoutingContext { get { self[RoutingContext.EnvironmentKey.self] } diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift b/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift index 76e45092..b5eb2799 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift @@ -7,7 +7,17 @@ #if canImport(SwiftUI) +/// +/// A type that exposes a writable ``RoutingContext`` for downstream propagation through the SwiftUI environment. +/// +/// Conforming types (such as ``RoutingController``) participate in the routing-context machinery used by +/// `Coordinator.performTransition`: when a transition produces presentables that conform to this protocol, +/// the coordinator registers itself in their `routingContext` so that descendant SwiftUI views can resolve +/// the coordinator via `@Routing`. +/// public protocol RoutingContextProvider { + + /// The routing context provided to the SwiftUI environment. var routingContext: RoutingContext { get nonmutating set } } diff --git a/Sources/XCoordinator/SwiftUI/RoutingController.swift b/Sources/XCoordinator/SwiftUI/RoutingController.swift index af6ed14d..8c87b4b6 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingController.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingController.swift @@ -10,29 +10,45 @@ import SwiftUI -@available(iOS 13, tvOS 13, *) +/// +/// A `UIHostingController` subclass that bridges a SwiftUI view tree into a UIKit coordinator flow. +/// +/// `RoutingController` is the SwiftUI counterpart to ``ViewCoordinator``'s root view controller: it injects +/// a ``RoutingContext`` into its hosted view's environment, and observes context updates flowing back up +/// through a `PreferenceKey` so that descendant views can register additional routers. +/// +/// Use it from `prepareTransition(for:)` to push or present SwiftUI content from a UIKit coordinator: +/// +/// ```swift +/// return .push(RoutingController { UserView(name: name) }) +/// ``` +/// public class RoutingController: UIHostingController.InjectorView>, RoutingContextProvider { - + // MARK: Nested Types - + + /// The internal SwiftUI wrapper view that injects the routing context and listens for downstream changes. + /// + /// This type is only public because it must appear in the `UIHostingController`'s generic parameter list. + /// Treat it as an implementation detail; do not construct or inspect it directly. public struct InjectorView: View { - + // MARK: Stored Properties - + private let routingContext: RoutingContext private let content: Content private let onUpdate: (RoutingContext) -> Void - + // MARK: Computed Properties - + public var body: some View { content .environment(\.routingContext, routingContext) .onRoutingContextChanged(perform: onUpdate) } - + // MARK: Initialization - + fileprivate init( context: RoutingContext, content: Content, @@ -46,12 +62,21 @@ public class RoutingController: UIHostingController: UIHostingController Content diff --git a/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift index 12b1e258..f403b749 100644 --- a/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift +++ b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift @@ -9,9 +9,25 @@ import SwiftUI -@available(iOS 13, tvOS 13, *) extension Transition { - + + /// + /// Creates a transition that performs a SwiftUI state change instead of a UIKit transition. + /// + /// Use this in `prepareTransition(for:)` when a route should mutate SwiftUI state (e.g. a + /// `@Binding` stored on the coordinator) rather than push/present a view controller. The body + /// closure runs inside `SwiftUI.withAnimation`, and the transition's `TransitionOptions.animated` + /// flag is respected — when `false`, no animation is applied. + /// + /// On iOS 17+/tvOS 17+ the completion handler fires from SwiftUI's animation-completion callback; + /// on earlier OSes it is invoked synchronously after the state change. + /// + /// - Parameters: + /// - animation: The SwiftUI animation to use when `TransitionOptions.animated` is `true`. + /// Defaults to `.default`. Pass `nil` to apply no animation even when animations are enabled. + /// - body: The state mutations to perform. + /// - Returns: A transition with no presentables that drives SwiftUI animations. + /// public static func withAnimation( animation: SwiftUI.Animation? = .default, _ body: @MainActor @escaping () -> Void @@ -38,7 +54,24 @@ extension Transition { } } } - + + /// + /// Creates a transition that performs a SwiftUI state change inside a given `Transaction`. + /// + /// This is the lower-level counterpart to ``withAnimation(animation:_:)`` — use it when you need + /// fine-grained control over the SwiftUI transaction (for example to set explicit + /// `Transaction.disablesAnimations`). The transaction's `disablesAnimations` flag is overwritten + /// to match `TransitionOptions.animated`. + /// + /// On iOS 17+/tvOS 17+ the completion handler fires from the transaction's animation-completion + /// callback; on earlier OSes it is invoked synchronously after the state change. + /// + /// - Parameters: + /// - transaction: An auto-closure producing the transaction to use. Re-evaluated each time + /// the transition is performed. + /// - body: The state mutations to perform inside the transaction. + /// - Returns: A transition with no presentables that wraps the body in `SwiftUI.withTransaction`. + /// public static func withTransaction( _ transaction: @autoclosure @escaping () -> Transaction, body: @MainActor @escaping () -> Void diff --git a/Sources/XCoordinator/SwiftUI/View+Router.swift b/Sources/XCoordinator/SwiftUI/View+Router.swift index 4b2420ea..30308d44 100644 --- a/Sources/XCoordinator/SwiftUI/View+Router.swift +++ b/Sources/XCoordinator/SwiftUI/View+Router.swift @@ -9,27 +9,38 @@ import SwiftUI -@available(iOS 13, tvOS 13, *) private struct RouterModifier: ViewModifier { - + // MARK: Properties - + let router: (any Router)? - + // MARK: Methods - + func body(content: Content) -> some View { content .transformEnvironment(\EnvironmentValues.routingContext) { context in context[RouteType.self] = router?.router(for: RouteType.self) } } - + } -@available(iOS 13, tvOS 13, *) extension View { - + + /// + /// Wraps the view in a ``RedirectionRouter`` that maps a new child route type onto an existing parent router. + /// + /// Use this when a SwiftUI subtree should expose its own `Route` enum but ultimately delegate + /// transitions to a UIKit-backed parent coordinator. Triggering a `ChildRoute` from inside the view + /// (via `@Routing`) calls `map` to obtain a `ParentRoute` and triggers it on `parent`. + /// + /// - Parameters: + /// - routeType: The child route type. Defaults to inference from the closure signature. + /// - parent: The parent router that ultimately performs transitions. + /// - map: A closure mapping each `ChildRoute` to a `ParentRoute`. + /// - Returns: A view that exposes a ``RedirectionRouter`` for `ChildRoute` in its environment. + /// public func redirect( _ routeType: ChildRoute.Type = ChildRoute.self, to parent: any Router, @@ -47,10 +58,19 @@ extension View { } } + /// + /// Registers (or overrides) the router for `RouteType` in this view's environment. + /// + /// Use this to inject a router into a SwiftUI subtree so that descendants can resolve it via + /// `@Routing`. Passing `nil` removes the router for `RouteType` from the environment. + /// + /// - Parameter router: The router to inject, or `nil` to remove it. + /// - Returns: A view whose environment contains the given router for `RouteType`. + /// public func router(_ router: (any Router)?) -> some View { modifier(RouterModifier(router: router)) } - + } #endif diff --git a/Sources/XCoordinator/SwiftUI/View+Trigger.swift b/Sources/XCoordinator/SwiftUI/View+Trigger.swift index 69415d6b..65ce1681 100644 --- a/Sources/XCoordinator/SwiftUI/View+Trigger.swift +++ b/Sources/XCoordinator/SwiftUI/View+Trigger.swift @@ -11,9 +11,9 @@ import SwiftUI @available(iOS 15, tvOS 15, *) private struct TriggerViewModifier: ViewModifier { - + // MARK: Properties - + let item: Item let priority: TaskPriority let skipFirst: Bool @@ -23,9 +23,9 @@ private struct TriggerViewModifier: ViewModif @Routing private var router @State private var isFirstCall = true - + // MARK: Methods - + func body(content: Content) -> some View { content.task(id: item, priority: priority) { guard skipFirst || !isFirstCall else { @@ -39,12 +39,25 @@ private struct TriggerViewModifier: ViewModif await onCompleted() } } - + } @available(iOS 15, tvOS 15, *) extension View { - + + /// + /// Triggers the given route once when the view first appears. + /// + /// Resolves the router for `RouteType` via `@Routing` and fires the route from within a `.task`. + /// Returning `nil` from the `route` closure suppresses the trigger. + /// + /// - Parameters: + /// - priority: The task priority used to run the trigger. Defaults to `.userInitiated`. + /// - route: An auto-closure producing the route to trigger. Re-evaluated each time the task runs. + /// - options: An auto-closure producing the transition options. Defaults to `.init(animated: true)`. + /// - onCompleted: An async closure invoked after the transition completes. + /// - Returns: A view that triggers the route on first appearance. + /// public func triggerOnAppear( priority: TaskPriority = .userInitiated, route: @autoclosure @escaping () -> RouteType?, @@ -62,7 +75,22 @@ extension View { ) ) } - + + /// + /// Triggers the given route whenever `item` changes, skipping the initial value. + /// + /// Useful for kicking off a navigation in response to a model change. The first invocation + /// (when the view appears with its initial `item`) is intentionally skipped to avoid firing + /// during the initial render. + /// + /// - Parameters: + /// - item: The value whose changes drive the trigger. + /// - priority: The task priority used to run the trigger. Defaults to `.userInitiated`. + /// - route: An auto-closure producing the route to trigger. + /// - options: An auto-closure producing the transition options. Defaults to `.init(animated: true)`. + /// - onCompleted: An async closure invoked after the transition completes. + /// - Returns: A view that triggers the route whenever `item` changes. + /// public func triggerOnChange( of item: Item, priority: TaskPriority = .userInitiated, @@ -81,8 +109,23 @@ extension View { ) ) } - - public func trigger( + + /// + /// Triggers the given route when `condition` becomes `true`. + /// + /// The route is only fired when `condition` transitions to `true`; setting it back to `false` + /// does not trigger another transition. Like ``triggerOnChange(of:priority:route:with:onCompleted:)``, + /// the initial value is skipped. + /// + /// - Parameters: + /// - condition: The boolean whose `true` transitions drive the trigger. + /// - priority: The task priority used to run the trigger. Defaults to `.userInitiated`. + /// - route: An auto-closure producing the route to trigger when `condition` is `true`. + /// - options: An auto-closure producing the transition options. Defaults to `.init(animated: true)`. + /// - onCompleted: An async closure invoked after the transition completes. + /// - Returns: A view that triggers the route whenever `condition` becomes `true`. + /// + public func trigger( when condition: Bool, priority: TaskPriority = .userInitiated, route: @autoclosure @escaping () -> RouteType, diff --git a/Sources/XCoordinator/SwiftUI/WrappedRouter.swift b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift index 9669c41f..fa6bd194 100644 --- a/Sources/XCoordinator/SwiftUI/WrappedRouter.swift +++ b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift @@ -9,17 +9,33 @@ import SwiftUI -@available(iOS 13, tvOS 13, *) +/// +/// A SwiftUI view that embeds a UIKit-backed coordinator or router and exposes it via the routing environment. +/// +/// Use `WrappedRouter` when you want to drive a coordinator-based flow from inside a SwiftUI hierarchy +/// — for example, hosting an entire `NavigationCoordinator` inside a SwiftUI scene. The `create` closure +/// is called once per view identity to instantiate the router; the resulting instance is retained for +/// the lifetime of the view, and is registered in the surrounding `RoutingContext` so descendant SwiftUI +/// views can resolve it via `@Routing`. +/// +/// ```swift +/// struct ContentView: View { +/// var body: some View { +/// WrappedRouter { UsersCoordinator() } +/// } +/// } +/// ``` +/// public struct WrappedRouter: View { - + // MARK: Stored Properties - + @State private var routingContext = RoutingContext() private let create: () -> RouterType private let update: (UIViewController, any RepresentableContext) -> Void - + // MARK: Computed Properties - + public var body: some View { Representable { let router = create() @@ -30,9 +46,19 @@ public struct WrappedRouter: View { } .routingContext(routingContext) } - + // MARK: Initialization - + + /// + /// Creates a wrapped router view. + /// + /// - Parameters: + /// - create: A closure that builds the router. Called once per view identity, on first appearance. + /// The returned router is retained for the lifetime of the view and registered in the + /// routing context propagated to descendants. + /// - update: A closure invoked on each SwiftUI update of the underlying representable. Use it + /// to forward SwiftUI state into the hosted UIKit view controller. Defaults to a no-op. + /// public init( create: @escaping () -> RouterType, update: @escaping (UIViewController, any RepresentableContext) -> Void = { _, _ in } @@ -40,7 +66,7 @@ public struct WrappedRouter: View { self.create = create self.update = update } - + } #endif diff --git a/Sources/XCoordinator/Tab/TabBarCoordinator.swift b/Sources/XCoordinator/Tab/TabBarCoordinator.swift index c7081708..1d227e80 100755 --- a/Sources/XCoordinator/Tab/TabBarCoordinator.swift +++ b/Sources/XCoordinator/Tab/TabBarCoordinator.swift @@ -23,13 +23,8 @@ open class TabBarCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator: BaseCoordinator( rootViewController: RootViewController = .init(), items: Items, @@ -138,7 +152,17 @@ open class TabBarCoordinator: BaseCoordinator( rootViewController: RootViewController = .init(), selection: Binding, diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index e462499f..78de8cb5 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -251,36 +251,22 @@ extension Transition { } -extension Coordinator where Self: AnyObject { +extension Transition { /// - /// Use this transition to register 3D Touch Peek and Pop functionality. + /// Creates a transition that runs an async closure on the main actor and completes once the closure returns. + /// + /// Use this to bridge async work into the coordinator transition pipeline — for example, awaiting a + /// loading operation before triggering a follow-up transition. /// /// - Parameters: - /// - source: The view to register peek and pop on. - /// - route: The route to be triggered for peek and pop. - /// - @available(iOS, introduced: 9.0, deprecated: 13.0, message: "Use `UIContextMenuInteraction` instead.") - public func registerPeek(for source: Container, - route: RouteType - ) -> Transition where Self.TransitionType == Transition { - let transitionGenerator = { [weak self] () -> TransitionType in - self?.prepareTransition(for: route) ?? .none() - } - return Transition(presentables: [], animationInUse: nil) { rootViewController, _, completion in - rootViewController.registerPeek(from: source.view, - transitionGenerator: transitionGenerator, - completion: completion) - } - } - -} - -#if swift(>=5.5.2) - -@available(iOS 13, tvOS 13, *) -extension Transition { - + /// - presentables: The presentables this transition introduces into the view hierarchy, if any. + /// These are used by deep-linking and child tracking. Defaults to empty. + /// - animationInUse: The transition animation to expose, if any. Defaults to `nil`. + /// - priority: The task priority used to run `perform`. Defaults to the inherited priority. + /// - perform: The async closure to run. + /// - Returns: A transition that completes once `perform` returns. + /// public static func perform( presentables: [any Presentable] = [], animationInUse: TransitionAnimation? = nil, @@ -296,5 +282,3 @@ extension Transition { } } - -#endif diff --git a/Sources/XCoordinator/View/UIViewController+Transition.swift b/Sources/XCoordinator/View/UIViewController+Transition.swift index 2eb20d6b..3fee33ad 100755 --- a/Sources/XCoordinator/View/UIViewController+Transition.swift +++ b/Sources/XCoordinator/View/UIViewController+Transition.swift @@ -96,25 +96,3 @@ extension UIViewController { completion?() } } - -extension Presentable where Self: UIViewController { - - @available(iOS, introduced: 9.0, deprecated: 13.0, message: "Use `UIContextMenuInteraction` instead.") - func registerPeek( - from sourceView: UIView, - transitionGenerator: @escaping () -> TransitionType, - completion: PresentationHandler?) where TransitionType.RootViewController == Self { - let delegate = CoordinatorPreviewingDelegateObject( - transition: transitionGenerator, - rootViewController: self, - completion: completion - ) - - if let context = sourceView.removePreviewingContext(for: TransitionType.self) { - unregisterForPreviewing(withContext: context) - } - - sourceView.strongReferences.append(delegate) - delegate.context = registerForPreviewing(with: delegate, sourceView: sourceView) - } -} diff --git a/Sources/XCoordinator/View/ViewCoordinator.swift b/Sources/XCoordinator/View/ViewCoordinator.swift index fa93f475..60b71084 100755 --- a/Sources/XCoordinator/View/ViewCoordinator.swift +++ b/Sources/XCoordinator/View/ViewCoordinator.swift @@ -26,19 +26,38 @@ open class ViewCoordinator: BaseCoordinator( initialRoute: RouteType? = nil, @ViewBuilder body: () -> Content @@ -48,8 +67,13 @@ open class ViewCoordinator: BaseCoordinator( initialTransition: TransitionType?, @ViewBuilder body: () -> Content @@ -59,7 +83,7 @@ open class ViewCoordinator: BaseCoordinator { 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) + return .push(HomeViewController()) + case .user(let name): + return .present(UserCoordinator(user: name), animation: .default) case .logout: return .dismiss() } @@ -52,7 +39,7 @@ class UserListCoordinator: NavigationCoordinator { } ``` -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. +Trigger routes from a view model that holds a typed router reference: ```swift class HomeViewModel { @@ -62,25 +49,13 @@ class HomeViewModel { 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. +Bootstrap the initial coordinator from your app delegate or `@main` entry point, and hold it via a strong `any Router`: ```swift @UIApplicationMain @@ -95,284 +70,190 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } ``` -## 🤸‍♂️ 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. +## Choosing a router reference -### 🌗 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. +Since 3.0, type erasure is provided by Swift's parameterized existential `any Router`. There are no longer dedicated `AnyRouter`, `StrongRouter`, `UnownedRouter`, or `WeakRouter` types — you simply choose the ARC qualifier that matches the lifetime relationship: ```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) - /* ... */ - } - } -} +let strongRouter: any Router = ... // own the coordinator +weak var weakRouter: (any Router)? = ... // sibling/parent reference +unowned let unownedRouter: any Router = ... // child holding parent ``` -### 🛤 Deep Linking +- **strong** — the app delegate or whatever object owns the coordinator's lifetime; also used to retain child coordinators. +- **weak** — view models or view controllers holding a coordinator they do not own (sibling or parent). +- **unowned** — same use case as weak, when you can guarantee the coordinator outlives the holder. -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. +## SwiftUI interop -```swift -class AppCoordinator: NavigationCoordinator { +XCoordinator integrates with SwiftUI in two directions. - /* ... */ +**Embed a coordinator-driven flow inside SwiftUI** with `WrappedRouter`. The closure builds the coordinator the first time the view appears; the coordinator instance is retained for the lifetime of the view: - override func prepareTransition(for route: AppRoute) -> NavigationTransition { - switch route { - /* ... */ - case .deep: - return deepLink(AppRoute.login, AppRoute.home, HomeRoute.news, HomeRoute.dismiss) +```swift +struct ContentView: View { + var body: some View { + WrappedRouter { + UsersCoordinator() } } } ``` -⚠️ 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. +**Push or present a SwiftUI view from a UIKit coordinator** with `RoutingController`, a `UIHostingController` subclass that propagates the current `RoutingContext` into the SwiftUI environment: ```swift -class ParentCoordinator: NavigationCoordinator { - /* ... */ - - override func prepareTransition(for route: ParentRoute) -> NavigationTransition { +class UsersCoordinator: NavigationCoordinator { + override func prepareTransition(for route: UserRoute) -> NavigationTransition { switch route { - /* ... */ - case .child: - let childCoordinator = ChildCoordinator(parent: unownedRouter) - return .push(childCoordinator) + case .user(let name): + return .push(RoutingController { UserView(name: name) }) } } } - -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: +**Trigger routes from inside a SwiftUI view** with the `@Routing` property wrapper. It reads the nearest router for the given route type from the environment: ```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)` - } +struct ChildView: View { + @Routing var usersRouter + + var body: some View { + Button("Open") { usersRouter.trigger(.user("Bob")) } } } ``` -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. +**Drive SwiftUI state changes from `prepareTransition`** with `Transition.withAnimation` or `Transition.withTransaction`, which run a body closure inside `SwiftUI.withAnimation`/`withTransaction` without performing any UIKit transition: ```swift -class LoginViewModelImpl: LoginViewModel, LoginViewModelInput, LoginViewModelOutput { +class HomeCoordinator: TabBarCoordinator { + @Binding var selection: HomeTab - private let router: UnownedRouter - - private lazy var loginAction = CocoaAction { [unowned self] in - return self.router.rx.trigger(.home) + override func prepareTransition(for route: HomeRoute) -> TabBarTransition { + switch route { + case .select(let tab): + return .withAnimation { selection = tab } + } } - - /* ... */ } - ``` -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 +For declarative, condition-driven triggering, the `triggerOnAppear`, `triggerOnChange(of:)`, and `trigger(when:)` view modifiers let a SwiftUI view fire routes through `@Routing` automatically. -### 🎢 Route +## Custom transitions -Describes possible navigation paths within a flow, a collection of closely related scenes. +You can supply custom `Animation` objects to common transitions (`push`, `pop`, `present`, `dismiss`). Passing `nil` keeps the previously configured animation; `Animation.default` resets to UIKit defaults. -### 👨‍✈️ 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 +```swift +let animation = Animation( + presentationAnimation: MyPresentation(), + dismissalAnimation: MyDismissal() +) +return .push(viewController, animation: animation) +``` -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. +For interactive transitions driven by gesture recognizers, see ``BaseCoordinator/registerInteractiveTransition(for:triggeredBy:handler:completion:)`` and its progress-based overload. -- 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. +## Deep linking -Example: +Chain routes across coordinator boundaries using `deepLink(_:_:)`. The deep link walks the coordinator tree via ``Presentable/router(for:)``, switching to whichever router can handle the next route type: ```swift -let strongRouter: any Router = ... -weak var weakRouter: (any Router)? = ... -unowned let unownedRouter: any Router = ... +return deepLink(AppRoute.login, AppRoute.home, HomeRoute.news, HomeRoute.dismiss) ``` -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 +> Important: Deep links are not checked at compile time. If a router for one of the chained route types cannot be located at runtime, the framework triggers an `assertionFailure`. Keep this in mind whenever you reshape the coordinator hierarchy. -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. +## RedirectionRouter -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. +When a route enum has grown too large but you cannot introduce a new root view controller, ``RedirectionRouter`` lets you split a child route type onto a parent route type without owning its own transition type: -## 🛠 Installation - -#### CocoaPods - -To integrate XCoordinator into your Xcode project using CocoaPods, add this to your `Podfile`: +```swift +class ChildCoordinator: RedirectionRouter { + init(parent: any Router) { + super.init(viewController: UIViewController(), parent: parent, map: nil) + } -```ruby -pod 'XCoordinator', '~> 2.0' + override func mapToParentRoute(for route: ChildRoute) -> ParentRoute { + // map ChildRoute cases onto ParentRoute cases + } +} ``` -To use the RxSwift extensions, add this to your `Podfile`: - -```ruby -pod 'XCoordinator/RxSwift', '~> 2.0' -``` +## Combine and RxSwift -To use the Combine extensions, add this to your `Podfile`: +The Combine extensions ship in the main `XCoordinator` module. Use `router.publishers.trigger(_:)` to obtain a `Future` for a triggered route: -```ruby -pod 'XCoordinator/Combine', '~> 2.0' +```swift +router.publishers.trigger(.home) + .sink { /* transition finished */ } ``` -#### Carthage - -To integrate XCoordinator into your Xcode project using Carthage, add this to your `Cartfile`: +For RxSwift, add the `XCoordinatorRx` product. The `router.rx.trigger(_:)` accessor returns a `Single`: +```swift +router.rx.trigger(.home) + .flatMap { [unowned self] in self.router.rx.trigger(.news) } ``` -github "quickbirdstudios/XCoordinator" ~> 2.0 -``` -Then run `carthage update`. +## Transition types + +The available transitions depend on the coordinator's `RootViewController` type. Common transitions across every coordinator: -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). +- `present` / `presentOnRoot` — present on top of the view hierarchy +- `dismiss` / `dismissToRoot` +- `embed` — embed a view controller in a container view +- `none` — no-op (useful in tests or to ignore routes) -#### Swift Package Manager +`NavigationTransition` (``NavigationCoordinator``) additionally provides `push`, `pop`, and `popToRoot`. ``TabBarCoordinator``, ``SplitCoordinator``, and ``PageCoordinator`` each provide transitions specific to their root view controller. -See [this WWDC presentation](https://developer.apple.com/videos/play/wwdc2019/408/) about more information how to adopt Swift packages in your app. +## Topics -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. +### Coordinators -#### Manually +- ``Coordinator`` +- ``BaseCoordinator`` +- ``ViewCoordinator`` +- ``NavigationCoordinator`` +- ``TabBarCoordinator`` +- ``SplitCoordinator`` +- ``PageCoordinator`` +- ``BasicCoordinator`` +- ``RedirectionRouter`` -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. +### Routes and routing -## 👤 Author -This framework is created with ❤️ by [QuickBird Studios](https://quickbirdstudios.com). +- ``Route`` +- ``Router`` +- ``Presentable`` +- ``TransitionPerformer`` -To get more information on XCoordinator check out [our blog post](https://quickbirdstudios.com/blog/ios-navigation-library-based-on-the-coordinator-pattern/). +### Transitions -## ❤️ Contributing +- ``Transition`` +- ``TransitionProtocol`` +- ``TransitionOptions`` +- ``NavigationTransition`` +- ``TabBarTransition`` +- ``SplitTransition`` +- ``PageTransition`` +- ``ViewTransition`` -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). +### Animations -Open a PR if you want to make changes to XCoordinator. +- ``Animation`` +- ``TransitionAnimation`` +- ``StaticTransitionAnimation`` +- ``InteractiveTransitionAnimation`` +- ``InterruptibleTransitionAnimation`` -## 📃 License +### SwiftUI -XCoordinator is released under an MIT license. See [License.md](https://github.com/quickbirdstudios/XCoordinator/blob/master/LICENSE) for more information. +- ``Routing`` +- ``RoutingContext`` +- ``RoutingContextProvider`` +- ``RoutingController`` +- ``WrappedRouter`` +- ``RepresentableContext`` diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index b35f4a5b..c162242f 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -11,6 +11,13 @@ import RxSwift import XCoordinator +/// +/// A namespace for RxSwift observables exposed by a `Router`. +/// +/// Routers expose this namespace via ``Router/rx``, mirroring the `Router.publishers` Combine namespace. +/// Use the methods on this type — `trigger(_:with:)` and `contextTrigger(_:with:)` — to obtain +/// observables that emit when transitions complete. +/// @MainActor public struct ReactiveRouter { @@ -41,15 +48,12 @@ extension ReactiveRouter { // MARK: Convenience methods /// - /// This method transforms the completion block of a router's trigger method into an observable. + /// Wraps a route trigger in an `Observable` that emits once the transition has completed. /// - /// 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. + /// - Parameters: + /// - route: The route to trigger. + /// - options: Transition options. Defaults to animated. + /// - Returns: An observable emitting `()` and then completing when the transition finishes. /// public func trigger(_ route: RouteType, with options: TransitionOptions = .init(animated: true)) -> Observable { Observable.create { [base] observer -> Disposable in @@ -62,15 +66,15 @@ extension ReactiveRouter { } /// - /// 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`. + /// Wraps a route trigger in an `Observable` that emits the resulting + /// transition context once the transition has completed. /// - /// - Parameter route: - /// The route to be triggered. + /// Useful for deep linking when the resulting context is required for further processing. /// - /// - Returns: - /// An observable informing about the completion of the transition. + /// - Parameters: + /// - route: The route to trigger. + /// - options: Transition options. Defaults to animated. + /// - Returns: An observable emitting the transition context and then completing. /// public func contextTrigger( _ route: RouteType, diff --git a/Tests/XCoordinatorTests/TransitionTests.swift b/Tests/XCoordinatorTests/TransitionTests.swift index b0456572..c4d4bed2 100644 --- a/Tests/XCoordinatorTests/TransitionTests.swift +++ b/Tests/XCoordinatorTests/TransitionTests.swift @@ -10,8 +10,6 @@ import UIKit import XCoordinator import XCTest -/* - class TransitionTests: XCTestCase { // MARK: Static properties @@ -41,7 +39,7 @@ class TransitionTests: XCTestCase { } func testSplitCoordinator() { - let coordinator = SplitCoordinator(master: UIViewController(), detail: UIViewController()) + let coordinator = SplitCoordinator(primary: UIViewController(), secondary: UIViewController()) coordinator.setRoot(for: window) testStandardTransitions(on: coordinator) testCompletionCalled( @@ -83,17 +81,11 @@ class TransitionTests: XCTestCase { // MARK: Helpers private func testStandardTransitions(on coordinator: C) where C.TransitionType == Transition { - print("none") testCompletionCalled(on: coordinator, transition: .none()) - print("present") testCompletionCalled(on: coordinator, transition: .present(UIViewController())) - print("dismiss") testCompletionCalled(on: coordinator, transition: .dismiss()) - print("embed") testCompletionCalled(on: coordinator, transition: .embed(UIViewController(), in: UIViewController())) - print("multiple(none)") testCompletionCalled(on: coordinator, transition: .multiple(.none())) - print("multiple(empty)") testCompletionCalled(on: coordinator, transition: .multiple()) } @@ -108,4 +100,3 @@ class TransitionTests: XCTestCase { } } -*/ diff --git a/XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css b/XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css deleted file mode 100644 index f489ad74..00000000 --- a/XCoordinator.doccarchive/css/chunk-384ef189.7ede1ea3.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 5807bf13..00000000 --- a/XCoordinator.doccarchive/css/documentation-topic.29351f99.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 7df762b0..00000000 --- a/XCoordinator.doccarchive/css/documentation-topic~topic.fccbd76c.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 37d9f45d..00000000 --- a/XCoordinator.doccarchive/css/documentation-topic~topic~tutorials-overview.1099452b.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 41ab3dd3..00000000 --- a/XCoordinator.doccarchive/css/index.d5b499b0.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index b2d8490b..00000000 --- a/XCoordinator.doccarchive/css/topic.726a35dc.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index f4e1be74..00000000 --- a/XCoordinator.doccarchive/css/tutorials-overview.2a582c39.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 517718dc..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 710ab609..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c37ccf92..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(fordismissed:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5d14fb13..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a19e41ab..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/default.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f558a886..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/dismissalanimation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5bed4b3c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/init(presentation:dismissal:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e4002f75..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 63c0ae8c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ba5df0fc..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/presentationanimation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index fadffd4e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2d472620..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7c9f9e56..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/addchild(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 80f5d9a8..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/chain(routes:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 10ae14ad..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/children.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index bc5a8413..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/childtransitioncompleted().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ab762cc4..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c15ec64e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f362dc8f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/coordinator-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 21914a7c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c6cdc91b..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 1144e52d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 24bdd995..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index dc9c2cc6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 4f786245..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/preparetransition(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a3809411..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presentable-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 1d2ccd28..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/presented(from:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 0c7bc39d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a82d692f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d4f178a0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerparent(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7153b62a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/registerpeek(for:route:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 91a18703..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechild(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index bc38f3c0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/removechildrenifneeded().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9482b653..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index db9dbcb6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 27b4a5c7..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index fa975354..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 09433621..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/router-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 8b19fdcf..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/setroot(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3e78790f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/transitionperformer-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 04bbee5f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index df435c1e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d82c57e8..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 8e53d3e7..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 40a04b48..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f033ff1a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-614jt.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 89393e03..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basecoordinator/viewcontroller-8iux.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 70de5930..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c7f67af6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d3165d0d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d5ee6299..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b568d5fe..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 951c9701..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 89f15b13..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 248a6749..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/preparetransition(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 03d4b249..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basiccoordinator/presented(from:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 721aef07..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basicnavigationcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e2f363a6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basictabbarcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d76127fa..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/basicviewcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6de8c4c6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/container.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f9333d9c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/container/view.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index db9caa5f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/container/viewcontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 779236a8..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/contextpresentationhandler.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b6c733bd..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7ab3e3e4..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/addchild(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a758d643..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/chain(routes:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 56e1b1b9..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/childtransitioncompleted().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 26c38d7a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 47fed2e0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 957b547f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3c6b113c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/performtransition(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6ca37a84..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/preparetransition(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 04fa3ead..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presentable-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index deebff00..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/presented(from:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 29d69ede..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/registerpeek(for:route:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2f838e1d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechild(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index addaf35b..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/removechildrenifneeded().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3d586e62..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/rootviewcontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9630ebba..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/coordinator/viewcontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 808c41ab..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 951d9fea..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6df28d82..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/cleanup().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e0387dbd..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 036d8760..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 192cf29d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2f036cb5..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 1002ef03..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d9d29af4..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 49327d5e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/start().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5e11d1f3..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9a7a78a1..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b4a430cd..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 37c304f2..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 8fd47eaa..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 48eedca0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7adb1c18..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 06f72bc2..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a7cc91a1..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5186480a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ffd5aef8..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c5497750..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7c1c1bf8..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 8c8867f0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5ce23c7c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f54aa3f3..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 89e1313e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5681aec5..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 1b85aedf..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c7b4167a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f2cb57a9..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/animationdelegate.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 81cc5230..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/delegate.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2b82d246..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f905ecad..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a9390b54..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/navigationtransition.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 236a3ed9..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 689ed601..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/datasource.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6fb92b81..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b2da0f34..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 84726d39..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ec14238a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index aaee3031..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 1534339e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/loop.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 38188bbf..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pages.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 533de32c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c51b2d89..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 798df1e0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d6e00b04..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f82c5f0a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/pagetransition.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 25232bde..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 34bf3eea..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/cancel().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index cb14990e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/finish().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 03edaa0f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a2940cc1..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b483f6e4..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 23acdfc2..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 42e7d754..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-7l34o.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2e577ab6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/presented(from:)-vlfa.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ce39075a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3be42bfe..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/registerparent(_:)-2syh0.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ddcd76cb..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/router(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 91e7cd0e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-7uc80.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f2ee0f21..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/setroot(for:)-8jtc1.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e8f35e34..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentable/viewcontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 80c7f115..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/presentationhandler.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 00275635..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b444f510..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/childtransitioncompleted().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 001ae184..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c10143b1..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7b97653a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b0c96422..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c2e163fb..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/parent.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 38551fd3..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presentable-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index cb135008..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/presented(from:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6725d4d5..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/registerparent(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f38b9f1b..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 61cd0d8e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/router-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 51ace8f6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/setroot(for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9182b235..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3a3e4bf9..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b290934b..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 736f590a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 835ee6f3..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/redirectionrouter/viewcontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a9bc7faa..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/route.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 45a44244..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index dfd78885..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 04d3884f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/contexttrigger(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b4ed773d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/routetype.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b1374b13..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ecdcf0f4..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ec4541e6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-7y4ig.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d3049bc4..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:)-pmke.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 1e7287dd..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/router/trigger(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 982dce9e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5d2f7f8b..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 60881733..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 05956b64..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/splittransition.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index fa296e02..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index d0854789..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/animatetransition(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index cf75a211..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/cleanup().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 743e3f26..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 647bdfd6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/interactioncontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6ad2fa0e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/start().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index fa823a3a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/statictransitionanimation/transitionduration(using:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2e19a87c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 8e027128..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 1f177c46..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 50cf15da..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5692a345..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 64f96708..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index b5952804..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3d2e36d0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c76ec87e..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 4f177c2f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3cacd27c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/delegate.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7c6682a9..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index f2e4395d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 4d1e64ac..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index bcfa2290..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c09559f2..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/tabbartransition.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5a348b68..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index aff7de77..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/animation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index fdfad4f5..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismiss(animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7375fab5..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/dismisstoroot(animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 61318b29..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/embed(_:in:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 36a8c070..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e43ba562..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-2uy55.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 90173b43..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/multiple(_:)-4o51b.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7f0d6570..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/none().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c2f6771f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(_:on:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 20e25c29..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/perform(on:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 56328590..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/performclosure.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e970d3ac..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index fda03b22..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/pop(to:animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 802897f3..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/poptoroot(animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 279b12a0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/present(_:animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index fc522a5c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentables.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 58d173c6..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/presentonroot(_:animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7df2be9b..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/push(_:animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 0daa3f36..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/route(_:on:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index cf383404..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(_:animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 07df2d72..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/select(index:animation:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 18f9c778..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 0352ffd9..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:_:direction:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 7ed2ed6c..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-4airv.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c2d4e76d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:animation:)-9wr0e.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6acbe716..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/set(_:for:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6556a6fe..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/show(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9512ed76..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/showdetail(_:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5aa445ed..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/transitionprotocol-implementations.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 97e90ebc..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transition/trigger(_:on:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 29ccff9a..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 702bf621..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/cleanup().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3f3f6e89..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/interactioncontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 728f7e91..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionanimation/start().json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 84678934..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9e1dbac2..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/animation.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 590d85d0..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitioncontext/presentables.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 16946152..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2e2f6a38..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/animated.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2d67c417..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionoptions/init(animated:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index cc42cb54..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index eeef5edd..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 8c64ef3d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/rootviewcontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index ae1b5250..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionperformer/transitiontype.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c00f3a76..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c3e3fcaa..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 235aa625..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 91c5a06f..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9f5fa372..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/transitionprotocol/rootviewcontroller.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 316692b7..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 8f94be1d..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:).json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 018cfb91..00000000 --- a/XCoordinator.doccarchive/data/documentation/xcoordinator/viewtransition.json +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 63c48359d11d9f755203ce58eeec9d3504a71f44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12562 zcmeHsWmH_v((d3k$lwHmyAMvVK#&kTxWfz{9D+-L;O-DCxVu|$2^t&*cXtcHF6VvE z_nou8weDK?*S+`0=^wqTYVY0qsp_YztJi*>e?9?FiJRC#OaUfe0000S0ssdA9s&79 z{O|U>2>1#BqN1Xrp#ss+fFKNX3=jb}5Qt4cjE6^nher$o{?-0@`CIv)Jsc(m1|}9J z4i**;J{A@h{y#b_{J&oT{hti*+zkMs!UGTi2yoN@cn}-{2=2KT&<=oud$GK<|Avc# zh=h!a0RQi%f8N6Zz`ry&1b9Rwq`yo^$Owq=C;&J<9A2Wg1e8^H_{tzEZXQlBE*&8V z01pR`0FMkrL&iizczGNi0S*@t079b1!=VCmeRLF8k%0Ke)zCQA;yWAXaKBT92E-FM zbWi3^@ld{1KJ$yMrj`8K%Zpsq)w9WYsfPP6gnz@SdWHdjFVNvZ2%r~B$=}xh^#6&# z|HlzPA$LI~{z2tTQ}Y){G7a$RKheVDopXdRNNN~jH~kxavZ$;1FK{{h6|Om`rX&A$ z<3+?f0RG-Q`p9BDEcwX7EF>DH()gxKR=T&=_@^gc>2R=~ywa9un-C`A;(@Bmndnu2 z_h>hBlSfgu*@}Eq{6rJ66IWwF^mRTr_vl=_L-DqoW92Vtsc4i<1davJtDh4ABjiDs z<9Q?6pR;gcblTeY0}jV!-gL*;UM|y~ob#St47a8_Fyz+zrl{;ipI}e-&ASh+Sv!39 zUXYx3A1-2C+$T)vcoK_|sBcKUD9pD1Oh%$P`Ll&9?dmeIF8Q{m{m!nx^J`K@-EO!D zi0xoI=%yO6Iz`_uRfJ3Mj{Yd$mNLUqwrB1g#_f>rKxTx4e$l`DN4rM$a!eY`sFE+{ ze3!j>P?O^q+cZM?BYcBVChd`g?uo4Y0{T(-R3%kUQ7owX0B9{d!i`Y4(}L?Kl%p_e zM(%<(>*|H#BmYB8sjKT3!wrHGQ@ay`ELNLTw1m$WY)%iQ(ad;mQC~%}kVX3Gp6J>> zHnSuq^T^kVi|VzEFojhd=QBAk$#(DR4)ZKq&cjgZ4skn4-I~o-?utv-yf&DQDX)7f z%!1L40VR3K6${ zi+N<>PhMq{^fX(Abhs|;#(Ob;neKTcx}YWN>#_Z0I_uVzz4zwv9JzhhgbeZamw=@2 zt=i%%x9Dt9E512?AfFtWUU{GA%vei`Mw*Qv#xBW+CBX( z1E#(5fn(X`X#N^qzSm%$&Ze6lF!GevKSbp#7nB$3`qiXR<~-oV;GuzZO253reGYJVbt# z+;v0tYs&c%{XQnfn47>-0kT4hp(~C1BiAg+FH@`5pp4tvImHQo1Tf(9RSrmm{nL`7 zNT6sk=A!4rvi3%jV9vNOv>UlT4Ns?DCmlcKOH6ugT&KHaBU@_HHY~yD)FkgS8!rC) zxvi;ph#Guv6ukP#flw?%0b;YyVOWhHy`vHhRDuGDg6_bZ5LohFjMbcc_%vQ_oFJ51 z&8W#~A>_9iQv@hViAQ~XvA+iouTUP1WQf)Rw;c&iz)AI);Ld}Y5A)0}l^gOb|aTU-I;k?bi9!z?VzVvTNZ==Sb2R3Uy0 zm*EH5t#BQD@32-|P;&XXic}D$U$RgcUh=tgg@GUIAV8y&CaN!nSlb^lB>1nzK3phRq!qs;Wn95gM$7PpYIXs!icO&^sHs zgP4*)zw;wT^RyCh#d0Fvo*TG7;H9;wJxM7UXgp0!JSIp;kyjz7pUnyjj5Ik1|2YB1 zlp_?Ygl?UBi25#$;=#*qt4>q}cwG{#Qm`G%K5169vAI=Kxfbv1&a%8lmogeiR7Dj{qJ&Lfy6DMm;vO+_-C@IhrghAw6ikmLtfe6m5Ose9A?K z!Ycb~l}V840>h_CLu-mAB9vcub=VlNVw0+)D)tUDmQU8o@x_cyG&QrcR$h|qm4*ev ztE1oD%x&0{aDyE`DBQO$T-ovKk6a2CqDbjO)AF1@`cLxH9-JIqCJZeXvMs#mGp4S3 z)wEYAHXvS&t1+jsRkYiBBD-A9Cc)Twb^tj<`eGyvS8%t(@}F6=iGQ-R ztaUxbmlY1gJKdaB(|8ECT8=A$kmB^!Qt?9nCb&O z{=0F`+Ix)d>p+V#At%?(XsEO6&5yr>`a?;WcVm7O49=LQq9toMm3zaM9j_9G_WPP6 zsbGqLbt(vz`NTe}0jyoi$}5_T@n;)*YV0?!L9lb*`GFxjE!AWRuD*hG!#{{Vx*#JA zw9Kg*YagA~VC>yT=W>O9zN1fL!VDa|I*qsgd-kh6+Mrhrk7UP;`!!Y5#+wrsk|l>$TzXE+)A^5MNeuXYZpSrM zn)K;?LX_qwt^0ijdi1(RwFGZvS6*n%q2}K4vbYX7Fq@yKS7VNKKI+KN;&;UuzxWhH z$lLkGO7K%Ft*dLBWhL(BGa!}q_sZHOrvBQZ(RQ|+&N5%A$e$3)tGi}!IUe%&v*qO@ z7=Op%5czeL#jdxIHo;e@F9vP}qs6OQ0?51pQHk(sS}Uy1^~UEVpo7prIM}Iao9pm^ zRemcwOPowT9VS#F zEXq?KfR702Q|kTcVwP=B%_rLIv@1qPn^Gr6wp+1X4eANaotO`2G!bmaX+bIp#1FUH zCx?9)2!8dZzlkKQrv=B1nl5_tW4*ikJStk=wkY05haOh)J|GDl)~Hy!zK7I2ZCi1c zSX;Z`C0Le5Hh*k~m0Oyrb3`wV5R{Taq0Su@xLmpgv#t6u?8>z?Y4M*khpN6lQ(91qvPZ{()g?i-vXmQ;+Jgt1>%RXDo+F-lG3_Dx!E9V&s zWfsczN8cgV&P1hTaIRu;b$tdn6|^4Kvy0uu4S2iMH~Z`L=9~-|>67naZ9I!s=(e`;WWWX-+|AytW84{Q`M z2{01X#r{Kg5cOw&HLU}7W#{daJg2179^o^|l4VISXr&%-hJ#F&#mrPT89()-<+QRc zY**ixLpQ9{HIE#T@yDHr&a8)jzRpULm3lLgEVGEYLA}SsrHea#?qOLxD?_PHQp_KO z^(#uCps1Rvc0L1l4;nba;&<)C>oAg4UrT}!Y0RDI$ra^+6Z>;h|8PSRPvE|g6 zmxA*W+4KC{2y%9`u9H;@O6HT=nG=mVjh48Q7D`RKy6wJv;D*xoa)8XfH|)1W#)OXH>x?0F zj<+JFZYE19obFqdI_(yJ@VU#{*@{`0V%#`;gtn?>*g@FYSYDaspG3qzmfLL#p%@Zb zvWK-h*kkV;JOlnNXyB2>0DyniGyf*T!M)g@0p%1n?)h(UZuHSZ@+2?OkTZDdv=Fyhds1Y0>cle3%G^0}sTg5~iPZ&%nlO2lS;FBkMI zIhMfVlqQ2{JDj*`TN9#(ud+67K@LZYkz;S+5=S?PM z#yq=tAcNVn03sEWV4C^c&!@$kD|Sq|F6LKysEtCu6Vtj(aT2AW3<$#Ed(Qw`nCG5H z;rc<#hZCYBYvxy+&~z}VS~}sZ*rJW-x^K2Ws1Ac@oNHs2$_a0k(Q6o`vxnzCHGeOK zr;R&=DkEP+>fzS9+wL{^*eX?OML!AI!09;Y?F!~>ZV?@3l)Ab0fcA#~qu)(|G-_%j ziYl1?icYglNLbua0+|BofCK)bTKe9h^%0yBnhYr?0#ywx=fk=ciJG7f^4bb|u)Vl~ z5;s6SX&ns1%-C@grv#dz;6!Y`J{Q`yY}&SzlEG^(bnBd}wRSQ@GFv1?bN z#KnN1sm=j?>NAqa6iK&JjLEgyo-Rg!;%(do!>jQ-yK7<6;}829e!_86eyPLXx$DLe z@O>CbZft*ocqOhnv7?e0$mf$lao>nFbctZsJk!ZLT>>0qdwb8vn z=XlV8$3r)v3Z??D6KALDRyJkYRtP55eWwaC9n5C3VvcNIMg0BlmEX8wa8JwhXT05tFQp3A*w3bF^@SwcE7^_-T+>J=ZIP&FpbzLCS-sFgnub%&)1+6 zSwGsfOPS9DEMzRIfn(otfGaU%Uk)VcZW>K>Ze$KH@9QlQ-SaGEHwi07QTKVx&qtNi}EpOPUMYsexTl1D#%e# zjRBjF@u*if?h?H$Dn$2}bT@70s>0oi9WqaKwIP&qdMk{0pX85AX4a1n7}(|>bPzuX zryggDK_+uM)W%|(;+S$AjJSnpbF;5(?c4RPuO9G!sMEWUQ$!JN1#s8-AoKf%A$zwk zTAtskZTc4KGaq}$sdSm1kzsT9tOcM^XKoo8J)yK8=2nnJJwKVkDS3A$5gHAfZH(b%1wxVfquymN(KvKD%n$v;NjUB z$27aTMGiAklmJ{@N?cCvNrMAFAwNco{9=)77$bO$WyA`orL$tC(QpgbUanw)7G-OR z`BqAk&#JTD6uChXhj`3^2AmQz?j3oP>s%@|PQ|n4^c%jy*Ds7gl_YbCX^Nb)BwcAe z`DY7b#I})&p3M6=wK^|((iKQOqse@C`d3Lv4i|gKMkmkxmVSz!EOEZS6G-wHA90M= zuGbD^-hSh~^3cm%=&MgKqOR~Rw5h5|f0EkdFK~iA%0{lfU+qf6n3m=YJbAY3^}P^Z zc!X#sts2uS<18h-^kK1tF~po{S-e5m836$&Lrg_3U2jJIm(#RvwwVt$++WixCI7#j z-pH|hpFAPfZNZ=EGG2K-KzqiT=>%I*N|l`&roAt1n%bXzW7tHlL{!h70gmQnGFXYe zphlr-vKuq%pwhn4rWxzPRO&*YO9Aby53l%_iL2V>)uli?FQ5l}lfytCY09D7z`F*LVxdL}^VFR2|T0W3HcX;_?lV&x9}J zHtKypb+!v*@a~uRrTppN+IgyU2oxS*IFRCJSj=%@8z^mgeF|HLk*7==WY~Tz9CVPI z=a!?)bDv%F1axHFDdl$R9V9~w<)~3@*7(apG8JxMelpjdZWw3I`r6`>n6R9;v+j58 z2ba|9QWrMJMpu!_htq5l^`h=$YSu}Yd0R)vUVGjJJg4p))DC6OfTU-DYCs!tK%4VP z*_^NgYsy&dpS-Ar$5mH1}v&9oqAq?Q%fEZu(T|KKeIrnQlvt8Exgb@zWNYCZn z;MP7~g8TzVD$exTnQHa&%3q9XetT z24{ubyBfdxwgDHIqQ@*06g?EIxl43y{(oUcXGMNKm7TxJk!~zjz?VFa0DqCy&T=D| z^Ped|l-SDKIXT)gtraeyrtXiqy|O+3ZSzo;&JN{Pkp+gTDv_YtFaL45GYzM3Rf-WN za*+@7Uk9oUXqh;Cav_tk-mddy#HZL<{}VW&Vq@L>38OZq-yP^Y+|>ECE2TO?Yo6T+ zRN@F%*y=hd&~89^jrpD}QzbqBLsI9s#W#5c1HihH@hRI#N9!uJiK754ueDC-&Tsvj zS)TfVh95HfRx*pgtMS7G)!jEfqOXh6#aqk>tcthzlAOg|{S?nL)*#Z&&26@3b6k!( z$#}zp*2Pqr-LnE?ybd?%&8?}+yAze3hQY196<9WQ#|89222LX-;&G`#JIMh;SP>Ae z$HtV=fO z;50J6<$&Z_0?$s*oml*_i{w~NHng<2Tem$iVI(pCg5F4u-Tt=ls#q+Fc(nnMc2ie++@ru?b2(dPfE3dd+o;u2qSn+ zh5RPst?cM*wu@?=Qw*Sg!h_T~T85-m6XZ2O>`&{@P^JjafrqZ$O23U&*D5)<3ldZl z4r+jto;TXgV`*z^^iE4n8oQ*C{^Pg5gPBWstJJ1HqQ|8UfPV+(AuhY|x!zZ&Ln2ZO5tv4U^Y0PoZEfkq7En{IS!TTNWV z=G28%7OtF}oht2+XF#;oNHSk)8fifK$am`821{2{X;}0#z<}5A9l4g#azUVGBf5~9 zyg4l`OoBK&%IQZm`BdqFik-`Ht=8AJ@8Qwo0^eE|rV39v3FoBQ<$_v0zl4Segbr@R z?SQ@KjgxK**_x+P(N_|7By+-IS=sjnY(Cc$x*Bu0<0EOX6X4YniILVfh|1a#EMRZ1YX5=E2#Q{_!c zOIsC!RBgJA#4sbJKl7T)8{!6`qB4%7ZawaWV0QjkQBh2XbiI97?XTm6j=9C=GZvjm z2nJ&N{_ioF5k-2mTWC5*uCqcq0eVN%s ztQBm>x>%4NChAxicEX^KMp*TI;Oa|3Xc<1r`^|fXUzWFb?39ryn$PPQkY>sd$yAye zb^=G2Y@)w|C8ixIv?4c{{z+`RV|t@|Sa>$v(ptuA3e0q_Ol*23lljA4HrXuDJwMoA zck*5lLqwXI|E7_&q*bUPR2F-M$!&(!%xj_8*6$bxzrswIaASNac(wz{9kgp_;Apy# z?_+Abb~jEDpg2S6bpg}p)vp3G0Fspxod3vMHK>k+$_0s%tgvNDoR=(-?IsT6i%2Qe zmTs^R-Y`v71ZoT+AxfXdAfpsUFR{ODBKPw823l}A3uAoQrU^LW1olF&f%*nyJFah3 zcnUnt!iI=jnHdUL3&I@^AdG1!C^XxaT zkcOn9#?H*h4RO&bW1D?{im{-bE|b8~`#M=|FKbH|!L4dt@^_2WvC1RYNT%VV5-F>C zOD9{cJd6^4=SyQqO9u^;yR`g95Hmb!N9VCU|MDDGg`|{bg=Vq_3HfM??~)CvwEF$L zcJ3VaQ2ARPkE*`i?{+a-6OY&ARSu;d6yre4v-uLDcB9@aKY7Y5#D*p|dYUNf0Kt3B z4Iq@-X88SXBUs`grmu6HigCj?&-|6)58Xe%`hHbdrp4>fd-B9;IIP3(bsf0g95tuN zvf-3C;R(J<-9;6(syaLWCvgI%=1lEdV~zNh%W`6=zA2W-hg;Hj_LNh5&CFC!i-aXp zf8s!N%@pN1b>U!laIy#Q>bppoo&lKs&OV7^YDsg2Hd8;v4GwP-@>DuDUW+g zoDQAp9TAitNbD?K#HmuFnllwS;qE0E<%6u!)h( z>bn^+>|1(|UVFTiu8*3y^2Q^m5i-t_x&kXY@}q&@ZEeEbN;iuu3*1|KcD%JXki6Do zZ3{;Cde0U2sK2^BIkZbd)y4a@m(pZP7H$F`q#;wv8cF^b2?5-pqD(1^>>@JuxN?Z!6YvvcD-J&eEdPPjstTla_u4_-lf|?|~nyhCFD(ZH%Eir^&6( zk5(=a^NPsTW#b!yXMhLM6B(J8XTh%1#tHvk-%3r_d@bgX`JwK3?3Lv!pVe1^G1BHv z)-#B%y@*uj)kd#M`jY7Pbi2~u#qJc*Y%ORfy1ir*rR%Ky^+s16D+1du^t|y5F(G|Y z!cyUC`)Jx$T!TUufui)74(t^LKvq}JmYeEA&!6sik>(GLf6^^)@7x;~hpdj&a%nDX zIgj}&#UL9@*rm4f6f1UatXHv&t4l&KR8P+OE=2ij*l4s&q^fetPYA}_aqBSCLeLD3 zVRSf$BZbZbzoLJ%MUA_Bu(``}l~~(KG;&5hn%Rc2KJnFCqqrLOW>Tgrw;8)3KGcLS zSznD{t6F7NMFPV@@fO#*qQ5#qMs%#uCx3}M#+W%U^l_6y$9Lh52*qHkkLG{eK9^3X zI0BOf36}8HxMe%P^?tc&5txp(Ce33}vY>Oo!~aqgXq<2*^GY+HLt}jHzY0Ii7-8&5 zwndcURm76F41yoSP0MZdx_OTny@a&`x%qB_i8PVs{nTa=L}M50H}pVR)p~4w$h0cy_oq{lgkjl|h=dS? zlKY6jMZTm$4!*a&AeRsm9k7T4ci&Db9qGOK>32`AhLA{=8A!CBj$>K>_1B_LX1c98 z#f*RrU6&B)Hms6Gt=b^YF1dh;Y|M;pHI7|=zcr{v=riC7{~4esx%t6J5u#x+Wa-cr$ zCRYRR4`@5?_XlNDH#RZtMvRyySx(At0WSCyG?*8v4OH_r5oft* z?rtjH+vy!ilw+wK-gKh{2;#HHL5nk=GFF4b<9=|FvVhPabAq6F+D36hdvc4z&J*V} z_t>qZs2ksk4efB2PYy_7)iN);6S#Un^?#JLvOa?$p}kpTrsn&h!rWx#82)<1s|XRBAx0oHq!B ze48XSJA2Fzai8njaEhw`%G=tXDGpM*3Ot-Hz-8Cv&w%P@z`*fehg(e#-5uCkw}uQn zU5b1t&c_MxE&%%Y>*?6ArnBJYWaE#S3n&$5cO~1Cz>Qe{=0|f~6^VcN#|0-(iFad- znu?Vohny^0onItTBcxS8WD+#Qn1&yS*`${ktpw?YUuQ2rdeq*lKW1Y6gre9XaSfAZ zGk$Mv5sVb~QY!6Q)S=VyxuBIDDoO)^lhe4rY0l-eF=)-;ewe~ho(ZR+cJG~Tk?iQ1 zY3TPl{duNehFlu{{wB}mK*O;ss)a5)%;}q%({Oc`9ib&S|CZ)h>3Di6M6xAxnZpmZ zk`U*TW&d%Y*ddj6*fOw{;%rCvGxp#b>j`1GxK#)NX-QD843BKKs8bL6*&F9CISYXl z%QjyNw6u@V#?1O{yjHNaX98S()^e8d#y$>b+U&KrV}CQu>rZ=0`HH-iFDc)CRHPQe zS@B|KYKaG8nfj-8+-2+%=OzIM-w|8t0zIa^f5Es4y(^N>J-~fGiv$qFcVa6oAfUG+O77M>bkP8@u5+M zdg&)vi7p}m5wTCM)sQFVB&*cy6dyCPsN>(p?H%k|IUu6L?N{QFNmCiIrotf8-M32N z(vuab?$ecvEPI%FG(gat48l-pM1K_}>o{QH>T6K;G~;U?P@~ng*d<@nzxRQW{Ui#i zY>0Po<}w?qk<}K8>sUhHD{s0pvXgkdSBW;uD;ZbUi_Z%g9L#j!Wsl`JySAy$61s5v z>p)wb@A2{4`U!J-fFjF0Nei*`Bb81+0GY6YiZ~A%sg>BM?uF){c#^0T;inC~Ppkzh zI+-rk5=eV(LdP@p6*j?q2N~Ck7c8x*5v7bfACR?;0`@- z61BZc^5M8S)2Qbpc5D;&QyaSNajZvYME15a{`OT&yFYtT5Pm_ZK#mz(nT@}Rw0R9n z*x>k~c96bduVS$)2=--+FpXVoOm>;LU%Lkk;tt(iO$`kmVS{cwnj%vKD! zG~3nT`+UOEz#y;MWTs>v(+0P!JEWSBqm!?Yy&&%8I%*=sk>*mzUcRSzP@zP!y9FLs zjE%C~m{kli;zNe68qQkX_7`nS%TSvIMmZNw5G#eHrF=Yw`N(&n4w<(8=q#e!X^+nS z@;&G#da}|>?(Rg(sVF!_Z=@S8p!fdP zKX2wYo^Sz!?KkK9V}#;O+wNfP4Md@E#5Ka71gaCkpo&rBwM0o;=3Q<}50YnAE9YYK z0+VI}8`k9)Sv3Z1*ZCD6CPMLf14ueKQTJDz`M*G02i9lpgBHa>?Bs|aadl+?a*&2k zi?F`j@(pZdfchS*+xM;H-Gmd01f++qe(RXdnJ&f0r6S)|sXt z+zr!!OZvpX*Z1o}OWKqrFA0V$IIV^<-D6nzUh%<*tRNzWfIGz;{_W>rL!_eBu)bfH z8nU6FJR?-MkktCdaLdq*o0#+`%(V^49C~`LluUt?biR8<6)_pXcwE%D1oKO!lSbo9 z+w(KNWEPDamJovanRkv+@A(k#R)MZ5`neGJm7+v#T{L;n1*X?ca|W4WV`PF%`+l&I2go>i=hHbvD8=t^3 zVBp3{Glf?Zo+&dz7NZP$*JXb4?$Gc{=w_&A4#bBfLM|&`CygN@+!@R*a?L5Qq_tQw zqmTIItFN-8eeVI``<9d~`mztu3lb@`sy3Nr4f>vDVVDKU-8&LWy9eni^o9CVjz)WfC!kNQ+~~5B8k|5 zu1Cn}=D|SYWFw3+g1;^N`cIYW6uv95(jsyns(>_sImawbDvss3$lPn0{IPjD=6k^$ zM5!SPEnUpyRXZeKLRyNU2CHzFqNKu`&EadJtiWl+msVkgV+#4r;@^j=#mGGtLrgqgB8=Ft zlQ+^d7z*X)UZke#MSa=NB~g1#L7<-qpiqPmD#pPes6fhZD8bX~Plj^#Z4XvpcrXqP z2~Y-KQU(In$ThZe_DZaV$lRuCo>#Y3PnDN1kVPN?DTroG4bWldEKTB<2@?S%XG)~^ zm~U2=mxKH_n#Pmjcd-%cZ}`TH6&=lDsLw+jS{jw<90oCnLFeyqR4hVL(l?C7GkrLK z4ZCvnP=?V`E@o1FNTERWEumNW_audo~xwDc%=6Z<4&dLrn1BApb#B|GWyo{sSKohy?uOX%YX&{U7-s z2L8jq|91>fdM%B$v-Z9ti7^n3TPsL3`HKN(VfO~+(*?fzf9OEO5*i=+^0*U-vE<69 z2MhYg`?m}bb2IgNDs<@sh>4Bu59)ojp48J5|F;JJrefZ(Fvnz=FeU6?zSp@%8(U#k z5R%Co_e|q0z+uqWCHvZHc!+=S$bNz_7x~#jHfFNASC%6CRm+&sc15Sa@vYQ z1`RV4s%S5kW2LO`-Te)Vk-4#SPFCdp71vF{_;A{d*JC7RtC3Wm7sb?pT zTm7bsdHR<8ddpyWjr~31@7IJqley!2wT;%?ExWx;NL~2(N-;MxlO$h2VRb2K9aT@> zUw5Bge^;+^vuHdhzLF7gtuvz0sl4O<@~t` zz6^ys(MW!9k>aDf_|wqGe;fOMsVvLYmEAndT{|??HI4;wmykP;DX6thMmUXsUl@U) z6M?~PscQj?!d+zO%J?BQyRmw+|6VgywF|xTZ-HpN?XR`0>)P(ImoqF^rF)Pua_+=#mv8!ChwhZA**TseoupOjAEOcSnJ;<|K@jb zne@K!ihG5Z#^R)+v0KZW0!YqJ(#T>wA?NEZ221pMF-7mt3GjyqR9X45HfE~i^xZlU z5PC&NJpiQrt~(@ap{d36>)Z_-zLVMP;KCs^`*W%^^F%NnVlmrV^%F znWbS<`u~OTC&focKm;J503HoT{x<$xIR4u}_}h5@CHJGtAdL^<-Kk_gSpUl`cc>_k z^joQwJ$W6K?pK9(a8CpIRes;EWfKlC)-Ke;W?!)+%PwWAopiyS8`qUOV;%d2rmfOV zZTQRmCF8iFDjRDKI2GP4MQMWMZ2Op@L1st;HqIj({NTzGF7K1WtVdbyQvS2E?|!Bw zE6sOt$0y(!;B*(SzxmDLAs;Pdy$uTps^F{j{bk+W+NrFQwt_hkqmROA~@k%)Xcr1~NTU}*0 zxXF&B6eEjEr|NgoPl1W$CWT}SccBrJRp*!~7zcAzKA%rnUs*-ORe~_`ti82L9#rSo zzJvYDOF3KCR`Aae+QxLgQog7#Q3hO#=x!&%!QlmT-Ir=$Bx-8PtFNhC$>I`+-AuF36 zL(4DMw1&9vqL|{)Cl+IGJ9!C*2Xoi$?Fz$z2Y2Z}j&E}V4!!Dc$`e(ZjlOXux1a@# zzagc2=bBsaE&p5@@OQ^yll#EU>G;7gfLr0tc;M_oEM1Kz_R>~laW+0$Vvqxop&as7 z-#4Xp0*V_UlNRC&;CBCJc(pEThGd7{ke(iCvp&CsRe-d;j1W$3RE2#^y5i~cnrysz zc-^OrsPJTIJX-GsRdYdn_D91!IVIMiDKWNPtHS-+p&L0Y%MYun4X*^kH>F!pnXnvP zG*_~|+rCdlq`tdMpATgp7{TT|+Ekza>?6x}o#=D_3}F2kDjZg(HLgdh({l9Lh&ZNM zvX9w}0<8sZ!DmIK#3qy0l&I-8hnh5yj{NCvk0no3e>Szdap0^uXjQ4%cBxLQD~32~ z@_k>_szh#hp%=_Q%LeAnTMuq=!UVR8!1_N^_`UifS;4LEoZ;y+#NG=MxHC)eYQ>x7 zP4l$S*FK?s2HX%ihH^)4I1%*7l{005Oot9vnDMg?BU!tYy1JeL5k+E&X!mofcA@MQ z$Y0`9Uc9X@5~>oD2nk-Y!yszDAINzmeV&8t4Jv#qjJoZGQ8m}fl zOYgFTQD)?`(mXrVW_=?){W_Vu@2rWMaR%c~-JJ0m0M}fg3*@$SSjrnR0dw;huYg4U zv_hQQjmYfkp^n>Ks1wmWr0Tq3blHPfp~y=a`Db>Cq!g~z@k|+Z@m?V&d=@*@bKkGY zR$|rn$TwHK{1bp13vzwznW!t|ACgx}F)OfP_7*l&(D7c(?P!|8N6O(-jB|!Z4OY3& zi^ymP-}liErRY|_7A3B4fh)voL;-rwX7>xWrbQ zXOU|DNa&-@*QLBcpHPP$2ZL!5r(urYsU9TZ3)GI|y|d-tcK!a4_a4o@QqSHgX#^$i9z>6Ww&ekUuxK7|FH9pdAfND&Xmrr61;vI!({0Lp=&$XKtt5W;vv!@>wRP?ahM{br+hlo~UPC)RMbj6S zCBHQDU2_IAs_PNH!WQVsW|haq;xERe8U&vRl4gy_Axx#on&@8Y2G!c`rJsb?0{qNZ zR$LC}0-LknO$%jIlDj?FOwL6COp-RN^gri+G*tV7>Ac*whmTY3VKu`++6i!$cPr)$ zres5@zNS|}f*dt^^d9{#(v5%s>2nz72Al9WD+gAk$hQpRlzCAy{@=X4U?^VoGH2Kq z#wN+eIfjvXHXK*C`I$`q&s{yx59jP+cPS(B>mQo>TYKskhgjEsSx6|?JCe2uDJ5ml zNHr-dp&rt2bE0`1PSf(*I;DM)P>vJE4y*wMe@uG3$0~=QG%vgz^lyH1OrcTj!0hwS zRD0fQQasds;IEXmq4^n9>r2a$%%lm|jY5CLYNQxR?58%L312gvd3==F4H{4Ok|Ykn z_fH}k<-F<(|9k``g(?-@pPE!Eqt?{ZN>Ks(MY#<$=DjKdQH4tUrcTO#1jgIc8Kd-O zSfL1HBPTY;tCj?Vl(r&`4SNi0MaoU!q$j{&eFQsWvbQOE2ECha)DT;}W`Kw)1`tmCCo%Xp9RcBw{~1uiWq9)u zhnKfLIV=vS3AWp+UTTs*Ki~*B4!k41BI)($eTWl>B(_9vR*Y>v28$uNL(e+eL|KSc zq%Q3)dUp!v6juy^u?x^yF7pPIdIzBkkDcI+XBf$6@gWEjkLHf zo3{n`yQBXKKc?vgxfl!Om~@5`m2E^Dyu;HrmtWZowchY$eg*($?ST0y7GP%;Mf_+%^8c`VBFdhTpeunonA zMM9L69*rBUU`Y4{?Z~;mid#%g>~J%`)PO?`e=AMB({98ISyA`#1ibw<%9`219!~%% zDkt6^S1wU3p<4e?3#P^{i5;Mm$5j3MI)`BTi7)q@;kz<#{>`_+XTTWz{>B>?W-wLR zpHWRl-$6Fk5IQ~^AfmW(IP-Fyxa?Ivjy-e0DWFC|EhVdh1S_ZSN1l*AnLS?6*M6(} zB9?i!kmC0CDGj^y%bcsH`PX%uh`(U|BG%u8AAk1_mHEkeqr_Y8wLZP9ud3VI)-R2< zKD;EG)tt+F2An;X4M%ncu!~~kU3_b@ucW1=S4E7J_9&?=#mJjcG>(paWE~f1vFcEL z-EW7VgXi0=WHblz_0Fo_i}iKRiH}To8{tGd(jPsCFxT6rX-w44_F0rCeAuid+u6ju z*n1>WhVs{2pls}VA~S44?P>?@TQuX<8ge7zoR?!-!y?o3FS-oh$#k*6LK(Cr0B9gI zvXVSEG9_f>Ufb9je%+2ERtBjWd1*vwbjkRocxNRs!f(-`yxby#Ym2cjOALr;+$cP> zA_tB6Z)QKYDA^p;nobtZn*+cIzO3dB!S0Ua8ore76r2>fx}lmV2lL!R{BzB348nf- zO>Q+#Z9kran)xJ6kT#wU!1P;CqJVuNL^EIO00sugoSn?TgPqLv`>$p^>-z8aY(%YH zgFe;dbX$KTFp}QUeFoS+C{qRcj4HLXe`((D0A9F8wST1SCU3TWGPKN-fZ)Fq*e6Sa zc6LPno*OYrw>isc+L(HZ>sTLiLSG6DY|4syDc;vjpG&BMdv^1*gxS?>E(G5}Eyc5n z@Pazq+m;w9HImt|at7&IxQw9aHj^5tQ0nUH@ds9Ob#!<0#*OZMj&&=L1Q$9SdFr0@ zic$GbECj0(DR4QlgS|E4FbAD57RT?x<0d2;p>$i6XOJ@guZ|mA+8)&rYu$7)CO1*? z%mjlQ8y0qgg&XUZ^rpMHkO_qQ#S0Nd`D*fAO>UOvda_FT(sq^zuU|;r9lbK@neji# zf;~G7`!T#ovsoG_>^03asx3{6C_TV61$4V*4|QtYEwAB2JykkIV~nZzV8r4|YCb^A zLe77Kh-(wJ(%on@6=R@BQw!h=I#fPkiPx z=gv>oMgV1{mTt;~*R@hkO+WlMP@je^xIR#a>{MS&X$6YkdD-u-(eWLSndumo1GlpJ zi=^@jEJ0xGQjC4dZE&@^Hbg(rHlc@gVN1}mJNJ>y<8V(sNV(&6z?cPXHWK1lg4d`T zZdvAZ&p>TW0(oQ{M3H(1Lq<|H{>|953WGk~cT58|^|vEdHoQRS!0xVou3b9kMbtzT z@5M@g&#Hdb3QdNTHoVpGSwT>34EoW7)1c{%!^qAL-GJuWZB5u<~HO6B{} zsGQP*1g3sm^2dN*we~~~16cm6!#eQXv9Q?!+VTzqMXKW@qsno?k9NfU2D1Eq$s59_ z5Gv@8j4y~^7Ta7IxHAxNuP%MwJ3hordf`1 zJi>harYwNYAG1*pPQ)=a+U-uhQ>r(L!#@o9dL0R^kQu4aXCo48$bu%LIKB+jxTPE5 zgdDC991n$(B~vh&GUV&Xjt}+Rd~|!e8d{s_ti+8KA+jt&sNSMQnv3ZZo;1F;GKT@SK#k3L+VA^*-?u&8FDIXMm_Z&NY>pTe*YV zQfFmLYl1MRHu(zYDR?V5TN{%Zj2It`;u@P8MtcoT%kD$>l-nW`AWM{4wn#0E5`9!x z8tOl*k-4u&zpAA+UZ^_ev~TX1cQAWh(Hx2&eJAFIue0On?X-tKp}^)iU|}IfeS^9w zf@+dkzHU_Xs-q=qO7_obZmg3!T;y*)IXOn8mIVa8pN9+y(0$H*>@QdNndQayaYoFwrO(WHUzI6V>BT#X(~4Rpp8kjqr3H6L~VSjK24Bo^_I^Io8)fy7iu?$ z+S`+?oZ2nHeJNSykXn_bqz3=}E&X@#cy12{exTR8y_O1jT8~+N^SEB~g#tYW+;>MS zL$j4r-`?d_CZ9-0ma!*`_O5Jiz%4R6t*|(#ROanol^0e&k~hJta2h_n__VSEHjx(P zJo`y{frqxBtKQs|1?PGhw25UY_J2vTVcRm^aTp<5hzje0UptX)0nuX{#< zBmx2$S$wx#N!}6Iiau86ppIMn6tF#S)=39(i1CN<{_@g$$u^Z``(hvgv&4+e_jSRd zm&!N3)cIQ5cDpH!xQT{l?V$oGd8aO6usqu=CyNgLptS7cGeDR`@I&d%jQP= zziBlXFp-BP^_Y=i3wX4Jh~)kvN%-^(Ao0=1to^vmD}76R7?b!(|J^F|ho+@t*|g@{ zTd>qz#@l@3pXZJaO^Sv*C>aUmHhhE{s#*c@x+e<}%ijo$?aq@q!8D{^9@yS!p@-EK ztA-ONS)e{Al%`yfNS4I8;S#srH;=EY|6KDJMYY&|+VAiiauT$kXt)9dp8==gYbzfy zW`LhM>7s41-b?$LQrr9rjt(Lv&6;wFYqxCjJX+aJXAPh-62HO4idEddgvIA=_zJW` z$6~WP?Zu1Q2$nDBZ`Xp|1&HAB9$LZtc(_};oS2GN%ld&9Xu*2J07P18RIaF~&0t`h zm>NpoA-R)6a040el}BFsyI1_~5dUX@Ql@5!uKuCqTa#PnD8{vX`3CrJJ6&r`*21$d z(@`fO6>tR4;zjMB&aQQawG@0K=*=N$Tkq;MUZpVgWQh7FCO3eq5X2lB%PTjUg|SQ zl}~;#Y5m*@y|AkwKi(K7fp^`i!>t$5D-&WMA^?I90rr9EDOLMA=#lt6`u2AFv-%;t zzr;Td4cE|t+}*Y{xXdC5+o^*0=4ZLYEGLGJbNeJJMomVi@o>1os^1WfBY09VMhh># zZJ=`0rD&|HVoKkd#%HQz-i}rIZkm{>C1(qZXGerGg2^CYELF{6s;x!;O(?QK0WdDi zBmxW;PW~LcWFM{SYh!{(OE(!K2#@!6o>WYmx$&JaIpfP9X%Te06QM8_cdZB2ZvZ`6tW8fQ~g!4DtX;hMvMBQwd^=M2|Y^!Bk7_UXw4_5{_(5* z7o+cZz+_%ZVMsPnDoutHTn3B%mqxv1>u^y;<}RKIow^u!GjqNBB`U9pB{c^-_jFe_ zu4|tFFN-xQHtFQc)mN2*0#8Nu+xZ7O_wj8pfkm+_sDxyz`W47#dFm_(y7&uIWhB@L zCFEf;vlqu2t`KLM09G;U=!N2EfNxt{HtXfqw~> zAkPHsJ;6E@M&CbHM(#P7ku0znxE2VC)lzn&$`pUdilxyA@E}AGmiGifwg zBW&Mgfb8iZQ7jWLlbnlW2R3Fjcc%YN&H9Aye{`0Nv8uj~Hk-2Hjg31LQ#MNlm%7AU zLpwzx?-H;I5}&x`&axXxjn^R?i5-u-JlXr4bB2o}zbX-m$}M*j!<_KH0X^vtNA>ui zN*m`o2D5@E;}{$|mq?!t-&;PNp{hPn^cqdGHkh3qUZ6Gj`waxssUkwXl?33$^q)CE zVcY>x*f-(5%931u%WBzEz)7WtO2 z+Mt@BCL6eOBrx|rytepX=5y0sICiiHT4ab75;AeI|Ayx@f`i>@I?gdEZ@A`Y{{ojM zKcwweVeohOk{!sjqK`PinK83KHtoEl?R<%}yvjH^ths z&xLFCE4i+Lb4#1M_Bf-?ACBp`Vdb#ySI0=hOtkC{zmR;W*U)F(_mrAy-VkP2MAPyn zjD^3KAXsi#-ZNQqbSJq5g1XwIiDz7Ft#OY{r!F}8%IE8d7PHv`b|;8Rbm!*)paNT! zNlZMgZt-DnY#7;;YyYo(tocR3HYE$#YxtatzKGTd9$KOFhz4vFp5Z7oh#|_xaF_X7 zCN#B$Pj2wmQ(;mrk;ZS@Iz%7*Q6QNvZ+>uChBPg~#G@v1`IGOPcIM-?Z_d_^t6HRp zpW5SvPQd&Xc0{}`CCa2poR6gxu*Xk#?VsAo&^rw9L!e$bAp=45?xL}tgI8(W?i6sz z^G;ZtlH>?y`Uw7P^Q@)Z$>8n&&tBbl;cbP{oWJ+zfolrRbVKVDY4O*M60lFDf^RAj za&b;bvl|$HWVjM+;S%VM0D8~qs2@4b#_CYI>a-Nf@Qi#m(EwGdU1YeZ*X*ryvn zQ^vh+VBIajlJ2ak&oVJWyHiu277o?vRHRF*M2X%C9;vD$e(aSAm@lCamsyURt2wD_oCRRmO zfR31Dh1&Pb8?Q?%pTP0;WxmuD3%5iHkM^w=sda1X*|q%6;M7X9R96Hjhu28)yn3y7 zUKMAVwET%)aLS9=aAi2{NCDpTz#q_)rwiR!u0DN{@=;e2voQ-8l+%5?J$S9ew-q-Y zLN4AueV*ia_R>#<_%Q3eUY&rB<=ED$S-{tGv32soT~BsQyA%UtEOy~#k#qqM?Hi*u zk`D$GSd?VNWi2=u8;q7c8@S(AHXUGUBzzX~9j&665grDqKV0xWPGBY6v*EEdi@a5| z%=PL8{%)U2$Zj>JZod7XOu6HMdLR`YI#}luFm;sCi;q4 zx1cXs|DF=4!(t(kIp2-egIOV?)r3^sUj68ezY!bH&9Jthf`iMWEn^c6?4T!)1AE(4 zJBb8?BOTp@Y`dK-)=*5VBbH^HA%@#r2^E3xRevb5Xu^lVvqzfW{^5bXeq15Y!E%5= zN%K6Xl69R4|G#H(jR#_I?gq;=K#X#%7(bMi;!qRgQvMQFRdo|%S!IE8S&q}8Xd&m7lsU~GBN;F;ja2&QbCvrsjezvY>+;HyM(C!r3 zdHe-vd7;PeNn$wlOzY`~7wFZBePxv89%I;@fO1x)NKGx9T$Xo}0EGKxG;*=-{TSc5 zS^4UoN8zTkvN{=3P=VsBJocF&Uq!<@^$=uZ%$@2uIfq@}DFNJ#0kW&%KQ|I@~nd_K-mnu4(FY*^1mrh1wpSl?gHw4rrs9KM@fh zxfV{uhoHE7y1N2Lqfz3nDiFn{2lcEy`t9=8`)0|?VLJ;d@Bblg`sKY>Ra_c@VZ2lTGKzUjOlHE$o!IUq8>UjIdu4>fmiWM!B45r;3&L2o|c^?Dsu$>^^%ZHJed$T^leZ%Hva$lbYh@wNk||DNqb^ z^>JaBGTR06hWCd@MY-)c4~D06eTI!SlIN};Ru7^8nY$H8P1@BPH~-{h+5U2_FUoqW zx?eJ~%fG2vaf)Xc)4l6{r@0X6&fSl#xB$EiWnx9yy;M-|(CBB!HX&f3Dq6Rg+`?Ps zN^JVcHG3}k+Y^UXb=V9NVv*+O5u%>ATl9(aR3eQjPxKbZ-&rkR)XJnKBT9jr^t)+r z&Dy%KyQG$>A};f!C12ccgZ*lcvYLI?nx2}B6p~cQeRpnOS@}2#tB{KsMFqQt;F2X| z{L;Ia&nK9p&-^G1<2Ad_9f=}co3CXQZa@TzDIht;dUtf<;`>jWqFd%5B)!1ug=?>D z7_tBP=keCCjLt%J6*TqH%BO$u+Fu9eedY+_RHeqUsK#p1FSQ{M5l*HWD=U+Ol-H-SKE4wIAPsOGg+#Z(Lkaud^TZijlyVZ6?mJM84{Ys&P{#-j+%cTL{_ z5rs%;bDDSzs-7$6&2)4mAc}ON(=(xRQBK+DkP4QnZw`L_8Y(BXr zKt$+#6&$|E)yU#@tm2kIIhol!uU+0fHQ9HL0f=JKm11H~6X=*-9e8Vqg4`dK6*Yww zf>jiDIQq$TlG7OrLP}OGXTbGZbfE5pgTg^x5sU!k2I0RMYwdABQ zYupmGBBvmfo||f7hgIJwqVSSMD>Td;i7D+p7pkApAl2cnwi#jgstd8StQDR}f58!2 zLGGR{e?*)ufogl7u zuP9uJr4>n|25v?^l_5_uKGbNb=g{@{L_LVlFyy|5SkSgmsbsciPFfitPq$ce!%fKp z@@dA`Y@`+1fg8Xt(o#Z`YK({FxW?J{-TH^O2F*b8?%bC%E?Qk;d}v#MAfJ ZDocumentation
\ 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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/animationcontroller(forpresented:presenting:source:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/default/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/dismissalanimation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/init(presentation:dismissal:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerfordismissal(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/interactioncontrollerforpresentation(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/presentationanimation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/animation/uiviewcontrollertransitioningdelegate-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/addchild(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/chain(routes:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/children/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/childtransitioncompleted()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/contexttrigger(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/coordinator-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-5tg0j/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/deeplink(_:_:)-7vijh/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialroute:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/init(rootviewcontroller:initialtransition:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/performtransition(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/preparetransition(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presentable-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/presented(from:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:handler:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerinteractivetransition(for:triggeredby:progress:shouldfinish:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerparent(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/registerpeek(for:route:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechild(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/removechildrenifneeded()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.property/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-6xno2/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/rootviewcontroller-swift.typealias-8ybij/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/router-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/setroot(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/transitionperformer-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/trigger(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/unregisterinteractivetransitions(triggeredby:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-614jt/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basecoordinator/viewcontroller-8iux/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/init(rootviewcontroller:initialroute:initialloadingtype:preparetransition:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/!=(_:_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/equatable-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/immediately/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/initialloadingtype/presented/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/preparetransition(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basiccoordinator/presented(from:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basicnavigationcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basictabbarcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/basicviewcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/container/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/container/view/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/container/viewcontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/contextpresentationhandler/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/addchild(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/chain(routes:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/childtransitioncompleted()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/contexttrigger(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-3460y/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/deeplink(_:_:)-5e278/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/performtransition(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/preparetransition(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presentable-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/presented(from:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/registerpeek(for:route:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechild(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/removechildrenifneeded()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/rootviewcontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/coordinator/viewcontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/documentation/xcoordinator/index.html b/XCoordinator.doccarchive/documentation/xcoordinator/index.html deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/animatetransition(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/cleanup()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/generateinteractioncontroller()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(duration:transition:generateinteractioncontroller:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/init(transitionanimation:generateinteractioncontroller:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/interactioncontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/start()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interactivetransitionanimation/transitionduration(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/animatetransition(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/generateinterruptibleanimator(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/init(duration:generateanimator:generateinteractioncontroller:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/interruptibletransitionanimation/interruptibleanimator(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/gesturerecognizershouldbegin(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/handleinteractivepopgesturerecognizer(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:animationcontrollerfor:from:to:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:didshow:animated:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:interactioncontrollerfor:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/navigationcontroller(_:willshow:animated:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/setuppopgesturerecognizer(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/transitionprogressthreshold/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uigesturerecognizerdelegate-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/uinavigationcontrollerdelegate-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationanimationdelegate/velocitythreshold/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/animationdelegate/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/delegate/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:initialroute:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationcoordinator/init(rootviewcontroller:root:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/navigationtransition/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/datasource/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:datasource:set:_:direction:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(rootviewcontroller:pages:loop:set:_:direction:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinator/init(transitionstyle:navigationorientation:isdoublesided:spinelocation:interpagespacing:pages:loop:set:_:direction:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/init(pages:loop:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/loop/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pages/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerafter:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/pageviewcontroller(_:viewcontrollerbefore:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationcount(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagecoordinatordatasource/presentationindex(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/pagetransition/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/cancel()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/finish()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/percentdriveninteractioncontroller/update(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-3jrlv/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/childtransitioncompleted()-4nvzl/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-7l34o/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/presented(from:)-vlfa/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-1b0o3/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/registerparent(_:)-2syh0/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/router(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-7uc80/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/setroot(for:)-8jtc1/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentable/viewcontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/presentationhandler/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/childtransitioncompleted()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/contexttrigger(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/init(viewcontroller:parent:map:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/maptoparentroute(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/parent/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presentable-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/presented(from:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/registerparent(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/router-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/setroot(for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/trigger(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/redirectionrouter/viewcontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/route/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/contexttrigger(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/routetype/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-7y4ig/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:)-pmke/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/router/trigger(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:initialroute:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/splitcoordinator/init(rootviewcontroller:primary:secondary:supplementary:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/splittransition/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/animatetransition(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/cleanup()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/init(duration:performanimation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/interactioncontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/start()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/statictransitionanimation/transitionduration(using:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:animationcontrollerfortransitionfrom:to:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didendcustomizing:changed:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:didselect:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:interactioncontrollerfor:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:shouldselect:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willbegincustomizing:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/tabbarcontroller(_:willendcustomizing:changed:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbaranimationdelegate/uitabbarcontrollerdelegate-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/delegate/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:initialroute:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-39l8c/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbarcoordinator/init(rootviewcontroller:tabs:select:)-w397/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/tabbartransition/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/animation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismiss(animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/dismisstoroot(animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/embed(_:in:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/init(presentables:animationinuse:perform:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-2uy55/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/multiple(_:)-4o51b/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/none()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(_:on:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/perform(on:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/performclosure/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/pop(to:animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/poptoroot(animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/present(_:animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentables/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/presentonroot(_:animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/push(_:animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/route(_:on:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(_:animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/select(index:animation:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:_:direction:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-4airv/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:animation:)-9wr0e/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/set(_:for:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/show(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/showdetail(_:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/transitionprotocol-implementations/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transition/trigger(_:on:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/cleanup()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/interactioncontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionanimation/start()/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/animation/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitioncontext/presentables/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/animated/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionoptions/init(animated:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/performtransition(_:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/rootviewcontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionperformer/transitiontype/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-5w9m5/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/multiple(_:)-ukju/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/perform(on:with:completion:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/transitionprotocol/rootviewcontroller/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/viewcoordinator/init(rootviewcontroller:initialroute:)/index.html +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/documentation/xcoordinator/viewtransition/index.html +++ /dev/null @@ -1 +0,0 @@ -Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/favicon.ico b/XCoordinator.doccarchive/favicon.ico deleted file mode 100644 index 5231da6dc99b41b8c9b720113cc4991529eb215e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 zcmeI0eXLhy9l(EZk(V;zI<*U%aPfsugKmE)10f(cwHIH|L9U{ah=EJiM6*Bqr=-%B zThmgUiaYBb7lU3O68JDrPAE|?)})tN@Xd!mX^#urc&8-W~DL~ zA3}(DSI?zd>5t=7SPZK&9IMk-CKECK0-k`U;cFR=)oIfwPriimM=%tA34>uqhGTWw z^!XyhV$KJkAAAL7f)e5#tD6n_=o|X*H*J9*!w=xkaDO&l!&TI))8<%TW5QhB$+!uI zgTK|W+?WyW{SEqf|1Ajfd@f__<&V_U0+&D*$rJDKckKge;Kf=4$g1yzV zevDUKll89O?gaefnyh#KgdEOCSXb^j@flUKe{ri#JZG9=8hAeSq6{S0`EUiecg3+f zZG9m_NO~Q(PhNvAI0l^=j@4OB}1yrjNeH7;BDt zWHdpouphn+qu>SD3}=Ay(+tPz{s`+qUt^3l$7rZUrr_*cu7eQkS-Ka@9VD)=PTM~C zrZ)2K)rVdOADP-OM$Xw7xcdj5kIxhq;`Ko_erfdtCwz5ab>P+hI^p zWY@g<`siy+5ObN+++jY0EnHnEt*{XW2W2+i&GoiO7lwKDwcQT8Anwv1zHlea=$Fm1)sI(CEUl?<>-x#b&fv;*0N?0-z}1g&&lU_V`|9mi=Myc zxnOMGv-X*JZYk~$*X38eNyO)Q1TIeW;kK-PSOZPLIl9{09^9bKRvHMhR+!J{={mSZ}p2hmSQ_*J4%V8!QhMz&m7p^a$ z^Ea%@vFY>ojNl(%&1dX-i1m)OS<~8~eqN2^sc*ib`r1PMD;PT$d2{UC)jR*@Gu9lb z#PdG}W6}C^o%kE#cV3(;%xkO*<7(I6Kmv;PpL@ss=bx5&QdZv>WApZ(=SkRq=Jo9H zOi1N;&!1OGn0Nm8w?sI9tm#?k8t_@A=jET!Ez8mCw>Be<@qQT?o7${ltr-yHM8ALR z<0f#uP6N-~fbUS(;DksQY(6ueUAPZdeT_-qzthm=y?;@6Kc`l%ek0_4e=O1|k)rjd z?=Bb=`SPepAKywB^;;M_*%tm}?1`+Ztu!H^3Y4AhQ*Fos_PR7-If9s>KVyrpLRc&otyT#a6*bmJiTl_eC4Te}Daj`>Vh+L>zB}qp%5jZldfi5@( zof(eRXh;0!C&y zR;NuLeNP6lk6|zgJOl58r@(i`R&ei$V|Ci}(bpJbPta6h`nD1o*f5aCHPx{SnpBrx!(-~ zAeN&3_0e}R82bo>`C!;xVZh`4g&u_3-dw&O(faiBSzn|gW=k0oKhE&S>*S8sr zHOG|@#2VJJrnUVI;TbWkN}BNU`8hx484R&}n44$8Ir9G$ozGNy>fe|xlb-rFW<0o;&1KG1tZfhWVo&x~Ca(Fp;C|c= zE#UKv#d*66Le5iSV>GU&e`A+sxy)(qSgdUi_F_-=W{*WO3WH~`z1;#sau|-z=iLcc z=h#EcMc8&`I1c*sY7TQf1LjWc-hUnJ$#vvAu1H+V`n?6dS02h?1-gCU-ddhx4>7B- zc}9xkpii&nFxOr%cWU?EUj7Z9tBW8{Tx;zR-tS$E^U!{*3O{4@le|2!uG*aDYKL@B zy3Q76b)Mro3$86dyU%-Zfjz`6!0w!i@ses#^MQCh%`y{q#M6>ODD!(GJ)J6Em&9%fBZMfdA(;5Q^kn4DO?Ka7K|+rmv;{ zGl^Lb=C;Qo8HC|iV6XOU@9ORY*WWjwOeSM=udRfSlsRInrGIm+0&|CXWtc0sp|#f^ zg1w&xt3llqD3j|jc7bQwhsqqW)zZJY9tQh&ua?PFjP~#(*t_3K8(}|`t$obh?>}S1 zZ&z0&we%m>fVt-sCCv1$FV7i!w)YXR6?`XordYR#d$IYP?uU<+_!)m0yqe*-D5rXJ zJpktZK9u>|qrKX*y^n-#VC+AjqlAB9^Bv-KXNg}2HhcHIDvmo!Fqh9iPtP`M^u_sUPIK3Kehwn0 z+V|I`_TWA^yc@2xy)J3_rufp#orIy zcK=`MZmv7P9*g8u3~jI-nxRZQ!#gq@mq{~5bDF#C`_1n!dyK!|xb6NwuvV^b!ff!F z6p7!sufrup4w=4|{>^31Uzg;xCwsHU4KNgfXj=$f@I1@{_fZ~e(Radk3+y4Lp1)tr z9pclgJv|5Zcq^oH+=Q+jdA^W=7vMjXm z#SG{E8E_3u{q3TPIJdL$M#?^_GE7(p-37q%mu$sJr7zSU1tN( z-38`*3{HVOsb>EgYYuan)7-IG`;%ZV_GEAUp-dVvhMcPz=dHEr==VSyjDtL>rvLE- z?f`R5gH)_-5B|PK!QQG7<9t>JVF~ygWATiB7PPx((s@JG{SDv2Rs1cf7;^_40&|%& z7Hj%9nfBkoN1+yR&29nrmcPOHcr9JY{oC*d7zL^HH2=*6YzA|fD~L6$Wz9~ohYO)r zaW8xtjCY<_LY!wH_dZi?cZ2g8OIiQ=E(Yh;9OepQjg??tYr9tMr5-WPe6A(Wt{35Y z2=y*t{1Ujgu7UXZ6!ou z4g7WtbCuV>w#k{VF~*vs1ucb-aRa=P;aJ^X(8oAqjCE`- zbDFz1)(dHR6xYY@7ee^YE1DL~HCqmqduHQ*85BwYUDcA^G yVOxe{bx(pm`c4GDf#W^T?Fke6@Nd!6;4Byct_N|fPMba_OV70Of&4$uz<&VCpkVL- diff --git a/XCoordinator.doccarchive/favicon.svg b/XCoordinator.doccarchive/favicon.svg deleted file mode 100644 index c54c53fb..00000000 --- a/XCoordinator.doccarchive/favicon.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - \ No newline at end of file diff --git a/XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg b/XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg deleted file mode 100644 index 6bb6d89a..00000000 --- a/XCoordinator.doccarchive/img/added-icon.d6f7e47d.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - \ No newline at end of file diff --git a/XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg b/XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg deleted file mode 100644 index a0f80086..00000000 --- a/XCoordinator.doccarchive/img/deprecated-icon.015b4f17.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - \ No newline at end of file diff --git a/XCoordinator.doccarchive/img/modified-icon.f496e73d.svg b/XCoordinator.doccarchive/img/modified-icon.f496e73d.svg deleted file mode 100644 index 3e0bd6f0..00000000 --- a/XCoordinator.doccarchive/img/modified-icon.f496e73d.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - \ 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 deleted file mode 100644 index 041394edda9494abd40fb9225699cad7a7842b47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6155 zcmeHL2~$&97QQclpdz3SkX9rSR7Ow(Dvg2$6cn_T21Z#GqO>rqQ6V4!LR?W$aTkzP zT3N#~A<(SBMu@E-D4U95RRST2L`;B$By)o^zhP>sOjYXDyZ65H&iT&ref6%nI6E#| zvT6wcVA%mD2R8szumGUEG#0@XS5wy>cv*bf$twZ?z4gjJa=>lf6ae}S2ORbsIhVm_ ze+fRqsbdX4d3x{yQnT)<&nkL6biT%C z`q0)%n~>gP`l=G6_O|pi{b^xL7AbptpMCIvIBsM zMo<7e*U$j~yPpdEvOuWA_`&P6}+)s40)ir+f=n-2iuCmf4 z96>eZ9HvWL;kA6R4pn zBsc4A0!H4|2l+hSIeW1G5EXRR_0m_VtE;mo`^p;D0%M5M`0+_DYhWPDN`>$VhS(6Y zTVc^YwFl_k1xSvE<+}1KYKHlOIFXp|LtNDK0s=+usg-esqpSf9>Uu0RaP*b9IGrr# zz28PuZCU}N{PwiU52kjFl;fkWjVhnjG*V4HFL}%+caqa8Gi2jWQ)Oqy+R_Aff5oT0 zGV@gb6mrl8t| zlj%S&17@MryCb18%LF03gZ@X*nasg@T2M&HtJP}eD3mI-CN1D=%;c``Rb;MjDa|8E zkFpOJD^oD5e8N@ey8P{*n{Ohm_AmqbFaw;|nRM9_f&<(=Lz=3$v@^w;~JrUk=hlX-u#EEna7^RQwR`c8>Qj^0fS7NOgjVUWB ziPXpW8q8NtvDxggLCZKDLY%5b6RJS>;)kju7o|7rNMT_ua)6$#2F!pZu|{4mdhooGXqXXPq{4A?N}9Ba;*>9O{eELNR(W+r9tQ_|;L zoM<*60l8zqkz>qC6SVsW}* zjXOS+i9+KLlsT5MFDQNEa97dA2}Xk%O{=wf|9z!vE1_$5Jahj@P*CPC_?TozLrdRa z>~`HR9VahMbrsl8Tw}#}Ocpt}%g_?+KH%&~1)2`oK4k+BDJ8u_7E%?${P*(?FJ1gu z!x2=W(&p`tdiSlb;`zLk4;R#${#dL-MVv}0kqL==_O>`q`g_TMrxvV$fl4h*$$N}| zqE>DIQ`%6l`4r8}#@!Y?fN4WhMIzDo-2&ajMus!~OPd^cnnL%mD_qTQr!wBu%8InI z@>Mjcb5L}t+@4=S5stL@Dk$tz#iCMQrHy20y4fY?6WsPIa`|eM?}!2^V1#1KAFK{ma;X! zWPM8CAaqS}t)9yaV5m`tJ%zqN)8n#zW`6;WC%Rns`InjBNV$T7`}HmS?R(6_sP(Hc zD;Y2_n`?yv&<0z`6OcGXlA0*KcQuo#NVwZ-($zYdeC{&q)6Ce3^!J#q{moM08`+xm z)x<&k2j4Mso2C&sV3z*&uUd=B{yz7(Lnp^~bUEXhu`>c@I6uAQdbhhJ(7U(|3o^X@ z=(eW#oBbb-o^fNUFAz+|LE7HREJeZWKX*TTy8^S4#_jMxsR-fuSw$rL07aljE=Hdk$+!9fLzyP*YogOg7mR(u{OhWYl=qUHeDLx zrX;J=Ck=%buEp4{ODlm4CPStB?2g#2kvQ2C$?wIO>FX)i$n!C!28i+%Paco-6PaQ7 z44IhUpJ%fhGSTxbc?)ARTlIy`NS;(GqH&aH%`1zo0M|mwFNRa{knECRkU1!W_156$ zL^JIE>7Jf_a?0YnZ;`QI;ApUmuTYFVB05{rAG>d$%nm2|;sVn9$9m^da$8sqVaBmj zL(j~!G@I_grj2kHx(4p_Wm4j~CSO^Y1cS?m{Jd3uBaui`X3MlOcxAv^FkpioeTg@t zfNntl%E?YJWIv7WvqYWsU*PIWlbI%2G?5Q8i9 z&91$R20x)xu{_wwT*KYuzr}PW-KwSc26?P|>LnZZ-?vRUHa zld`&Yg`a)>qMj!ZIFlaYfb)JTP(2dYePUYjP#jaJQAqRaDvDS~f7i;;2-ba`8%d== zx3hZmKYU>-eYu+DmD7s)X=xOv zBimLy^FYR9+5YsFb`Q~m63Wxa$H(WezK_aMBu5+0|7*u;BPZS^)9Ub>UnXgRWZ1Nu zt|g^F-L)pRBES!Hnjon1bxMUBnfq#2oDNkE!&vWPhS}U-200{$2yHB`eC`-1QlSEP zRP|>otCWTptNxggeql;?fKD?w<}@sS_Th$Gon3j6+rEsG^ZF{pqi}V@xkI)4&c%wJ8XIIWh2$jg8%odjp49 zI+5v9ywRh~moM9ilpmX?>ou)N3lQarq8fquGMEAfrCixkRdtq;VS-SDl=%`W(Vdzq zpEyaQfKGj7N~5Bp(s4(iR9?7K3Vduc6!@5>fDFNYVAtXp_AK~~b(;=whT&{F-`kT? zdM0%($WUTb6BL-x4OREJlKg9uQj%`zL5VO9c>`V3JA4r;dv@9P+Y0M*jZmpZo`?HR zaEcoDTF=#QgJqxt0Xa$QFN3rpk<_N3K!Xxi(&^KkyQIxrb+8d;^SO5iDKs=xSpXFy zrxu~}84QL%BARrp9-`4aNrs=Mrlu57*K>>BW0YTysJDyzC&R)p)O^pzgBk-+JJsUB3r9)OV*F3}bucIo!x;K#S79|-(F;0FT#UkJ1v k>?0}opBDi@?jx}ksIf$DCE3`B1mN$$K4*v0y@U(@1|3!(tN;K2 diff --git a/XCoordinator.doccarchive/index.html b/XCoordinator.doccarchive/index.html deleted file mode 100644 index b22dc0ee..00000000 --- a/XCoordinator.doccarchive/index.html +++ /dev/null @@ -1 +0,0 @@ -Documentation
\ No newline at end of file diff --git a/XCoordinator.doccarchive/index/availability.index b/XCoordinator.doccarchive/index/availability.index deleted file mode 100644 index 02d24f3d883fcec65c756cd1694e3aa3ff880ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 939 zcmYc)$jK}&F)+Bo$i&RT>Khgjl9E`G7%w24lbDxYnwXv%k{^(hSdx}slv^AxAe5O` zl3J9On4IbZl`f7ffJt9xW9Q)H;^yI%R?#%Ga|<*MGzl~aGz~NiGz&Dk#K$in8Us`7 zmzbLx1vINDKczG|HRY0^kg!Nd9#AkOH?cT7IMY8^faS87xP+vXR7`GSR(?@fYEf}! zeqKy&W*&l5kXVwO0hJNp6=1j|!!N6VVh7M*Ir)&1GN5?^mlc(ii8t?}sv5dU>Keg` zIXNN>Q1BlLE^BG?>lheDrKA=Vr6wnqq^6)~ysWFIPrS9@khpAQY+_2h&p9ud^IKS= zSPC)5%G$=3cw@LO+4DO%Vll?a*~OK3WB4w)^Lu!r8zU!w*~{C9c-JiQ3%)GqFBA|M z6qK0~8eE>4RuWnaA_W*1g@l5=2ael?;ZS9ZBBKzZ3>*xC3}OsA42}%m3{ea*3~>wz z3`q$35HV)XBaLr++%pm@PgqL!$*dH zjNFV8jM9u6jJk}5j82T6j3JDPj2Vojj7^OFj8hnAGp=CV%6N$J2;)h{YmB!UA2GgX z{KLe_#LXnYB+I14q{(E)HcsSvFa#I^3;~7!Lx3T`5MT%} z1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyT zUvFa#I^HUev0B-R940?&@WGyd%O ztK%+_Jun0q0t^9$07HNwzz|>vFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoW zfFZyTU3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUD9ly#{*tSH^{GO-(GFQ_|5kY1 z5=f-2OfIDr5}CC7Zk>mp+n+#%$Bn=P90JsN$qjbjb~K@BX$#yx{^Iz1<0r@OAAgPc z0C2%#4-5f@07HNwzz|>vFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyT zU1pYZ6qGKA z-xm*ySA;V{PG}P@@hA8r{9681&f+?`x6lJ<3|)!-D0(=$G5Y$@$kE8Y$Uvky@>%$D_(J$h`0?-q;mPo! za4g&tULQWud1BY>u4B6n?n1j-cLjER*#AcVi~UdbKh&S?KhnRqKit2m|I@zr`kv|= z>TBuyJoG{6V(5j?4?_=z(xJnlu~2{LSm(yjC%y0XzS{ev-tYGw@3ngG?3H^vd)M`T z)bm!)*`8B9kM^{7mU`~(InZ;kbExNh_eA$y-MD+UGuYkKeI@vI@Lce8@I-Jncr17@ zh=T8Rz1HcU;YuBNUloo{!d&U2loJ1^ci(s3GnEw~>A*PrU%gSMhe z+Y8;-qVGpvk3JvWwC#J_o``-Ynv4#$-yOZO?x#a9-~8jDmxrDny4WEGpX|D~J=F2Y zP+{nvp}k$Fwm#eWMBDzMXIu9SJ$>{3wkzFRhc4yIB)*CMFD(&job-o|>U+()}-+W)JC%68U z&SQNC`sTOc+xGOmdRucJ>ijhHZs?WJGocfqQs|!0zEC)%1I8csUg|y8e7^nM_7A(R z-g3IVEqLzMi<>X6IoJD0_qCf!?WcMl>CN>X=^beMyu%Eh?S5qISZ}cB!lr%Qq25>4 zuJ66D<4Vt4>ptn+)csb^%RNu^Jk+zb{dh3lb9c}49VVxUvZUfahB~m;t`WBezA=-q z3WJGP$VtIh!MSh(*k>mCK}Jk+dU0LJB6Ls>mjmzY1KxYD=Kc4M{L25=pa=)6)3_ zbrxb|QrRS-0wZo}cu_U6sT#V*D_;Tr6Sge+Tvt{>({&BlCo0ZJOp+vVtw5p`x{*m2 za+ze3&;*$V6m2c(^J;48R;6m)ft;$=;BrGz$avZc zq>HA)sj6n``Y32~r>z-%uB%y&n28(|K4=?qnIaUEXd#z~$L$JRn26ae2827M#jQ6= zX(pXDM?lQXmu;E!KP#6Ram%G3s}iyV#Z<6747`8EmP4OcB*&X9%c=FeBJu*3G(i%@ z7)ThirP1dVNpsVK6v>o`BpJM-tHAXRTLOJvh6Gwh$ZWxvWv(->=v*=<_mU86$yq$3}o;c=0S?nHqz(164P2K0i7{aUAIwj`{!y{wVkp1Xy}t>VwE>&*BtZV zFU8~2y2gP5?g)YtO_Rt5wnSc`0TrKQYXkK8i_o%ueUJBx+?3^cb831Jlu0@o^9oT6 z%yTBzF%9@nw#M{%MH9(cw>(K4(PaZ_8xhcMkb1AJ z0e!Bkfv)8fhIf#iNW;)qOC~cK48h}txh#p2>7oWB)Fc^9(DAT4QqMbmXJoY`xowFL zcQl*N8B<{pQ*dyXkjBA8L=%Z5(15$_RMY2GNp&KXg5DlR=gB#rHk_WdCMWwrkmhK^ zAuMRJfg};@G~lqU4SimUHjv5HIZu}4pb)02qnL72v*_qzLqHG=B0&=?AzclDw6EEc z>2t%9eO;rs+xKB$3c8ZY_JWY;?Y2bvpOs3CB%HZh&&s%YRToEW4ZByy(;g|fBRW|{ zsgxW9rlM00Fo7AKNO%nqlLmalmQ0@;#%A&HiZ^9;ZE!V$p>3{^>H=YIpC~9iwCsXx z3X((v4%!;g=T*`u;*9({mcw(=aS~5NS(Rl$l{mf~xc;iGHGOVe>+8}eS4xnXYM(M#<}pNDQ!Sa$@`LhhI>Qr3x@4+E<7H03vf2s~ zopC#TZd|%ECM0C4JoqfnRALe2tHHWCH<2i92N9g32No1bCy19!MWzAH=#)M;tcOWR zHkn9ILE{Cz)u2*JOis9cmaOWgB0wb}I&SeuqR%UpBo*Rl(k}mQ%|Pk&Ope=RCE zW!=zKXf;jvq5&0`tZM`GxnUh(Z6=Wpm!Zyk`euRSO@kA3OO%8yz<0l0uIO{aGJItU zCyKL9S_EDeM3I=t;?2##+gXvI&voUvgP`d3hKhE-Tpk^Vi+Q>j6_M|@)3RxGWSEJ3 zDv{4?Nk@Q_Hl!1*VL{eZ!@Lb--Dk_C&kdx_O=Y!O((2(3Ib!w`OIRT9Y~w+n z>q@K+Dl%C**U3knxr@smLpvy%y2&BUSPwk++5GAAGWgR0W!MoCi#TJ(rpCCzLW{F1 zo6Thk86%VQk47DQRGzLq>56Fx(mIe5v-PLX4e0M#+F4{Z$C@vtrY3I$mT8AS{ZAwO z=@iH$1#oXohx5LYrfSJl+FT1P-I9i7lZWO+(lm*q0ivBQ`rN48s>BTeEQ+EgCh&XEsYnH{st*X#(s53c4+@2B^-wh&*bnYyF33xkl=yT(` zdgX{(B3E+zC&VL5HDpdPc_RS4oxXuSH!kPCn7eEU%htY}p46sbf#Bx=`k+&SWr8dd zR!uAp%QV2D^H>oqRVEk~ZmxOgiXw9=F9?<{N&oKB-Bt_pnXH=s3<9zaC&|zh=#)4@ z6q5${bdsh}-bDWf0d^1L@)A>XVp04QLW&MAm0-nE6ib5|_pdIm4FOo|Qea&HS(avg z;-SNu5ax6fnSzD?#Y0yV2q2P-k;q;3&?OipXo`w8ju(FBp(9y<#Wc(zjyL|n@Dt!=pY_-6lAx~gNHvvfm}crPE{4q-LEj15>lQF#&FR1?2; z9jY3i(>axxx+=*VAimT7tkT-4oByI^2#T!0Qa)$WGX{=)7~-jhB?DHXc+pEYG*~8= z1*lj2c`sdqIR&ii!P+){%}e*Sqb`5dfZYSAvVy9=S`)u^&Df2PIR!~FZ|auu58n7P zktGaEc~~{4ymU!6RmCu%_G>{eebG9&Apjf4swt?JtRbGx0bRMUPACf!R1%5Y0(588 zwd!ljfn&g(%B8(+-Im|&P@=^|?P$F^e1Y+$v#xx-5sY9#TVxs{3}Dc0W$9E0SnDx) z3ub390x+bTy>#FDt%DK_6J;K@gpe$&XT0%!vt2j7Z>_+k`}UQpbV1Z)$Yc&HbRXQM z`_`mfI&X4V)sSRK>S=F$UK1?nza&vJ>4}+Y{MuQKOZV-8R_V2~Er-rqgb*F+NYJf@UUROz)lb5%NTSc+iiIwySBD_4fzPc&5?Vf3h%?%Tm}`S{L2 zxO4&bRiSWN60c;ve0VItZZHRf0r9tL=)8ec87nXj`CXvL;g9D2FLA#nKzoU@O!#h~ zew)P7ib;1hns!qvEa1SvLp)aI2VYQQX(tGaJB09-IOC<8f(h%_Du*R~x0h}Z0ShpC z;WhnsFI~4_xI<*DtMVIOI@VwqrAvetIl4RQyIo_gYPk z`=*!f+pBWH9XVU8ld?xln7yrDvnW?rhH%PQa|%1AT@Yv?=> ziD1I0@9(_y>x?P=`>L*mH5eBUZcm5zB@V|7lKe^3)&=81|e7?<($ zHT2r^6D}XDTeT;{;3cR5{yls*{`E%hw0l!!7$->lIj>wng-!ydEzrgs@X~!VHJ88d z)R{}a&g=jo5i&)Q5$5p|Uj7Kd@IwG71Z5-8E%>9T{_^%l_c{{cw}BSQyJqK(OA0ox z|5N*^&e=cO_B4%>-Bkuva)^kzd{(Ek&A^SK7EzX}CB3i3;e?TstY5;8vqTdIsq0^gcGVLz9vz*P>b|9Luy;Qf zf$0m|<91RQT8e(l)yDPE1OV-CZNLDaD4LTar zz}dX{qIUG%U6J+%^{Sk?AvtG0xU;eM?bhm-a&Ev)V_Rc7x`QX$ztGaNV=3=f4my7^ zXA;VN3DtzIn$+zv%bKkInS?zQ4A5cwQgm>-BRCD`XtHW&7Tne3mL+LIV2e6kFms6# zNiVu_@9tWy#)$?8rEN>m&C|%!u_Hxy>(br>BcMc@mM{JyWN%wFX<+2anq4jcg&ZWo>H~6iq$)dwqXEaN9W*Xq&mN%!SIP>P!KOy7H zPMVgYVYy4m72%W+^mU6=54U%@Y02EEQC(?KUNPW7^KxZpbe#2ybxYC6fAZZe(JMR0 zl2_QvGQ3Hcp`9M;LP}4o*ht&Ro5PO`?;rjo zb~<(>wk~#7O{zilbzH#h_`EW&1eG`C`{kJYk@OsF(QK41ir*1qVDvFa#I^3;~7!Lx3T`5MT(bA_9)B9rXoQ?=-B(QDPKa>rzL5 zuGi7e8-AbOv=UCFO)_iyxG&#qvA3MIwSoV&Jbw3ic{#Qv*BaziHU@*#QQwS?|KWdc zkVm$dp8yu_N$6O_v6lU;QBIYsiRiT;aOFb{OV=ity3=bU_iR(M>u~$DQEp(3nkj4N zNv>-T`mc?13&XW49#)QB$tTO;2)jM=Tg&BRB#D+TX2X#?fCDXoKVB}UMNOm~ z+o3m?!nI-v@9_)0pz(6=HvIeL^NS2-Q&Yt4ncr9mCuL4d#GTR6-z|%i_qqvZ9C~qC zoFeZ1U4Pra`*tz^1vis8{UY@@SGSJadAK;&h-;a9p#ffHmgSnf7v7>}^fmadtBI%H z(t&z;XjXQfJ*X57j8vP~-!#grlETWhW9|(OuQtrZxkbXgS!|Hc&rKlL8~lH3l%t(q z_x8@gQqs~K8|zmZ<#zqszy^iMT(ac)s5###=UTt5?)`x0mc*y7PljkQ3)au&Ui)jn zk(QRfUM0>J3_f5!6LI*ST_wJTmNrN-9C1c_FE53!$J*Q5L-{@4I(7G@MtLsMFFPad z7aQh9QkfDdmngVKFJYw#cpRs9zB;|&U#);69iKUxz0f!x`+h&)T`um7{x2Kl2(^%2 z7FZpER2mA$GW_{Q`T1^n0Y{_?c4xeQu|jSF_ywJFYx0>!x%uv7aaz>>+9)3lTz1kc zglJZ}+WdK=Tzu_{qs^Z!jgRdYCF7Wg%ZIxZ1hZ;z*z$LD(5g2a5xxled-Mo<;^_Pjs+A|(lG5*uF! z2{iAX{sJUL+#9U^WOcdw^4FkAfHeH^(xtd_1SfOBSGtq)&TY$1kiWYK{Dv*>kCr0u zx}IG;Youl|S97b8JHGkh$|TtHAL<*U@>vsT3B<-@ zczE#Ip0j%%*web_mEA{oZ`yrgVE@3Ik(VM*MIMgiB1a?pA_I};$YcD3#b?E0|(js6$=pX`6AKihw#e{X-de^dXbeed-> z)i>1F()W4jgV4p$3!xu|9t@>JheKnb{?NwIC%y0XzS{ev-tYGw@3ngG?3H^vd)M`T z)bm!)*`8B9kM@*$?(I3yGt_gwd!qZUZrmO0ZtA`gd^>n9csh6@I2$|`JQzg5_qtx| zdamna*Zo}+U3Yciu3%SF*Okt@{wimjuMcw_O|ets}Lc<0Rn z-PSE{cW1i}4<>iK7aSYxAN*r@nqzawfiE6*M1tle8VH*(hdFLtv6iURod0F>wG`%zuXrHe6Mf5 zFV>S=|4Qevz5{*p+wg6B`d+=Qxes-I8hSVMO6Zx;iBKtYPiS8#9MU^ChCc4S)O)P? zeEYfWA9h{6<#c;n@Z7BzH(y?JuJ@7dYd4kJPxU_1o9jK&JJ9xdhZ#KE{m9m_-eAv# zP5Zh-y|1iY-+N)lm7cfOebTw9`>mdrd!FifsAp^Y@nE{=?w;qV%RlyE2rvW~0t^9$ z07HNwzz|>vFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUSLW4s`)K1U9mLT1S<(c zQvbk9=MA{io+BJwbxluOxpL{n$_6i5L_oX0lB0Yuc=p`DOBpI^6=_XH4 zJi2sEz_O%5sxhXgQeC=g8gO4ZwnSd0_a;>7hGHtnvIJG9XGW`ZC=doG8h*fjSONV=XRmCt&WNJY#9qyS%1a2Y67WaXd&hx4%zy-V- z;(ygkM}jH~lA>`Ep?AkP=Saon<-_$)lLn3fcbYDGH%HwZcF(rJnU>mNQnP#6^~57*EIQIjE)Ijl^0`9o77 zS-c`4T@88T^CpK?4M~=y(i34We;%%O<^@3#HS@+Ax(wx* z*;_;BO@kA3OOyn9bC?sKx8MeL9qCBWIC=)NO4k$-ZZcPphQ95k!_C^NEDNf{@$Ftd zCeLYbySZp!ZnHPO!D%9b`Xm`4mVz~2fviNdX1V-DXi=ac(jn|CUOL>(twG_mBwopS`S4hzsNOt%lKq{<%yNF4u+An=^@IGCz@-v5m5b z2`3b3FHx2W-*siWlHg>brGW*Og9z=W;2wKHgA^Vs^Mfy_v9uF3RVaPDCC+&1reH!3 zrgB))cYEmu5wM^lf!Flgy>#6|a0$7LbycPoA+B7knS!Omv0IU&7BVhf)@5FourA5k zhc$Fj&<%~pDreENqi%f3GU0L=BAFcbO)nkVWg;82pHMhYPIFLeh$0yl=0tjC*yST) zWI+wlG)aElO9$O~LxmvCq;^hjd_h(LH#p}j8iO@-9*9IRvBv$Km(C*v+B)c2TFNvCtoSQh-cd*0HSfmLPrElLBNyJ0WPIWy;!NZ+t_CR*KUlMYJBMp^Jt>EI}u_ z{+nL94lNNDWKA_pdIz7YkB)g-V|7lKe^3)&=Hb$N%g_aWzJ@NE3J3Mv)b&v>AFNv@ z49Q@$f&bVWUn!R>7&j=o>Wwc8kY$)d9B=%yH$Ls&R2jwz5`WH17gXpZ3{8PH=75*Z zBTF@8PBD3d-q_@(ixWgB3uge7TYLVOS=5s6XCQ!Tv1BmBwqkq<{Vta7EdSUNeT}yf&?$oR% z%e7diy!RZJZJ6@g!+34j#P`E}j*{q5B+Sg&!~ z;PwXfa{Nj-dA+l-_w9V5BW{{1x~kG}sur5l4VHNf(H>q)CbayZJe$t&<+Z4?l*V*) z$0oFYq3`cl%KH_2^1!dy@3bx}WsWtu-;R~`B~%l-YEl=kvL;`#-`Kt!J$%-xN+~fp z5!mB!T#61(cLXCXN0XLS&_pW4(WJYY+_EH1>e`ySo<+7TM?;_Wtb@|FrRe5qh>(zJ1?EJDF#$SFZIAY9DD0N%3-MOPK;%2?3J-)(ESX>~Mo=P8bQj!&jdOV`fD z!C5i6&(@KyJ=9I1`*zfQs$xhj)@=}B1FjlUV2Q*`jtflCCT`N&%PhsP#Xl#R8 zUUTGZ{pfl^T`bD;7f*$9S1fN`%G(R}oSZQ@T`#UHyV`HtV;MU?i0NXyVJTW*f08rKD^VUMXHQQ)Gu5{MN-~(c!G)ErRaMG{C_v;Z99) z=FLrwrORW~>3}GhUNAvSA;Pv^mWyO;HvBPE;lWi8*L3si}G@6?7D{2 zoQTKEYx~p>q*JffEk&d9{LND+-4cCcgF4XVI+GN%M3OESIVJkWCFLT3+0CM=ooY#luwvT-m8JIYdBzisKsCLD5P8tfnWD ziNYL^-~%G;PxYxnpqSH7WewQjaZ4bP1}#(NmC#Cr>WkHm35EX_e0!7y&&u{`UBDVErEmJT#siKQg{|JUqT>{MoUiWBbMi z#+t`I8@)VwVf4)C-Lo@E-8F`hj{;eL?-9`kfAehl6Po{T&gNk$GuaHKP`Hu9738{rqiPk?WMiSV6aG29jogg@Bz`mQs( zPVPFs%iMJbco=Beb*=w$|7-m}>i=H!6U)F!EkU>@YAke*?N@fbz4P48(>qV>oZWeB=fRzywmsIivF-GZ z(2n!1_q48SeSG_Y?eDd`*797-$(H+DCR*-l!7ag-rj{$)-rja@+o5f-Z9Uu8Z@aqn z($@1^pV|7@*7>da);qSI-EwNnqgzT_?%i@=%g~mVEuS}k(0sA^h2|eN%gvq5>zY5> z{MP2Pn@??ibaQF*y_*kgeshzxY0ak7x5>9%+<0{3smz4a&8 z?_K}#&8KgcZ+@l8YHDgaeUpCE)|<|(yLVmlx)*QMZ~T1igKIn2p1(oAq1mYwc3EaW z3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvtQ3LDp_5w!-L)={Z)`Ad)E?9A_f9pZO@D}+(?3`c;^cIPFJywBOYzCS01cXbA@TXygsM>^?gRdi zS$!^990$<9>ko0u&6F?1nlGiMCg~Bq9$!ecM9Kb;sVUjYQlo0aA7acUQ#>`VD*8gq z@f)O z*D9PeCub%fg@CB<9jxW#LV+Ik_iKRpOjgZ*1|eDBJ4$ILoi#^5H-Ac%q>!Ca{tVvn zr&K|cIws$S5aQz|Pft(FIcoCl*IHIlDkW1RF@HIb<#}^znwk>(^HjXD#-;Q;7cVz4}n|$kbF)|Pt&H*pL0SM73Yip2qFHuAf%^-Jo(bO9;5M$VlkBi*eJl*5o8L z$n}>U4$o-Q{L~`c&}=?uOi|-xziud04l*gYQG-)Qpc+XOX_+I4y7;VmUqY*Fl}S+^*L%^Tjzya_rZ>zFfT)yEf7KZJJm}?XNG3 z>-DastGQ&&{*TAlpW3|CY7>j(92+2NwNe);zr|D)IrrvkzwLlyNBp(r@UPeq`dJdn zi=szuK^xZDv7=hV=Yhlbj^*(6luy6Hqf}kcmv%07_4V*sP^{hC`KWDhT~7YoT7sP@ zp3@VP#K|-2@vg2EufD&)zV<#F1KLQ|<>}YFn9kXjpssbC*B&GvwvF?_!QNaflAN$* zQ6E!vWmT-=TvGzankMR4%Q+@^wjU^xHjQGwkVz%xsqGk8JEr5*4#>%4+IiNM=}%v! zoZELV>$dj$zX0va-buXrN1XO;|FZPH-VL}%?KIHAb6qqV$bpKF73b#7y^fR>>P~H7 zESuN9Ro2)ous(CnSmeu&#N}yk-|*|+v+dr?diyG;fO-}pNn#YhLh{?T&bO~bXBQH0 z9WEDsZ#4#Ew0Mr>;hxp9U!BS=)v+4?3UOPTy{n(%>s9kWc~Jt|^1WX?0=9RTnluYV zJI!?ZyP7r2Z2+qVvtayG?ciNkOaYqrv^N`v@46cJTRPVOH(X{I3DBO5a-$=*<#4MV z&{UdG#}bnI8LP{4fu$=LL^{TSGl{}P4g5|kPk-xj_NU!@A9UKO{dD?Tms4FGBRQuX zr+zk9#Lrv960|p?xkD#@b-DV}>$9f^cYTwEyfZSV{w3>j{6*=G(3t|&Ew&upt~(Zj zW(UTyg}KVS2UZpdRxAbF4=bkeuVr~uD$rrUQL}jP^(%{XqU6Rmz=^?B*w zkkk-N@Kq}kil!T1(7>avsVJf$(W!EkuJF95%Yw=2biuVsmqb+-b&Dfb$V=x90#0+m z;h&=XWer`%mZF39f<&!kT|PXxLIyv2;EIzgdEs;5AJBZ&vA?P6#I$oGR1hJvyeQq12b(GVjfXSgz12H%urPq}|m)|Rs05Wqy!b&>EIA|_o1a?*%RaJfprIVF+Ec5i$GoF7WM zq`@CuE^y=PNI|d`4Zd2{-}BPJu_kz6M&ObY|4R*>Q&e#2%nQh(GewsV`2R$rtb<2n z=@~Cw21m2J362mYjxO1`@xd=Q!LW9LO;hpGB@1b)U>Hz}AM^47AHSlhn;g;%Y9;UT z5p{zHH@23>m1nS3I(Wks6oWS;i&_J_bOCgMqKA0R`mvY4ph!9akHn@T(XKmpVtv0f`*|u(IrABzCvJSp9d%6vY}9GWS6dki%1z15(RP2OIHABBFO+A zceREtb1L`|28XE9zkBJjst{Q408irl-_+0r-Xt2hlIDc7UOH7A(yW4a>B}{A(XdQ{ z5E8^4Ub@Ij3KmU-6ijjI|{Oxnw-ql!U%f-DpK23wH!pL^*h z5x~nS6f&KsV+NOxsT-W42%H4Iuf24`(y)cVy)uvJ+|!M(8#-(g0k}w~i()Qa1?S2F zRB)nW>Y2wwH)IXmNrU(4?|Atr7Wh|%#$E=$yI#6vshoyX0{(JOdg6}EKANjoDRFv1v+suz6o5ZJlYG^<=9|}Do>1K5qqs3?iqll zM-rhS=1k?~vQ#RY(xHxmw{F!?w0pgD$WKjC!5c6y{H%tqX(G7l=LOEB^Cbr@37jr# zJXC8etJGsvl@9F&xZtH;s;51CTH!emXe#@mqQC3Q|EC@ZDj({pg??_W{J8OMw*T+M zbN+vWO?UoJIc*I*IsV4@leB?gABF%!fFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT)WUxEMvJ=cIo0Ij4YlA4}KCJNLA z2z(;>e@lVIkkH0nkQ|1G}#)thd1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoW zfFZyTUvFa#I^3;~9~e{=+vWB>11 z-8+5&>f8Tc7lohOAMijxKN|v)j!i-&(Nu_hOPO|S;2Sdut1!q-CFdrllt9Jye{JB0 z5b9`BiAkfc2^7|RxcP(e(=8vhKi6@g<3#KE)=zi7K7Oq2;*K-p`&-X+og9Cy`S|#~ zt>*Y0<7m8P{My(PJ1&o{-(Kq6*Z$hrU0pvKd%vU5{=KpJF@5ay?RSjfoyqO|SlihB z9amch+SiO-+y0#$KN)><^rg|KMxWUJ;pT@&&$hqamK%M$^T};TM}r-&?c6sy+p<6S z+|Gf~r?#B#Y#!Yjd}teL`E2C!$c2$JBae?v?0jHka^%oRY-F~zXJq}z8{1BHTpe!O zd1?6k@H4}Y4bKnj!*>in(;C`-sf8cTZoATU_m0QA+J@H*KiYo2rK#&Du{UF5TSm6O z6niT6a4Z)K?Km1c*7AABzSuylIkuTKye z(0QT-wQbn(-p-iXqXyb=*T=2v)vNdtKG%jj&f{R$GkC++K+B=#`*$AM_86Y*`f$fS z{K3{ow!Wi;wjNPl+HzGsyd^DPZk}x3AP1UHNq0%_izmbZvAKO~>s=kq;%CC%ZI^`$ z!WrQ^+wbjsfBT2q9v2=ECWX^&hlDGgCwIn#9$~%k1pgiWU`vv}n;+quIzs#g{`u`6 zbLTqW;a=fJc09`^cf8a3J+6tnf*$C48=XThZo8-bG&+H1(J@rmdJrLWu&ouHXlrc? z?tH&1fbQD)Vf0$p{n3f&3p?(L;%G416umO^_RzVZ6P>5p@7{iTXixCO&_qZ3&~t-d z8@#&b{ynXGp5DD@_xXWi0~-d;MedBe6CMa(-u3XVv0YdD@9*E(|6JdpzN?{UL-&TR z^`7p%r*}>7vpolU-sqm_-q8JQ@Sfm-&2Mh9Hm%uo`ZoEtiyMz_ynO5Itu42n-%#4H zcEe-0ytn@3`n~HvzWMac^3AU_Sxrq%r*G14+IrKOb@#4oUiadS`i-BjeQ<5(+VeN) zH#FbyvE%rnT;f;bYk!%^+Q1LsH&5$N)XW&g6iFA#{yCzvMkbRp6KSoG$wl*&XcTf< zI-e*cGHETHsJQWn8cCw1i`j7GZkyi|E8|z;Osb;7#e5Fr zUkWWqxZRfU$nqrAmcoE)bNl_}ajPUh@C}>G?=6o@xr)>(7OQZM0mzW%LpJ~KE`@(q zi$j%iTR~GRX!%SrXOO5v zpc5$9P^XD4@jG9*M9qR`8S-bZE%AYsOUyep{M#$zmCR(afv?$m{m#mGmCGkBR{0oZ z8;cCve1Cfxe52I@8TeD1&u=Y3TB)1~Eo~-=JN7P-MPokc=&4${d|PR_TJS8oJ2q zn$_>6OIQ&^VwwVyX^-s2=aDH9)lx)<@{RI}kUW{1waB-?J>>z2P2N&KQtB*OlaL>FxPqRrq3q_KH+@#cMi& z_(|oV~V8`dnA0GiHX;9))&?b`X_TW)M#n z46as&Iz3b1jBf(puh=r^b3-z6B%a7a4XTX)%NfV%C?iB`CCy@-n@%4F?q9Yg(dULF z*(oDt*ve&6P(YNVAZFaM2sJ|EM51U&(SHMY|C%j_J~t%Cm`EheYWc7yb09V{D5gvE zNzLJW_fk0PT0UWT3!vShCNml=`@{=#SrY9Y1>ERt)WJ-XF)u zzNYD%$r)IcWZg@z#Gjka=j7SjJ@G5_>G-rXKe2ZKU7I3vLTS`PH#kwXB-Ip%E{wSJ zTkMtS)T|;+4+Gh%#Rt#K7*j&bjlaQ;pCcI+YpP3k>-W@5wm4T(Aiyn66-^Uliswby zeZ%1tw^FIuw77sSlHx?3@GjkzP%^AEKaU_FU8`%HOmOp4QTGi;!jzer*3F2AZUNM$ zsvCx3@?LsHQ(-vM#|tlk4@+EAeHLOULCN58Y6)0x%ZQKq0SM#Wg)NRd?{VZZ-D@RF6hY&Q8q7pBQ5gTxtUE~ z83vI|T|`*KJVyg+WtT9l`zW_9pyyRtvJx8>&{K(YZeCsQp&L4|=ZGchrr6}6S8$rp z3cR4K^Uw{#D;mcWi(v6am+sUNNiuYF1CZ?$yXci9c}B{ufsh#|1r{f$Iwufb(sUY7 zp}TKnN`>U))R!P2;k;4NX+DQ$IgL81uB8{TkjYPc?&jQv0Fii(sIttfg5jlC_~g-K zE^q!XPkhr-CB@`8&C+x)y%L|x$l_%7nkRmRKFt|3CGFombb!cGI2ZzHqWW(hx@JMI zVHp^6s`06ZUg1-kn~KI-bfV)51S5py%h+q*nYVm+qF7v=N`2O#K7`+_I(d2y47xah7Dz zfZCEG#^Z&Y^r1_4IhCe`iCOIf2yokYQ{pWc{+f~`aqlmDV|Ln9i}RNuV6axkL~$;w z;V+tbP8Hr*Kqsj*N0Jv^dNl>QjB@yIApln-R72A7e6sjDgebm{S!qtt#S0MP zYE_Y*nw#aO60a?w=LA_4jK5hxpPtW7Wu#XZ&~r*IKWF?m4_#AD4vVs63cOgQySkPV z1tDp?0x!54S*mCvT{oc!sx+XI2B)vpWUYi|&U@&Fh5>4e=!S{@+C#6TOi9eoPN-)+ zbX^j#sK^SZ>ikO{dL@2h9`kDHuNKf}Ii*lYy|92@EXtFG_+PqoH)S(oYHDWUc?j^O zU_PD~1@d1#bd%>)3G>9nMDx-s8ci5UqY(ddH@+)jnj@tYd1j%6>_mEk7f!oxKwBAx%~ua~-mTf3CWc2d^{R&ghF@HZf@X#He6sn_wNCiQ}S%^6~2^h?`GHCJ&bHFwa~z68H@$7|I+Cht)AAScf}pOV1Y!`BooUL*4C9JQ~9tqpunEBr4ioJ z&^8aiq!^gBR>^Yl?1WPeZHFQPfOr*k=2k!FHRSTBw5U-1hLU-d_ zJ{We33_%dFBBL6*EW(1Tq;jT0&&as(6-6LKC7h+2wB>i{BGOD*2DylQ#Y-2kfHVVk z#&s>_rSnLa1wqzz*)oBCKm1W{^m*m^Q0}ta1JBMGf=ced!B~e-&QJfD>sZ7|lVNeX ztc#{y+EE=h1Pnumr5DaJU?(T$rRxatNhUm$vGrcM279cqJO(+;?W&<8V4+}v zBSzRu$C9cUSkif-PI~EzN_UV94(mMK6L$6F3C~%IE=h#%sG-Bg2*;ZS772}8jW57< zf~8xUYVGsVkst^06a_j;6p#J+R;nPPHspVjT6-!Fq>7GVJAPa-@cC z${LhnRadxPFCF$YG)}j4U03LNCzrp%W30&{FN>V$rOT!WZ$R0xq@7;6WMRyMIwF?n zDvrxXB1q6+T~OfVHlQDcKN_mR_tJ8Mmh6(JF{<`E)xOB7Bu+#1Ra?rjRgeP48M#6@ z5^zo*(chJ7{tK&aIASo!#+6!TY5TQmO$k=J3zA%PUdoSHMBPVOi~~ydFujtDWjF<^V?mzvvXI9 zr?mu~L}zOGl#Ge=yg+AOwe+Hp5vC>|SU@jGf?O)jFQ8Au5sj4KZEq{-nil7zv_fav zwfv_=b7F@3&O$n$nii+pUAm)xW(JpXw*c9!<&(+cI5)M~jql)=Nls5%v($>j7hhFp zXK{Q1JzW&$ri;;q^n58PDm2e)`J|_^sxEs+6P5I)(it7g-jSkBm(xN%ciRF!Dc;JM zY1)d`@=t2BiZ$yU$yNAF5e*5LuDjI6pG<1GgybDPRpL)-Q{1%mTMOb(q(#hSY5P>m zXClt!3JR@Bwe)yAK3O6g7SOGEj^j1&=&2&tn&ZGsm-a-pe5~1$I)i?9AwA2_@Ye4v zq;pdROI8=q$vlCR1#}I%mOm*La=EN`R9Ml6=BNYT@Pue9Xy&fGj#& zspW5SnVcj&xPWfV%%Pb={~~l0w=6oAsO4j16Oux1Uq}~HmQmWYfUZyToW}q9Lb{fW zTl|g%bgh(vLo~64^kl*ma;*#L3B8DN-qCIaA63;dSejW7AD2W@D(+uESJH^&XMzjq zWF7|ECl}D=tZ5ancjj1;E6u^MO!Cf@YMue zv~&m<*_^5&@=Sa#tw4a?M!O+1ST4%)K?qrJR%&iyVsfT!5pE?#Oqu3Qi*PF@lDuH- zg%JC+lq;vG897s+QzyS}1uHG1*%k<}+h6yc0-2hcC~REp9nr|;=J!E}eG1NfXL{Dm z=C~Ud;WjO6@+|k;5aP!mtEw3;Lx&lf57BfYrwj9a5EAu;RQv(ZNlcEmT$Rt7!2Mqe z_kKA3#`uflPmVt{o*h3jzIQx4zG?i~v7=-A#sv7uN?>~r-4^`iQM`a|_WHLZr#H}OmODf}?b;iGsT9>C4`Gv%^!K?(PsQ65(w zP(sQj`5`zUd09FsjY&TdpAg%`$Ay03B+P5y=W<*>cMeUWYtb{&vFMva$A?;nE)JFk zI|nc9ncVZ)RsrLl(yWv<-nGqEiGFvFa#I^3;~7!Lx3T` z5MT%}1Q-Gg0fqoWfFZyTUer^dh&!@~kS~SFvlN>c`@xK!nrleGY8kqP)NH&qc z8g<%V4ykCqA)v|z7(s|C(#^70Lx(PFnks=M3pj7W)YG6ZrG!uArwi1v-GY#8$(%@0 z$8`RX$r&<;VFb01#ocI975QXGYF9Nr9{t#_S*SMcUi2uyfq?^;W1%`VXs+!aOvsKlc{((eD73C zl{MDEdOom!SB)6KbwL}@#4^UKk7@C!8aEWBg;jB+v11!+#>UV;$+xjZcm4t&u&5aKTf zs+LTp&9xxMe~wL6367h);hmT-Ju2c2ZT1+1`0EZ%nv*k=)Uk#C>>Ji{a-pylLi`$F zK9g1RpFv30Cr2sGq_ZYc3h(&y2MLB&lBpS9o*ulVy3;fAb^Fo<_9}jtwocDXeY@7>cDw38 zeAnf)m|oPMZ&iZrsGJ@drm3YTKuCL1pN@GoKEp*l~SmrTAeJ5+lgq9z~b9!QuIC(}r zAlH@R)%W@ypIvKD+DO*r>DRoNcD!S|28><{);t&-mhTNBrVjTT?K~S!U(M}I zx~)C+8(o)EgWBuhWIXNF-@ONG|FZNZsZ5EKa~*DjN?2(^z@aGE_8zsTKPzdF@+ejokw4y}+$}4HvauqNSAfe04GM*9fORRK3Lq zsIdv_XzL!{v_ATaBIDDq@v9x1c}E`)&k_+uBeM=ykPe zpr$~IuUE~>H^Wer_kQsRRD9>;YHmRjigudm^mjGW>^6Ya77t2kwSzBT6;Q~4Z~faH z4VHs|f1u{x6GTUBb<^Xo1q%i=mEqN$wuaOLeqEjmeF^@8OX!?dp8nS5?AKNUhavPz z1lruBo!U>QuXQ=q)iIKD#;Mee|BCo|@7zn!-i(%ZI`ON^)t}y4cZ`EFCr%df&d8kJ zDo~f>FG_cW&J?I_vE}G?-LVifJ1~|l%vI*4u(C)nxI70RJc?=jYgrzZ3UpX-)GQt& zB8zmQrFM zGjH(ybHPhTL==&1XmGayU0ibYp>sH5AcNO%^}Ytc2XQ)hP64+xs!W&n=$M+mMQ@E* zM!qk8>q|s+xWaE;uKx1rj9c8aU<({D85S=|n)WAUZ7KT=0dW1S>muPbL`=F2nF?d6=Zt(IKKo=-_h}Wzid*cg= zq!YwTrXtfNOjjRX$EraD35(L-dgJptLPXFo6eqew=)_kDtn9;GN|tOWikA*fvqc#c z5(RP2OIHABB7x5=k-J($mpPRe!1s|P{kxYgs|q;&2KGGvH#Kwt9Or9-Ds#eFFP$n5 zX;wLjT&|&u23(K;cRUN?4liBgB?W^=b)?{NFI`Xs9;qf|v#bGqFZ|I|)4Z!&$``ho zHMbYtkRsR_q0y06C z$t%c$w9}0VH@->0Ef^1lOy}wBw@TLy4!n7&pPB-f6>+@qvl_ali2}XtfivlR z$>ndVMB|}aV_Bsa;#BF-ZXkeG(~M~^9}`+7UFX3YAEDbPZhYv|RU~Pmu3@_IR;6o- z4j0Q2qL_3`!=>xcmkAbwvwEM9>d?Q=q#aEU*`AK};XuW}aG$-RXhKx61i^heRd(T&m9hbD)HhCUj6 zZ1C{lwLNF|JOH=Mzq0%2?oGQ-4D26x6D;(fiaZ?2MUF=HMgDht*BT<{Rffl0H<#w- zrcLASW^Ow>o9xbf_e(5o8e+^338jWuvDAFmxb1d#ot@pLQHqMz{shsQg=X_^&W4>?G2>v(&nc2K^&U@bToa=Yy zdC$9Zbj#?!>X+*m>aW*dgpdB?^@r=b>*e~|`pJ=FBS%IKz&n52NMYn^?cLh%YA@HG ztIgCNsqLxNYn$Mo|Kac}!;Rs)hd-@;RJ~Yzqx#G0v(>5UVff_NsvD};E0-#7SAJ9Z zdF7c(Tsc^=Dnpf3mA{wYE5BJjRsKnNzWi8uf4NaUk7)J}m7G$s)K|Jze7|_Ec)ED9 zc&vD&c%Y~hZ{@N7zH)Nlh2plMbIMTv#g+FBo>sn6+@}=Ro+^zg{mKXTv`aUdSDNoM z&onn}eSYgp%^x-=n~i}(&1J*j8{=2T-xeHjG~%yEOLaf$xod+}9X;rtj{)E4yAZL1GW1FHQuVFsud64k^VLVId#m-TKeVCx&&mgtBU{c7oV(}hj(@B>J+Qra?yifQ zFE2Y+IZ?W?dVb(krC7M1P9{H~fYu2LaCt{U{7f_ot#<3w#}c(p1fkek;n=$Oj|9h$CIu zCH{^N(i^xdC=0t{TTL{fZ-VkYe%L!0|s~O7bp7bCU zfK8=2rq=99ulnF;guZK9>ye(ZKgnGxlQXfHg|Uc5%j^PKOt&ptw?j1)qjDHg=mxO` ztPJC#V6PE)rU`Zk*k{^#QI61Nmg%C_j`Mp_?uKAC7*32hW}g%4XMlJSg0vGO9@^VI z>Cqtq)dJ~Fqq=fC9o1G$OAGxt_>-94iVy-35Q54`Zf-oiX@y|BA&g+?6-7DdE+8hV z;Qpu|iE>SIL*0!nPtnLri0e^6+R{xMERtv)k0<99AGVz{SCNHTOMzJ?HnfM&9FVHeYEK(0OJkrsJH;h|r_k>&WV^{yy)JdlljLk!%~c3yhpA<80jGxe}53=nqp(F!vf`n*L&qEHVJ{H zX&x~mxt)pwz9!~5!|}-xdkT5zTdGTDYp1=4w|iC(<1SH)yu_GAARh+cQiCZPD?bxz zpo9oU>wp;>>n3^IrRgzG=x_%>n9{>y`oPC5rTV6A#6RefBj#)r>l9D*>!RGpOyua6 zhZw#aMg6{`(TMdC4EGm3=`F;kb>aXN_~SitkQ-Hu^U(LnFNfRd_;H9W8Fm}auf+6r zr(a>;VEg1Vz|&hg$lZ>LP_V(@#Pqbhxfb>brgl!0>n;`vxGi9g*)Pg9CC05JsvT-U zLDUb&2XqD-F=BP{*X89Z0S2jVVIyn(Rn(&(bTWeDDvsv7)FW50{m=o0Zf}4*#y`?V z>+Juc2a%Uv?-aF%m59&G5_wN$KF1!#E$7m9qKo#lnYwPH|MP;TM>FR z_hgpOl{LeOSzIGD>rHY|Csr$IqV+IS)2(W9G@5PCwW1bWtZ{kD@u=1HQ|x%yl7|=f zY@_)pvm|aHg1;kxDsxh&M%c}3v3r!b&15}2(`4!d*Lorl-Ln^83DAtbJ?FtQaxz-D zrzE61CE-1@B-*p4JJo`k=l-01B z$G%SA=sx64x59}juRY!3KDCuQVA*KFP7tr;wx>G?g}I{ef=e8^D z4x(-MCAO75n{A_CP4tjY-;(>o%{>x(>dT%Hih1gr_V?)-n)YW8B-YUr^&PTql%5%A zB<;X^rq0wNe$(CH?by=ef2JoEkTbv%EPz{Xdpek&?A-Z6HK6C~%=`<-@GZ`3*c?2t zM7yFEHY!g>E!NgwSX%z17txNJYDK3iORm*_^<_@)b+L|3O=|^K$L&kAk?&1teIYCF z&6B@-r%8eNrIR<+(rbq6N@m+pYbJ`G=(zSL{$Pb#VhNp^WNPhX`cjgkb7fxEU5yL- z4Sch(8<=_m%Nurf{3DlaA#TK(n5uU$pT#bip|mxRZNel^dq=XN zKVQD7HcE|J`;uIAinnCTdrw}+or$?)Y{$4Ij};3Rbvh5B8qf)3rY(GoVgG-VCczxT zdJwf$eQuU6A4*T5=u|PYj75w5p~S*Xcg8~goWjg=nEw3MaU9r*$u|=nboP*0L!P_I z|4O?xO&|$~IKfN)A{b|<=P)FI=5AJ29(!loctj4;HIkReep4W?-Op}u0&3^Xkv&(@ zc|xY<&hv{fp!kX9U3qdZ`pxN!2{v?IoLP2?O0t(p+9L`%#_RJ~F@t9np$Z`$RlAMF z#wGoRlWENYEqjxi(9H&!c^B8D^L*ZIY-$vXY0G2DO}DdbH%q_FWZIKz;Qft_6!zTQ zx3qeRm-r={tc7O*4<>c&%VS|@{%Xx(4~w-fg^!!dSC`efwb244-W8SVVk4GrHp#>; zH3oI=+!u%S9Oo;eY+S9%V^Qb%P3V-oN7LoPOR<5D>%s`@)+8Mlu^zoLrw!t`VEa0{ z^JA$NP}yv)rL)e={2YAtlu0*!WabjE$KwDBrQ^L(zH?c2TRONY*psv92&NMSJ_sNoY4g_WQq+S7OIX=m?`@ z-F(Zq39KNd?=Q=`f30N#n&G>zW!M3oe&F2)PIotDOe{Yo0ulj 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 deleted file mode 100644 index d2b944a7368d49209ccbcfb819d836d450994f6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54473 zcmdU2Ym8*aRUU^xNC<%>j-wbH+8!Kc;+dV<*Eub?Tf`rye~sGcz-XI`dU2{13}F*hlj3lNb8^@l*WoccFgY zP1($IqjFRW^+9iFBG7D$ho# zyxz55ch9xnxIJt%$DM2KjbWoV>aZ6}iLK+mIZnQrlI8ar1UEZM(pfe4|NGq2AQ(;t zWa@u>ov0YYs2l!})#vsbm>l`m9+%rStY-8M5?@xx!LTP5GweY2p z`4VM$8CCb=D;>Q>_q@<nxm+Y<)KRcBa z*J)Lo6$j?Xd?{x%bfZ#yt&`p{_uOb~o@op#jf8PybF%?E;0$g!3NA-!W_!-kEGbe; zEhE!%+W$nSeZ3@=Yxrn}#s+xN{!IMNyp!MgVSn6j_Pd21E%^|9+EHpAedR4;CS6N2 zGt##BwADU*ZKqeP*-iNn+a+e*?l(CKi4XRUyJ*a0Tiu+$adp-(UU-F`2%a@}q=lA;Ki0Jyg zBKQG;zWp%i(28sM$P^^$iQPfFcDma^bX`PZb_1Wgb7k3m5>h%w8bj1?S5mqaud>{2 zA2W#ZJ53)LmUJ2j_&d$q2<8uf}>QHm0kFNYK>xJE-S;vdUN z)>#BG##EF?8okyYe!!UqvCaI}75gprX*oW9ca|Fiz9ZA4;hj;bzQRdUMlqw{a&#E_ zrYX?+X-&ym^oktM)O|0j;^P zXX`c3ToS}TxKL|#MmwF+sL_poV7|y1B$54+Cg}@#T6gkw(dmuwNwA=TJ4LGS`*SbJl*Lwzf0qwv$9=$wBMB3{}j0oskAH{1)m< zls-z9EFfzo z5L5n;W2mAj&&U_LkYms(()XZhgD&aY;|>80dh<%B+Zwie_1cr?{q+5*3R<}&O_1%pn00n5FsJ;sZhG#?f7+ zXI%4s44dYSVR}9a@(w2;G3El28M1b3Zfn@zsUrwTGG^7xCg6k(863}{leDn@)8Sy4 zz+!L=+uNNH68K5FFkGR!@6GKIvm+PaRJMDJvLDFEa-lXJcDA?M$nl@qt=H7&7iwcOv=(a3K0Pa^s$P=8bhnyBMI=cM^ja`y zH2fz#Z|>HGzW{>igJ+|C@Q+sXCTO~GeE@s54K*1-nyQD46j$H;aJSzWFVsd?`jc+! zVfft9mE2FC>G!)YsLT_7EZi*%H`@c87U)s1;Ceuk=BZI|9(JQQ4vkjr4G4{QAK$!+ z)vihgOtgrm2u(UOMo+IX-R3aKw7_B7>0fK_&x#J)Y$IhzKTwF^tV5DT03O!1&b8Yu z7_5q7ND!cn&Q{O0L4WeWC=~JiV%seglY+nRg4iFUwR4T$u8lT_cxV2>DpuTtlS6O1 z|2T@}%}yNebWek2(v!Z88qLvMVjgG`FRtk!R|Tl27PUtKH5emfdAb0rqsf;$7DVsq z_DZC7vpXvysa|&FPoe6xlX$)jNBc~AL&p(4m#89{-0*D-){qoxj27?N-RxW?zW1YQ znaCtnQaw{lQnS%h(Ny)gD7~JlN~A3c7i7V!Oh_|mmV#x(*yNJ~aBnO@XtEzHE>Pi` zU2{kJZ>N1;*_jx?FWtzb&`d$EVgd|<)=}# z{>qrX-(g!TnGS`Tq&70CJON4Gj{ru`vOn!eJ>#C7ozInDV4Y%A8ROekT(unwR#B{Zf)BmxUnH$af%QB3hc8x&!9Bvp!EDPEd8f z$#iYi39;gIErmFo*ZcX}Q4;?-R2^)HUro7sCD%-xACc@HraA?3Nr}gLUZQ+o6s5Qh zQElUS(MmYisWfR)c*2%UUzHnU5B0DQbBGN?d#t*uF&2K2Givfq1N>Tyvvd)YBRTvt z9Ik;!IHE^JrOwdm`w{@yMb)Y*Cg!aUq9eWMic2(DNiyWh;1IxHqiTcm4oCQ+dlLLy zYhrr=}%&A+(i(2ZnriLq<+nsdm)pthJ9Ycmo^0fu?9buwy4 zf5EXcI$X9EYTIpWV#5APBP4D?4fg}d^!ogsJBNzR=(GY7aLM<>?M8JYzF&rbv{pz) zGNlz>@=21QUR%%G+_&!@_v8}2wvb;P?eXu8^|)`N4CJq&-t@pd^Cf!oBM^c%GLq?* zc|zh3{Tf%1flIU}Ow=T>LI>&F<4Pt+=Wn3u#J5b6WKDtT-GoYd0F@Xz(_@EeaT~|O zfkE6Khze2yi?`ujmPC*x^1unHJ*DWwj1@xpT~r-rNNgj0Y8<%jlrS|r8NmwcTzS-1 z??aA`u-Do-OW2s0ag+hsWs-`Mn%#DzHyIS?K#C=~l(a$N{dttOc-vIoL5A0w*9pJe zVAG_BtBe95;V)FmIU~wJlpP5oWEN+10jp8N@xBDI8;bR2>*k6M*=|t zRf$=ia<~dZGEth-X3shoV#)_*HiF}tf2Y|QcXw?Y4BPe;dI6`IcufFW69Itp@nGvlzEgOx0?=V3;CW>`-qchPZi|Xg-0eZi9P|gz^ zpNn$xCdYy71+xKXdpsFL(VP7t7uU`u$4q@(JvA32Qi~!dHG}F{ZGP!=G?o=Vm0Vwsn1bN9Q-Q*tN; zYnC=r*Xz8QJ)z{|H&HboV$sf%8I($VkgnfOgk{SEWWcmNPvFm^>W-I;m?Q!cm*72d zIiDFwGuNRXC61p&)xL5Cud+xa%w6M2q#&cFUh`whMpXzSBoRGer3?S%o97SBK;|j7H$=tunf-{3(6E^dr{1eKIsx5pA41E2lngZ-7XgFV;Xd1BUx@UpIWH-q4oH%!$abB z+h+93UT1>OVzEfM(u$MqlWH;dX^4?lxmFhM5Oetpnrnnbjlkl?-l zFP-eWVPv|&%eNoMw=-%Pk&TSVMwA0)JXTgl3Wi-Lg}s!7dv&z!6QA{vQ<924i$qI# zD-LQ-hP6A8U{8(*(p!}`aYddg18&J19a?-YAZU4rFOXnrN?+hfDX%~ZA4k=J&s}(x z<<0hC10UP1wI{O+<4=XQtBOtb(5!V1^k$yeK8UL2B6=b_s`jTR9z%Y7LoD>yT4P>; zS6RXU!rSo*8sT9q@%yC6QKBi{Msg@JMPR6E-5@*Z z!@t6?FPFU~zLP$agA7Fag@!?46#u`#lxCSK$dbyhOv&<@Hqr>j=f0pkZ(10J>Cb{S z&9rPcll3Z-ig6pcjQd&bPq07UrC@Yln@&XfY09DCf-c4w&4kc?;I1J-`pk`h+erw` ze={W8Mb%@OP{}@TS)UCP_=J)ngmhK*@yKl914Dr>9NRoiU%R;m_8<( z_U&;Cvwib{h1yO7;d6F3XYi5v;yp-;CF_&YW3=v2kd_hab6`S?Ra}&~&%{KQn|>=O zp>_04a1RQ_%$;}IQOr8=9(PX$GkeIeXpAUKFlp=%0{B1_z@3h;%w=L`bkHO+Gtlhj{e2t*Qp&Joo3z`J zi6$PiN>cu<4%HM%c}2P~6@N@5qf_zU<}j?er|1wS#8plrC_LPx%}vp<6BoG1 z;!w!YG}gS*2@MUz_DMF$&sd$lN1F%ng7-TtWxZhb%1Gq|N%D)R+6l^}Zrzcrly>8X zE8mxp1)G}?bFCX8*5}O(Cz=9##zEhjhK0cpS5OXdzAex`<_KYpTG`i;Oc`M<%-#Eu z`BJgDE6udv@d(l+=f4G99_&0F+s|-qs87End2yvir2Q|bT8(5D^hDSPvKcJ9yWO1- zN>c2ImM-DwvvDLk;&L9w`=Qd?-E$eUDwn`>coM$rM#ymkDiPI`lm1*tp)*fMRuuX# zqw2^?f@Lx03~Z9+<^$c`n+qF~jBM;B^J zr#BaP{zfQb??6O58uxSFJoWF;FG=C3O zyEciCHt;UX;YUacZOIUcJp4MU=HWDfqdaOK)p!7$>>^=da=ko!)ABrFe+gB?KIhGh>-$aq(7f|&$5fgO*@3I`eiOOItX`pTfw)osd!fJ_XlEj$r{h}ld zeM*D3+~+FJGHE}BsuhPS#Uk!d@`ExJDa-{Xl$R(H5_vDGCL&45TB3Is@6-9u{eXuG7eP}u@P=#&0eayOzPi*nlFHGcv57Z-O2(;@EF;rMKFkp zfUyvZ%$yPtl*qpZ%Y~tq`3c8SGEcfXdcKuJQKa|ngrn-+ash&+@LoC6{Rpb2dz3^` zMCf+1a0NpJcU|CiOZs(_=;9R?X#FVu`u=UYa0$PS59|t`*XI7FA!>^?JO@BJ@`M@6=ShrYk^z#g*)JzC;jDamhSiwvSCQ&ksl!&h3v8 z#q+3oZZC@~lIjZP2URBX0g|F+m0N(}!>GFd#p7PYyDU{aF7mSc9iW0=@`*d*Wx|P% zNv{8}$bz_ahzw=A#YedJ#3OetrEgOWAte!nZH_VL%4qkB zQP$@{SBpnxq^W6xi92{vsEgK2lvd>m(G(_gAE^z_C>^e)Y8>KB-h_8qjC8Q=p7FXx zadGYK*yq*1UTi?T0GIG>I#o+~@#Lg=&+_ZgG8Z4T$q*-UFNvd^9*uCy6?UstV?0rK zEw~letp5t;tmaF!6D0X|)Z1=ivtfCu`;REb1^F?6qS=L|Ww&CC0jxYnRotTENWKDo zg27LczlQ2B0l+~BQzSVgk&$(Mh@C6#{+X{eM!UEeJ$3asBXG1*LNuJD%x)WqhaKy1?*b!+YI_892LZ0$f7!wlx zxFPD=P9FEVzvLMwnwF6myYd^ltZ+P_tU!J!ify?hww%pqh4#h`M-Ry~GQW6o_jqTU z;`&hoN#Y_ID0e$ZGH1>cR~{rgLMnBh12))s+SrVE?nDN#B(EysI_Um2n8QxK6>^JD zi6rEc$Wu%gHrg7iD6+U36jud<|UMzT+!NVy}_{Z(Nk*hbX^B~fsaR8fp}yFCI` z$+@pFY&o3us^l!7^97-J)9NS~v^vfjHgT_}dr}<}{SNoto|a!pE?%k1V)EyYiQ&Dd z8iPy->H&rzJj^cpmg@&6lQ3T}`gRZ~r|3RV+dH=Ns^+$EVFAd0KMeFpzlW*=JyCSA z4jYLa86}qEIH4X~w$xl%A_Y?M8$gKiTe|^I*A{b{^V#V^YdL^ zeFq{=el;b^6_WiBsutyU;#HPY=HHnayLYc<2I~%f8nT0J+jCE@x4T<*nUjB2RIH>K zW^N`=U!BlR@$E@Ycvj8 zjxupL_Kp&u$rSa#0yH0)k@y%@6X!cD$Lz!G7fA^-eQQTKRZfLu zq!1s%l5V@-(N3gZY3>ndH0jbNQC1+kG+b;8?($#hLTdyO&U}6N#N7kEAxj_c$X!DZKF?reh3K1eMap; z!v?3#Zdo+`-#58G#ju1p+dG?Bb&;SH=kR#53@*1s!qaT9m`;qg)l0bStZs18=xF)X z9Ii$83~}}Py>|BZ6HE4?{VG-J4^TB(?pk1xkrR@2L;pVS9;vJks8FAgTKY4QDbjSZ z6YF!S4kAW+9|c&=#&N@h-{_TMqdy2#!~a6Iy8=A%{Us%eyC8$+3PyxXD8vS4F^&6~ zQ+EeAbO{pe`xXt(pNh&(tjT>&h8dg(KWYIkK4L!|#V2x%;ZBvi;j1f#3nS%%1?-`4zV1FVCTi`}Dbuzkgc;aQ_3S@kxM3yCD zhTE)k+_(C`+$t=O`_=M=8tu~Rbauxy2xMY)J{6VQS-i?3J|*mKdvf5=B@<9VP?VMdp=9&_7FeI2C)%QJsQmuPEH|FTMDAomsQI-hPLLJYgZtI(_cd_`6 zzBL%W6ve>BOBOMWSq!Ps8~kU=3jx!s$tC@eWg>M=BHeu4hKd46l$K>ECDa2}0LnV( z`NiXn&hXm*52*KEA1=2E^%qcQZ+bEQWs&DO``?)r_smK)tr_lWq;+h%&SdzGtoFN; zo!)+w*<40Vr13#@mqWM|LwcouJ+xC(!eA?IQ2hX?Xd@(>@nfMTu93ffwv8yedoV~^ zwk?O}N1}LSHWkC;*37xf=t9<|T$oNkei>ez%J%@4o;ttQb&)uiDfZ9$EL7q4*%Q>4 zA4b*NXYX(zWX0Nt_gLN=_nZB0m0h$RPcXrkG-vkoYYn8ks9G|TR1hN;rU=U!O$45} zpl76#i=;V1)yYNK93iIFauE}sJk^W^E4n_@iujNu4BoaCM+3z;;X=E?cD7*FOW zez{TE+{T;b80U8T6KrmO;bbwevoSz-e-WnxWu)^z;9vLn`2H|BZ6~LC5ihGMr1`Lu>mr z%e?D&lPs0%E8YU`egak7C9%d0$A4m%%30&h25&S94h;IgvkovcL%wmYfe{^-|FoUH z)1i9MJ-Jr1uhXSjylHc~cu!~Y4AC&hs%0fM{M`;sBC8TMJWDtbT9Kgq3d>RAVpO9? zuSB3StuwYQb#!wd$3YeF)R9nv`g|1B23}=3W&U*=zi!}>&@ArEvCtFa?d7XP{{>Vn z(swx2r`*$sv;h5K91GopgOk@fSFezRzee?wxUX}Fx&Mzv;%&o$oK<+CPF`kN52xEjAm#~f&n570v{=JCvG`r!Y%jY%j)UPj*l0)=WXsOJCF=tl7dOr2ud6@ z$%2wLkXj=3_=1Xzjx!ELoO)Vn`xci+mKD**07DPuWd}~y)$%~*o%5(-pFK8v)Pth? zVic8(C&_wLM0IE~Ra*cb1AMx=d@HqucUkshrM!7|OX2NdNs~oR_izhg{ zyL$|yy#Or*O%cQ{ss`~2Qbv({t^wh~ly+;s5R!%nAU=JTtoBm|2BPiuRs-8ot7MVO z^p0y5J;PrcZ}0FLY?Jau9~~vSkE7~z_v;)gi7Os@&ji1yR`DY468M(d(r|VV4}joT zP_;&j{ygh2R8pbo+Ll3{48gfk?<4kWn%svRBd4-Loc&KV`1E{fL=fzWV^?G zz3W%{lWyxwdmGm=MSh3WB*OSJY(?r>#G(4xQLHk7;HDu6|NS0d|8>-SnR7(59GuKO zUZ04QF3IXdj@Su%17=2x{f`Y;yRDUf8nJtdjLTd?I{uT2!NRZqEE1Va)1Hg`sP2)+ zVXe*hTBvOe`#U zXEVq(D_;kc>>g2l1XYhs$&sYi;ikLSMFY*xk`U1Qqk!(ft1RLN zjZP#{(ww!G=j{@d`61E5A+IrInwlq)_#|(^;K*c`C7Wn}0w&yXQTk#RjY%4{zYN2z zAVl>Hs_rn!BFV-%BcJM7Bn={!NBVKl=0ZTeDnE&LS@x&Ol`=^L^}DF~nIzfoYJ@^F zgj~wTp=Xk`EFJ0W)SV32UcDKAvAoDWW^QxOd)?D8AYZSNbJ19&6=)Ud(@SZs61u5O zzI-#Gzt8z<5ww?0QIw|`6GKG%=GM@mr_SC8=IRA90za*Xe2DJaC3i-=OWx=(Qu3Juy88H zVr8DWsT-4{?B(4OG9s;!3bK6q=HVM3kK4<_wfy7~@nrT9><3MSSw88L1mqOZzoKe& zy+nDTq~b1+I@1_>kwis@c=(}SYjrXj_jfwanhh$k-_pgxaBsU*OkRO;&~Eoy&49L$ znJ269MOIn+kr7&6OE~9nSN^L>Skbh)8b@}McinJsYgEsF(sWhkCsRvxRuGc=Zgq3g z8#ijk*p^NTWzK;>WBdd|y&D>nRR~DrLZR|hUH-QyXO|skP4}$E*$ZZQ$Y!4D`8}}mQPg~Y zD%%LEM9N_%z4~;Im_C52hl))1&fr}Z(*e^>_duiQYZLfnuO!W@q6~ z>lOb>UWg{s$o!w6^?1l5lc}o)!OYBgKd-EkUJrU`&l^o=0~*m>`|_Ux%+I1~jS{%x zzk{Zxh3lZpjj8ss)4ehN8Srr?k&jVgivz%@r^oj8)4gHRU;IoVOtG;C05dg#w)c|m zjqtC4?lXl5xA88^s^9TbrL*k}yTr|tvjKs)V*WEwd=53g)34)QmY}IBSbY$itk}vW z3jVFwqUPS%{~f4)6;)#wJ0xjaKM%kT(tVuQ7|3Nf>hhOaO(HJvZ$v;CU#opNrHt|} z`oJ8)C2-dBLDDGM291_VSga^7r0_K>h$x?d>6o%6NfVnimc6xpE$aC7jQ6Lr#0)PP9!pd?UGM_xZj2J z{H4&@gajAXiHu3S*W;Nkv+lo=^$k1g_WNr_IQYdBh^5p@VwvUJ+wVu$q4U-N=Fn5o z&Z{v$T;!0C_pUwLeG34+AM((8B$gqSZOS;z@)1giDbon_99*13k^WM<|u_q0*5y;H{<%^S4AC}gVC=Ay^J*AGPb5}SP5@fBK} S#I{doljDx|#Pxf3PW&G_1fJdi diff --git a/XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js b/XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js deleted file mode 100644 index 74345f0c..00000000 --- a/XCoordinator.doccarchive/js/chunk-2d0d3105.cd72cc8e.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 548fde95..00000000 --- a/XCoordinator.doccarchive/js/chunk-384ef189.bb1ed903.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 5a983369..00000000 --- a/XCoordinator.doccarchive/js/chunk-vendors.b24b7aaa.js +++ /dev/null @@ -1,21 +0,0 @@ -/*! - * 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 deleted file mode 100644 index b53a2bd3..00000000 --- a/XCoordinator.doccarchive/js/documentation-topic.2ed269e3.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 3367be6f..00000000 --- a/XCoordinator.doccarchive/js/documentation-topic~topic.900fc80c.js +++ /dev/null @@ -1,20 +0,0 @@ -/*! - * 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 deleted file mode 100644 index a28e3647..00000000 --- a/XCoordinator.doccarchive/js/documentation-topic~topic~tutorials-overview.5b27b87b.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 6db17786..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-bash.1b52852f.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 3bc41acb..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-c.d1db3f17.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index db9fd820..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-cpp.eaddddbe.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 3d507d0b..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-css.75eab1fe.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 5271416e..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-custom-markdown.7cffc4b3.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index d19f9880..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-custom-swift.5cda5c20.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 64337fa8..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-diff.62d66733.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 14f39a9f..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-http.163e45b6.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index f11ca2a2..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-java.8326d9d8.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index ac843fc0..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-javascript.acb8a8eb.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index c87d3c3b..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-json.471128d2.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 0beb806e..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-llvm.6100b125.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index dc8d097c..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-markdown.90077643.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 2456ffc8..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-objectivec.bcdf5156.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index a4c74d11..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-perl.757d7b6f.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 3d12a9c9..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-php.cc8d6c27.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index c8d2ed8d..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-python.c214ed92.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index a8355da1..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-ruby.f889d392.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 8f46244f..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-scss.62ee18da.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 999f4527..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-shell.dd7f411f.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 89d1daf1..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-swift.84f3e88c.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 55cc1e27..00000000 --- a/XCoordinator.doccarchive/js/highlight-js-xml.9c3688c7.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index ae697ace..00000000 --- a/XCoordinator.doccarchive/js/index.aa320932.js +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 7edd0aea..00000000 --- a/XCoordinator.doccarchive/js/topic.bb695832.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index 5c3bf68a..00000000 --- a/XCoordinator.doccarchive/js/tutorials-overview.2cadc732.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * 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 deleted file mode 100644 index f3d52517..00000000 --- a/XCoordinator.doccarchive/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"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 546a7e7f..05b80ebb 100644 --- a/XCoordinator.podspec +++ b/XCoordinator.podspec @@ -7,20 +7,20 @@ Pod::Spec.new do |spec| 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.6' - spec.ios.deployment_target = '11.0' - spec.tvos.deployment_target = '11.0' - spec.source_files = 'Sources/XCoordinator/*.swift' + spec.swift_version = '5.9' + spec.ios.deployment_target = '14.0' + spec.tvos.deployment_target = '14.0' + spec.source_files = 'Sources/XCoordinator/**/*.swift' spec.default_subspec = 'Core' spec.subspec 'Core' do |ss| - ss.source_files = 'Sources/XCoordinator/*.swift' + ss.source_files = 'Sources/XCoordinator/**/*.swift' ss.framework = 'UIKit' end spec.subspec 'RxSwift' do |ss| ss.dependency 'XCoordinator/Core' ss.dependency 'RxSwift', '~> 6.5' - ss.source_files = 'Sources/XCoordinatorRx/*.swift' + ss.source_files = 'Sources/XCoordinatorRx/**/*.swift' end end From c4f2fd1439aa39f8cec46dba2721fbc2e40619b6 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Tue, 9 May 2023 01:46:16 +0200 Subject: [PATCH 24/35] Rewrite transitions with resultsbuilder --- .../Coordinators/BaseCoordinator.swift | 10 +- .../Navigation/NavigationTransition.swift | 51 ++----- Sources/XCoordinator/Navigation/Pop.swift | 88 ++++++++++++ Sources/XCoordinator/Navigation/Push.swift | 60 ++++++++ Sources/XCoordinator/Navigation/SetAll.swift | 61 +++++++++ .../UINavigationController+Transition.swift | 129 ------------------ Sources/XCoordinator/Page/PageSet.swift | 48 +++++++ .../XCoordinator/Page/PageSetInitial.swift | 39 ++++++ .../XCoordinator/Page/PageTransition.swift | 25 ++-- .../UIPageViewController+Transition.swift | 24 ---- Sources/XCoordinator/Split/SplitSetAll.swift | 41 ++++++ .../XCoordinator/Split/SplitSetColumn.swift | 45 ++++++ .../XCoordinator/Split/SplitTransition.swift | 28 ++-- Sources/XCoordinator/Tab/SelectTab.swift | 8 ++ Sources/XCoordinator/Tab/SetTabs.swift | 8 ++ .../Components/TransitionGroup.swift | 32 +++++ .../Transitions/Components/View/Dismiss.swift | 42 ++++++ .../Transitions/Components/View/Embed.swift | 56 ++++++++ .../Transitions/Components/View/Perform.swift | 38 ++++++ .../Transitions/Components/View/Present.swift | 43 ++++++ .../Components/View/Redirect.swift | 37 +++++ .../Components/View/RegisterPeek.swift | 51 +++++++ .../Transitions/Components/View/Run.swift | 52 +++++++ .../Transitions/Components/View/Show.swift | 43 ++++++ .../Components/View/ShowDetail.swift | 44 ++++++ .../Transitions/Components/View/Trigger.swift | 34 +++++ .../Transitions/TransitionBuilder.swift | 54 ++++++++ .../Transitions/TransitionComponent.swift | 24 ++++ .../XCoordinator/View/Transition+Init.swift | 89 ++++-------- .../View/UIViewController+Extras.swift | 16 +++ .../XCoordinator/View/ViewCoordinator.swift | 3 +- 31 files changed, 1029 insertions(+), 294 deletions(-) create mode 100644 Sources/XCoordinator/Navigation/Pop.swift create mode 100644 Sources/XCoordinator/Navigation/Push.swift create mode 100644 Sources/XCoordinator/Navigation/SetAll.swift delete mode 100755 Sources/XCoordinator/Navigation/UINavigationController+Transition.swift create mode 100644 Sources/XCoordinator/Page/PageSet.swift create mode 100644 Sources/XCoordinator/Page/PageSetInitial.swift delete mode 100755 Sources/XCoordinator/Page/UIPageViewController+Transition.swift create mode 100644 Sources/XCoordinator/Split/SplitSetAll.swift create mode 100644 Sources/XCoordinator/Split/SplitSetColumn.swift create mode 100644 Sources/XCoordinator/Tab/SelectTab.swift create mode 100644 Sources/XCoordinator/Tab/SetTabs.swift create mode 100644 Sources/XCoordinator/Transitions/Components/TransitionGroup.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Dismiss.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Embed.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Perform.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Present.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Redirect.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Run.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Show.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift create mode 100644 Sources/XCoordinator/Transitions/Components/View/Trigger.swift create mode 100644 Sources/XCoordinator/Transitions/TransitionBuilder.swift create mode 100644 Sources/XCoordinator/Transitions/TransitionComponent.swift create mode 100644 Sources/XCoordinator/View/UIViewController+Extras.swift diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index e0ef94d7..076cb004 100755 --- a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -98,6 +98,10 @@ open class BaseCoordinator removeChildrenIfNeeded() } + @TransitionBuilder open func prepare(for route: RouteType) -> Transition { + fatalError("Please override the \(#function) method.") + } + /// /// This method prepares transitions for routes. /// Override this method to define transitions for triggered routes. @@ -109,7 +113,11 @@ open class BaseCoordinator /// The prepared transition. /// open func prepareTransition(for route: RouteType) -> TransitionType { - fatalError("Please override the \(#function) method.") + if let transition = prepare(for: route) as? TransitionType { + return transition + } else { + fatalError("Please override the \(#function) method.") + } } public func registerParent(_ presentable: any Presentable & AnyObject) { diff --git a/Sources/XCoordinator/Navigation/NavigationTransition.swift b/Sources/XCoordinator/Navigation/NavigationTransition.swift index 9e55340a..b9c72b9b 100755 --- a/Sources/XCoordinator/Navigation/NavigationTransition.swift +++ b/Sources/XCoordinator/Navigation/NavigationTransition.swift @@ -27,15 +27,9 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func push(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition(presentables: [presentable], - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - rootViewController.push(presentable.viewController, - with: options, - animation: animation - ) { - presentable.presented(from: rootViewController) - completion?() + Transition { + Push(animation: animation) { + presentable } } } @@ -50,13 +44,8 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func pop(animation: Animation? = nil) -> Transition { - Transition(presentables: [], - animationInUse: animation?.dismissalAnimation - ) { rootViewController, options, completion in - rootViewController.pop(toRoot: false, - with: options, - animation: animation, - completion: completion) + Transition { + Pop(animation: animation) } } @@ -75,13 +64,8 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func pop(to presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition(presentables: [presentable], - animationInUse: animation?.dismissalAnimation - ) { rootViewController, options, completion in - rootViewController.pop(to: presentable.viewController, - options: options, - animation: animation, - completion: completion) + Transition { + Pop(to: presentable, animation: animation) } } @@ -96,13 +80,8 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func popToRoot(animation: Animation? = nil) -> Transition { - Transition(presentables: [], - animationInUse: animation?.dismissalAnimation - ) { rootViewController, options, completion in - rootViewController.pop(toRoot: true, - with: options, - animation: animation, - completion: completion) + Transition { + Pop(toRoot: true, animation: animation) } } @@ -119,15 +98,9 @@ extension Transition where RootViewController: UINavigationController { /// `Animation.default` to reset the previously set animations on all presentables. /// public static func set(_ presentables: [any Presentable], animation: Animation? = nil) -> Transition { - Transition(presentables: presentables, - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - rootViewController.set(presentables.map { $0.viewController }, - with: options, - animation: animation - ) { - presentables.forEach { $0.presented(from: rootViewController) } - completion?() + Transition { + SetAll(animation: animation) { + presentables } } } diff --git a/Sources/XCoordinator/Navigation/Pop.swift b/Sources/XCoordinator/Navigation/Pop.swift new file mode 100644 index 00000000..e6afc879 --- /dev/null +++ b/Sources/XCoordinator/Navigation/Pop.swift @@ -0,0 +1,88 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import SwiftUI + +public struct Pop { + + // MARK: Stored Properties + + private let destination: (any Presentable)? + private let toRoot: Bool + private let animation: Animation? + + // MARK: Initialization + + public init(toRoot: Bool = false, animation: Animation? = nil) { + self.destination = nil + self.toRoot = toRoot + self.animation = animation + } + + public init(to destination: any Presentable, animation: Animation? = nil) { + self.destination = destination + self.toRoot = false + self.animation = animation + } + +} + +extension Pop: TransitionComponent where RootViewController: UINavigationController { + + public func build() -> Transition { + if let destination { + return Transition(presentables: [], animationInUse: animation?.dismissalAnimation) { rootViewController, options, completion in + if let animation { + rootViewController.topViewController?.transitioningDelegate = animation + destination.viewController.transitioningDelegate = animation + } + + assert(animation == nil || rootViewController.animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + _ = rootViewController.popToViewController(destination.viewController, animated: options.animated) + } + + CATransaction.commit() + } + } else { + return Transition(presentables: [], animationInUse: animation?.dismissalAnimation) { rootViewController, options, completion in + if let animation { + rootViewController.topViewController?.transitioningDelegate = animation + } + assert(animation == nil || rootViewController.animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + if toRoot { + rootViewController.popToRootViewController(animated: options.animated) + } else { + rootViewController.popViewController(animated: options.animated) + } + } + + CATransaction.commit() + } + } + } + +} diff --git a/Sources/XCoordinator/Navigation/Push.swift b/Sources/XCoordinator/Navigation/Push.swift new file mode 100644 index 00000000..b712467e --- /dev/null +++ b/Sources/XCoordinator/Navigation/Push.swift @@ -0,0 +1,60 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct Push { + + // MARK: Stored Properties + + private let presentable: () -> any Presentable + private let animation: Animation? + + // MARK: Initialization + + public init(animation: Animation? = nil, presentable: @escaping () -> any Presentable) { + self.presentable = presentable + self.animation = animation + } + +} + +extension Push: TransitionComponent where RootViewController: UINavigationController { + + public func build() -> Transition { + let presentable = presentable() + return Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation) { rootViewController, options, completion in + if let animation = animation { + presentable.viewController.transitioningDelegate = animation + } + assert(animation == nil || rootViewController.animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock { [rootViewController] in + if let transitionCoordinator = rootViewController.transitionCoordinator { + transitionCoordinator.animate(alongsideTransition: nil) { _ in + completion?() + } + } else { + completion?() + } + } + + autoreleasepool { + rootViewController.pushViewController(presentable.viewController, animated: options.animated) + } + + CATransaction.commit() + } + } + +} diff --git a/Sources/XCoordinator/Navigation/SetAll.swift b/Sources/XCoordinator/Navigation/SetAll.swift new file mode 100644 index 00000000..dbc7b9bf --- /dev/null +++ b/Sources/XCoordinator/Navigation/SetAll.swift @@ -0,0 +1,61 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct SetAll { + + // MARK: Stored Properties + + private let presentables: () -> [any Presentable] + private let animation: Animation? + + // MARK: Initialization + + public init(animation: Animation? = nil, presentables: @escaping () -> [any Presentable]) { + self.animation = animation + self.presentables = presentables + } + +} + +extension SetAll: TransitionComponent where RootViewController: UINavigationController { + + public func build() -> Transition { + let presentables = presentables() + + return Transition(presentables: presentables, + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + if let animation { + presentables.last?.viewController?.transitioningDelegate = animation + } + assert(animation == nil || rootViewController.animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock { + if let animation = animation { + presentables.forEach { $0.viewController?.transitioningDelegate = animation } + } + presentables.forEach { $0.presented(from: rootViewController) } + completion?() + } + + autoreleasepool { + rootViewController.setViewControllers(presentables.map { $0.viewController }, animated: options.animated) + } + + CATransaction.commit() + } + } + +} diff --git a/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift b/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift deleted file mode 100755 index d9a68c0b..00000000 --- a/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift +++ /dev/null @@ -1,129 +0,0 @@ -// -// UINavigationController+Transition.swift -// XCoordinator -// -// Created by Paul Kraft on 27.07.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -extension UINavigationController { - - func push(_ viewController: UIViewController, - with options: TransitionOptions, - animation: Animation?, - completion: PresentationHandler?) { - - if let animation = animation { - viewController.transitioningDelegate = animation - } - assert(animation == nil || animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock { [self] in - if let transitionCoordinator { - transitionCoordinator.animate(alongsideTransition: nil) { _ in - completion?() - } - } else { - completion?() - } - } - - autoreleasepool { - pushViewController(viewController, animated: options.animated) - } - - CATransaction.commit() - } - - func pop(toRoot: Bool, with options: TransitionOptions, animation: Animation?, completion: PresentationHandler?) { - - if let animation = animation { - topViewController?.transitioningDelegate = animation - } - assert(animation == nil || animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - if toRoot { - popToRootViewController(animated: options.animated) - } else { - popViewController(animated: options.animated) - } - } - - CATransaction.commit() - } - - func set(_ viewControllers: [UIViewController], - with options: TransitionOptions, - animation: Animation?, - completion: PresentationHandler?) { - - if let animation = animation { - viewControllers.last?.transitioningDelegate = animation - } - assert(animation == nil || animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock { - if let animation = animation { - viewControllers.forEach { $0.transitioningDelegate = animation } - } - completion?() - } - - autoreleasepool { - setViewControllers(viewControllers, animated: options.animated) - } - - CATransaction.commit() - } - - func pop(to viewController: UIViewController, - options: TransitionOptions, - animation: Animation?, - completion: PresentationHandler?) { - - if let animation = animation { - topViewController?.transitioningDelegate = animation - viewController.transitioningDelegate = animation - } - - assert(animation == nil || animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - _ = popToViewController(viewController, animated: options.animated) - } - - CATransaction.commit() - } - -} diff --git a/Sources/XCoordinator/Page/PageSet.swift b/Sources/XCoordinator/Page/PageSet.swift new file mode 100644 index 00000000..16229e22 --- /dev/null +++ b/Sources/XCoordinator/Page/PageSet.swift @@ -0,0 +1,48 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 09.05.23. +// + +import UIKit + +public struct PageSet { + + // MARK: Stored Properties + + private let primary: () -> any Presentable + private let secondary: () -> (any Presentable)? + private let direction: UIPageViewController.NavigationDirection + + // MARK: Initialization + + public init(direction: UIPageViewController.NavigationDirection, primary: @escaping () -> any Presentable, secondary: @escaping () -> (any Presentable)? = { nil }) { + self.primary = primary + self.secondary = secondary + self.direction = direction + } + +} + +extension PageSet: TransitionComponent where RootViewController: UIPageViewController { + + public func build() -> Transition { + let presentables = [primary(), secondary()].compactMap { $0 } + return Transition(presentables: presentables, + animationInUse: nil + ) { rootViewController, options, completion in + let viewControllers = presentables.map { $0.viewController! } + rootViewController.isDoubleSided = viewControllers.count > 1 + rootViewController.setViewControllers( + viewControllers, + direction: direction, + animated: options.animated + ) { _ in + presentables.forEach { $0.presented(from: rootViewController) } + completion?() + } + } + } + +} diff --git a/Sources/XCoordinator/Page/PageSetInitial.swift b/Sources/XCoordinator/Page/PageSetInitial.swift new file mode 100644 index 00000000..2800d17d --- /dev/null +++ b/Sources/XCoordinator/Page/PageSetInitial.swift @@ -0,0 +1,39 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 09.05.23. +// + +import UIKit + + +public struct PageSetInitial { + + // MARK: Stored Properties + + private let presentables: () -> [any Presentable] + + // MARK: Initialization + + public init(_ presentables: @escaping () -> [any Presentable]) { + self.presentables = presentables + } + +} + +extension PageSetInitial: TransitionComponent where RootViewController: UIPageViewController { + + public func build() -> Transition { + let pages = presentables() + return Transition(presentables: pages, animationInUse: nil) { rootViewController, _, completion in + CATransaction.begin() + CATransaction.setCompletionBlock { + pages.forEach { $0.presented(from: rootViewController) } + completion?() + } + CATransaction.commit() + } + } + +} diff --git a/Sources/XCoordinator/Page/PageTransition.swift b/Sources/XCoordinator/Page/PageTransition.swift index 82706fab..a555ecca 100755 --- a/Sources/XCoordinator/Page/PageTransition.swift +++ b/Sources/XCoordinator/Page/PageTransition.swift @@ -30,28 +30,21 @@ extension Transition where RootViewController: UIPageViewController { /// public static func set(_ first: any Presentable, _ second: (any Presentable)? = nil, direction: UIPageViewController.NavigationDirection) -> Transition { - let presentables = [first, second].compactMap { $0 } - return Transition(presentables: presentables, - animationInUse: nil - ) { rootViewController, options, completion in - rootViewController.set(presentables.map { $0.viewController }, - direction: direction, - with: options - ) { - presentables.forEach { $0.presented(from: rootViewController) } - completion?() + Transition { + PageSet(direction: direction) { + first + } secondary: { + second } } } static func initial(pages: [any Presentable]) -> Transition { - Transition(presentables: pages, animationInUse: nil) { rootViewController, _, completion in - CATransaction.begin() - CATransaction.setCompletionBlock { - pages.forEach { $0.presented(from: rootViewController) } - completion?() + Transition { + PageSetInitial { + pages } - CATransaction.commit() } } + } diff --git a/Sources/XCoordinator/Page/UIPageViewController+Transition.swift b/Sources/XCoordinator/Page/UIPageViewController+Transition.swift deleted file mode 100755 index 7f13161f..00000000 --- a/Sources/XCoordinator/Page/UIPageViewController+Transition.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// UIPageViewController+Transition.swift -// XCoordinator -// -// Created by Paul Kraft on 30.07.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -extension UIPageViewController { - func set(_ viewControllers: [UIViewController], - direction: UIPageViewController.NavigationDirection, - with options: TransitionOptions, - completion: PresentationHandler?) { - isDoubleSided = viewControllers.count > 1 - setViewControllers( - viewControllers, - direction: direction, - animated: options.animated, - completion: { _ in completion?() } - ) - } -} diff --git a/Sources/XCoordinator/Split/SplitSetAll.swift b/Sources/XCoordinator/Split/SplitSetAll.swift new file mode 100644 index 00000000..b8df5766 --- /dev/null +++ b/Sources/XCoordinator/Split/SplitSetAll.swift @@ -0,0 +1,41 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct SplitSetAll { + + // MARK: Stored Properties + + private let presentables: () -> [any Presentable] + + // MARK: Initialization + + public init(_ presentables: @escaping () -> [any Presentable]) { + self.presentables = presentables + } + +} + +extension SplitSetAll: TransitionComponent where RootViewController: UISplitViewController { + + public func build() -> Transition { + let presentables = presentables() + return Transition(presentables: presentables, animationInUse: nil) { rootViewController, _, completion in + CATransaction.begin() + CATransaction.setCompletionBlock { + presentables.forEach { $0.presented(from: rootViewController) } + completion?() + } + autoreleasepool { + rootViewController.viewControllers = presentables.map { $0.viewController } + } + CATransaction.commit() + } + } + +} diff --git a/Sources/XCoordinator/Split/SplitSetColumn.swift b/Sources/XCoordinator/Split/SplitSetColumn.swift new file mode 100644 index 00000000..176bcd29 --- /dev/null +++ b/Sources/XCoordinator/Split/SplitSetColumn.swift @@ -0,0 +1,45 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +@available(iOS 14, *) +public struct SplitSetColumn { + + // MARK: Stored Properties + + private let presentable: () -> (any Presentable)? + private let column: UISplitViewController.Column + + // MARK: Initialization + + public init(_ column: UISplitViewController.Column, _ presentable: @escaping () -> (any Presentable)?) { + self.column = column + self.presentable = presentable + } + +} + +@available(iOS 14, *) +extension SplitSetColumn: TransitionComponent where RootViewController: UISplitViewController { + + public func build() -> Transition { + let presentable = presentable() + return 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/Split/SplitTransition.swift b/Sources/XCoordinator/Split/SplitTransition.swift index c28f8e65..fc1c76e4 100755 --- a/Sources/XCoordinator/Split/SplitTransition.swift +++ b/Sources/XCoordinator/Split/SplitTransition.swift @@ -20,16 +20,10 @@ extension Transition where RootViewController: UISplitViewController { /// /// - Parameter presentables: The presentables that become the split controller's columns, in order. public static func set(_ presentables: [any Presentable]) -> Transition { - Transition(presentables: presentables, animationInUse: nil) { rootViewController, _, completion in - CATransaction.begin() - CATransaction.setCompletionBlock { - presentables.forEach { $0.presented(from: rootViewController) } - completion?() + Transition { + SplitSetAll { + presentables } - autoreleasepool { - rootViewController.viewControllers = presentables.map { $0.viewController } - } - CATransaction.commit() } } @@ -41,17 +35,15 @@ extension Transition where RootViewController: UISplitViewController { /// - column: The column to set. @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) + Transition { + SplitSetColumn(column) { + presentable } - CATransaction.commit() } + } } + + + diff --git a/Sources/XCoordinator/Tab/SelectTab.swift b/Sources/XCoordinator/Tab/SelectTab.swift new file mode 100644 index 00000000..b25e58ac --- /dev/null +++ b/Sources/XCoordinator/Tab/SelectTab.swift @@ -0,0 +1,8 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 09.05.23. +// + +import Foundation diff --git a/Sources/XCoordinator/Tab/SetTabs.swift b/Sources/XCoordinator/Tab/SetTabs.swift new file mode 100644 index 00000000..b25e58ac --- /dev/null +++ b/Sources/XCoordinator/Tab/SetTabs.swift @@ -0,0 +1,8 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 09.05.23. +// + +import Foundation diff --git a/Sources/XCoordinator/Transitions/Components/TransitionGroup.swift b/Sources/XCoordinator/Transitions/Components/TransitionGroup.swift new file mode 100644 index 00000000..aedfc7b3 --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/TransitionGroup.swift @@ -0,0 +1,32 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct TransitionGroup: TransitionComponent { + + // MARK: Stored Properties + + private let transitions: [() -> Transition] + + // MARK: Initialization + + init(_ transition: some TransitionComponent) { + self.transitions = [transition.build] + } + + init(_ transitions: [() -> Transition]) { + self.transitions = transitions + } + + // MARK: Methods + + public func build() -> Transition { + .multiple(transitions.map { $0() }) + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/Dismiss.swift b/Sources/XCoordinator/Transitions/Components/View/Dismiss.swift new file mode 100644 index 00000000..8cad4a1c --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Dismiss.swift @@ -0,0 +1,42 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct Dismiss { + + // MARK: Stored Properties + + private let toRoot: Bool + private let animation: Animation? + + // MARK: Initialization + + public init(toRoot: Bool = false, animation: Animation? = nil) { + self.toRoot = toRoot + self.animation = animation + } + +} + +extension Dismiss: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + Transition( + presentables: [], + animationInUse: animation?.dismissalAnimation + ) { rootViewController, options, completion in + let presentedViewController = rootViewController.topPresentedViewController + if let animation = animation { + presentedViewController.transitioningDelegate = animation + } + let dismissalViewController = toRoot ? rootViewController : presentedViewController + dismissalViewController.dismiss(animated: options.animated, completion: completion) + } + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/Embed.swift b/Sources/XCoordinator/Transitions/Components/View/Embed.swift new file mode 100644 index 00000000..8b21f58e --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Embed.swift @@ -0,0 +1,56 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct Embed { + + // MARK: Stored Properties + + private let presentable: () -> any Presentable + private let container: any Container + + // MARK: Initialization + + public init(in container: any Container, _ presentable: @escaping () -> any Presentable) { + self.container = container + self.presentable = presentable + } + +} + +extension Embed: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + let presentable = presentable() + return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in + container.viewController.addChild(presentable.viewController) + + presentable.viewController.view.translatesAutoresizingMaskIntoConstraints = false + container.view.addSubview(presentable.viewController.view) + + // swiftlint:disable force_unwrapping + NSLayoutConstraint.activate([ + NSLayoutConstraint(item: container.view!, attribute: .leading, relatedBy: .equal, + toItem: presentable.viewController.view, attribute: .leading, multiplier: 1, constant: 0), + NSLayoutConstraint(item: container.view!, attribute: .trailing, relatedBy: .equal, + toItem: presentable.viewController.view, attribute: .trailing, multiplier: 1, constant: 0), + NSLayoutConstraint(item: container.view!, attribute: .top, relatedBy: .equal, + toItem: presentable.viewController.view, attribute: .top, multiplier: 1, constant: 0), + NSLayoutConstraint(item: container.view!, attribute: .bottom, relatedBy: .equal, + toItem: presentable.viewController.view, attribute: .bottom, multiplier: 1, constant: 0) + ]) + // swiftlint:enable force_unwrapping + + presentable.viewController.didMove(toParent: container.viewController) + + presentable.presented(from: rootViewController) + completion?() + } + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/Perform.swift b/Sources/XCoordinator/Transitions/Components/View/Perform.swift new file mode 100644 index 00000000..964337ea --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Perform.swift @@ -0,0 +1,38 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +struct Perform { + + // MARK: Stored Properties + + private let transition: () -> Transition + private let rootViewController: TransitionType.RootViewController + + // MARK: Initialization + + public init( + on rootViewController: TransitionType.RootViewController, + @TransitionBuilder transition: @escaping () -> TransitionGroup + ) { + self.rootViewController = rootViewController + self.transition = { transition().build() } + } + +} + +extension Perform: TransitionComponent where RootViewController: UIViewController { + + func build() -> Transition { + let transition = transition() + return Transition(presentables: transition.presentables, animationInUse: transition.animation) { _, options, completion in + transition.perform(on: rootViewController, with: options, completion: completion) + } + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/Present.swift b/Sources/XCoordinator/Transitions/Components/View/Present.swift new file mode 100644 index 00000000..d5947a46 --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Present.swift @@ -0,0 +1,43 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +struct Present { + + // MARK: Stored Properties + + private let animation: Animation? + private let onRoot: Bool + private let presentable: () -> any Presentable + + // MARK: Initialization + + init( + onRoot: Bool = false, + animation: Animation? = nil, + _ presentable: @escaping () -> any Presentable + ) { + self.animation = animation + self.onRoot = onRoot + self.presentable = presentable + } + +} + +extension Present: TransitionComponent where RootViewController: UIViewController { + + func build() -> Transition { + let presentable = presentable() + return Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation) { rootViewController, options, completion in + if let animation { presentable.viewController.transitioningDelegate = animation } + let presentingViewController = onRoot ? rootViewController : rootViewController.topPresentedViewController + presentingViewController.present(presentable.viewController, animated: options.animated, completion: completion) + } + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/Redirect.swift b/Sources/XCoordinator/Transitions/Components/View/Redirect.swift new file mode 100644 index 00000000..e1989341 --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Redirect.swift @@ -0,0 +1,37 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct Redirect { + + // MARK: Stored Properties + + private let coordinator: CoordinatorType + private let route: CoordinatorType.RouteType + + // MARK: Initialization + + public init(as route: CoordinatorType.RouteType, to coordinator: CoordinatorType) { + self.coordinator = coordinator + self.route = route + } + +} + +extension Redirect: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + let transition = coordinator.prepareTransition(for: route) + return Transition(presentables: transition.presentables, + animationInUse: transition.animation + ) { _, options, completion in + coordinator.performTransition(transition, with: options, completion: completion) + } + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift b/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift new file mode 100644 index 00000000..6afb713e --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift @@ -0,0 +1,51 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +@available(iOS, introduced: 9.0, deprecated: 13.0, message: "Use `UIContextMenuInteraction` instead.") +public struct RegisterPeek where CoordinatorType.TransitionType == Transition { + + // MARK: Stored Properties + + private let coordinator: CoordinatorType + private let source: any Container + private let route: CoordinatorType.RouteType + + // MARK: Initialization + + public init(for route: CoordinatorType.RouteType, on coordinator: CoordinatorType, in source: any Container) { + self.route = route + self.coordinator = coordinator + self.source = source + } + +} + +extension RegisterPeek: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + let transitionGenerator = { [weak coordinator] () -> CoordinatorType.TransitionType in + coordinator?.prepareTransition(for: route) ?? .none() + } + return Transition(presentables: [], animationInUse: nil) { rootViewController, _, completion in + let delegate = CoordinatorPreviewingDelegateObject( + transition: transitionGenerator, + rootViewController: rootViewController, + completion: completion + ) + + if let context = source.view.removePreviewingContext(for: CoordinatorType.TransitionType.self) { + rootViewController.unregisterForPreviewing(withContext: context) + } + + source.view.strongReferences.append(delegate) + delegate.context = rootViewController.registerForPreviewing(with: delegate, sourceView: source.view) + } + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/Run.swift b/Sources/XCoordinator/Transitions/Components/View/Run.swift new file mode 100644 index 00000000..9c38b5e7 --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Run.swift @@ -0,0 +1,52 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 09.05.23. +// + +#if swift(>=5.5.2) + +import SwiftUI + +@available(iOS 13.0, tvOS 13.0, *) +public struct Run { + + // MARK: Stored Properties + + private let presentables: [any Presentable] + private let animationInUse: TransitionAnimation? + private let priority: TaskPriority? + private let action: () async -> Void + + // MARK: Initialization + + public init( + presentables: [any Presentable] = [], + animationInUse: TransitionAnimation? = nil, + priority: TaskPriority? = nil, + _ action: @escaping () -> Void + ) { + self.presentables = presentables + self.animationInUse = animationInUse + self.priority = priority + self.action = action + } + +} + +@available(iOS 13.0, tvOS 13.0, *) +extension Run: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + Transition(presentables: presentables, animationInUse: animationInUse) { _, _, completion in + Task(priority: priority) { @MainActor in + await action() + completion?() + } + } + } + +} + +#endif diff --git a/Sources/XCoordinator/Transitions/Components/View/Show.swift b/Sources/XCoordinator/Transitions/Components/View/Show.swift new file mode 100644 index 00000000..f8e21b11 --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Show.swift @@ -0,0 +1,43 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct Show { + + // MARK: Stored Properties + + private let presentable: () -> any Presentable + + // MARK: Initialization + + init(_ presentable: @escaping () -> any Presentable) { + self.presentable = presentable + } + +} + +extension Show: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + let presentable = presentable() + return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in + CATransaction.begin() + CATransaction.setCompletionBlock { + presentable.presented(from: rootViewController) + completion?() + } + + autoreleasepool { + rootViewController.show(presentable.viewController, sender: nil) + } + + CATransaction.commit() + } + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift b/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift new file mode 100644 index 00000000..94e2cc75 --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift @@ -0,0 +1,44 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct ShowDetail { + + // MARK: Stored Properties + + private let presentable: () -> any Presentable + + // MARK: Initialization + + init(_ presentable: @escaping () -> any Presentable) { + self.presentable = presentable + } + +} + +extension ShowDetail: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + let presentable = presentable() + return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in + CATransaction.begin() + CATransaction.setCompletionBlock { + presentable.presented(from: rootViewController) + completion?() + } + + autoreleasepool { + rootViewController.showDetailViewController(presentable.viewController, sender: nil) + } + + CATransaction.commit() + } + + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/View/Trigger.swift b/Sources/XCoordinator/Transitions/Components/View/Trigger.swift new file mode 100644 index 00000000..6ba0aac6 --- /dev/null +++ b/Sources/XCoordinator/Transitions/Components/View/Trigger.swift @@ -0,0 +1,34 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public struct Trigger { + + // MARK: Stored Properties + + private let router: any Router + private let route: RouteType + + // MARK: Initialization + + public init(_ route: RouteType, on router: any Router) { + self.router = router + self.route = route + } + +} + +extension Trigger: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + Transition(presentables: [], animationInUse: nil) { _, options, completion in + router.trigger(route, with: options, completion: completion) + } + } + +} diff --git a/Sources/XCoordinator/Transitions/TransitionBuilder.swift b/Sources/XCoordinator/Transitions/TransitionBuilder.swift new file mode 100644 index 00000000..abb9b5f0 --- /dev/null +++ b/Sources/XCoordinator/Transitions/TransitionBuilder.swift @@ -0,0 +1,54 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +@resultBuilder +public enum TransitionBuilder { + + public typealias Component = TransitionGroup + + public static func buildExpression(_ expression: some TransitionComponent) -> Component { + TransitionGroup([expression.build]) + } + + public static func buildExpression(_ expression: Void) -> Component { + TransitionGroup([]) + } + + public static func buildExpression(_ expression: Never) -> Component {} + + public static func buildEither(first component: Component) -> Component { + component + } + + public static func buildEither(second component: Component) -> Component { + component + } + + public static func buildOptional(_ component: Component?) -> Component { + buildArray([component].compactMap { $0 }) + } + + public static func buildLimitedAvailability(_ component: Component) -> Component { + component + } + + public static func buildBlock(_ components: Component...) -> Component { + buildArray(components) + } + + public static func buildArray(_ components: [Component]) -> Component { + TransitionGroup(components.map { $0.build }) + } + + public static func buildFinalResult(_ component: Component) -> Transition { + component.build() + } + +} + diff --git a/Sources/XCoordinator/Transitions/TransitionComponent.swift b/Sources/XCoordinator/Transitions/TransitionComponent.swift new file mode 100644 index 00000000..c8a334d9 --- /dev/null +++ b/Sources/XCoordinator/Transitions/TransitionComponent.swift @@ -0,0 +1,24 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +public protocol TransitionComponent { + + associatedtype RootViewController: UIViewController + + func build() -> Transition + +} + +extension Transition { + + public init(@TransitionBuilder transitions: () -> Self) { + self = transitions() + } + +} diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index 78de8cb5..7f7979d6 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -21,13 +21,9 @@ extension Transition { /// The presentable to be shown as a primary view controller. /// public static func show(_ presentable: any Presentable) -> Transition { - Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in - rootViewController.show( - presentable.viewController, - with: options - ) { - presentable.presented(from: rootViewController) - completion?() + Transition { + Show { + presentable } } } @@ -43,13 +39,9 @@ extension Transition { /// The presentable to be shown as a detail view controller. /// public static func showDetail(_ presentable: any Presentable) -> Transition { - Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in - rootViewController.showDetail( - presentable.viewController, - with: options - ) { - presentable.presented(from: rootViewController) - completion?() + Transition { + ShowDetail { + presentable } } } @@ -68,16 +60,9 @@ extension Transition { /// the default UIKit animations. /// public static func presentOnRoot(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition(presentables: [presentable], - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - rootViewController.present(onRoot: true, - presentable.viewController, - with: options, - animation: animation - ) { - presentable.presented(from: rootViewController) - completion?() + Transition { + Present(onRoot: true, animation: animation) { + presentable } } } @@ -94,16 +79,9 @@ extension Transition { /// the default UIKit animations. /// public static func present(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition(presentables: [presentable], - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - rootViewController.present(onRoot: false, - presentable.viewController, - with: options, - animation: animation - ) { - presentable.presented(from: rootViewController) - completion?() + Transition { + Present(animation: animation) { + presentable } } } @@ -116,13 +94,9 @@ extension Transition { /// - container: The container to embed the presentable in. /// 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, - with: options - ) { - presentable.presented(from: rootViewController) - completion?() + Transition { + Embed(in: container) { + presentable } } } @@ -137,13 +111,8 @@ extension Transition { /// default UIKit animations. /// public static func dismissToRoot(animation: Animation? = nil) -> Transition { - Transition(presentables: [], - animationInUse: animation?.dismissalAnimation - ) { rootViewController, options, completion in - rootViewController.dismiss(toRoot: true, - with: options, - animation: animation, - completion: completion) + Transition { + Dismiss(toRoot: true, animation: animation) } } @@ -157,13 +126,8 @@ extension Transition { /// default UIKit animations. /// public static func dismiss(animation: Animation? = nil) -> Transition { - Transition(presentables: [], - animationInUse: animation?.dismissalAnimation - ) { rootViewController, options, completion in - rootViewController.dismiss(toRoot: false, - with: options, - animation: animation, - completion: completion) + Transition { + Dismiss(animation: animation) } } @@ -172,9 +136,7 @@ extension Transition { /// routes. /// public static func none() -> Transition { - Transition(presentables: [], animationInUse: nil) { _, _, completion in - completion?() - } + Transition {} } /// @@ -209,11 +171,8 @@ extension Transition { /// - coordinator: The coordinator to trigger the route on. /// public static func route(_ route: C.RouteType, on coordinator: C) -> Transition { - let transition = coordinator.prepareTransition(for: route) - return Transition(presentables: transition.presentables, - animationInUse: transition.animation - ) { _, options, completion in - coordinator.performTransition(transition, with: options, completion: completion) + Transition { + Redirect(as: route, to: coordinator) } } @@ -228,8 +187,8 @@ extension Transition { /// - router: The router to trigger the route on. /// 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) + Transition { + Trigger(route, on: router) } } diff --git a/Sources/XCoordinator/View/UIViewController+Extras.swift b/Sources/XCoordinator/View/UIViewController+Extras.swift new file mode 100644 index 00000000..90edc474 --- /dev/null +++ b/Sources/XCoordinator/View/UIViewController+Extras.swift @@ -0,0 +1,16 @@ +// +// File.swift +// +// +// Created by Paul Kraft on 08.05.23. +// + +import UIKit + +extension UIViewController { + + internal var topPresentedViewController: UIViewController { + presentedViewController?.topPresentedViewController ?? self + } + +} diff --git a/Sources/XCoordinator/View/ViewCoordinator.swift b/Sources/XCoordinator/View/ViewCoordinator.swift index 60b71084..6b7bb06b 100755 --- a/Sources/XCoordinator/View/ViewCoordinator.swift +++ b/Sources/XCoordinator/View/ViewCoordinator.swift @@ -44,8 +44,7 @@ open class ViewCoordinator: BaseCoordinator Date: Tue, 9 May 2023 01:54:57 +0200 Subject: [PATCH 25/35] Make more API public --- .../XCoordinator/Transitions/Components/View/Perform.swift | 4 ++-- .../XCoordinator/Transitions/Components/View/Present.swift | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/XCoordinator/Transitions/Components/View/Perform.swift b/Sources/XCoordinator/Transitions/Components/View/Perform.swift index 964337ea..1ea99205 100644 --- a/Sources/XCoordinator/Transitions/Components/View/Perform.swift +++ b/Sources/XCoordinator/Transitions/Components/View/Perform.swift @@ -7,7 +7,7 @@ import UIKit -struct Perform { +public struct Perform { // MARK: Stored Properties @@ -28,7 +28,7 @@ struct Perform { extension Perform: TransitionComponent where RootViewController: UIViewController { - func build() -> Transition { + public func build() -> Transition { let transition = transition() return Transition(presentables: transition.presentables, animationInUse: transition.animation) { _, options, completion in transition.perform(on: rootViewController, with: options, completion: completion) diff --git a/Sources/XCoordinator/Transitions/Components/View/Present.swift b/Sources/XCoordinator/Transitions/Components/View/Present.swift index d5947a46..4cf7a6f5 100644 --- a/Sources/XCoordinator/Transitions/Components/View/Present.swift +++ b/Sources/XCoordinator/Transitions/Components/View/Present.swift @@ -7,7 +7,7 @@ import UIKit -struct Present { +public struct Present { // MARK: Stored Properties @@ -17,7 +17,7 @@ struct Present { // MARK: Initialization - init( + public init( onRoot: Bool = false, animation: Animation? = nil, _ presentable: @escaping () -> any Presentable @@ -31,7 +31,7 @@ struct Present { extension Present: TransitionComponent where RootViewController: UIViewController { - func build() -> Transition { + public func build() -> Transition { let presentable = presentable() return Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation) { rootViewController, options, completion in if let animation { presentable.viewController.transitioningDelegate = animation } From 4451e456325d6d1567755960f09ce4510f564b41 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Tue, 9 May 2023 02:00:43 +0200 Subject: [PATCH 26/35] Make more API public --- Sources/XCoordinator/Transitions/Components/View/Show.swift | 2 +- .../XCoordinator/Transitions/Components/View/ShowDetail.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/XCoordinator/Transitions/Components/View/Show.swift b/Sources/XCoordinator/Transitions/Components/View/Show.swift index f8e21b11..3d5fb1a9 100644 --- a/Sources/XCoordinator/Transitions/Components/View/Show.swift +++ b/Sources/XCoordinator/Transitions/Components/View/Show.swift @@ -15,7 +15,7 @@ public struct Show { // MARK: Initialization - init(_ presentable: @escaping () -> any Presentable) { + public init(_ presentable: @escaping () -> any Presentable) { self.presentable = presentable } diff --git a/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift b/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift index 94e2cc75..e411ae43 100644 --- a/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift +++ b/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift @@ -15,7 +15,7 @@ public struct ShowDetail { // MARK: Initialization - init(_ presentable: @escaping () -> any Presentable) { + public init(_ presentable: @escaping () -> any Presentable) { self.presentable = presentable } From e4495d872a13f985a3fd7050387f46defd31c63d Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Tue, 9 May 2023 02:40:44 +0200 Subject: [PATCH 27/35] Add TabBarTransition --- Sources/XCoordinator/Tab/SelectTab.swift | 84 +++++++++++++++++- Sources/XCoordinator/Tab/SetTabs.swift | 49 ++++++++++- .../XCoordinator/Tab/TabBarTransition.swift | 34 +++----- .../Tab/UITabBarController+Transition.swift | 85 ------------------- 4 files changed, 141 insertions(+), 111 deletions(-) delete mode 100755 Sources/XCoordinator/Tab/UITabBarController+Transition.swift diff --git a/Sources/XCoordinator/Tab/SelectTab.swift b/Sources/XCoordinator/Tab/SelectTab.swift index b25e58ac..6e49b9f3 100644 --- a/Sources/XCoordinator/Tab/SelectTab.swift +++ b/Sources/XCoordinator/Tab/SelectTab.swift @@ -5,4 +5,86 @@ // Created by Paul Kraft on 09.05.23. // -import Foundation +import UIKit + +public struct SelectTab { + + // MARK: Stored Properties + + private let index: Int? + private let presentable: (() -> any Presentable)? + private let animation: Animation? + + // MARK: Initialization + + public init(at index: Int, animation: Animation? = nil) { + self.index = index + self.animation = animation + self.presentable = nil + } + + public init(animation: Animation? = nil, presentable: @escaping () -> any Presentable) { + self.animation = animation + self.presentable = presentable + self.index = nil + } + +} + +extension SelectTab: TransitionComponent where RootViewController: UITabBarController { + + public func build() -> Transition { + if let index { + return Transition( + presentables: [], + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + if let animation { + rootViewController.viewControllers?[index].transitioningDelegate = animation + } + assert(animation == nil || rootViewController.animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the TabBarCoordinator's + initializer already had a delegate when initializing the TabBarCoordinator. + To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + rootViewController.selectedIndex = index + } + + CATransaction.commit() + } + } else if let presentable = presentable?() { + return Transition( + presentables: [presentable], + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + if let animation { + presentable.viewController.transitioningDelegate = animation + } + assert(animation == nil || rootViewController.animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the TabBarCoordinator's + initializer already had a delegate when initializing the TabBarCoordinator. + To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + rootViewController.selectedViewController = presentable.viewController + } + + CATransaction.commit() + } + } else { + return .none() + } + } + +} diff --git a/Sources/XCoordinator/Tab/SetTabs.swift b/Sources/XCoordinator/Tab/SetTabs.swift index b25e58ac..bcdd3ef7 100644 --- a/Sources/XCoordinator/Tab/SetTabs.swift +++ b/Sources/XCoordinator/Tab/SetTabs.swift @@ -5,4 +5,51 @@ // Created by Paul Kraft on 09.05.23. // -import Foundation +import UIKit + +public struct SetTabs { + + // MARK: Stored Properties + + private let animation: Animation? + private let presentables: () -> [any Presentable] + + // MARK: Initialization + + public init(animation: Animation? = nil, presentables: @escaping () -> [any Presentable]) { + self.animation = animation + self.presentables = presentables + } + +} + +extension SetTabs: TransitionComponent where RootViewController: UITabBarController { + + public func build() -> Transition { + let presentables = presentables() + return Transition(presentables: presentables, animationInUse: nil) { rootViewController, options, completion in + if let animation { + presentables.first?.viewController.transitioningDelegate = animation + } + assert(animation == nil || rootViewController.animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the TabBarCoordinator's + initializer already had a delegate when initializing the TabBarCoordinator. + To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock { + presentables.forEach { $0.presented(from: rootViewController) } + completion?() + } + + autoreleasepool { + rootViewController.setViewControllers(presentables.map(\.viewController), animated: options.animated) + } + + CATransaction.commit() + } + } + +} diff --git a/Sources/XCoordinator/Tab/TabBarTransition.swift b/Sources/XCoordinator/Tab/TabBarTransition.swift index 4972f39c..57c0a6bb 100755 --- a/Sources/XCoordinator/Tab/TabBarTransition.swift +++ b/Sources/XCoordinator/Tab/TabBarTransition.swift @@ -27,16 +27,10 @@ extension Transition where RootViewController: UITabBarController { /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// public static func set(_ presentables: [any Presentable], animation: Animation? = nil) -> Transition { - Transition(presentables: presentables, - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - rootViewController.set(presentables.map { $0.viewController }, - with: options, - animation: animation, - completion: { - presentables.forEach { $0.presented(from: rootViewController) } - completion?() - }) + Transition { + SetTabs(animation: animation) { + presentables + } } } @@ -54,13 +48,10 @@ extension Transition where RootViewController: UITabBarController { /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// public static func select(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition(presentables: [presentable], - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - rootViewController.select(presentable.viewController, - with: options, - animation: animation, - completion: completion) + Transition { + SelectTab(animation: animation) { + presentable + } } } @@ -77,13 +68,8 @@ extension Transition where RootViewController: UITabBarController { /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// public static func select(index: Int, animation: Animation? = nil) -> Transition { - Transition(presentables: [], - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - rootViewController.select(index: index, - with: options, - animation: animation, - completion: completion) + Transition { + SelectTab(at: index, animation: animation) } } diff --git a/Sources/XCoordinator/Tab/UITabBarController+Transition.swift b/Sources/XCoordinator/Tab/UITabBarController+Transition.swift deleted file mode 100755 index a918f5b4..00000000 --- a/Sources/XCoordinator/Tab/UITabBarController+Transition.swift +++ /dev/null @@ -1,85 +0,0 @@ -// -// UITabBarController+Transition.swift -// XCoordinator -// -// Created by Paul Kraft on 27.07.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -extension UITabBarController { - - func set(_ viewControllers: [UIViewController], - with options: TransitionOptions, - animation: Animation?, - completion: PresentationHandler?) { - - if let animation = animation { - viewControllers.first?.transitioningDelegate = animation - } - assert(animation == nil || animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the TabBarCoordinator's - initializer already had a delegate when initializing the TabBarCoordinator. - To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - setViewControllers(viewControllers, animated: options.animated) - } - - CATransaction.commit() - } - - func select(_ viewController: UIViewController, - with options: TransitionOptions, - animation: Animation?, - completion: PresentationHandler?) { - - if let animation = animation { - viewController.transitioningDelegate = animation - } - assert(animation == nil || animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the TabBarCoordinator's - initializer already had a delegate when initializing the TabBarCoordinator. - To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - selectedViewController = viewController - } - - CATransaction.commit() - } - - func select(index: Int, with options: TransitionOptions, animation: Animation?, completion: PresentationHandler?) { - - if let animation = animation { - viewControllers?[index].transitioningDelegate = animation - } - assert(animation == nil || animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the TabBarCoordinator's - initializer already had a delegate when initializing the TabBarCoordinator. - To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - selectedIndex = index - } - - CATransaction.commit() - } - -} From 1bf7800430d83d6a232d13fb7f9233d3d93e1395 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Tue, 9 May 2023 02:51:09 +0200 Subject: [PATCH 28/35] Add DeepLink transition --- .../XCoordinator/General/DeepLinking.swift | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Sources/XCoordinator/General/DeepLinking.swift b/Sources/XCoordinator/General/DeepLinking.swift index a67b14da..c9583ae0 100755 --- a/Sources/XCoordinator/General/DeepLinking.swift +++ b/Sources/XCoordinator/General/DeepLinking.swift @@ -6,6 +6,39 @@ // Copyright © 2018 QuickBird Studios. All rights reserved. // +import UIKit + +public struct DeepLink { + + private let coordinator: CoordinatorType + private let route: CoordinatorType.RouteType + private let remainingRoutes: [Route] + + public init(with coordinator: CoordinatorType, _ route: CoordinatorType.RouteType, _ remainingRoutes: Route...) { + self.coordinator = coordinator + self.route = route + self.remainingRoutes = remainingRoutes + } + +} + +extension DeepLink: TransitionComponent where RootViewController: UIViewController { + + public func build() -> Transition { + Transition(presentables: [], animationInUse: nil) { [weak coordinator] _, options, completion in + guard let coordinator = coordinator else { + assertionFailure("Please use the coordinator responsible for executing a deepLink-Transition when initializing.") + completion?() + return + } + + route.trigger(on: [coordinator], remainingRoutes: ArraySlice(remainingRoutes), + with: options, completion: completion) + } + } + +} + // MARK: - Coordinator + DeepLinking extension Coordinator where Self: AnyObject { From 5f37134951a6837980601f4316f388dc84f2d98d Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Thu, 28 May 2026 17:36:28 +0200 Subject: [PATCH 29/35] fix docs scripts --- Scripts/docs.sh | 13 ++++---- Scripts/docs_preview.sh | 31 ++++++++++++++++--- .../Transitions/Components/View/Perform.swift | 2 +- .../Components/View/RegisterPeek.swift | 2 ++ .../Transitions/TransitionBuilder.swift | 1 + .../Transitions/TransitionComponent.swift | 1 + .../View/UIViewController+Transition.swift | 4 --- 7 files changed, 39 insertions(+), 15 deletions(-) diff --git a/Scripts/docs.sh b/Scripts/docs.sh index 38b69b09..21bd6313 100755 --- a/Scripts/docs.sh +++ b/Scripts/docs.sh @@ -8,9 +8,10 @@ set -e -o pipefail cd "$(dirname "$0")/.." -swift package \ - --allow-writing-to-directory Documentation \ - generate-documentation \ - --target XCoordinator \ - --output-path Documentation \ - --transform-for-static-hosting +xcodebuild docbuild \ + -scheme XCoordinator \ + -destination 'generic/platform=iOS' \ + -derivedDataPath .build/Documentation \ + ONLY_ACTIVE_ARCH=YES \ + CODE_SIGNING_ALLOWED=NO \ + -quiet diff --git a/Scripts/docs_preview.sh b/Scripts/docs_preview.sh index b6d319a3..ed2f2705 100755 --- a/Scripts/docs_preview.sh +++ b/Scripts/docs_preview.sh @@ -7,7 +7,30 @@ set -e -o pipefail cd "$(dirname "$0")/.." -swift package \ - --disable-sandbox \ - preview-documentation \ - --product XCoordinator +echo "1. Building documentation archive for iOS..." +(./Scripts/docs.sh) + +# Locate the generated archive +DOCC_ARCHIVE=$(find .build/Documentation -type d -name "XCoordinator.doccarchive" | head -n 1) + +if [ -z "$DOCC_ARCHIVE" ]; then + echo "Error: Could not find the generated XCoordinator.doccarchive artifact." + exit 1 +fi + +echo "2. Transforming archive for local static web hosting..." +STATIC_OUT=".build/Documentation/static" +rm -rf "$STATIC_OUT" + +xcrun docc process-archive transform-for-static-hosting "$DOCC_ARCHIVE" \ + --output-path "$STATIC_OUT" + +DOCC_URL=http://localhost:8000/documentation/xcoordinator + +echo "--------------------------------------------------------" +echo "Documentation server running!" +echo "$DOCC_URL" +echo "--------------------------------------------------------" + +# 3. Serve the interactive documentation site +python3 -m http.server --directory "$STATIC_OUT" 8000 diff --git a/Sources/XCoordinator/Transitions/Components/View/Perform.swift b/Sources/XCoordinator/Transitions/Components/View/Perform.swift index 1ea99205..f8adcfac 100644 --- a/Sources/XCoordinator/Transitions/Components/View/Perform.swift +++ b/Sources/XCoordinator/Transitions/Components/View/Perform.swift @@ -11,7 +11,7 @@ public struct Perform { // MARK: Stored Properties - private let transition: () -> Transition + private let transition: @MainActor () -> Transition private let rootViewController: TransitionType.RootViewController // MARK: Initialization diff --git a/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift b/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift index 6afb713e..1b3dceb5 100644 --- a/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift +++ b/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift @@ -26,6 +26,7 @@ public struct RegisterPeek whe } +/* extension RegisterPeek: TransitionComponent where RootViewController: UIViewController { public func build() -> Transition { @@ -49,3 +50,4 @@ extension RegisterPeek: TransitionComponent where RootViewController: UIViewCont } } +*/ diff --git a/Sources/XCoordinator/Transitions/TransitionBuilder.swift b/Sources/XCoordinator/Transitions/TransitionBuilder.swift index abb9b5f0..d40b5533 100644 --- a/Sources/XCoordinator/Transitions/TransitionBuilder.swift +++ b/Sources/XCoordinator/Transitions/TransitionBuilder.swift @@ -7,6 +7,7 @@ import UIKit +@MainActor @resultBuilder public enum TransitionBuilder { diff --git a/Sources/XCoordinator/Transitions/TransitionComponent.swift b/Sources/XCoordinator/Transitions/TransitionComponent.swift index c8a334d9..55721548 100644 --- a/Sources/XCoordinator/Transitions/TransitionComponent.swift +++ b/Sources/XCoordinator/Transitions/TransitionComponent.swift @@ -7,6 +7,7 @@ import UIKit +@MainActor public protocol TransitionComponent { associatedtype RootViewController: UIViewController diff --git a/Sources/XCoordinator/View/UIViewController+Transition.swift b/Sources/XCoordinator/View/UIViewController+Transition.swift index 3fee33ad..6ee8fb25 100755 --- a/Sources/XCoordinator/View/UIViewController+Transition.swift +++ b/Sources/XCoordinator/View/UIViewController+Transition.swift @@ -10,10 +10,6 @@ import UIKit extension UIViewController { - private var topPresentedViewController: UIViewController { - presentedViewController?.topPresentedViewController ?? self - } - func show(_ viewController: UIViewController, with options: TransitionOptions, completion: PresentationHandler?) { From d613d42dc58e5a778eae62e21e677f2463bad1c2 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Fri, 29 May 2026 13:21:38 +0200 Subject: [PATCH 30/35] Update --- README.md | 38 ++++++++-- .../XCoordinator/Combine/Router+Combine.swift | 4 +- .../Coordinators/BaseCoordinator.swift | 49 ++++++------ .../Coordinators/BasicCoordinator.swift | 65 ++++++++++++---- .../Coordinators/Coordinator.swift | 74 +++++++++++++----- .../XCoordinator/Coordinators/Router.swift | 4 +- .../XCoordinator/General/DeepLinking.swift | 8 +- .../Navigation/NavigationCoordinator.swift | 33 +++++++- .../XCoordinator/Page/PageCoordinator.swift | 7 +- .../XCoordinator/Page/PageSetReliably.swift | 60 +++++++++++++++ .../XCoordinator/Page/PageTransition.swift | 21 +++++ .../XCoordinator/Split/SplitCoordinator.swift | 23 +++++- .../XCoordinator/Tab/TabBarCoordinator.swift | 31 +++++++- .../Components/View/RegisterPeek.swift | 53 ------------- .../XCoordinator/Transitions/Transition.swift | 4 +- .../Transitions/TransitionBuilder.swift | 7 ++ .../Transitions/TransitionContext.swift | 22 ++++++ .../Transitions/TransitionPerformer.swift | 38 ---------- .../Transitions/TransitionProtocol.swift | 69 ----------------- .../XCoordinator/View/Transition+Init.swift | 29 ++++++- .../XCoordinator/View/ViewCoordinator.swift | 35 ++++++++- .../XCoordinator.docc/Documentation.md | 76 +++++++++++++++++-- Sources/XCoordinatorRx/Router+Rx.swift | 4 +- Tests/XCoordinatorTests/AnimationTests.swift | 17 +---- Tests/XCoordinatorTests/TransitionTests.swift | 15 +--- Tests/XCoordinatorTests/XCTestManifests.swift | 10 --- 26 files changed, 509 insertions(+), 287 deletions(-) create mode 100644 Sources/XCoordinator/Page/PageSetReliably.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift create mode 100644 Sources/XCoordinator/Transitions/TransitionContext.swift delete mode 100755 Sources/XCoordinator/Transitions/TransitionPerformer.swift delete mode 100755 Sources/XCoordinator/Transitions/TransitionProtocol.swift delete mode 100644 Tests/XCoordinatorTests/XCTestManifests.swift diff --git a/README.md b/README.md index 9539c5fd..88a3dc0c 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,9 @@ XCoordinator decouples navigation from view controllers and view models: you des ## 🏃‍♂️ Getting started -Define a `Route` enum and a `Coordinator` that prepares a transition for each case: +Define a `Route` enum and a `Coordinator` that prepares a transition for each case. Since 3.0 you can +describe transitions with the **transition builder** ✨ — opt in by annotating your override with +`@TransitionBuilder`: ```swift enum UserListRoute: Route { @@ -63,19 +65,45 @@ class UserListCoordinator: NavigationCoordinator { super.init(initialRoute: .home) } + @TransitionBuilder override func prepareTransition(for route: UserListRoute) -> NavigationTransition { switch route { case .home: - return .push(HomeViewController()) + Push { HomeViewController() } case .user(let name): - return .present(UserCoordinator(user: name), animation: .default) + Present(animation: .default) { UserCoordinator(user: name) } case .logout: - return .dismiss() + Dismiss() } } } ``` +> ✨ **New in 3.0 — the transition builder.** A `@resultBuilder` DSL lets you compose transitions +> declaratively from components (`Push`, `Present`, `SelectTab`, …) and freely mix in the classic +> `Transition.…` factories. It's opt-in and additive. + +
+Classic style (still supported, non-breaking) + +The original style — a plain `prepareTransition(for:)` returning `Transition.…` factories — keeps working +exactly as before. Just omit the `@TransitionBuilder` annotation: + +```swift +class UserListCoordinator: NavigationCoordinator { + override func prepareTransition(for route: UserListRoute) -> NavigationTransition { + switch route { + case .home: .push(HomeViewController()) + case .user(let name): .present(UserCoordinator(user: name), animation: .default) + case .logout: .dismiss() + } + } +} +``` + +The builder is a modern convenience, not a requirement — you opt into it per override by adding the attribute. +
+ Trigger routes from a view model that holds a typed router reference: ```swift @@ -154,7 +182,7 @@ struct ChildView: View { } ``` -**Drive SwiftUI state changes from `prepareTransition`** without performing a UIKit transition — use `Transition.withAnimation` or `Transition.withTransaction`: +**Drive SwiftUI state changes from `prepareTransition(for:)`** without performing a UIKit transition — use `Transition.withAnimation` or `Transition.withTransaction`: ```swift class HomeCoordinator: TabBarCoordinator { diff --git a/Sources/XCoordinator/Combine/Router+Combine.swift b/Sources/XCoordinator/Combine/Router+Combine.swift index aae73eb9..1e175880 100644 --- a/Sources/XCoordinator/Combine/Router+Combine.swift +++ b/Sources/XCoordinator/Combine/Router+Combine.swift @@ -69,7 +69,7 @@ extension Router { public func contextTriggerPublisher( _ route: RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future { + ) -> Future { Future { completion in self.contextTrigger(route, with: options) { completion(.success($0)) @@ -101,7 +101,7 @@ extension PublisherExtension where Base: Router { public func contextTrigger( _ route: Base.RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future { + ) -> Future { base.contextTriggerPublisher(route, with: options) } diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index 076cb004..34c4972b 100755 --- a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -8,11 +8,6 @@ import UIKit -extension BaseCoordinator { - /// Shortcut for `BaseCoordinator.TransitionType.RootViewController` - public typealias RootViewController = TransitionType.RootViewController -} - /// /// BaseCoordinator can (and is encouraged to) be used as a superclass for any custom implementation of a coordinator. /// @@ -21,7 +16,7 @@ extension BaseCoordinator { /// and `PageCoordinator`. /// @MainActor -open class BaseCoordinator: Coordinator { +open class BaseCoordinator: Coordinator { // MARK: Stored properties @@ -39,9 +34,8 @@ open class BaseCoordinator /// The root view controller of this coordinator's flow. /// - /// The root view controller's concrete type is determined by `TransitionType.RootViewController` — - /// e.g. a `UINavigationController` for a `NavigationCoordinator`. Transitions on this coordinator - /// are performed against this view controller. + /// Its concrete type is the coordinator's `RootViewController` — e.g. a `UINavigationController` + /// for a `NavigationCoordinator`. Transitions on this coordinator are performed against it. public private(set) var rootViewController: RootViewController /// The presentable view controller for this coordinator. Returns ``rootViewController`` by default. @@ -70,15 +64,29 @@ open class BaseCoordinator /// - rootViewController: The root view controller for this coordinator's flow. /// - initialTransition: A transition to perform before the coordinator becomes visible. Pass `nil` to skip. /// - public init(rootViewController: RootViewController, initialTransition: TransitionType?) { + public init(rootViewController: RootViewController, initialTransition: Transition?) { self.rootViewController = rootViewController initialTransition.map(performTransitionAfterWindowAppeared) } + /// + /// Creates a coordinator and performs an initial transition — described with the transition builder — + /// before the coordinator is made visible. + /// + /// - Parameters: + /// - rootViewController: The root view controller for this coordinator's flow. + /// - initialTransition: A transition-builder closure describing the transition to perform. + /// + public init(rootViewController: RootViewController, + @TransitionBuilder initialTransition: () -> Transition) { + self.rootViewController = rootViewController + performTransitionAfterWindowAppeared(initialTransition()) + } + // MARK: Open methods public func router(for route: R.Type) -> (any Router)? { - self as? BaseCoordinator + self as? BaseCoordinator } open func presented(from presentable: (any Presentable)?) {} @@ -98,13 +106,9 @@ open class BaseCoordinator removeChildrenIfNeeded() } - @TransitionBuilder open func prepare(for route: RouteType) -> Transition { - fatalError("Please override the \(#function) method.") - } - /// /// This method prepares transitions for routes. - /// Override this method to define transitions for triggered routes. + /// Override this method to define transitions for triggered routes, using the transition builder DSL. /// /// - Parameter route: /// The triggered route for which a transition is to be prepared. @@ -112,14 +116,11 @@ open class BaseCoordinator /// - Returns: /// The prepared transition. /// - open func prepareTransition(for route: RouteType) -> TransitionType { - if let transition = prepare(for: route) as? TransitionType { - return transition - } else { - fatalError("Please override the \(#function) method.") - } + @TransitionBuilder + open func prepareTransition(for route: RouteType) -> Transition { + fatalError("Please override the \(#function) method.") } - + public func registerParent(_ presentable: any Presentable & AnyObject) { let previous = removeParentChildren removeParentChildren = { [weak presentable] in @@ -130,7 +131,7 @@ open class BaseCoordinator // MARK: Private methods - private func performTransitionAfterWindowAppeared(_ transition: TransitionType) { + private func performTransitionAfterWindowAppeared(_ transition: Transition) { guard !UIApplication.shared.windows.contains(where: { $0.isKeyWindow }) else { return performTransition(transition, with: TransitionOptions(animated: false)) } diff --git a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift index d6a4e5d8..2e87c2c4 100755 --- a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift @@ -6,22 +6,24 @@ // Copyright © 2018 QuickBird Studios. All rights reserved. // +import UIKit + /// A BasicCoordinator with a `UINavigationController` as its rootViewController. -public typealias BasicNavigationCoordinator = BasicCoordinator +public typealias BasicNavigationCoordinator = BasicCoordinator /// A BasicCoordinator with a `UIViewController` as its rootViewController. -public typealias BasicViewCoordinator = BasicCoordinator +public typealias BasicViewCoordinator = BasicCoordinator /// A BasicCoordinator with a `UITabBarController` as its rootViewController. -public typealias BasicTabBarCoordinator = BasicCoordinator +public typealias BasicTabBarCoordinator = 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`. +/// be created by only providing a `prepare` closure, an `initialRoute` and an `initialLoadingType`. /// -open class BasicCoordinator: BaseCoordinator { +open class BasicCoordinator: BaseCoordinator { // MARK: Nested types @@ -42,27 +44,60 @@ open class BasicCoordinator TransitionType)? + private let prepareClosure: ((RouteType) -> Transition)? // MARK: Initialization /// - /// Creates a BasicCoordinator. + /// Creates a BasicCoordinator whose transitions are defined inline with the transition builder. + /// + /// The `prepare` closure is a `@TransitionBuilder`, so its body uses the same component / factory + /// syntax as an overridden `prepareTransition(for:)`: + /// + /// ```swift + /// BasicNavigationCoordinator(rootViewController: .init(), initialRoute: .home) { route in + /// switch route { + /// case .home: Show { HomeViewController() } + /// case .detail: Transition.push(DetailViewController()) + /// } + /// } + /// ``` /// /// - Parameters: /// - rootViewController: The view controller that hosts the coordinator's transitions. /// - initialRoute: If specified, this route is triggered depending on `initialLoadingType`. /// - initialLoadingType: Determines when `initialRoute` is triggered. See ``InitialLoadingType``. - /// - prepareTransition: A closure that returns a transition for each triggered route. - /// Make sure to subclass and override `prepareTransition(for:)` if you pass `nil` here. + /// - prepare: A transition-builder closure returning the transition for each triggered route. /// public init(rootViewController: RootViewController, initialRoute: RouteType? = nil, initialLoadingType: InitialLoadingType = .presented, - prepareTransition: ((RouteType) -> TransitionType)?) { + @TransitionBuilder prepare: @escaping (RouteType) -> Transition) { + self.initialRoute = initialRoute + self.initialLoadingType = initialLoadingType + self.prepareClosure = prepare + + if initialLoadingType == .immediately { + super.init(rootViewController: rootViewController, initialRoute: initialRoute) + } else { + super.init(rootViewController: rootViewController, initialRoute: nil) + } + } + + /// + /// Creates a BasicCoordinator that defines its transitions by overriding ``prepareTransition(for:)`` in a subclass. + /// + /// - Parameters: + /// - rootViewController: The view controller that hosts the coordinator's transitions. + /// - initialRoute: If specified, this route is triggered depending on `initialLoadingType`. + /// - initialLoadingType: Determines when `initialRoute` is triggered. See ``InitialLoadingType``. + /// + public init(rootViewController: RootViewController, + initialRoute: RouteType? = nil, + initialLoadingType: InitialLoadingType = .presented) { self.initialRoute = initialRoute self.initialLoadingType = initialLoadingType - self.prepareTransition = prepareTransition + self.prepareClosure = nil if initialLoadingType == .immediately { super.init(rootViewController: rootViewController, initialRoute: initialRoute) @@ -90,11 +125,11 @@ open class BasicCoordinator TransitionType { - if let prepareTransition = prepareTransition { - return prepareTransition(route) + open override func prepareTransition(for route: RouteType) -> Transition { + if let prepareClosure = prepareClosure { + return prepareClosure(route) } else { - fatalError("Either pass a \(#function) closure to the initializer or override this method.") + fatalError("Either pass a `prepare` closure to the initializer or override this method.") } } } diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index b9d0a59e..bf2405f9 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -12,20 +12,27 @@ import UIKit public typealias PresentationHandler = () -> Void /// The completion handler for transitions, which also provides the context information about the transition. -public typealias ContextPresentationHandler = (any TransitionProtocol) -> Void +public typealias ContextPresentationHandler = (any TransitionContext) -> Void /// /// 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. +/// It owns a `rootViewController`, prepares a ``Transition`` for each triggered route via ``prepareTransition(for:)``, +/// and performs those transitions. Every transition is a `Transition`; the concrete +/// root-view-controller type (e.g. `UINavigationController`) determines which transitions are available. /// @MainActor -public protocol Coordinator: Router, TransitionPerformer { +public protocol Coordinator: Router { + + /// The type of the rootViewController on which transitions are performed. + associatedtype RootViewController: UIViewController + + /// The rootViewController on which transitions are performed. + var rootViewController: RootViewController { get } /// /// This method prepares transitions for routes. - /// It especially decides, which transitions are performed for the triggered routes. + /// It especially decides which transition is performed for a triggered route. /// /// - Parameter route: /// The triggered route for which a transition is to be prepared. @@ -33,8 +40,24 @@ public protocol Coordinator: Router, TransitionPerfor /// - Returns: /// The prepared transition. /// - func prepareTransition(for route: RouteType) -> TransitionType - + @TransitionBuilder + func prepareTransition(for route: RouteType) -> Transition + + /// + /// Perform a transition. + /// + /// - Warning: + /// Do not use this method directly. Instead, trigger a route on your coordinator wherever possible. + /// + /// - 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 the transition has finished. + /// + func performTransition(_ transition: Transition, + with options: TransitionOptions, + completion: PresentationHandler?) + /// /// This method adds a child to a coordinator's children. /// @@ -42,7 +65,7 @@ public protocol Coordinator: Router, TransitionPerfor /// The child to be added. /// func addChild(_ presentable: any Presentable) - + /// /// This method removes a child to a coordinator's children. /// @@ -50,19 +73,11 @@ public protocol Coordinator: Router, TransitionPerfor /// The child to be removed. /// func removeChild(_ presentable: any Presentable) - + /// This method removes all children that are no longer in the view hierarchy. func removeChildrenIfNeeded() } -// MARK: - Typealiases - -extension Coordinator { - - /// Shortcut for Coordinator.TransitionType.RootViewController - public typealias RootViewController = TransitionType.RootViewController -} - // MARK: - Presentable extension Coordinator { @@ -76,9 +91,9 @@ extension Coordinator { // MARK: - Default implementations extension Coordinator where Self: AnyObject { - + public func presented(from presentable: (any Presentable)?) {} - + public func childTransitionCompleted() { removeChildrenIfNeeded() } @@ -99,11 +114,11 @@ extension Coordinator where Self: AnyObject { /// - Returns: /// A transition combining the transitions of the specified routes. /// - public func chain(routes: [RouteType]) -> TransitionType { + public func chain(routes: [RouteType]) -> Transition { .multiple(routes.map(prepareTransition)) } - public func performTransition(_ transition: TransitionType, + public func performTransition(_ transition: Transition, with options: TransitionOptions, completion: PresentationHandler? = nil) { #if canImport(SwiftUI) @@ -119,4 +134,21 @@ extension Coordinator where Self: AnyObject { completion?() } } + + /// + /// Performs a transition described with the transition builder. + /// + /// - Warning: + /// Do not use this method directly. Instead, trigger a route on your coordinator wherever possible. + /// + /// - Parameters: + /// - options: The options on how to perform the transition. Defaults to animated. + /// - completion: The completion handler called once the transition has finished. + /// - transition: A transition-builder closure describing the transition to perform. + /// + public func performTransition(with options: TransitionOptions = TransitionOptions(animated: true), + completion: PresentationHandler? = nil, + @TransitionBuilder _ transition: () -> Transition) { + performTransition(transition(), with: options, completion: completion) + } } diff --git a/Sources/XCoordinator/Coordinators/Router.swift b/Sources/XCoordinator/Coordinators/Router.swift index eed76784..45c5345e 100755 --- a/Sources/XCoordinator/Coordinators/Router.swift +++ b/Sources/XCoordinator/Coordinators/Router.swift @@ -11,7 +11,7 @@ import Foundation /// /// The Router protocol abstracts a coordinator down to its route-triggering capability. /// -/// In contrast to ``Coordinator``, `Router` does not specify a `TransitionType` and can therefore be +/// In contrast to ``Coordinator``, `Router` does not specify a `RootViewController` and can therefore be /// used as `any Router` to expose only the trigger surface to view models and views. /// Pair the existential with the ARC qualifier that matches the relationship — `unowned`/`weak` for /// child holding parent, `strong` for ownership. @@ -123,7 +123,7 @@ extension Router { /// /// - Returns: The transition context of the performed transition(s). /// - @MainActor public func contextTrigger(_ route: RouteType, with options: TransitionOptions) async -> any TransitionProtocol { + @MainActor public func contextTrigger(_ route: RouteType, with options: TransitionOptions) async -> any TransitionContext { await withCheckedContinuation { continuation in contextTrigger(route, with: options) { context in continuation.resume(returning: context) diff --git a/Sources/XCoordinator/General/DeepLinking.swift b/Sources/XCoordinator/General/DeepLinking.swift index c9583ae0..d8f376a4 100755 --- a/Sources/XCoordinator/General/DeepLinking.swift +++ b/Sources/XCoordinator/General/DeepLinking.swift @@ -58,8 +58,8 @@ extension Coordinator where Self: AnyObject { /// 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. /// - public func deepLink(_ route: RouteType, _ remainingRoutes: S) - -> Transition where S.Element == Route, TransitionType == Transition { + public func deepLink(_ route: RouteType, _ remainingRoutes: S) + -> Transition where S.Element == Route { .deepLink(with: self, route, array: Array(remainingRoutes)) } @@ -76,8 +76,8 @@ extension Coordinator where Self: AnyObject { /// 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. /// - public func deepLink(_ route: RouteType, _ remainingRoutes: Route...) - -> Transition where TransitionType == Transition { + public func deepLink(_ route: RouteType, _ remainingRoutes: Route...) + -> Transition { .deepLink(with: self, route, array: remainingRoutes) } } diff --git a/Sources/XCoordinator/Navigation/NavigationCoordinator.swift b/Sources/XCoordinator/Navigation/NavigationCoordinator.swift index 2c89db99..e91317d6 100755 --- a/Sources/XCoordinator/Navigation/NavigationCoordinator.swift +++ b/Sources/XCoordinator/Navigation/NavigationCoordinator.swift @@ -15,7 +15,7 @@ import UIKit /// NavigationCoordinator especially ensures that transition animations are called, /// which would not be the case when creating a `BaseCoordinator`. /// -open class NavigationCoordinator: BaseCoordinator { +open class NavigationCoordinator: BaseCoordinator { // MARK: Stored properties @@ -77,4 +77,35 @@ open class NavigationCoordinator: BaseCoordinator initialTransition: () -> NavigationTransition) { + if rootViewController.delegate == nil { + rootViewController.delegate = animationDelegate + } + super.init(rootViewController: rootViewController, initialTransition: initialTransition()) + animationDelegate.presentable = self + } + } diff --git a/Sources/XCoordinator/Page/PageCoordinator.swift b/Sources/XCoordinator/Page/PageCoordinator.swift index 12a88477..1e86b90d 100755 --- a/Sources/XCoordinator/Page/PageCoordinator.swift +++ b/Sources/XCoordinator/Page/PageCoordinator.swift @@ -14,7 +14,7 @@ import UIKit /// - Note: /// PageCoordinator sets the dataSource of the rootViewController to reflect the parameters in the initializer. /// -open class PageCoordinator: BaseCoordinator { +open class PageCoordinator: BaseCoordinator { // MARK: Stored properties @@ -27,6 +27,11 @@ open class PageCoordinator: BaseCoordinator { + + // MARK: Stored Properties + + private let page: () -> any Presentable + private let direction: UIPageViewController.NavigationDirection + + // MARK: Initialization + + public init(direction: UIPageViewController.NavigationDirection, + page: @escaping () -> any Presentable) { + self.page = page + self.direction = direction + } + +} + +extension PageSetReliably: TransitionComponent where RootViewController: UIPageViewController { + + public func build() -> Transition { + let presentable = page() + return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in + guard let target = presentable.viewController else { + completion?() + return + } + let isAlreadyVisible = rootViewController.viewControllers?.count == 1 + && rootViewController.viewControllers?.first === target + guard !isAlreadyVisible else { + // The page is already displayed — UIKit would not call the completion, so do it ourselves. + // `presented(from:)` was already invoked when this page was first set, so it is not repeated. + completion?() + return + } + rootViewController.setViewControllers([target], direction: direction, animated: options.animated) { _ in + presentable.presented(from: rootViewController) + completion?() + } + } + } + +} diff --git a/Sources/XCoordinator/Page/PageTransition.swift b/Sources/XCoordinator/Page/PageTransition.swift index a555ecca..dc8c7369 100755 --- a/Sources/XCoordinator/Page/PageTransition.swift +++ b/Sources/XCoordinator/Page/PageTransition.swift @@ -39,6 +39,27 @@ extension Transition where RootViewController: UIPageViewController { } } + /// + /// A reliable variant of ``set(_:_:direction:)`` for a single page that **always** calls its completion + /// handler — even when the requested page is already on-screen. + /// + /// `UIPageViewController` skips its completion block when asked to set the page it is already showing, + /// which stalls `deepLink` (it chains the next route inside the completion). Use this in a deep-link + /// chain whose page step might target the currently-visible page. + /// + /// - Parameters: + /// - page: The page to show. + /// - direction: The direction in which the transition should be animated. + /// + public static func setReliably(_ page: any Presentable, + direction: UIPageViewController.NavigationDirection) -> Transition { + Transition { + PageSetReliably(direction: direction) { + page + } + } + } + static func initial(pages: [any Presentable]) -> Transition { Transition { PageSetInitial { diff --git a/Sources/XCoordinator/Split/SplitCoordinator.swift b/Sources/XCoordinator/Split/SplitCoordinator.swift index 187f0b1b..169d95d9 100755 --- a/Sources/XCoordinator/Split/SplitCoordinator.swift +++ b/Sources/XCoordinator/Split/SplitCoordinator.swift @@ -15,7 +15,7 @@ import UIKit /// You can use all `SplitTransitions` and get an initializer to set a master and /// (optional) detail presentable. /// -open class SplitCoordinator: BaseCoordinator { +open class SplitCoordinator: BaseCoordinator { // MARK: Initialization @@ -29,6 +29,27 @@ open class SplitCoordinator: BaseCoordinator initialTransition: () -> SplitTransition) { + super.init(rootViewController: rootViewController, initialTransition: initialTransition()) + } + /// /// Creates a SplitCoordinator and sets the specified presentables as the split controller's view controllers. /// diff --git a/Sources/XCoordinator/Tab/TabBarCoordinator.swift b/Sources/XCoordinator/Tab/TabBarCoordinator.swift index 1d227e80..085e1358 100755 --- a/Sources/XCoordinator/Tab/TabBarCoordinator.swift +++ b/Sources/XCoordinator/Tab/TabBarCoordinator.swift @@ -19,7 +19,7 @@ import UIKit /// 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. /// -open class TabBarCoordinator: BaseCoordinator { +open class TabBarCoordinator: BaseCoordinator { // MARK: Stored properties @@ -65,6 +65,35 @@ open class TabBarCoordinator: BaseCoordinator initialTransition: () -> TabBarTransition) { + if rootViewController.delegate == nil { + rootViewController.delegate = animationDelegate + } + super.init(rootViewController: rootViewController, initialTransition: initialTransition()) + } + /// /// Creates a TabBarCoordinator with a specified set of tabs. /// diff --git a/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift b/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift deleted file mode 100644 index 1b3dceb5..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/RegisterPeek.swift +++ /dev/null @@ -1,53 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -@available(iOS, introduced: 9.0, deprecated: 13.0, message: "Use `UIContextMenuInteraction` instead.") -public struct RegisterPeek where CoordinatorType.TransitionType == Transition { - - // MARK: Stored Properties - - private let coordinator: CoordinatorType - private let source: any Container - private let route: CoordinatorType.RouteType - - // MARK: Initialization - - public init(for route: CoordinatorType.RouteType, on coordinator: CoordinatorType, in source: any Container) { - self.route = route - self.coordinator = coordinator - self.source = source - } - -} - -/* -extension RegisterPeek: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - let transitionGenerator = { [weak coordinator] () -> CoordinatorType.TransitionType in - coordinator?.prepareTransition(for: route) ?? .none() - } - return Transition(presentables: [], animationInUse: nil) { rootViewController, _, completion in - let delegate = CoordinatorPreviewingDelegateObject( - transition: transitionGenerator, - rootViewController: rootViewController, - completion: completion - ) - - if let context = source.view.removePreviewingContext(for: CoordinatorType.TransitionType.self) { - rootViewController.unregisterForPreviewing(withContext: context) - } - - source.view.strongReferences.append(delegate) - delegate.context = rootViewController.registerForPreviewing(with: delegate, sourceView: source.view) - } - } - -} -*/ diff --git a/Sources/XCoordinator/Transitions/Transition.swift b/Sources/XCoordinator/Transitions/Transition.swift index 4fccae8f..606e1811 100755 --- a/Sources/XCoordinator/Transitions/Transition.swift +++ b/Sources/XCoordinator/Transitions/Transition.swift @@ -9,7 +9,7 @@ import UIKit /// -/// This struct represents the common implementation of the `TransitionProtocol`. +/// This struct is the single transition type used by every coordinator. /// 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. @@ -23,7 +23,7 @@ import UIKit /// Make sure to specify the `RootViewController` type of the `TransitionType` of your coordinator as precise as possible /// to get all already available transitions. /// -public struct Transition: TransitionProtocol { +public struct Transition: TransitionContext { // MARK: Typealias diff --git a/Sources/XCoordinator/Transitions/TransitionBuilder.swift b/Sources/XCoordinator/Transitions/TransitionBuilder.swift index d40b5533..0765caf7 100644 --- a/Sources/XCoordinator/Transitions/TransitionBuilder.swift +++ b/Sources/XCoordinator/Transitions/TransitionBuilder.swift @@ -17,6 +17,13 @@ public enum TransitionBuilder { TransitionGroup([expression.build]) } + /// Accepts a plain `Transition` as a builder expression, so the `Transition.…` factories + /// (`.push`, `.present`, `.set`, `.setReliably`, `.deepLink`, …) can be used directly inside a + /// transition builder alongside the `TransitionComponent` types. + public static func buildExpression(_ expression: Transition) -> Component { + TransitionGroup([{ expression }]) + } + public static func buildExpression(_ expression: Void) -> Component { TransitionGroup([]) } diff --git a/Sources/XCoordinator/Transitions/TransitionContext.swift b/Sources/XCoordinator/Transitions/TransitionContext.swift new file mode 100644 index 00000000..8fd32a40 --- /dev/null +++ b/Sources/XCoordinator/Transitions/TransitionContext.swift @@ -0,0 +1,22 @@ +// +// TransitionContext.swift +// XCoordinator +// +// Created by Paul Kraft on 13.09.18. +// Copyright © 2018 QuickBird Studios. All rights reserved. +// + +/// +/// A non-generic view of a performed transition, used where the concrete root-view-controller type +/// is not known — e.g. on `Router`, whose only knowledge is its `RouteType`. +/// +/// The context-based `trigger` variants (`contextTrigger`, the async overload, and the Combine/RxSwift +/// wrappers) hand back the performed transition as `any TransitionContext`. Deep linking +/// (`General/DeepLinking.swift`) uses ``presentables`` to walk the resulting coordinator tree. +/// +@MainActor +public protocol TransitionContext { + + /// The presentables introduced into the view hierarchy by the transition. + var presentables: [any Presentable] { get } +} diff --git a/Sources/XCoordinator/Transitions/TransitionPerformer.swift b/Sources/XCoordinator/Transitions/TransitionPerformer.swift deleted file mode 100755 index b1032890..00000000 --- a/Sources/XCoordinator/Transitions/TransitionPerformer.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// TransitionPerformer.swift -// XCoordinator -// -// Created by Paul Kraft on 13.09.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -/// -/// The TransitionPerformer protocol is used to abstract the route-type specific characteristics of a Coordinator. -/// It keeps type information about its transition performing capabilities. -/// -@MainActor -public protocol TransitionPerformer: Presentable { - - /// The type of transitions that can be executed on the rootViewController. - associatedtype TransitionType: TransitionProtocol - - /// The rootViewController on which transitions are performed. - 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. - /// - /// - 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. - /// - func performTransition(_ transition: TransitionType, - with options: TransitionOptions, - completion: PresentationHandler?) - -} diff --git a/Sources/XCoordinator/Transitions/TransitionProtocol.swift b/Sources/XCoordinator/Transitions/TransitionProtocol.swift deleted file mode 100755 index f12ddbf0..00000000 --- a/Sources/XCoordinator/Transitions/TransitionProtocol.swift +++ /dev/null @@ -1,69 +0,0 @@ -// -// TransitionProtocol.swift -// XCoordinator -// -// Created by Paul Kraft on 13.09.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -/// -/// `TransitionProtocol` is used to abstract any concrete transition implementation. -/// -/// `Transition` is provided as an easily-extensible default transition type implementation. -/// -@MainActor -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. - /// - /// - Warning: - /// Do not call this method directly. Instead use your coordinator's `performTransition` method or trigger - /// a specified route (latter option is encouraged). - /// - func perform(on rootViewController: RootViewController, - with options: TransitionOptions, - completion: PresentationHandler?) - - // MARK: Always accessible transitions - - /// - /// Creates a compound transition by chaining multiple transitions together. - /// - /// - Parameter transitions: - /// The transitions to be chained to form a combined transition. - /// - static func multiple(_ transitions: [Self]) -> Self -} - -extension TransitionProtocol { - - /// - /// Creates a compound transition by chaining multiple transitions together. - /// - /// - Parameter transitions: - /// The transitions to be chained to form a combined transition. - /// - public static func multiple(_ transitions: Self...) -> Self { - multiple(transitions) - } - -} diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index 7f7979d6..bc774f23 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -139,6 +139,16 @@ extension Transition { Transition {} } + /// + /// With this transition you can chain multiple transitions of the same type together. + /// + /// - Parameter transitions: + /// The transitions to be chained to form the new transition. + /// + public static func multiple(_ transitions: Transition...) -> Transition { + multiple(transitions) + } + /// /// With this transition you can chain multiple transitions of the same type together. /// @@ -201,13 +211,28 @@ extension Transition { /// - transition: The transition to be performed. /// - viewController: The viewController to perform the transition on. /// - public static func perform(_ transition: TransitionType, - on viewController: TransitionType.RootViewController) -> Transition { + public static func perform(_ transition: Transition, + on viewController: OtherRoot) -> Transition { Transition(presentables: transition.presentables, animationInUse: transition.animation) { _, options, completion in transition.perform(on: viewController, with: options, completion: completion) } } + /// + /// Performs a transition — described with the transition builder — on a different viewController + /// than the coordinator's rootViewController. + /// + /// - Parameters: + /// - viewController: The viewController to perform the transition on. + /// - transition: A transition-builder closure describing the transition to perform. + /// + public static func perform( + on viewController: OtherRoot, + @TransitionBuilder _ transition: () -> Transition + ) -> Transition { + perform(transition(), on: viewController) + } + } extension Transition { diff --git a/Sources/XCoordinator/View/ViewCoordinator.swift b/Sources/XCoordinator/View/ViewCoordinator.swift index 6b7bb06b..89af01fe 100755 --- a/Sources/XCoordinator/View/ViewCoordinator.swift +++ b/Sources/XCoordinator/View/ViewCoordinator.swift @@ -22,7 +22,7 @@ public typealias ViewTransition = Transition /// /// ViewCoordinator is a base class for custom coordinators with a `UIViewController` rootViewController. /// -open class ViewCoordinator: BaseCoordinator { +open class ViewCoordinator: BaseCoordinator { // MARK: Initialization @@ -32,11 +32,23 @@ open class ViewCoordinator: BaseCoordinator initialTransition: () -> ViewTransition) { + super.init(rootViewController: rootViewController, + initialTransition: initialTransition()) + } + /// /// Creates a view coordinator with the given root view controller and an optional initial route. /// @@ -74,7 +86,7 @@ open class ViewCoordinator: BaseCoordinator( - initialTransition: TransitionType?, + initialTransition: ViewTransition?, @ViewBuilder body: () -> Content ) { super.init( @@ -83,6 +95,23 @@ open class ViewCoordinator: BaseCoordinator( + @TransitionBuilder initialTransition: () -> ViewTransition, + @ViewBuilder body: () -> Content + ) { + super.init( + rootViewController: RoutingController(rootView: body()), + initialTransition: initialTransition() + ) + } + #endif } diff --git a/Sources/XCoordinator/XCoordinator.docc/Documentation.md b/Sources/XCoordinator/XCoordinator.docc/Documentation.md index 59d7de34..53de1c22 100644 --- a/Sources/XCoordinator/XCoordinator.docc/Documentation.md +++ b/Sources/XCoordinator/XCoordinator.docc/Documentation.md @@ -26,19 +26,23 @@ class UserListCoordinator: NavigationCoordinator { super.init(initialRoute: .home) } + @TransitionBuilder override func prepareTransition(for route: UserListRoute) -> NavigationTransition { switch route { case .home: - return .push(HomeViewController()) + Push { HomeViewController() } case .user(let name): - return .present(UserCoordinator(user: name), animation: .default) + Present(animation: .default) { UserCoordinator(user: name) } case .logout: - return .dismiss() + Dismiss() } } } ``` +The classic style — a plain `prepareTransition(for:)` (no attribute) returning `Transition.…` factories — +remains fully supported and non-breaking; see . + Trigger routes from a view model that holds a typed router reference: ```swift @@ -70,6 +74,61 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } ``` +## Building transitions + +There are two supported ways to define the transition for a route — both produce a `Transition`. + +### The transition builder (recommended, new in 3.0) + +Annotate your override with `@TransitionBuilder` to compose transitions declaratively. +Two interchangeable vocabularies are available inside the builder, and you can freely mix them: + +- **Component types** — `Push`, `Pop`, `Present`, `Dismiss`, `Embed`, `Show`, `SelectTab`, `SetTabs`, + `PageSet`, `Redirect`, `Trigger`, … Each reads like a declarative element. +- **`Transition.…` factories** — `.push(_:)`, `.present(_:)`, `.dismiss()`, `.set(_:)`, `.select(_:)`, + `.deepLink(_:_:)`, `.withAnimation { … }`, … Each returns a ``Transition`` and is accepted directly + by the builder. + +```swift +class AppCoordinator: NavigationCoordinator { + @TransitionBuilder + override func prepareTransition(for route: AppRoute) -> NavigationTransition { + switch route { + case .home: + Push { HomeViewController() } // component + case .detail(let id): + .push(DetailViewController(id: id)) // factory — also fine + case .reset: + Pop(toRoot: true) // list several to combine them (like `.multiple`) + Push { HomeViewController() } + } + } +} +``` + +> Note: Swift does not inherit a result-builder attribute onto an override, so you must restate +> `@TransitionBuilder` on each override that uses builder syntax. + +The same builder closure is accepted anywhere a transition is expected — ``BasicCoordinator``'s initializer, +`performTransition(_:)`, `Transition.perform(on:_:)`, and the `initialTransition:` initializers. + +### The classic style (still supported, non-breaking) + +A plain `prepareTransition(for:)` (no attribute) that returns `Transition.…` factories works exactly as it +did in 2.x — nothing to migrate: + +```swift +class AppCoordinator: NavigationCoordinator { + override func prepareTransition(for route: AppRoute) -> NavigationTransition { + switch route { + case .home: .push(HomeViewController()) + case .detail(let id): .push(DetailViewController(id: id)) + case .reset: .multiple(.popToRoot(), .push(HomeViewController())) + } + } +} +``` + ## Choosing a router reference Since 3.0, type erasure is provided by Swift's parameterized existential `any Router`. There are no longer dedicated `AnyRouter`, `StrongRouter`, `UnownedRouter`, or `WeakRouter` types — you simply choose the ARC qualifier that matches the lifetime relationship: @@ -125,7 +184,7 @@ struct ChildView: View { } ``` -**Drive SwiftUI state changes from `prepareTransition`** with `Transition.withAnimation` or `Transition.withTransaction`, which run a body closure inside `SwiftUI.withAnimation`/`withTransaction` without performing any UIKit transition: +**Drive SwiftUI state changes from `prepareTransition(for:)`** with `Transition.withAnimation` or `Transition.withTransaction`, which run a body closure inside `SwiftUI.withAnimation`/`withTransaction` without performing any UIKit transition: ```swift class HomeCoordinator: TabBarCoordinator { @@ -228,12 +287,11 @@ The available transitions depend on the coordinator's `RootViewController` type. - ``Route`` - ``Router`` - ``Presentable`` -- ``TransitionPerformer`` ### Transitions - ``Transition`` -- ``TransitionProtocol`` +- ``TransitionContext`` - ``TransitionOptions`` - ``NavigationTransition`` - ``TabBarTransition`` @@ -241,6 +299,12 @@ The available transitions depend on the coordinator's `RootViewController` type. - ``PageTransition`` - ``ViewTransition`` +### Transition builder + +- ``TransitionBuilder`` +- ``TransitionComponent`` +- ``TransitionGroup`` + ### Animations - ``Animation`` diff --git a/Sources/XCoordinatorRx/Router+Rx.swift b/Sources/XCoordinatorRx/Router+Rx.swift index c162242f..6cb2732a 100644 --- a/Sources/XCoordinatorRx/Router+Rx.swift +++ b/Sources/XCoordinatorRx/Router+Rx.swift @@ -66,7 +66,7 @@ extension ReactiveRouter { } /// - /// Wraps a route trigger in an `Observable` that emits the resulting + /// Wraps a route trigger in an `Observable` that emits the resulting /// transition context once the transition has completed. /// /// Useful for deep linking when the resulting context is required for further processing. @@ -79,7 +79,7 @@ extension ReactiveRouter { public func contextTrigger( _ route: RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Observable { + ) -> Observable { Observable.create { [base] observer -> Disposable in base.contextTrigger(route, with: options) { observer.onNext($0) diff --git a/Tests/XCoordinatorTests/AnimationTests.swift b/Tests/XCoordinatorTests/AnimationTests.swift index 7733c1bb..608b6e80 100644 --- a/Tests/XCoordinatorTests/AnimationTests.swift +++ b/Tests/XCoordinatorTests/AnimationTests.swift @@ -10,18 +10,9 @@ import UIKit import XCoordinator import XCTest +@MainActor class AnimationTests: XCTestCase { - // MARK: Static properties - - static let allTests = [ - ("testPageCoordinator", testPageCoordinator), - ("testSplitCoordinator", testSplitCoordinator), - ("testTabBarCoordinator", testTabBarCoordinator), - ("testViewCoordinator", testViewCoordinator), - ("testNavigationCoordinator", testNavigationCoordinator), - ] - // MARK: Stored properties lazy var window = UIWindow() @@ -101,7 +92,7 @@ class AnimationTests: XCTestCase { // MARK: Helpers - private func testStandardAnimationsCalled(on coordinator: C) where C.TransitionType == Transition { + private func testStandardAnimationsCalled(on coordinator: C) { testStaticAnimationCalled(on: coordinator, transition: { .present(UIViewController(), animation: $0) }) testStaticAnimationCalled(on: coordinator, transition: { .dismiss(animation: $0) }) testStaticAnimationCalled( @@ -122,7 +113,7 @@ class AnimationTests: XCTestCase { } private func testStaticAnimationCalled(on coordinator: C, - transition: (Animation) -> C.TransitionType) { + transition: (Animation) -> Transition) { let animationExpectation = expectation(description: "Animation \(Date().timeIntervalSince1970)") let completionExpectation = expectation(description: "Completion \(Date().timeIntervalSince1970)") print(#function, animationExpectation) @@ -136,7 +127,7 @@ class AnimationTests: XCTestCase { } private func testInteractiveAnimationCalled(on coordinator: C, - transition: (Animation) -> C.TransitionType) { + transition: (Animation) -> Transition) { let animationExpectation = expectation(description: "Animation \(Date().timeIntervalSince1970)") let completionExpectation = expectation(description: "Completion \(Date().timeIntervalSince1970)") print(#function, animationExpectation) diff --git a/Tests/XCoordinatorTests/TransitionTests.swift b/Tests/XCoordinatorTests/TransitionTests.swift index c4d4bed2..e094d9b0 100644 --- a/Tests/XCoordinatorTests/TransitionTests.swift +++ b/Tests/XCoordinatorTests/TransitionTests.swift @@ -10,18 +10,9 @@ import UIKit import XCoordinator import XCTest +@MainActor class TransitionTests: XCTestCase { - // MARK: Static properties - - static let allTests = [ - ("testPageCoordinator", testPageCoordinator), - ("testSplitCoordinator", testSplitCoordinator), - ("testTabBarCoordinator", testTabBarCoordinator), - ("testViewCoordinator", testViewCoordinator), - ("testNavigationCoordinator", testNavigationCoordinator), - ] - // MARK: Stored properties lazy var window = UIWindow() @@ -80,7 +71,7 @@ class TransitionTests: XCTestCase { // MARK: Helpers - private func testStandardTransitions(on coordinator: C) where C.TransitionType == Transition { + private func testStandardTransitions(on coordinator: C) { testCompletionCalled(on: coordinator, transition: .none()) testCompletionCalled(on: coordinator, transition: .present(UIViewController())) testCompletionCalled(on: coordinator, transition: .dismiss()) @@ -89,7 +80,7 @@ class TransitionTests: XCTestCase { testCompletionCalled(on: coordinator, transition: .multiple()) } - private func testCompletionCalled(on coordinator: C, transition: C.TransitionType) { + private func testCompletionCalled(on coordinator: C, transition: Transition) { let exp = expectation(description: "\(Date().timeIntervalSince1970)") DispatchQueue.main.async { coordinator.performTransition(transition, with: .init(animated: true)) { diff --git a/Tests/XCoordinatorTests/XCTestManifests.swift b/Tests/XCoordinatorTests/XCTestManifests.swift deleted file mode 100644 index 66c74c72..00000000 --- a/Tests/XCoordinatorTests/XCTestManifests.swift +++ /dev/null @@ -1,10 +0,0 @@ -import XCTest - -#if !canImport(ObjectiveC) -public func allTests() -> [XCTestCaseEntry] { - [ - testCase(AnimationTests.allTests), - testCase(TransitionTests.allTests) - ] -} -#endif From 88c5a4b9a241f0cc5b80aecd737d312a2347ed13 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Fri, 29 May 2026 14:25:21 +0200 Subject: [PATCH 31/35] Remove TransitionComponent, finalize implementaiton --- README.md | 10 +- .../Coordinators/BasicCoordinator.swift | 6 +- .../XCoordinator/General/DeepLinking.swift | 31 ----- .../Navigation/NavigationTransition.swift | 51 +++++-- Sources/XCoordinator/Navigation/Pop.swift | 88 ------------ Sources/XCoordinator/Navigation/Push.swift | 60 -------- Sources/XCoordinator/Navigation/SetAll.swift | 61 --------- .../UINavigationController+Transition.swift | 129 ++++++++++++++++++ Sources/XCoordinator/Page/PageSet.swift | 48 ------- .../XCoordinator/Page/PageSetInitial.swift | 39 ------ .../XCoordinator/Page/PageSetReliably.swift | 60 -------- .../XCoordinator/Page/PageTransition.swift | 43 ++++-- .../UIPageViewController+Transition.swift | 24 ++++ Sources/XCoordinator/Split/SplitSetAll.swift | 41 ------ .../XCoordinator/Split/SplitSetColumn.swift | 45 ------ .../XCoordinator/Split/SplitTransition.swift | 28 ++-- Sources/XCoordinator/Tab/SelectTab.swift | 90 ------------ Sources/XCoordinator/Tab/SetTabs.swift | 55 -------- .../XCoordinator/Tab/TabBarTransition.swift | 34 +++-- .../Tab/UITabBarController+Transition.swift | 93 +++++++++++++ .../Components/TransitionGroup.swift | 32 ----- .../Transitions/Components/View/Dismiss.swift | 42 ------ .../Transitions/Components/View/Embed.swift | 56 -------- .../Transitions/Components/View/Perform.swift | 38 ------ .../Transitions/Components/View/Present.swift | 43 ------ .../Components/View/Redirect.swift | 37 ----- .../Transitions/Components/View/Run.swift | 52 ------- .../Transitions/Components/View/Show.swift | 43 ------ .../Components/View/ShowDetail.swift | 44 ------ .../Transitions/Components/View/Trigger.swift | 34 ----- .../Transitions/TransitionBuilder.swift | 79 +++++++---- .../Transitions/TransitionComponent.swift | 25 ---- .../XCoordinator/View/Transition+Init.swift | 94 +++++++++---- .../XCoordinator.docc/Documentation.md | 29 ++-- Tests/XCoordinatorTests/TransitionTests.swift | 14 ++ 35 files changed, 513 insertions(+), 1185 deletions(-) delete mode 100644 Sources/XCoordinator/Navigation/Pop.swift delete mode 100644 Sources/XCoordinator/Navigation/Push.swift delete mode 100644 Sources/XCoordinator/Navigation/SetAll.swift create mode 100644 Sources/XCoordinator/Navigation/UINavigationController+Transition.swift delete mode 100644 Sources/XCoordinator/Page/PageSet.swift delete mode 100644 Sources/XCoordinator/Page/PageSetInitial.swift delete mode 100644 Sources/XCoordinator/Page/PageSetReliably.swift create mode 100644 Sources/XCoordinator/Page/UIPageViewController+Transition.swift delete mode 100644 Sources/XCoordinator/Split/SplitSetAll.swift delete mode 100644 Sources/XCoordinator/Split/SplitSetColumn.swift delete mode 100644 Sources/XCoordinator/Tab/SelectTab.swift delete mode 100644 Sources/XCoordinator/Tab/SetTabs.swift create mode 100644 Sources/XCoordinator/Tab/UITabBarController+Transition.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/TransitionGroup.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Dismiss.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Embed.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Perform.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Present.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Redirect.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Run.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Show.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift delete mode 100644 Sources/XCoordinator/Transitions/Components/View/Trigger.swift delete mode 100644 Sources/XCoordinator/Transitions/TransitionComponent.swift diff --git a/README.md b/README.md index 88a3dc0c..e512291b 100644 --- a/README.md +++ b/README.md @@ -69,19 +69,19 @@ class UserListCoordinator: NavigationCoordinator { override func prepareTransition(for route: UserListRoute) -> NavigationTransition { switch route { case .home: - Push { HomeViewController() } + Transition.push(HomeViewController()) case .user(let name): - Present(animation: .default) { UserCoordinator(user: name) } + Transition.present(UserCoordinator(user: name), animation: .default) case .logout: - Dismiss() + Transition.dismiss() } } } ``` > ✨ **New in 3.0 — the transition builder.** A `@resultBuilder` DSL lets you compose transitions -> declaratively from components (`Push`, `Present`, `SelectTab`, …) and freely mix in the classic -> `Transition.…` factories. It's opt-in and additive. +> declaratively by listing the `Transition.…` factories (`.push`, `.present`, `.select`, …) — list +> several in one block to chain them (like `.multiple`). It's opt-in and additive.
Classic style (still supported, non-breaking) diff --git a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift index 2e87c2c4..3acd652e 100755 --- a/Sources/XCoordinator/Coordinators/BasicCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BasicCoordinator.swift @@ -51,13 +51,13 @@ open class BasicCoordinator(rootViewController: .init(), initialRoute: .home) { route in /// switch route { - /// case .home: Show { HomeViewController() } + /// case .home: Transition.show(HomeViewController()) /// case .detail: Transition.push(DetailViewController()) /// } /// } diff --git a/Sources/XCoordinator/General/DeepLinking.swift b/Sources/XCoordinator/General/DeepLinking.swift index d8f376a4..36d8b939 100755 --- a/Sources/XCoordinator/General/DeepLinking.swift +++ b/Sources/XCoordinator/General/DeepLinking.swift @@ -8,37 +8,6 @@ import UIKit -public struct DeepLink { - - private let coordinator: CoordinatorType - private let route: CoordinatorType.RouteType - private let remainingRoutes: [Route] - - public init(with coordinator: CoordinatorType, _ route: CoordinatorType.RouteType, _ remainingRoutes: Route...) { - self.coordinator = coordinator - self.route = route - self.remainingRoutes = remainingRoutes - } - -} - -extension DeepLink: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - Transition(presentables: [], animationInUse: nil) { [weak coordinator] _, options, completion in - guard let coordinator = coordinator else { - assertionFailure("Please use the coordinator responsible for executing a deepLink-Transition when initializing.") - completion?() - return - } - - route.trigger(on: [coordinator], remainingRoutes: ArraySlice(remainingRoutes), - with: options, completion: completion) - } - } - -} - // MARK: - Coordinator + DeepLinking extension Coordinator where Self: AnyObject { diff --git a/Sources/XCoordinator/Navigation/NavigationTransition.swift b/Sources/XCoordinator/Navigation/NavigationTransition.swift index b9c72b9b..9e55340a 100755 --- a/Sources/XCoordinator/Navigation/NavigationTransition.swift +++ b/Sources/XCoordinator/Navigation/NavigationTransition.swift @@ -27,9 +27,15 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func push(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition { - Push(animation: animation) { - presentable + Transition(presentables: [presentable], + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + rootViewController.push(presentable.viewController, + with: options, + animation: animation + ) { + presentable.presented(from: rootViewController) + completion?() } } } @@ -44,8 +50,13 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func pop(animation: Animation? = nil) -> Transition { - Transition { - Pop(animation: animation) + Transition(presentables: [], + animationInUse: animation?.dismissalAnimation + ) { rootViewController, options, completion in + rootViewController.pop(toRoot: false, + with: options, + animation: animation, + completion: completion) } } @@ -64,8 +75,13 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func pop(to presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition { - Pop(to: presentable, animation: animation) + Transition(presentables: [presentable], + animationInUse: animation?.dismissalAnimation + ) { rootViewController, options, completion in + rootViewController.pop(to: presentable.viewController, + options: options, + animation: animation, + completion: completion) } } @@ -80,8 +96,13 @@ extension Transition where RootViewController: UINavigationController { /// on this presentable. /// public static func popToRoot(animation: Animation? = nil) -> Transition { - Transition { - Pop(toRoot: true, animation: animation) + Transition(presentables: [], + animationInUse: animation?.dismissalAnimation + ) { rootViewController, options, completion in + rootViewController.pop(toRoot: true, + with: options, + animation: animation, + completion: completion) } } @@ -98,9 +119,15 @@ extension Transition where RootViewController: UINavigationController { /// `Animation.default` to reset the previously set animations on all presentables. /// public static func set(_ presentables: [any Presentable], animation: Animation? = nil) -> Transition { - Transition { - SetAll(animation: animation) { - presentables + Transition(presentables: presentables, + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + rootViewController.set(presentables.map { $0.viewController }, + with: options, + animation: animation + ) { + presentables.forEach { $0.presented(from: rootViewController) } + completion?() } } } diff --git a/Sources/XCoordinator/Navigation/Pop.swift b/Sources/XCoordinator/Navigation/Pop.swift deleted file mode 100644 index e6afc879..00000000 --- a/Sources/XCoordinator/Navigation/Pop.swift +++ /dev/null @@ -1,88 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import SwiftUI - -public struct Pop { - - // MARK: Stored Properties - - private let destination: (any Presentable)? - private let toRoot: Bool - private let animation: Animation? - - // MARK: Initialization - - public init(toRoot: Bool = false, animation: Animation? = nil) { - self.destination = nil - self.toRoot = toRoot - self.animation = animation - } - - public init(to destination: any Presentable, animation: Animation? = nil) { - self.destination = destination - self.toRoot = false - self.animation = animation - } - -} - -extension Pop: TransitionComponent where RootViewController: UINavigationController { - - public func build() -> Transition { - if let destination { - return Transition(presentables: [], animationInUse: animation?.dismissalAnimation) { rootViewController, options, completion in - if let animation { - rootViewController.topViewController?.transitioningDelegate = animation - destination.viewController.transitioningDelegate = animation - } - - assert(animation == nil || rootViewController.animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - _ = rootViewController.popToViewController(destination.viewController, animated: options.animated) - } - - CATransaction.commit() - } - } else { - return Transition(presentables: [], animationInUse: animation?.dismissalAnimation) { rootViewController, options, completion in - if let animation { - rootViewController.topViewController?.transitioningDelegate = animation - } - assert(animation == nil || rootViewController.animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - if toRoot { - rootViewController.popToRootViewController(animated: options.animated) - } else { - rootViewController.popViewController(animated: options.animated) - } - } - - CATransaction.commit() - } - } - } - -} diff --git a/Sources/XCoordinator/Navigation/Push.swift b/Sources/XCoordinator/Navigation/Push.swift deleted file mode 100644 index b712467e..00000000 --- a/Sources/XCoordinator/Navigation/Push.swift +++ /dev/null @@ -1,60 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Push { - - // MARK: Stored Properties - - private let presentable: () -> any Presentable - private let animation: Animation? - - // MARK: Initialization - - public init(animation: Animation? = nil, presentable: @escaping () -> any Presentable) { - self.presentable = presentable - self.animation = animation - } - -} - -extension Push: TransitionComponent where RootViewController: UINavigationController { - - public func build() -> Transition { - let presentable = presentable() - return Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation) { rootViewController, options, completion in - if let animation = animation { - presentable.viewController.transitioningDelegate = animation - } - assert(animation == nil || rootViewController.animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock { [rootViewController] in - if let transitionCoordinator = rootViewController.transitionCoordinator { - transitionCoordinator.animate(alongsideTransition: nil) { _ in - completion?() - } - } else { - completion?() - } - } - - autoreleasepool { - rootViewController.pushViewController(presentable.viewController, animated: options.animated) - } - - CATransaction.commit() - } - } - -} diff --git a/Sources/XCoordinator/Navigation/SetAll.swift b/Sources/XCoordinator/Navigation/SetAll.swift deleted file mode 100644 index dbc7b9bf..00000000 --- a/Sources/XCoordinator/Navigation/SetAll.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct SetAll { - - // MARK: Stored Properties - - private let presentables: () -> [any Presentable] - private let animation: Animation? - - // MARK: Initialization - - public init(animation: Animation? = nil, presentables: @escaping () -> [any Presentable]) { - self.animation = animation - self.presentables = presentables - } - -} - -extension SetAll: TransitionComponent where RootViewController: UINavigationController { - - public func build() -> Transition { - let presentables = presentables() - - return Transition(presentables: presentables, - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - if let animation { - presentables.last?.viewController?.transitioningDelegate = animation - } - assert(animation == nil || rootViewController.animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the NavigationCoordinator's - initializer already had a delegate when initializing the NavigationCoordinator. - To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock { - if let animation = animation { - presentables.forEach { $0.viewController?.transitioningDelegate = animation } - } - presentables.forEach { $0.presented(from: rootViewController) } - completion?() - } - - autoreleasepool { - rootViewController.setViewControllers(presentables.map { $0.viewController }, animated: options.animated) - } - - CATransaction.commit() - } - } - -} diff --git a/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift b/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift new file mode 100644 index 00000000..41e982d0 --- /dev/null +++ b/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift @@ -0,0 +1,129 @@ +// +// UINavigationController+Transition.swift +// XCoordinator +// +// Created by Paul Kraft on 27.07.18. +// Copyright © 2018 QuickBird Studios. All rights reserved. +// + +import UIKit + +extension UINavigationController { + + func push(_ viewController: UIViewController, + with options: TransitionOptions, + animation: Animation?, + completion: PresentationHandler?) { + + if let animation = animation { + viewController.transitioningDelegate = animation + } + assert(animation == nil || animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock { [self] in + if let transitionCoordinator { + transitionCoordinator.animate(alongsideTransition: nil) { _ in + completion?() + } + } else { + completion?() + } + } + + autoreleasepool { + pushViewController(viewController, animated: options.animated) + } + + CATransaction.commit() + } + + func pop(toRoot: Bool, with options: TransitionOptions, animation: Animation?, completion: PresentationHandler?) { + + if let animation = animation { + topViewController?.transitioningDelegate = animation + } + assert(animation == nil || animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + if toRoot { + popToRootViewController(animated: options.animated) + } else { + popViewController(animated: options.animated) + } + } + + CATransaction.commit() + } + + func set(_ viewControllers: [UIViewController], + with options: TransitionOptions, + animation: Animation?, + completion: PresentationHandler?) { + + if let animation = animation { + viewControllers.last?.transitioningDelegate = animation + } + assert(animation == nil || animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock { + if let animation = animation { + viewControllers.forEach { $0.transitioningDelegate = animation } + } + completion?() + } + + autoreleasepool { + setViewControllers(viewControllers, animated: options.animated) + } + + CATransaction.commit() + } + + func pop(to viewController: UIViewController, + options: TransitionOptions, + animation: Animation?, + completion: PresentationHandler?) { + + if let animation = animation { + topViewController?.transitioningDelegate = animation + viewController.transitioningDelegate = animation + } + + assert(animation == nil || animationDelegate != nil, """ + Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. + This assertion might fail, if the rootViewController specified in the NavigationCoordinator's + initializer already had a delegate when initializing the NavigationCoordinator. + To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + _ = popToViewController(viewController, animated: options.animated) + } + + CATransaction.commit() + } + +} diff --git a/Sources/XCoordinator/Page/PageSet.swift b/Sources/XCoordinator/Page/PageSet.swift deleted file mode 100644 index 16229e22..00000000 --- a/Sources/XCoordinator/Page/PageSet.swift +++ /dev/null @@ -1,48 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 09.05.23. -// - -import UIKit - -public struct PageSet { - - // MARK: Stored Properties - - private let primary: () -> any Presentable - private let secondary: () -> (any Presentable)? - private let direction: UIPageViewController.NavigationDirection - - // MARK: Initialization - - public init(direction: UIPageViewController.NavigationDirection, primary: @escaping () -> any Presentable, secondary: @escaping () -> (any Presentable)? = { nil }) { - self.primary = primary - self.secondary = secondary - self.direction = direction - } - -} - -extension PageSet: TransitionComponent where RootViewController: UIPageViewController { - - public func build() -> Transition { - let presentables = [primary(), secondary()].compactMap { $0 } - return Transition(presentables: presentables, - animationInUse: nil - ) { rootViewController, options, completion in - let viewControllers = presentables.map { $0.viewController! } - rootViewController.isDoubleSided = viewControllers.count > 1 - rootViewController.setViewControllers( - viewControllers, - direction: direction, - animated: options.animated - ) { _ in - presentables.forEach { $0.presented(from: rootViewController) } - completion?() - } - } - } - -} diff --git a/Sources/XCoordinator/Page/PageSetInitial.swift b/Sources/XCoordinator/Page/PageSetInitial.swift deleted file mode 100644 index 2800d17d..00000000 --- a/Sources/XCoordinator/Page/PageSetInitial.swift +++ /dev/null @@ -1,39 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 09.05.23. -// - -import UIKit - - -public struct PageSetInitial { - - // MARK: Stored Properties - - private let presentables: () -> [any Presentable] - - // MARK: Initialization - - public init(_ presentables: @escaping () -> [any Presentable]) { - self.presentables = presentables - } - -} - -extension PageSetInitial: TransitionComponent where RootViewController: UIPageViewController { - - public func build() -> Transition { - let pages = presentables() - return Transition(presentables: pages, animationInUse: nil) { rootViewController, _, completion in - CATransaction.begin() - CATransaction.setCompletionBlock { - pages.forEach { $0.presented(from: rootViewController) } - completion?() - } - CATransaction.commit() - } - } - -} diff --git a/Sources/XCoordinator/Page/PageSetReliably.swift b/Sources/XCoordinator/Page/PageSetReliably.swift deleted file mode 100644 index 62c49e8c..00000000 --- a/Sources/XCoordinator/Page/PageSetReliably.swift +++ /dev/null @@ -1,60 +0,0 @@ -// -// PageSetReliably.swift -// XCoordinator -// -// Created by Paul Kraft on 09.05.23. -// - -import UIKit - -/// -/// A drop-in replacement for ``PageSet`` (single page) that **always** calls its completion handler. -/// -/// `UIPageViewController.setViewControllers(_:direction:animated:completion:)` silently skips its -/// completion block when the requested page is already the one on-screen (a long-standing UIKit quirk). -/// `deepLink` chains the next route *inside* a transition's completion, so a deep link whose page step -/// targets the already-visible page would stall forever. This component short-circuits the no-op case -/// and invokes the completion directly, so deep links (and any chained transitions) keep flowing. -/// -public struct PageSetReliably { - - // MARK: Stored Properties - - private let page: () -> any Presentable - private let direction: UIPageViewController.NavigationDirection - - // MARK: Initialization - - public init(direction: UIPageViewController.NavigationDirection, - page: @escaping () -> any Presentable) { - self.page = page - self.direction = direction - } - -} - -extension PageSetReliably: TransitionComponent where RootViewController: UIPageViewController { - - public func build() -> Transition { - let presentable = page() - return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in - guard let target = presentable.viewController else { - completion?() - return - } - let isAlreadyVisible = rootViewController.viewControllers?.count == 1 - && rootViewController.viewControllers?.first === target - guard !isAlreadyVisible else { - // The page is already displayed — UIKit would not call the completion, so do it ourselves. - // `presented(from:)` was already invoked when this page was first set, so it is not repeated. - completion?() - return - } - rootViewController.setViewControllers([target], direction: direction, animated: options.animated) { _ in - presentable.presented(from: rootViewController) - completion?() - } - } - } - -} diff --git a/Sources/XCoordinator/Page/PageTransition.swift b/Sources/XCoordinator/Page/PageTransition.swift index dc8c7369..0ae469a7 100755 --- a/Sources/XCoordinator/Page/PageTransition.swift +++ b/Sources/XCoordinator/Page/PageTransition.swift @@ -30,11 +30,16 @@ extension Transition where RootViewController: UIPageViewController { /// public static func set(_ first: any Presentable, _ second: (any Presentable)? = nil, direction: UIPageViewController.NavigationDirection) -> Transition { - Transition { - PageSet(direction: direction) { - first - } secondary: { - second + let presentables = [first, second].compactMap { $0 } + return Transition(presentables: presentables, + animationInUse: nil + ) { rootViewController, options, completion in + rootViewController.set(presentables.map { $0.viewController }, + direction: direction, + with: options + ) { + presentables.forEach { $0.presented(from: rootViewController) } + completion?() } } } @@ -53,18 +58,34 @@ extension Transition where RootViewController: UIPageViewController { /// public static func setReliably(_ page: any Presentable, direction: UIPageViewController.NavigationDirection) -> Transition { - Transition { - PageSetReliably(direction: direction) { - page + Transition(presentables: [page], animationInUse: nil) { rootViewController, options, completion in + guard let target = page.viewController else { + completion?() + return + } + let isAlreadyVisible = rootViewController.viewControllers?.count == 1 + && rootViewController.viewControllers?.first === target + guard !isAlreadyVisible else { + // The page is already displayed — UIKit would not call the completion, so do it ourselves. + // `presented(from:)` was already invoked when this page was first set, so it is not repeated. + completion?() + return + } + rootViewController.set([target], direction: direction, with: options) { + page.presented(from: rootViewController) + completion?() } } } static func initial(pages: [any Presentable]) -> Transition { - Transition { - PageSetInitial { - pages + Transition(presentables: pages, animationInUse: nil) { rootViewController, _, completion in + CATransaction.begin() + CATransaction.setCompletionBlock { + pages.forEach { $0.presented(from: rootViewController) } + completion?() } + CATransaction.commit() } } diff --git a/Sources/XCoordinator/Page/UIPageViewController+Transition.swift b/Sources/XCoordinator/Page/UIPageViewController+Transition.swift new file mode 100644 index 00000000..7f13161f --- /dev/null +++ b/Sources/XCoordinator/Page/UIPageViewController+Transition.swift @@ -0,0 +1,24 @@ +// +// UIPageViewController+Transition.swift +// XCoordinator +// +// Created by Paul Kraft on 30.07.18. +// Copyright © 2018 QuickBird Studios. All rights reserved. +// + +import UIKit + +extension UIPageViewController { + func set(_ viewControllers: [UIViewController], + direction: UIPageViewController.NavigationDirection, + with options: TransitionOptions, + completion: PresentationHandler?) { + isDoubleSided = viewControllers.count > 1 + setViewControllers( + viewControllers, + direction: direction, + animated: options.animated, + completion: { _ in completion?() } + ) + } +} diff --git a/Sources/XCoordinator/Split/SplitSetAll.swift b/Sources/XCoordinator/Split/SplitSetAll.swift deleted file mode 100644 index b8df5766..00000000 --- a/Sources/XCoordinator/Split/SplitSetAll.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct SplitSetAll { - - // MARK: Stored Properties - - private let presentables: () -> [any Presentable] - - // MARK: Initialization - - public init(_ presentables: @escaping () -> [any Presentable]) { - self.presentables = presentables - } - -} - -extension SplitSetAll: TransitionComponent where RootViewController: UISplitViewController { - - public func build() -> Transition { - let presentables = presentables() - return Transition(presentables: presentables, animationInUse: nil) { rootViewController, _, completion in - CATransaction.begin() - CATransaction.setCompletionBlock { - presentables.forEach { $0.presented(from: rootViewController) } - completion?() - } - autoreleasepool { - rootViewController.viewControllers = presentables.map { $0.viewController } - } - CATransaction.commit() - } - } - -} diff --git a/Sources/XCoordinator/Split/SplitSetColumn.swift b/Sources/XCoordinator/Split/SplitSetColumn.swift deleted file mode 100644 index 176bcd29..00000000 --- a/Sources/XCoordinator/Split/SplitSetColumn.swift +++ /dev/null @@ -1,45 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -@available(iOS 14, *) -public struct SplitSetColumn { - - // MARK: Stored Properties - - private let presentable: () -> (any Presentable)? - private let column: UISplitViewController.Column - - // MARK: Initialization - - public init(_ column: UISplitViewController.Column, _ presentable: @escaping () -> (any Presentable)?) { - self.column = column - self.presentable = presentable - } - -} - -@available(iOS 14, *) -extension SplitSetColumn: TransitionComponent where RootViewController: UISplitViewController { - - public func build() -> Transition { - let presentable = presentable() - return 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/Split/SplitTransition.swift b/Sources/XCoordinator/Split/SplitTransition.swift index fc1c76e4..c28f8e65 100755 --- a/Sources/XCoordinator/Split/SplitTransition.swift +++ b/Sources/XCoordinator/Split/SplitTransition.swift @@ -20,10 +20,16 @@ extension Transition where RootViewController: UISplitViewController { /// /// - Parameter presentables: The presentables that become the split controller's columns, in order. public static func set(_ presentables: [any Presentable]) -> Transition { - Transition { - SplitSetAll { - presentables + Transition(presentables: presentables, animationInUse: nil) { rootViewController, _, completion in + CATransaction.begin() + CATransaction.setCompletionBlock { + presentables.forEach { $0.presented(from: rootViewController) } + completion?() } + autoreleasepool { + rootViewController.viewControllers = presentables.map { $0.viewController } + } + CATransaction.commit() } } @@ -35,15 +41,17 @@ extension Transition where RootViewController: UISplitViewController { /// - column: The column to set. @available(iOS 14, *) public static func set(_ presentable: (any Presentable)?, for column: UISplitViewController.Column) -> Transition { - Transition { - SplitSetColumn(column) { - presentable + 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/Tab/SelectTab.swift b/Sources/XCoordinator/Tab/SelectTab.swift deleted file mode 100644 index 6e49b9f3..00000000 --- a/Sources/XCoordinator/Tab/SelectTab.swift +++ /dev/null @@ -1,90 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 09.05.23. -// - -import UIKit - -public struct SelectTab { - - // MARK: Stored Properties - - private let index: Int? - private let presentable: (() -> any Presentable)? - private let animation: Animation? - - // MARK: Initialization - - public init(at index: Int, animation: Animation? = nil) { - self.index = index - self.animation = animation - self.presentable = nil - } - - public init(animation: Animation? = nil, presentable: @escaping () -> any Presentable) { - self.animation = animation - self.presentable = presentable - self.index = nil - } - -} - -extension SelectTab: TransitionComponent where RootViewController: UITabBarController { - - public func build() -> Transition { - if let index { - return Transition( - presentables: [], - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - if let animation { - rootViewController.viewControllers?[index].transitioningDelegate = animation - } - assert(animation == nil || rootViewController.animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the TabBarCoordinator's - initializer already had a delegate when initializing the TabBarCoordinator. - To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - rootViewController.selectedIndex = index - } - - CATransaction.commit() - } - } else if let presentable = presentable?() { - return Transition( - presentables: [presentable], - animationInUse: animation?.presentationAnimation - ) { rootViewController, options, completion in - if let animation { - presentable.viewController.transitioningDelegate = animation - } - assert(animation == nil || rootViewController.animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the TabBarCoordinator's - initializer already had a delegate when initializing the TabBarCoordinator. - To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock(completion) - - autoreleasepool { - rootViewController.selectedViewController = presentable.viewController - } - - CATransaction.commit() - } - } else { - return .none() - } - } - -} diff --git a/Sources/XCoordinator/Tab/SetTabs.swift b/Sources/XCoordinator/Tab/SetTabs.swift deleted file mode 100644 index bcdd3ef7..00000000 --- a/Sources/XCoordinator/Tab/SetTabs.swift +++ /dev/null @@ -1,55 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 09.05.23. -// - -import UIKit - -public struct SetTabs { - - // MARK: Stored Properties - - private let animation: Animation? - private let presentables: () -> [any Presentable] - - // MARK: Initialization - - public init(animation: Animation? = nil, presentables: @escaping () -> [any Presentable]) { - self.animation = animation - self.presentables = presentables - } - -} - -extension SetTabs: TransitionComponent where RootViewController: UITabBarController { - - public func build() -> Transition { - let presentables = presentables() - return Transition(presentables: presentables, animationInUse: nil) { rootViewController, options, completion in - if let animation { - presentables.first?.viewController.transitioningDelegate = animation - } - assert(animation == nil || rootViewController.animationDelegate != nil, """ - Animations do not work, if the navigation controller's delegate is not a NavigationAnimationDelegate. - This assertion might fail, if the rootViewController specified in the TabBarCoordinator's - initializer already had a delegate when initializing the TabBarCoordinator. - To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. - """) - - CATransaction.begin() - CATransaction.setCompletionBlock { - presentables.forEach { $0.presented(from: rootViewController) } - completion?() - } - - autoreleasepool { - rootViewController.setViewControllers(presentables.map(\.viewController), animated: options.animated) - } - - CATransaction.commit() - } - } - -} diff --git a/Sources/XCoordinator/Tab/TabBarTransition.swift b/Sources/XCoordinator/Tab/TabBarTransition.swift index 57c0a6bb..4972f39c 100755 --- a/Sources/XCoordinator/Tab/TabBarTransition.swift +++ b/Sources/XCoordinator/Tab/TabBarTransition.swift @@ -27,10 +27,16 @@ extension Transition where RootViewController: UITabBarController { /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// public static func set(_ presentables: [any Presentable], animation: Animation? = nil) -> Transition { - Transition { - SetTabs(animation: animation) { - presentables - } + Transition(presentables: presentables, + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + rootViewController.set(presentables.map { $0.viewController }, + with: options, + animation: animation, + completion: { + presentables.forEach { $0.presented(from: rootViewController) } + completion?() + }) } } @@ -48,10 +54,13 @@ extension Transition where RootViewController: UITabBarController { /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// public static func select(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition { - SelectTab(animation: animation) { - presentable - } + Transition(presentables: [presentable], + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + rootViewController.select(presentable.viewController, + with: options, + animation: animation, + completion: completion) } } @@ -68,8 +77,13 @@ extension Transition where RootViewController: UITabBarController { /// The animation to be used. If you specify `nil` here, the default animation by UIKit is used. /// public static func select(index: Int, animation: Animation? = nil) -> Transition { - Transition { - SelectTab(at: index, animation: animation) + Transition(presentables: [], + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + rootViewController.select(index: index, + with: options, + animation: animation, + completion: completion) } } diff --git a/Sources/XCoordinator/Tab/UITabBarController+Transition.swift b/Sources/XCoordinator/Tab/UITabBarController+Transition.swift new file mode 100644 index 00000000..810c149d --- /dev/null +++ b/Sources/XCoordinator/Tab/UITabBarController+Transition.swift @@ -0,0 +1,93 @@ +// +// UITabBarController+Transition.swift +// XCoordinator +// +// Created by Paul Kraft on 27.07.18. +// Copyright © 2018 QuickBird Studios. All rights reserved. +// + +import UIKit + +extension UITabBarController { + + func set(_ viewControllers: [UIViewController], + with options: TransitionOptions, + animation: Animation?, + completion: PresentationHandler?) { + + if let animation = animation { + viewControllers.first?.transitioningDelegate = animation + } + assert(animation == nil || animationDelegate != nil, """ + Animations do not work, if the tab bar controller's delegate is not a TabBarAnimationDelegate. + This assertion might fail, if the rootViewController specified in the TabBarCoordinator's + initializer already had a delegate when initializing the TabBarCoordinator. + To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + setViewControllers(viewControllers, animated: options.animated) + } + + CATransaction.commit() + } + + func select(_ viewController: UIViewController, + with options: TransitionOptions, + animation: Animation?, + completion: PresentationHandler?) { + + if let animation = animation { + viewController.transitioningDelegate = animation + } + assert(animation == nil || animationDelegate != nil, """ + Animations do not work, if the tab bar controller's delegate is not a TabBarAnimationDelegate. + This assertion might fail, if the rootViewController specified in the TabBarCoordinator's + initializer already had a delegate when initializing the TabBarCoordinator. + To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + selectedViewController = viewController + } + + CATransaction.commit() + } + + func select(index: Int, with options: TransitionOptions, animation: Animation?, completion: PresentationHandler?) { + + guard index >= 0, index < (viewControllers?.count ?? 0) else { + assertionFailure(""" + select(index:): index \(index) is out of bounds (\(viewControllers?.count ?? 0) tabs). Ignoring the transition. + """) + completion?() + return + } + + if let animation = animation { + viewControllers?[index].transitioningDelegate = animation + } + assert(animation == nil || animationDelegate != nil, """ + Animations do not work, if the tab bar controller's delegate is not a TabBarAnimationDelegate. + This assertion might fail, if the rootViewController specified in the TabBarCoordinator's + initializer already had a delegate when initializing the TabBarCoordinator. + To set another delegate of a rootViewController in a TabBarCoordinator, have a look at `TabBarCoordinator.delegate`. + """) + + CATransaction.begin() + CATransaction.setCompletionBlock(completion) + + autoreleasepool { + selectedIndex = index + } + + CATransaction.commit() + } + +} diff --git a/Sources/XCoordinator/Transitions/Components/TransitionGroup.swift b/Sources/XCoordinator/Transitions/Components/TransitionGroup.swift deleted file mode 100644 index aedfc7b3..00000000 --- a/Sources/XCoordinator/Transitions/Components/TransitionGroup.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct TransitionGroup: TransitionComponent { - - // MARK: Stored Properties - - private let transitions: [() -> Transition] - - // MARK: Initialization - - init(_ transition: some TransitionComponent) { - self.transitions = [transition.build] - } - - init(_ transitions: [() -> Transition]) { - self.transitions = transitions - } - - // MARK: Methods - - public func build() -> Transition { - .multiple(transitions.map { $0() }) - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/Dismiss.swift b/Sources/XCoordinator/Transitions/Components/View/Dismiss.swift deleted file mode 100644 index 8cad4a1c..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Dismiss.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Dismiss { - - // MARK: Stored Properties - - private let toRoot: Bool - private let animation: Animation? - - // MARK: Initialization - - public init(toRoot: Bool = false, animation: Animation? = nil) { - self.toRoot = toRoot - self.animation = animation - } - -} - -extension Dismiss: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - Transition( - presentables: [], - animationInUse: animation?.dismissalAnimation - ) { rootViewController, options, completion in - let presentedViewController = rootViewController.topPresentedViewController - if let animation = animation { - presentedViewController.transitioningDelegate = animation - } - let dismissalViewController = toRoot ? rootViewController : presentedViewController - dismissalViewController.dismiss(animated: options.animated, completion: completion) - } - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/Embed.swift b/Sources/XCoordinator/Transitions/Components/View/Embed.swift deleted file mode 100644 index 8b21f58e..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Embed.swift +++ /dev/null @@ -1,56 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Embed { - - // MARK: Stored Properties - - private let presentable: () -> any Presentable - private let container: any Container - - // MARK: Initialization - - public init(in container: any Container, _ presentable: @escaping () -> any Presentable) { - self.container = container - self.presentable = presentable - } - -} - -extension Embed: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - let presentable = presentable() - return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in - container.viewController.addChild(presentable.viewController) - - presentable.viewController.view.translatesAutoresizingMaskIntoConstraints = false - container.view.addSubview(presentable.viewController.view) - - // swiftlint:disable force_unwrapping - NSLayoutConstraint.activate([ - NSLayoutConstraint(item: container.view!, attribute: .leading, relatedBy: .equal, - toItem: presentable.viewController.view, attribute: .leading, multiplier: 1, constant: 0), - NSLayoutConstraint(item: container.view!, attribute: .trailing, relatedBy: .equal, - toItem: presentable.viewController.view, attribute: .trailing, multiplier: 1, constant: 0), - NSLayoutConstraint(item: container.view!, attribute: .top, relatedBy: .equal, - toItem: presentable.viewController.view, attribute: .top, multiplier: 1, constant: 0), - NSLayoutConstraint(item: container.view!, attribute: .bottom, relatedBy: .equal, - toItem: presentable.viewController.view, attribute: .bottom, multiplier: 1, constant: 0) - ]) - // swiftlint:enable force_unwrapping - - presentable.viewController.didMove(toParent: container.viewController) - - presentable.presented(from: rootViewController) - completion?() - } - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/Perform.swift b/Sources/XCoordinator/Transitions/Components/View/Perform.swift deleted file mode 100644 index f8adcfac..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Perform.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Perform { - - // MARK: Stored Properties - - private let transition: @MainActor () -> Transition - private let rootViewController: TransitionType.RootViewController - - // MARK: Initialization - - public init( - on rootViewController: TransitionType.RootViewController, - @TransitionBuilder transition: @escaping () -> TransitionGroup - ) { - self.rootViewController = rootViewController - self.transition = { transition().build() } - } - -} - -extension Perform: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - let transition = transition() - return Transition(presentables: transition.presentables, animationInUse: transition.animation) { _, options, completion in - transition.perform(on: rootViewController, with: options, completion: completion) - } - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/Present.swift b/Sources/XCoordinator/Transitions/Components/View/Present.swift deleted file mode 100644 index 4cf7a6f5..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Present.swift +++ /dev/null @@ -1,43 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Present { - - // MARK: Stored Properties - - private let animation: Animation? - private let onRoot: Bool - private let presentable: () -> any Presentable - - // MARK: Initialization - - public init( - onRoot: Bool = false, - animation: Animation? = nil, - _ presentable: @escaping () -> any Presentable - ) { - self.animation = animation - self.onRoot = onRoot - self.presentable = presentable - } - -} - -extension Present: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - let presentable = presentable() - return Transition(presentables: [presentable], animationInUse: animation?.presentationAnimation) { rootViewController, options, completion in - if let animation { presentable.viewController.transitioningDelegate = animation } - let presentingViewController = onRoot ? rootViewController : rootViewController.topPresentedViewController - presentingViewController.present(presentable.viewController, animated: options.animated, completion: completion) - } - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/Redirect.swift b/Sources/XCoordinator/Transitions/Components/View/Redirect.swift deleted file mode 100644 index e1989341..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Redirect.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Redirect { - - // MARK: Stored Properties - - private let coordinator: CoordinatorType - private let route: CoordinatorType.RouteType - - // MARK: Initialization - - public init(as route: CoordinatorType.RouteType, to coordinator: CoordinatorType) { - self.coordinator = coordinator - self.route = route - } - -} - -extension Redirect: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - let transition = coordinator.prepareTransition(for: route) - return Transition(presentables: transition.presentables, - animationInUse: transition.animation - ) { _, options, completion in - coordinator.performTransition(transition, with: options, completion: completion) - } - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/Run.swift b/Sources/XCoordinator/Transitions/Components/View/Run.swift deleted file mode 100644 index 9c38b5e7..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Run.swift +++ /dev/null @@ -1,52 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 09.05.23. -// - -#if swift(>=5.5.2) - -import SwiftUI - -@available(iOS 13.0, tvOS 13.0, *) -public struct Run { - - // MARK: Stored Properties - - private let presentables: [any Presentable] - private let animationInUse: TransitionAnimation? - private let priority: TaskPriority? - private let action: () async -> Void - - // MARK: Initialization - - public init( - presentables: [any Presentable] = [], - animationInUse: TransitionAnimation? = nil, - priority: TaskPriority? = nil, - _ action: @escaping () -> Void - ) { - self.presentables = presentables - self.animationInUse = animationInUse - self.priority = priority - self.action = action - } - -} - -@available(iOS 13.0, tvOS 13.0, *) -extension Run: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - Transition(presentables: presentables, animationInUse: animationInUse) { _, _, completion in - Task(priority: priority) { @MainActor in - await action() - completion?() - } - } - } - -} - -#endif diff --git a/Sources/XCoordinator/Transitions/Components/View/Show.swift b/Sources/XCoordinator/Transitions/Components/View/Show.swift deleted file mode 100644 index 3d5fb1a9..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Show.swift +++ /dev/null @@ -1,43 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Show { - - // MARK: Stored Properties - - private let presentable: () -> any Presentable - - // MARK: Initialization - - public init(_ presentable: @escaping () -> any Presentable) { - self.presentable = presentable - } - -} - -extension Show: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - let presentable = presentable() - return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in - CATransaction.begin() - CATransaction.setCompletionBlock { - presentable.presented(from: rootViewController) - completion?() - } - - autoreleasepool { - rootViewController.show(presentable.viewController, sender: nil) - } - - CATransaction.commit() - } - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift b/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift deleted file mode 100644 index e411ae43..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/ShowDetail.swift +++ /dev/null @@ -1,44 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct ShowDetail { - - // MARK: Stored Properties - - private let presentable: () -> any Presentable - - // MARK: Initialization - - public init(_ presentable: @escaping () -> any Presentable) { - self.presentable = presentable - } - -} - -extension ShowDetail: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - let presentable = presentable() - return Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in - CATransaction.begin() - CATransaction.setCompletionBlock { - presentable.presented(from: rootViewController) - completion?() - } - - autoreleasepool { - rootViewController.showDetailViewController(presentable.viewController, sender: nil) - } - - CATransaction.commit() - } - - } - -} diff --git a/Sources/XCoordinator/Transitions/Components/View/Trigger.swift b/Sources/XCoordinator/Transitions/Components/View/Trigger.swift deleted file mode 100644 index 6ba0aac6..00000000 --- a/Sources/XCoordinator/Transitions/Components/View/Trigger.swift +++ /dev/null @@ -1,34 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -public struct Trigger { - - // MARK: Stored Properties - - private let router: any Router - private let route: RouteType - - // MARK: Initialization - - public init(_ route: RouteType, on router: any Router) { - self.router = router - self.route = route - } - -} - -extension Trigger: TransitionComponent where RootViewController: UIViewController { - - public func build() -> Transition { - Transition(presentables: [], animationInUse: nil) { _, options, completion in - router.trigger(route, with: options, completion: completion) - } - } - -} diff --git a/Sources/XCoordinator/Transitions/TransitionBuilder.swift b/Sources/XCoordinator/Transitions/TransitionBuilder.swift index 0765caf7..7e366240 100644 --- a/Sources/XCoordinator/Transitions/TransitionBuilder.swift +++ b/Sources/XCoordinator/Transitions/TransitionBuilder.swift @@ -1,62 +1,83 @@ // -// File.swift -// +// TransitionBuilder.swift +// XCoordinator // // Created by Paul Kraft on 08.05.23. // import UIKit +/// +/// A result builder that assembles a single ``Transition`` from one or more `Transition` values. +/// +/// Use it to describe a coordinator's transitions inline — e.g. in `prepareTransition(for:)` or a +/// `BasicCoordinator`'s `prepare` closure — by listing the `Transition.…` factories that apply to the +/// coordinator's root view controller: +/// +/// ```swift +/// override func prepareTransition(for route: AppRoute) -> NavigationTransition { +/// switch route { +/// case .home: Transition.push(HomeViewController()) +/// case .detail(let id): Transition.push(DetailViewController(id: id)) +/// case .ignored: Transition.none() +/// } +/// } +/// ``` +/// +/// Multiple statements are chained with ``Transition/multiple(_:)-(some Collection)`` and +/// performed strictly in order. An empty builder block is a compile-time error — use ``Transition/none()`` +/// to express an intentional no-op. +/// @MainActor @resultBuilder public enum TransitionBuilder { - public typealias Component = TransitionGroup - - public static func buildExpression(_ expression: some TransitionComponent) -> Component { - TransitionGroup([expression.build]) - } - - /// Accepts a plain `Transition` as a builder expression, so the `Transition.…` factories - /// (`.push`, `.present`, `.set`, `.setReliably`, `.deepLink`, …) can be used directly inside a - /// transition builder alongside the `TransitionComponent` types. - public static func buildExpression(_ expression: Transition) -> Component { - TransitionGroup([{ expression }]) - } - - public static func buildExpression(_ expression: Void) -> Component { - TransitionGroup([]) + public static func buildExpression(_ expression: Transition) -> Transition { + expression } - public static func buildExpression(_ expression: Never) -> Component {} + public static func buildExpression(_ expression: Never) -> Transition {} - public static func buildEither(first component: Component) -> Component { + public static func buildEither(first component: Transition) -> Transition { component } - public static func buildEither(second component: Component) -> Component { + public static func buildEither(second component: Transition) -> Transition { component } - public static func buildOptional(_ component: Component?) -> Component { - buildArray([component].compactMap { $0 }) + public static func buildOptional(_ component: Transition?) -> Transition { + component ?? .none() } - public static func buildLimitedAvailability(_ component: Component) -> Component { + public static func buildLimitedAvailability(_ component: Transition) -> Transition { component } - public static func buildBlock(_ components: Component...) -> Component { - buildArray(components) + public static func buildBlock( + _ first: Transition, + _ rest: Transition... + ) -> Transition { + rest.isEmpty ? first : .multiple([first] + rest) } - public static func buildArray(_ components: [Component]) -> Component { - TransitionGroup(components.map { $0.build }) + public static func buildArray(_ components: [Transition]) -> Transition { + .multiple(components) } - public static func buildFinalResult(_ component: Component) -> Transition { - component.build() + public static func buildFinalResult(_ component: Transition) -> Transition { + component } } +extension Transition { + + /// + /// Creates a transition from a transition-builder closure. + /// + public init(@TransitionBuilder transitions: () -> Self) { + self = transitions() + } + +} diff --git a/Sources/XCoordinator/Transitions/TransitionComponent.swift b/Sources/XCoordinator/Transitions/TransitionComponent.swift deleted file mode 100644 index 55721548..00000000 --- a/Sources/XCoordinator/Transitions/TransitionComponent.swift +++ /dev/null @@ -1,25 +0,0 @@ -// -// File.swift -// -// -// Created by Paul Kraft on 08.05.23. -// - -import UIKit - -@MainActor -public protocol TransitionComponent { - - associatedtype RootViewController: UIViewController - - func build() -> Transition - -} - -extension Transition { - - public init(@TransitionBuilder transitions: () -> Self) { - self = transitions() - } - -} diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index bc774f23..60af9d13 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -21,9 +21,13 @@ extension Transition { /// The presentable to be shown as a primary view controller. /// public static func show(_ presentable: any Presentable) -> Transition { - Transition { - Show { - presentable + Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in + rootViewController.show( + presentable.viewController, + with: options + ) { + presentable.presented(from: rootViewController) + completion?() } } } @@ -39,9 +43,13 @@ extension Transition { /// The presentable to be shown as a detail view controller. /// public static func showDetail(_ presentable: any Presentable) -> Transition { - Transition { - ShowDetail { - presentable + Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in + rootViewController.showDetail( + presentable.viewController, + with: options + ) { + presentable.presented(from: rootViewController) + completion?() } } } @@ -60,9 +68,16 @@ extension Transition { /// the default UIKit animations. /// public static func presentOnRoot(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition { - Present(onRoot: true, animation: animation) { - presentable + Transition(presentables: [presentable], + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + rootViewController.present(onRoot: true, + presentable.viewController, + with: options, + animation: animation + ) { + presentable.presented(from: rootViewController) + completion?() } } } @@ -79,9 +94,16 @@ extension Transition { /// the default UIKit animations. /// public static func present(_ presentable: any Presentable, animation: Animation? = nil) -> Transition { - Transition { - Present(animation: animation) { - presentable + Transition(presentables: [presentable], + animationInUse: animation?.presentationAnimation + ) { rootViewController, options, completion in + rootViewController.present(onRoot: false, + presentable.viewController, + with: options, + animation: animation + ) { + presentable.presented(from: rootViewController) + completion?() } } } @@ -94,9 +116,13 @@ extension Transition { /// - container: The container to embed the presentable in. /// public static func embed(_ presentable: any Presentable, in container: any Container) -> Transition { - Transition { - Embed(in: container) { - presentable + Transition(presentables: [presentable], animationInUse: nil) { rootViewController, options, completion in + rootViewController.embed(presentable.viewController, + in: container, + with: options + ) { + presentable.presented(from: rootViewController) + completion?() } } } @@ -111,8 +137,13 @@ extension Transition { /// default UIKit animations. /// public static func dismissToRoot(animation: Animation? = nil) -> Transition { - Transition { - Dismiss(toRoot: true, animation: animation) + Transition(presentables: [], + animationInUse: animation?.dismissalAnimation + ) { rootViewController, options, completion in + rootViewController.dismiss(toRoot: true, + with: options, + animation: animation, + completion: completion) } } @@ -126,17 +157,24 @@ extension Transition { /// default UIKit animations. /// public static func dismiss(animation: Animation? = nil) -> Transition { - Transition { - Dismiss(animation: animation) + Transition(presentables: [], + animationInUse: animation?.dismissalAnimation + ) { rootViewController, options, completion in + rootViewController.dismiss(toRoot: false, + with: options, + animation: animation, + completion: completion) } } /// /// No transition at all. May be useful for testing or debugging purposes, or to ignore specific - /// routes. + /// routes. See also the ``Ignore`` transition component for use inside a transition builder. /// public static func none() -> Transition { - Transition {} + Transition(presentables: [], animationInUse: nil) { _, _, completion in + completion?() + } } /// @@ -152,6 +190,9 @@ extension Transition { /// /// With this transition you can chain multiple transitions of the same type together. /// + /// Each transition is performed strictly after the previous one has fully completed, since a + /// transition may fail if a prior one is still in progress. + /// /// - Parameter transitions: /// The transitions to be chained to form the new transition. /// @@ -181,8 +222,11 @@ extension Transition { /// - coordinator: The coordinator to trigger the route on. /// public static func route(_ route: C.RouteType, on coordinator: C) -> Transition { - Transition { - Redirect(as: route, to: coordinator) + let transition = coordinator.prepareTransition(for: route) + return Transition(presentables: transition.presentables, + animationInUse: transition.animation + ) { _, options, completion in + coordinator.performTransition(transition, with: options, completion: completion) } } @@ -197,8 +241,8 @@ extension Transition { /// - router: The router to trigger the route on. /// public static func trigger(_ route: RouteType, on router: any Router) -> Transition { - Transition { - Trigger(route, on: router) + Transition(presentables: [], animationInUse: nil) { _, options, completion in + router.trigger(route, with: options, completion: completion) } } diff --git a/Sources/XCoordinator/XCoordinator.docc/Documentation.md b/Sources/XCoordinator/XCoordinator.docc/Documentation.md index 53de1c22..4f9d423b 100644 --- a/Sources/XCoordinator/XCoordinator.docc/Documentation.md +++ b/Sources/XCoordinator/XCoordinator.docc/Documentation.md @@ -30,11 +30,11 @@ class UserListCoordinator: NavigationCoordinator { override func prepareTransition(for route: UserListRoute) -> NavigationTransition { switch route { case .home: - Push { HomeViewController() } + Transition.push(HomeViewController()) case .user(let name): - Present(animation: .default) { UserCoordinator(user: name) } + Transition.present(UserCoordinator(user: name), animation: .default) case .logout: - Dismiss() + Transition.dismiss() } } } @@ -81,13 +81,10 @@ There are two supported ways to define the transition for a route — both produ ### The transition builder (recommended, new in 3.0) Annotate your override with `@TransitionBuilder` to compose transitions declaratively. -Two interchangeable vocabularies are available inside the builder, and you can freely mix them: - -- **Component types** — `Push`, `Pop`, `Present`, `Dismiss`, `Embed`, `Show`, `SelectTab`, `SetTabs`, - `PageSet`, `Redirect`, `Trigger`, … Each reads like a declarative element. -- **`Transition.…` factories** — `.push(_:)`, `.present(_:)`, `.dismiss()`, `.set(_:)`, `.select(_:)`, - `.deepLink(_:_:)`, `.withAnimation { … }`, … Each returns a ``Transition`` and is accepted directly - by the builder. +The builder operates on ``Transition`` values, so its body simply lists the `Transition.…` factories that +apply to the coordinator's root view controller — `.push(_:)`, `.present(_:)`, `.dismiss()`, `.set(_:)`, +`.select(_:)`, `.deepLink(_:_:)`, `.withAnimation { … }`, `.none()`, … Listing several in one block chains +them in order (equivalent to `.multiple`). ```swift class AppCoordinator: NavigationCoordinator { @@ -95,12 +92,14 @@ class AppCoordinator: NavigationCoordinator { override func prepareTransition(for route: AppRoute) -> NavigationTransition { switch route { case .home: - Push { HomeViewController() } // component + Transition.push(HomeViewController()) case .detail(let id): - .push(DetailViewController(id: id)) // factory — also fine + Transition.push(DetailViewController(id: id)) case .reset: - Pop(toRoot: true) // list several to combine them (like `.multiple`) - Push { HomeViewController() } + Transition.popToRoot() // list several to combine them (like `.multiple`) + Transition.push(HomeViewController()) + case .ignored: + Transition.none() // an empty builder block is a compile-time error } } } @@ -302,8 +301,6 @@ The available transitions depend on the coordinator's `RootViewController` type. ### Transition builder - ``TransitionBuilder`` -- ``TransitionComponent`` -- ``TransitionGroup`` ### Animations diff --git a/Tests/XCoordinatorTests/TransitionTests.swift b/Tests/XCoordinatorTests/TransitionTests.swift index e094d9b0..c7b7bb1a 100644 --- a/Tests/XCoordinatorTests/TransitionTests.swift +++ b/Tests/XCoordinatorTests/TransitionTests.swift @@ -69,6 +69,20 @@ class TransitionTests: XCTestCase { testCompletionCalled(on: coordinator, transition: .pop(to: viewControllers[0])) } + // MARK: Regression coverage + + /// `Transition.set(_:animation:)` on a `UITabBarController` must expose its presentation animation + /// via `transition.animation` (used by `registerInteractiveTransition`). Regression guard: a previous + /// refactor dropped it (`animationInUse: nil`). + func testSetTabsExposesAnimation() { + let animation = Animation( + presentation: StaticTransitionAnimation(duration: 0) { $0.completeTransition(true) }, + dismissal: StaticTransitionAnimation(duration: 0) { $0.completeTransition(true) } + ) + let transition: TabBarTransition = .set([UIViewController()], animation: animation) + XCTAssertNotNil(transition.animation) + } + // MARK: Helpers private func testStandardTransitions(on coordinator: C) { From 943855f1cfeb07292487355c51024d86b3231871 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Fri, 29 May 2026 14:53:19 +0200 Subject: [PATCH 32/35] finish --- .../Animations/GestureRecognizerTarget.swift | 1 + .../InterruptibleTransitionAnimation.swift | 1 + .../XCoordinator/Coordinators/Router.swift | 2 +- .../XCoordinator/Page/PageTransition.swift | 56 ++++++------------- .../UIPageViewController+Transition.swift | 24 -------- .../XCoordinator/Split/SplitTransition.swift | 2 +- .../XCoordinator/SwiftUI/Representable.swift | 1 + .../SwiftUI/RepresentableContext.swift | 1 + .../SwiftUI/RoutingContextProvider.swift | 1 + .../SwiftUI/Transition+SwiftUI.swift | 1 + .../XCoordinator/SwiftUI/View+Router.swift | 1 + .../XCoordinator/SwiftUI/View+Trigger.swift | 3 +- .../XCoordinator/SwiftUI/WrappedRouter.swift | 1 + .../Transitions/TransitionBuilder.swift | 12 +--- .../View/UIViewController+Extras.swift | 5 +- 15 files changed, 33 insertions(+), 79 deletions(-) delete mode 100644 Sources/XCoordinator/Page/UIPageViewController+Transition.swift diff --git a/Sources/XCoordinator/Animations/GestureRecognizerTarget.swift b/Sources/XCoordinator/Animations/GestureRecognizerTarget.swift index b1f92c29..01c4e2bb 100755 --- a/Sources/XCoordinator/Animations/GestureRecognizerTarget.swift +++ b/Sources/XCoordinator/Animations/GestureRecognizerTarget.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Kraft on 19.12.18. +// Copyright © 2018 QuickBird Studios. All rights reserved. // import UIKit diff --git a/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift b/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift index fbcb9780..c5fd5f62 100755 --- a/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift +++ b/Sources/XCoordinator/Animations/InterruptibleTransitionAnimation.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Kraft on 24.12.18. +// Copyright © 2018 QuickBird Studios. All rights reserved. // import UIKit diff --git a/Sources/XCoordinator/Coordinators/Router.swift b/Sources/XCoordinator/Coordinators/Router.swift index 45c5345e..b19977f9 100755 --- a/Sources/XCoordinator/Coordinators/Router.swift +++ b/Sources/XCoordinator/Coordinators/Router.swift @@ -1,5 +1,5 @@ // -// RouteTrigger.swift +// Router.swift // XCoordinator // // Created by Paul Kraft on 28.07.18. diff --git a/Sources/XCoordinator/Page/PageTransition.swift b/Sources/XCoordinator/Page/PageTransition.swift index 0ae469a7..6827ff61 100755 --- a/Sources/XCoordinator/Page/PageTransition.swift +++ b/Sources/XCoordinator/Page/PageTransition.swift @@ -1,5 +1,5 @@ // -// PageViewTransition.swift +// PageTransition.swift // XCoordinator // // Created by Paul Kraft on 29.07.18. @@ -31,48 +31,26 @@ extension Transition where RootViewController: UIPageViewController { public static func set(_ first: any Presentable, _ second: (any Presentable)? = nil, direction: UIPageViewController.NavigationDirection) -> Transition { let presentables = [first, second].compactMap { $0 } - return Transition(presentables: presentables, - animationInUse: nil - ) { rootViewController, options, completion in - rootViewController.set(presentables.map { $0.viewController }, - direction: direction, - with: options - ) { - presentables.forEach { $0.presented(from: rootViewController) } - completion?() - } - } - } + return Transition(presentables: presentables, animationInUse: nil) { rootViewController, options, completion in + let viewControllers: [UIViewController] = presentables.map { $0.viewController } + rootViewController.isDoubleSided = viewControllers.count > 1 - /// - /// A reliable variant of ``set(_:_:direction:)`` for a single page that **always** calls its completion - /// handler — even when the requested page is already on-screen. - /// - /// `UIPageViewController` skips its completion block when asked to set the page it is already showing, - /// which stalls `deepLink` (it chains the next route inside the completion). Use this in a deep-link - /// chain whose page step might target the currently-visible page. - /// - /// - Parameters: - /// - page: The page to show. - /// - direction: The direction in which the transition should be animated. - /// - public static func setReliably(_ page: any Presentable, - direction: UIPageViewController.NavigationDirection) -> Transition { - Transition(presentables: [page], animationInUse: nil) { rootViewController, options, completion in - guard let target = page.viewController else { + // `UIPageViewController.setViewControllers(_:direction:animated:completion:)` skips its completion + // block when asked to display the pages it is already showing (a long-standing UIKit quirk). + // `deepLink` chains the next route inside this completion, so short-circuit the no-op case and + // invoke the completion ourselves to keep chained transitions flowing. `presented(from:)` already + // fired when these pages were first set, so it is not repeated here. + guard rootViewController.viewControllers != viewControllers else { completion?() return } - let isAlreadyVisible = rootViewController.viewControllers?.count == 1 - && rootViewController.viewControllers?.first === target - guard !isAlreadyVisible else { - // The page is already displayed — UIKit would not call the completion, so do it ourselves. - // `presented(from:)` was already invoked when this page was first set, so it is not repeated. - completion?() - return - } - rootViewController.set([target], direction: direction, with: options) { - page.presented(from: rootViewController) + + rootViewController.setViewControllers( + viewControllers, + direction: direction, + animated: options.animated + ) { _ in + presentables.forEach { $0.presented(from: rootViewController) } completion?() } } diff --git a/Sources/XCoordinator/Page/UIPageViewController+Transition.swift b/Sources/XCoordinator/Page/UIPageViewController+Transition.swift deleted file mode 100644 index 7f13161f..00000000 --- a/Sources/XCoordinator/Page/UIPageViewController+Transition.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// UIPageViewController+Transition.swift -// XCoordinator -// -// Created by Paul Kraft on 30.07.18. -// Copyright © 2018 QuickBird Studios. All rights reserved. -// - -import UIKit - -extension UIPageViewController { - func set(_ viewControllers: [UIViewController], - direction: UIPageViewController.NavigationDirection, - with options: TransitionOptions, - completion: PresentationHandler?) { - isDoubleSided = viewControllers.count > 1 - setViewControllers( - viewControllers, - direction: direction, - animated: options.animated, - completion: { _ in completion?() } - ) - } -} diff --git a/Sources/XCoordinator/Split/SplitTransition.swift b/Sources/XCoordinator/Split/SplitTransition.swift index c28f8e65..6c2371cd 100755 --- a/Sources/XCoordinator/Split/SplitTransition.swift +++ b/Sources/XCoordinator/Split/SplitTransition.swift @@ -1,5 +1,5 @@ // -// UISplitViewController+Transition.swift +// SplitTransition.swift // XCoordinator // // Created by Paul Kraft on 10.01.19. diff --git a/Sources/XCoordinator/SwiftUI/Representable.swift b/Sources/XCoordinator/SwiftUI/Representable.swift index 57f422d5..850d10c2 100644 --- a/Sources/XCoordinator/SwiftUI/Representable.swift +++ b/Sources/XCoordinator/SwiftUI/Representable.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Johannes Kraft (QB) on 15.05.25. +// Copyright © 2018 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) diff --git a/Sources/XCoordinator/SwiftUI/RepresentableContext.swift b/Sources/XCoordinator/SwiftUI/RepresentableContext.swift index 5430de07..49dc025e 100644 --- a/Sources/XCoordinator/SwiftUI/RepresentableContext.swift +++ b/Sources/XCoordinator/SwiftUI/RepresentableContext.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Johannes Kraft (QB) on 20.05.25. +// Copyright © 2018 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) diff --git a/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift b/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift index b5eb2799..4df2d884 100644 --- a/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift +++ b/Sources/XCoordinator/SwiftUI/RoutingContextProvider.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Kraft on 09.05.2025. +// Copyright © 2018 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) diff --git a/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift index f403b749..a03aceda 100644 --- a/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift +++ b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Johannes Kraft (QB) on 12.05.25. +// Copyright © 2018 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) diff --git a/Sources/XCoordinator/SwiftUI/View+Router.swift b/Sources/XCoordinator/SwiftUI/View+Router.swift index 30308d44..9beb6228 100644 --- a/Sources/XCoordinator/SwiftUI/View+Router.swift +++ b/Sources/XCoordinator/SwiftUI/View+Router.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Johannes Kraft (QB) on 12.05.25. +// Copyright © 2018 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) diff --git a/Sources/XCoordinator/SwiftUI/View+Trigger.swift b/Sources/XCoordinator/SwiftUI/View+Trigger.swift index 65ce1681..09de8148 100644 --- a/Sources/XCoordinator/SwiftUI/View+Trigger.swift +++ b/Sources/XCoordinator/SwiftUI/View+Trigger.swift @@ -1,8 +1,9 @@ // -// Router+Binding.swift +// View+Trigger.swift // XCoordinator // // Created by Paul Kraft on 09.05.2025. +// Copyright © 2018 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) diff --git a/Sources/XCoordinator/SwiftUI/WrappedRouter.swift b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift index fa6bd194..a13b333d 100644 --- a/Sources/XCoordinator/SwiftUI/WrappedRouter.swift +++ b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Johannes Kraft (QB) on 20.05.25. +// Copyright © 2018 QuickBird Studios. All rights reserved. // #if canImport(SwiftUI) diff --git a/Sources/XCoordinator/Transitions/TransitionBuilder.swift b/Sources/XCoordinator/Transitions/TransitionBuilder.swift index 7e366240..cd5a591a 100644 --- a/Sources/XCoordinator/Transitions/TransitionBuilder.swift +++ b/Sources/XCoordinator/Transitions/TransitionBuilder.swift @@ -3,6 +3,7 @@ // XCoordinator // // Created by Paul Kraft on 08.05.23. +// Copyright © 2018 QuickBird Studios. All rights reserved. // import UIKit @@ -70,14 +71,3 @@ public enum TransitionBuilder { } } - -extension Transition { - - /// - /// Creates a transition from a transition-builder closure. - /// - public init(@TransitionBuilder transitions: () -> Self) { - self = transitions() - } - -} diff --git a/Sources/XCoordinator/View/UIViewController+Extras.swift b/Sources/XCoordinator/View/UIViewController+Extras.swift index 90edc474..0bd599c0 100644 --- a/Sources/XCoordinator/View/UIViewController+Extras.swift +++ b/Sources/XCoordinator/View/UIViewController+Extras.swift @@ -1,8 +1,9 @@ // -// File.swift -// +// UIViewController+Extras.swift +// XCoordinator // // Created by Paul Kraft on 08.05.23. +// Copyright © 2018 QuickBird Studios. All rights reserved. // import UIKit From faf3e9b256cbe688b8032413a55d2861cd76d6a1 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Fri, 29 May 2026 17:58:26 +0200 Subject: [PATCH 33/35] Finishing touches --- .github/workflows/ci.yml | 51 +-- .github/workflows/docs.yml | 18 +- Package.swift | 5 +- Scripts/docs.sh | 46 +- Scripts/test.sh | 38 ++ .../StaticTransitionAnimation.swift | 6 +- .../Coordinators/BaseCoordinator.swift | 10 +- .../XCoordinator/Coordinators/Router.swift | 2 +- .../NavigationAnimationDelegate.swift | 4 +- .../UINavigationController+Transition.swift | 19 +- .../SwiftUI/Transition+SwiftUI.swift | 4 +- .../Tab/TabBarAnimationDelegate.swift | 2 + .../Transitions/TransitionBuilder.swift | 2 +- .../XCoordinator/View/Transition+Init.swift | 2 +- TestHost/App/AppDelegate.swift | 32 ++ TestHost/App/Info.plist | 25 ++ TestHost/App/SceneDelegate.swift | 24 + .../project.pbxproj | 418 ++++++++++++++++++ .../xcschemes/XCoordinatorTestHost.xcscheme | 64 +++ Tests/XCoordinatorTests/AnimationTests.swift | 39 +- Tests/XCoordinatorTests/TestAnimation.swift | 16 +- Tests/XCoordinatorTests/TransitionTests.swift | 2 +- Tests/XCoordinatorTests/XCText+Extras.swift | 17 + XCoordinator.podspec | 4 +- 24 files changed, 754 insertions(+), 96 deletions(-) create mode 100755 Scripts/test.sh create mode 100644 TestHost/App/AppDelegate.swift create mode 100644 TestHost/App/Info.plist create mode 100644 TestHost/App/SceneDelegate.swift create mode 100644 TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj create mode 100644 TestHost/XCoordinatorTestHost.xcodeproj/xcshareddata/xcschemes/XCoordinatorTestHost.xcscheme diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2481847c..ceeb574a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,12 +13,14 @@ concurrency: jobs: build-test: name: Build & Test (iOS Simulator) - runs-on: macos-14 + runs-on: macos-15 steps: - uses: actions/checkout@v4 - - name: Select Xcode - run: sudo xcode-select -s /Applications/Xcode_15.4.app + - name: Select latest Xcode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable - name: Show toolchain run: | @@ -29,48 +31,37 @@ jobs: run: swift package resolve - name: Build (iOS Simulator) - run: | - xcodebuild build \ - -scheme XCoordinator \ - -destination 'generic/platform=iOS Simulator' \ - -skipPackagePluginValidation \ - CODE_SIGNING_ALLOWED=NO + run: Scripts/build.sh - name: Test - run: | - xcodebuild test \ - -scheme XCoordinator \ - -destination 'platform=iOS Simulator,name=iPhone 15' \ - -skipPackagePluginValidation \ - CODE_SIGNING_ALLOWED=NO + run: Scripts/test.sh pod-lint: name: CocoaPods lint - runs-on: macos-14 + runs-on: macos-15 steps: - uses: actions/checkout@v4 - - name: Select Xcode - run: sudo xcode-select -s /Applications/Xcode_15.4.app + - name: Select latest Xcode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable - name: Lint podspec - run: pod lib lint --allow-warnings --fail-fast + # iOS only: recent Xcode does not ship the tvOS simulator runtime, and the rest + # of CI (build/test/docs) is iOS-only as well. + run: pod lib lint --allow-warnings --fail-fast --platforms=ios docs: name: DocC build - runs-on: macos-14 + runs-on: macos-15 steps: - uses: actions/checkout@v4 - - name: Select Xcode - run: sudo xcode-select -s /Applications/Xcode_15.4.app + - name: Select latest Xcode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable - name: Build documentation - run: | - swift package \ - --allow-writing-to-directory ./Documentation \ - generate-documentation \ - --target XCoordinator \ - --output-path ./Documentation \ - --transform-for-static-hosting \ - --warnings-as-errors + run: Scripts/docs.sh diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 334ce2cb..cf353e37 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -16,23 +16,17 @@ concurrency: jobs: build: - runs-on: macos-14 + runs-on: macos-15 steps: - uses: actions/checkout@v4 - - name: Select Xcode - run: sudo xcode-select -s /Applications/Xcode_15.4.app + - name: Select latest Xcode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable - name: Build documentation - run: | - swift package \ - --allow-writing-to-directory ./Documentation \ - generate-documentation \ - --target XCoordinator \ - --output-path ./Documentation \ - --transform-for-static-hosting \ - --hosting-base-path XCoordinator \ - --warnings-as-errors + run: Scripts/docs.sh XCoordinator - name: Upload artifact uses: actions/upload-pages-artifact@v3 diff --git a/Package.swift b/Package.swift index 4a8959d8..5d7fe3a9 100644 --- a/Package.swift +++ b/Package.swift @@ -4,7 +4,7 @@ import PackageDescription let package = Package( name: "XCoordinator", - platforms: [.iOS(.v14), .tvOS(.v14)], + platforms: [.iOS(.v16), .tvOS(.v16)], products: [ .library( name: "XCoordinator", @@ -24,8 +24,5 @@ let package = Package( .target( name: "XCoordinatorRx", dependencies: ["XCoordinator", "RxSwift"]), - .testTarget( - name: "XCoordinatorTests", - dependencies: ["XCoordinator", "XCoordinatorRx"]), ] ) diff --git a/Scripts/docs.sh b/Scripts/docs.sh index 21bd6313..09a1e78a 100755 --- a/Scripts/docs.sh +++ b/Scripts/docs.sh @@ -1,17 +1,47 @@ #!/bin/sh # Generates static-hosting DocC output into ./Documentation. -# Uses the iOS Simulator SDK and lets the toolchain pick the matching target triple, -# so it runs unchanged on Apple Silicon and Intel Macs and on whatever Xcode is current. +# +# Builds the DocC archive against the iOS SDK via `xcodebuild docbuild` (the +# package depends on UIKit, so a plain SwiftPM host build fails with +# "no such module 'UIKit'"), then transforms it for static hosting. +# +# Pass an optional hosting base path as the first argument (used when publishing +# to GitHub Pages): +# +# Scripts/docs.sh # local / CI validation build +# Scripts/docs.sh XCoordinator # Pages build served under /XCoordinator set -e -o pipefail cd "$(dirname "$0")/.." +DERIVED_DATA=".build/docs-derived-data" + +HOSTING_BASE_PATH_ARG="" +if [ -n "$1" ]; then + HOSTING_BASE_PATH_ARG="--hosting-base-path $1" +fi + +rm -rf "$DERIVED_DATA" + xcodebuild docbuild \ - -scheme XCoordinator \ - -destination 'generic/platform=iOS' \ - -derivedDataPath .build/Documentation \ - ONLY_ACTIVE_ARCH=YES \ - CODE_SIGNING_ALLOWED=NO \ - -quiet + -scheme XCoordinator \ + -destination 'generic/platform=iOS' \ + -derivedDataPath "$DERIVED_DATA" \ + ONLY_ACTIVE_ARCH=YES \ + CODE_SIGNING_ALLOWED=NO \ + OTHER_DOCC_FLAGS="--warnings-as-errors" \ + -quiet + +ARCHIVE=$(find "$DERIVED_DATA" -type d -name 'XCoordinator.doccarchive' | head -n 1) +if [ -z "$ARCHIVE" ]; then + echo "error: could not find XCoordinator.doccarchive under $DERIVED_DATA" >&2 + exit 1 +fi + +rm -rf ./Documentation + +"$(xcrun --find docc)" process-archive transform-for-static-hosting "$ARCHIVE" \ + --output-path ./Documentation \ + $HOSTING_BASE_PATH_ARG diff --git a/Scripts/test.sh b/Scripts/test.sh new file mode 100755 index 00000000..27249a6c --- /dev/null +++ b/Scripts/test.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +# Runs the XCoordinator tests on an iOS Simulator. +# +# The tests exercise real UIKit view-controller transitions, which only work when a +# UIWindowScene exists — something a bare SwiftPM test bundle does not provide. They +# therefore run through the TestHost application (TestHost/XCoordinatorTestHost.xcodeproj), +# which references this package and hosts the tests in Tests/XCoordinatorTests. +# +# An available iPhone simulator is resolved at runtime so this works across Xcode +# versions (which ship different device names) on both local machines and CI. + +set -e -o pipefail + +cd "$(dirname "$0")/.." + +DEVICE_ID=$(xcrun simctl list devices available -j | python3 -c ' +import json, sys +devices = json.load(sys.stdin)["devices"] +candidates = [ + dev["udid"] + for runtime, devs in devices.items() if "iOS" in runtime + for dev in devs if "iPhone" in dev["name"] +] +print(candidates[0] if candidates else "") +') + +if [ -z "$DEVICE_ID" ]; then + echo "error: no available iPhone simulator found" >&2 + exit 1 +fi + +xcodebuild test \ + -project TestHost/XCoordinatorTestHost.xcodeproj \ + -scheme XCoordinatorTestHost \ + -destination "id=$DEVICE_ID" \ + -skipPackagePluginValidation \ + CODE_SIGNING_ALLOWED=NO diff --git a/Sources/XCoordinator/Animations/StaticTransitionAnimation.swift b/Sources/XCoordinator/Animations/StaticTransitionAnimation.swift index 102edab0..8bad66c2 100755 --- a/Sources/XCoordinator/Animations/StaticTransitionAnimation.swift +++ b/Sources/XCoordinator/Animations/StaticTransitionAnimation.swift @@ -38,10 +38,8 @@ open class StaticTransitionAnimation: NSObject, TransitionAnimation { /// /// - Parameters: /// - duration: The total duration of the animation. - /// - performAnimation: A closure performing the animation. - /// - context: - /// From the context, you can access source and destination views and - /// viewControllers and the containerView. + /// - performAnimation: A closure performing the animation. From the closure's `context`, + /// you can access source and destination views and viewControllers and the containerView. /// public init(duration: TimeInterval, performAnimation: @escaping (_ context: UIViewControllerContextTransitioning) -> Void) { self.duration = duration diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index 34c4972b..f9e7ff86 100755 --- a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -200,12 +200,10 @@ extension BaseCoordinator { /// - 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. + /// The handler to update the interaction controller of the animation generated by the transition closure. + /// It receives the gestureRecognizer with which the handler has been registered, and a closure to perform + /// the transition — which 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. diff --git a/Sources/XCoordinator/Coordinators/Router.swift b/Sources/XCoordinator/Coordinators/Router.swift index b19977f9..61c57a26 100755 --- a/Sources/XCoordinator/Coordinators/Router.swift +++ b/Sources/XCoordinator/Coordinators/Router.swift @@ -115,7 +115,7 @@ extension Router { /// /// Triggers a route and returns the resulting transition context. /// - /// Useful for deep linking. Prefer ``trigger(_:with:)`` if the context is not needed. + /// Useful for deep linking. Prefer `trigger(_:with:)` if the context is not needed. /// /// - Parameters: /// - route: The route to be triggered. diff --git a/Sources/XCoordinator/Navigation/NavigationAnimationDelegate.swift b/Sources/XCoordinator/Navigation/NavigationAnimationDelegate.swift index 29bf4c1e..b8f32193 100755 --- a/Sources/XCoordinator/Navigation/NavigationAnimationDelegate.swift +++ b/Sources/XCoordinator/Navigation/NavigationAnimationDelegate.swift @@ -127,8 +127,8 @@ extension NavigationAnimationDelegate: UINavigationControllerDelegate { /// /// - Parameters: /// - navigationController: The delegate owner. - /// - operation: The operation being executed. Possible values are push, pop or none. /// - viewController: The target view controller. + /// - animated: Whether the transition was animated. /// open func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) { @@ -145,8 +145,8 @@ extension NavigationAnimationDelegate: UINavigationControllerDelegate { /// /// - Parameters: /// - navigationController: The delegate owner. - /// - operation: The operation being executed. Possible values are push, pop or none. /// - viewController: The view controller to be shown. + /// - animated: Whether the transition is animated. /// open func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, diff --git a/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift b/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift index 41e982d0..068ac629 100644 --- a/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift +++ b/Sources/XCoordinator/Navigation/UINavigationController+Transition.swift @@ -25,22 +25,17 @@ extension UINavigationController { To set another delegate of a rootViewController in a NavigationCoordinator, have a look at `NavigationCoordinator.delegate`. """) - CATransaction.begin() - CATransaction.setCompletionBlock { [self] in - if let transitionCoordinator { - transitionCoordinator.animate(alongsideTransition: nil) { _ in - completion?() - } - } else { - completion?() - } - } - autoreleasepool { pushViewController(viewController, animated: options.animated) } - CATransaction.commit() + if let transitionCoordinator { + transitionCoordinator.animate(alongsideTransition: nil) { _ in + completion?() + } + } else { + completion?() + } } func pop(toRoot: Bool, with options: TransitionOptions, animation: Animation?, completion: PresentationHandler?) { diff --git a/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift index a03aceda..22230bcd 100644 --- a/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift +++ b/Sources/XCoordinator/SwiftUI/Transition+SwiftUI.swift @@ -35,7 +35,7 @@ extension Transition { ) -> Transition { return Transition( presentables: [], - animationInUse: nil, + animationInUse: nil ) { _, options, completion in if #available(iOS 17, tvOS 17, *) { SwiftUI.withAnimation( @@ -79,7 +79,7 @@ extension Transition { ) -> Transition { return Transition( presentables: [], - animationInUse: nil, + animationInUse: nil ) { _, options, completion in var transaction = transaction() transaction.disablesAnimations = !options.animated diff --git a/Sources/XCoordinator/Tab/TabBarAnimationDelegate.swift b/Sources/XCoordinator/Tab/TabBarAnimationDelegate.swift index 1f10049a..5c6dd598 100755 --- a/Sources/XCoordinator/Tab/TabBarAnimationDelegate.swift +++ b/Sources/XCoordinator/Tab/TabBarAnimationDelegate.swift @@ -128,6 +128,7 @@ extension TabBarAnimationDelegate: UITabBarControllerDelegate { /// - Parameters: /// - tabBarController: The delegate owner. /// - viewControllers: The source viewControllers. + /// - changed: Whether the order of the viewControllers changed. /// open func tabBarController(_ tabBarController: UITabBarController, didEndCustomizing viewControllers: [UIViewController], changed: Bool) { @@ -143,6 +144,7 @@ extension TabBarAnimationDelegate: UITabBarControllerDelegate { /// - Parameters: /// - tabBarController: The delegate owner. /// - viewControllers: The source viewControllers. + /// - changed: Whether the order of the viewControllers changed. /// open func tabBarController(_ tabBarController: UITabBarController, willEndCustomizing viewControllers: [UIViewController], changed: Bool) { diff --git a/Sources/XCoordinator/Transitions/TransitionBuilder.swift b/Sources/XCoordinator/Transitions/TransitionBuilder.swift index cd5a591a..9f12938d 100644 --- a/Sources/XCoordinator/Transitions/TransitionBuilder.swift +++ b/Sources/XCoordinator/Transitions/TransitionBuilder.swift @@ -25,7 +25,7 @@ import UIKit /// } /// ``` /// -/// Multiple statements are chained with ``Transition/multiple(_:)-(some Collection)`` and +/// Multiple statements are chained with ``Transition/multiple(_:)-(Collection)`` and /// performed strictly in order. An empty builder block is a compile-time error — use ``Transition/none()`` /// to express an intentional no-op. /// diff --git a/Sources/XCoordinator/View/Transition+Init.swift b/Sources/XCoordinator/View/Transition+Init.swift index 60af9d13..73234e9f 100755 --- a/Sources/XCoordinator/View/Transition+Init.swift +++ b/Sources/XCoordinator/View/Transition+Init.swift @@ -169,7 +169,7 @@ extension Transition { /// /// No transition at all. May be useful for testing or debugging purposes, or to ignore specific - /// routes. See also the ``Ignore`` transition component for use inside a transition builder. + /// routes. /// public static func none() -> Transition { Transition(presentables: [], animationInUse: nil) { _, _, completion in diff --git a/TestHost/App/AppDelegate.swift b/TestHost/App/AppDelegate.swift new file mode 100644 index 00000000..8c681247 --- /dev/null +++ b/TestHost/App/AppDelegate.swift @@ -0,0 +1,32 @@ +// +// AppDelegate.swift +// XCoordinatorTestHost +// +// Minimal scene-based host application for running XCoordinatorTests. +// UIKit view-controller presentation only works when a real UIWindowScene +// exists, which a bare SwiftPM test bundle does not provide — hence this host. +// + +import UIKit + +@main +final class AppDelegate: UIResponder, UIApplicationDelegate { + + func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil + ) -> Bool { + true + } + + func application( + _ application: UIApplication, + configurationForConnecting connectingSceneSession: UISceneSession, + options: UIScene.ConnectionOptions + ) -> UISceneConfiguration { + let configuration = UISceneConfiguration(name: "Default", sessionRole: connectingSceneSession.role) + configuration.delegateClass = SceneDelegate.self + return configuration + } + +} diff --git a/TestHost/App/Info.plist b/TestHost/App/Info.plist new file mode 100644 index 00000000..c8f750a0 --- /dev/null +++ b/TestHost/App/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchScreen + + + diff --git a/TestHost/App/SceneDelegate.swift b/TestHost/App/SceneDelegate.swift new file mode 100644 index 00000000..2b88a2be --- /dev/null +++ b/TestHost/App/SceneDelegate.swift @@ -0,0 +1,24 @@ +// +// SceneDelegate.swift +// XCoordinatorTestHost +// + +import UIKit + +final class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + func scene( + _ scene: UIScene, + willConnectTo session: UISceneSession, + options connectionOptions: UIScene.ConnectionOptions + ) { + guard let windowScene = scene as? UIWindowScene else { return } + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIViewController() + window.makeKeyAndVisible() + self.window = window + } + +} diff --git a/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj b/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj new file mode 100644 index 00000000..db0f08b5 --- /dev/null +++ b/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj @@ -0,0 +1,418 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 0A0000000000000000000030 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000010 /* AppDelegate.swift */; }; + 0A0000000000000000000031 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000011 /* SceneDelegate.swift */; }; + 0A0000000000000000000040 /* AnimationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000020 /* AnimationTests.swift */; }; + 0A0000000000000000000041 /* TestAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000021 /* TestAnimation.swift */; }; + 0A0000000000000000000042 /* TestRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000022 /* TestRoute.swift */; }; + 0A0000000000000000000043 /* TransitionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000023 /* TransitionTests.swift */; }; + 0A0000000000000000000044 /* XCText+Extras.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000024 /* XCText+Extras.swift */; }; + 0A0000000000000000000050 /* XCoordinator in Frameworks */ = {isa = PBXBuildFile; productRef = 0A00000000000000000000A1 /* XCoordinator */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0A00000000000000000000B1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0A0000000000000000000001 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0A0000000000000000000060; + remoteInfo = XCoordinatorTestHost; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0A0000000000000000000010 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 0A0000000000000000000011 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 0A0000000000000000000012 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0A0000000000000000000013 /* XCoordinatorTestHost.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = XCoordinatorTestHost.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0A0000000000000000000014 /* XCoordinatorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XCoordinatorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 0A0000000000000000000020 /* AnimationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationTests.swift; sourceTree = ""; }; + 0A0000000000000000000021 /* TestAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestAnimation.swift; sourceTree = ""; }; + 0A0000000000000000000022 /* TestRoute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestRoute.swift; sourceTree = ""; }; + 0A0000000000000000000023 /* TransitionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransitionTests.swift; sourceTree = ""; }; + 0A0000000000000000000024 /* XCText+Extras.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCText+Extras.swift"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0A0000000000000000000071 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0A0000000000000000000074 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0A0000000000000000000050 /* XCoordinator in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0A0000000000000000000002 = { + isa = PBXGroup; + children = ( + 0A0000000000000000000004 /* App */, + 0A0000000000000000000005 /* XCoordinatorTests */, + 0A0000000000000000000003 /* Products */, + ); + sourceTree = ""; + }; + 0A0000000000000000000003 /* Products */ = { + isa = PBXGroup; + children = ( + 0A0000000000000000000013 /* XCoordinatorTestHost.app */, + 0A0000000000000000000014 /* XCoordinatorTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 0A0000000000000000000004 /* App */ = { + isa = PBXGroup; + children = ( + 0A0000000000000000000010 /* AppDelegate.swift */, + 0A0000000000000000000011 /* SceneDelegate.swift */, + 0A0000000000000000000012 /* Info.plist */, + ); + path = App; + sourceTree = ""; + }; + 0A0000000000000000000005 /* XCoordinatorTests */ = { + isa = PBXGroup; + children = ( + 0A0000000000000000000020 /* AnimationTests.swift */, + 0A0000000000000000000021 /* TestAnimation.swift */, + 0A0000000000000000000022 /* TestRoute.swift */, + 0A0000000000000000000023 /* TransitionTests.swift */, + 0A0000000000000000000024 /* XCText+Extras.swift */, + ); + name = XCoordinatorTests; + path = ../Tests/XCoordinatorTests; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0A0000000000000000000060 /* XCoordinatorTestHost */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0A0000000000000000000081 /* Build configuration list for PBXNativeTarget "XCoordinatorTestHost" */; + buildPhases = ( + 0A0000000000000000000070 /* Sources */, + 0A0000000000000000000071 /* Frameworks */, + 0A0000000000000000000072 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = XCoordinatorTestHost; + packageProductDependencies = ( + ); + productName = XCoordinatorTestHost; + productReference = 0A0000000000000000000013 /* XCoordinatorTestHost.app */; + productType = "com.apple.product-type.application"; + }; + 0A0000000000000000000061 /* XCoordinatorTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0A0000000000000000000082 /* Build configuration list for PBXNativeTarget "XCoordinatorTests" */; + buildPhases = ( + 0A0000000000000000000073 /* Sources */, + 0A0000000000000000000074 /* Frameworks */, + 0A0000000000000000000075 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 0A00000000000000000000B0 /* PBXTargetDependency */, + ); + name = XCoordinatorTests; + packageProductDependencies = ( + 0A00000000000000000000A1 /* XCoordinator */, + ); + productName = XCoordinatorTests; + productReference = 0A0000000000000000000014 /* XCoordinatorTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0A0000000000000000000001 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1540; + LastUpgradeCheck = 1540; + TargetAttributes = { + 0A0000000000000000000060 = { + CreatedOnToolsVersion = 15.4; + }; + 0A0000000000000000000061 = { + CreatedOnToolsVersion = 15.4; + TestTargetID = 0A0000000000000000000060; + }; + }; + }; + buildConfigurationList = 0A0000000000000000000080 /* Build configuration list for PBXProject "XCoordinatorTestHost" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 0A0000000000000000000002; + packageReferences = ( + 0A00000000000000000000A0 /* XCLocalSwiftPackageReference "XCoordinator" */, + ); + productRefGroup = 0A0000000000000000000003 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0A0000000000000000000060 /* XCoordinatorTestHost */, + 0A0000000000000000000061 /* XCoordinatorTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0A0000000000000000000072 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0A0000000000000000000075 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0A0000000000000000000070 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0A0000000000000000000030 /* AppDelegate.swift in Sources */, + 0A0000000000000000000031 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0A0000000000000000000073 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0A0000000000000000000040 /* AnimationTests.swift in Sources */, + 0A0000000000000000000041 /* TestAnimation.swift in Sources */, + 0A0000000000000000000042 /* TestRoute.swift in Sources */, + 0A0000000000000000000043 /* TransitionTests.swift in Sources */, + 0A0000000000000000000044 /* XCText+Extras.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0A00000000000000000000B0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0A0000000000000000000060 /* XCoordinatorTestHost */; + targetProxy = 0A00000000000000000000B1 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0A0000000000000000000090 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 0A0000000000000000000091 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 0A0000000000000000000092 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS = NO; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = App/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = studios.quickbird.XCoordinatorTestHost; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 0A0000000000000000000093 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS = NO; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = App/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = studios.quickbird.XCoordinatorTestHost; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 0A0000000000000000000094 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = studios.quickbird.XCoordinatorTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/XCoordinatorTestHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/XCoordinatorTestHost"; + }; + name = Debug; + }; + 0A0000000000000000000095 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = studios.quickbird.XCoordinatorTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/XCoordinatorTestHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/XCoordinatorTestHost"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0A0000000000000000000080 /* Build configuration list for PBXProject "XCoordinatorTestHost" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0A0000000000000000000090 /* Debug */, + 0A0000000000000000000091 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0A0000000000000000000081 /* Build configuration list for PBXNativeTarget "XCoordinatorTestHost" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0A0000000000000000000092 /* Debug */, + 0A0000000000000000000093 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0A0000000000000000000082 /* Build configuration list for PBXNativeTarget "XCoordinatorTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0A0000000000000000000094 /* Debug */, + 0A0000000000000000000095 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 0A00000000000000000000A0 /* XCLocalSwiftPackageReference "XCoordinator" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ..; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 0A00000000000000000000A1 /* XCoordinator */ = { + isa = XCSwiftPackageProductDependency; + productName = XCoordinator; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 0A0000000000000000000001 /* Project object */; +} diff --git a/TestHost/XCoordinatorTestHost.xcodeproj/xcshareddata/xcschemes/XCoordinatorTestHost.xcscheme b/TestHost/XCoordinatorTestHost.xcodeproj/xcshareddata/xcschemes/XCoordinatorTestHost.xcscheme new file mode 100644 index 00000000..b33b7a93 --- /dev/null +++ b/TestHost/XCoordinatorTestHost.xcodeproj/xcshareddata/xcschemes/XCoordinatorTestHost.xcscheme @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/XCoordinatorTests/AnimationTests.swift b/Tests/XCoordinatorTests/AnimationTests.swift index 608b6e80..6c287be6 100644 --- a/Tests/XCoordinatorTests/AnimationTests.swift +++ b/Tests/XCoordinatorTests/AnimationTests.swift @@ -15,7 +15,7 @@ class AnimationTests: XCTestCase { // MARK: Stored properties - lazy var window = UIWindow() + lazy var window = makeWindow() // MARK: Tests @@ -43,13 +43,16 @@ class AnimationTests: XCTestCase { coordinator.setRoot(for: window) testStandardAnimationsCalled(on: coordinator) - testStaticAnimationCalled(on: coordinator, transition: { .select(tabs[1], animation: $0) }) + // UIKit only runs a custom tab-bar animator when an interaction controller is present, + // so the static (non-interactive) cases assert completion only, while the interactive + // cases assert the custom animation runs. + testCompletionCalled(on: coordinator, transition: { .select(tabs[1], animation: $0) }) testInteractiveAnimationCalled(on: coordinator, transition: { .select(tabs[2], animation: $0) }) - testStaticAnimationCalled(on: coordinator, transition: { .select(index: 1, animation: $0) }) + testCompletionCalled(on: coordinator, transition: { .select(index: 1, animation: $0) }) testInteractiveAnimationCalled(on: coordinator, transition: { .select(index: 2, animation: $0) }) - testStaticAnimationCalled( + testCompletionCalled( on: coordinator, transition: { .set([UIViewController(), UIViewController()], animation: $0) } ) @@ -122,7 +125,10 @@ class AnimationTests: XCTestCase { coordinator.performTransition(t, with: TransitionOptions(animated: true)) { completionExpectation.fulfill() } - wait(for: [animationExpectation, completionExpectation], timeout: 3, enforceOrder: true) + // Order is not enforced: for container transitions (tab bar / navigation) UIKit + // may invoke the animator and fire the completion in either order. What matters + // is that both happen — the animation runs and the completion is called. + wait(for: [animationExpectation, completionExpectation], timeout: 3) asyncWait(for: 0.1) } @@ -140,7 +146,28 @@ class AnimationTests: XCTestCase { completionExpectation.fulfill() _ = testAnimation } - wait(for: [animationExpectation, completionExpectation], timeout: 3, enforceOrder: true) + // Order is not enforced: for container transitions (tab bar / navigation) UIKit + // may invoke the animator and fire the completion in either order. What matters + // is that both happen — the animation runs and the completion is called. + wait(for: [animationExpectation, completionExpectation], timeout: 3) + asyncWait(for: 0.1) + } + + /// Verifies only that the completion handler fires. + /// + /// Used for *static* programmatic `UITabBarController` selection / `set`: UIKit only invokes + /// a custom tab-bar animator when an interaction controller is present, so for these + /// transitions iOS performs the switch without running the custom animation. The interactive + /// variants (which UIKit does animate) cover the animation wiring; here we assert the + /// transition still completes. + private func testCompletionCalled(on coordinator: C, + transition: (Animation) -> Transition) { + let completionExpectation = expectation(description: "Completion \(Date().timeIntervalSince1970)") + let t = transition(.default) + coordinator.performTransition(t, with: TransitionOptions(animated: true)) { + completionExpectation.fulfill() + } + wait(for: [completionExpectation], timeout: 3) asyncWait(for: 0.1) } } diff --git a/Tests/XCoordinatorTests/TestAnimation.swift b/Tests/XCoordinatorTests/TestAnimation.swift index 4dd6e1f0..d224c8a3 100644 --- a/Tests/XCoordinatorTests/TestAnimation.swift +++ b/Tests/XCoordinatorTests/TestAnimation.swift @@ -26,16 +26,24 @@ class TestAnimation: Animation { } private static func interactiveTransitionAnimation(for expectation: XCTestExpectation?) -> TransitionAnimation { - InteractiveTransitionAnimation(duration: 0.1) { + InteractiveTransitionAnimation(duration: 0.1) { context in expectation?.fulfill() - $0.completeTransition(true) + // Complete asynchronously, like a real animator does after its duration. + // Completing synchronously finishes the transition before UIKit's + // transitionCoordinator-based completion can register, which drops the + // completion handler (notably for navigation push/pop and tab selection). + DispatchQueue.main.async { + context.completeTransition(true) + } } } private static func staticTransitionAnimation(for expectation: XCTestExpectation?) -> TransitionAnimation { - StaticTransitionAnimation(duration: 0.1) { + StaticTransitionAnimation(duration: 0.1) { context in expectation?.fulfill() - $0.completeTransition(true) + DispatchQueue.main.async { + context.completeTransition(true) + } } } diff --git a/Tests/XCoordinatorTests/TransitionTests.swift b/Tests/XCoordinatorTests/TransitionTests.swift index c7b7bb1a..c67014d8 100644 --- a/Tests/XCoordinatorTests/TransitionTests.swift +++ b/Tests/XCoordinatorTests/TransitionTests.swift @@ -15,7 +15,7 @@ class TransitionTests: XCTestCase { // MARK: Stored properties - lazy var window = UIWindow() + lazy var window = makeWindow() // MARK: Tests diff --git a/Tests/XCoordinatorTests/XCText+Extras.swift b/Tests/XCoordinatorTests/XCText+Extras.swift index ddab2fa3..47fd6761 100644 --- a/Tests/XCoordinatorTests/XCText+Extras.swift +++ b/Tests/XCoordinatorTests/XCText+Extras.swift @@ -7,10 +7,27 @@ // import Foundation +import UIKit import XCTest extension XCTestCase { + /// Creates a window attached to the host app's foreground `UIWindowScene`. + /// + /// UIKit only renders windows that belong to an active scene, and navigation + /// push/pop animations only run (and call their completion) when the controller + /// is actually on screen. A bare `UIWindow()` has no scene and never renders, + /// so the tests use the scene provided by the test-host application. + @MainActor + func makeWindow() -> UIWindow { + let windowScenes = UIApplication.shared.connectedScenes.compactMap { $0 as? UIWindowScene } + let scene = windowScenes.first { $0.activationState == .foregroundActive } ?? windowScenes.first + if let scene { + return UIWindow(windowScene: scene) + } + return UIWindow(frame: UIScreen.main.bounds) + } + func asyncWait(for timeInterval: TimeInterval) { let waitExpectation = self.expectation(description: "WAIT \(Date().timeIntervalSince1970)") DispatchQueue.global(qos: .userInitiated).asyncAfter(deadline: .now() + timeInterval) { diff --git a/XCoordinator.podspec b/XCoordinator.podspec index 05b80ebb..73ed2409 100644 --- a/XCoordinator.podspec +++ b/XCoordinator.podspec @@ -8,8 +8,8 @@ Pod::Spec.new do |spec| spec.source = { :git => 'https://github.com/quickbirdstudios/XCoordinator.git', :tag => spec.version } spec.module_name = 'XCoordinator' spec.swift_version = '5.9' - spec.ios.deployment_target = '14.0' - spec.tvos.deployment_target = '14.0' + spec.ios.deployment_target = '16.0' + spec.tvos.deployment_target = '16.0' spec.source_files = 'Sources/XCoordinator/**/*.swift' spec.default_subspec = 'Core' From 4c341deb95f0f55f4fa591cf9c9cec51c840f680 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 1 Jun 2026 16:41:16 +0200 Subject: [PATCH 34/35] Add SwiftUI-related tests and improve/fix implementation --- .github/workflows/ci.yml | 10 ++ README.md | 25 ++-- Scripts/docs_preview.sh | 4 +- .../XCoordinator/Combine/Router+Combine.swift | 54 +++++--- .../Coordinators/BaseCoordinator.swift | 12 +- .../Coordinators/Coordinator.swift | 11 +- .../XCoordinator/Coordinators/Router.swift | 6 + .../XCoordinator/Split/SplitCoordinator.swift | 20 ++- .../XCoordinator/SwiftUI/RoutingContext.swift | 2 +- .../SwiftUI/RoutingController.swift | 54 ++++++-- .../XCoordinator/SwiftUI/View+Trigger.swift | 7 +- .../XCoordinator/SwiftUI/WrappedRouter.swift | 33 ++++- .../XCoordinator/Tab/TabBarCoordinator.swift | 52 ++++--- .../Transitions/TransitionOptions.swift | 3 +- .../XCoordinator/View/ViewCoordinator.swift | 12 +- .../XCoordinator.docc/Documentation.md | 17 ++- .../project.pbxproj | 32 ++++- .../XCoordinatorTests/AsyncCombineTests.swift | 73 ++++++++++ .../SwiftUIRoutingTests.swift | 128 ++++++++++++++++++ .../TabSplitBindingTests.swift | 68 ++++++++++ .../TransitionBuilderTests.swift | 59 ++++++++ .../TransitionSwiftUITests.swift | 53 ++++++++ .../TriggerModifierTests.swift | 116 ++++++++++++++++ ...CText+Extras.swift => XCTest+Extras.swift} | 0 24 files changed, 757 insertions(+), 94 deletions(-) create mode 100644 Tests/XCoordinatorTests/AsyncCombineTests.swift create mode 100644 Tests/XCoordinatorTests/SwiftUIRoutingTests.swift create mode 100644 Tests/XCoordinatorTests/TabSplitBindingTests.swift create mode 100644 Tests/XCoordinatorTests/TransitionBuilderTests.swift create mode 100644 Tests/XCoordinatorTests/TransitionSwiftUITests.swift create mode 100644 Tests/XCoordinatorTests/TriggerModifierTests.swift rename Tests/XCoordinatorTests/{XCText+Extras.swift => XCTest+Extras.swift} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ceeb574a..8f6a65ec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,16 @@ jobs: - name: Build (iOS Simulator) run: Scripts/build.sh + - name: Build (tvOS) + # Generic tvOS build (no simulator runtime required) so tvOS support — advertised in the + # podspec/README — is actually compiled in CI. + run: | + xcodebuild build \ + -scheme XCoordinator \ + -destination 'generic/platform=tvOS' \ + -skipPackagePluginValidation \ + CODE_SIGNING_ALLOWED=NO + - name: Test run: Scripts/test.sh diff --git a/README.md b/README.md index e512291b..e8bc74d2 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![CI](https://github.com/quickbirdstudios/XCoordinator/actions/workflows/ci.yml/badge.svg)](https://github.com/quickbirdstudios/XCoordinator/actions/workflows/ci.yml) [![Swift](https://img.shields.io/badge/Swift-5.9-orange.svg)](https://swift.org) -[![Platforms](https://img.shields.io/badge/platforms-iOS%2014%20%7C%20tvOS%2014-lightgrey.svg)](https://github.com/quickbirdstudios/XCoordinator) +[![Platforms](https://img.shields.io/badge/platforms-iOS%2016%20%7C%20tvOS%2016-lightgrey.svg)](https://github.com/quickbirdstudios/XCoordinator) [![SwiftPM](https://img.shields.io/badge/SPM-compatible-brightgreen.svg)](https://swift.org/package-manager/) [![CocoaPods](https://img.shields.io/cocoapods/v/XCoordinator)](https://cocoapods.org/pods/XCoordinator) [![License](https://img.shields.io/cocoapods/l/XCoordinator.svg)](LICENSE) @@ -268,7 +268,7 @@ Alternatively, two sibling coordinators can share the same `rootViewController` ## 🔀 Combine and RxSwift -The Combine extensions are built into the main `XCoordinator` module. Use `router.publishers.trigger(_:)` to obtain a `Future` for a triggered route: +The Combine extensions are built into the main `XCoordinator` module. Use `router.publishers.trigger(_:)` to obtain a publisher for a triggered route. The publisher is **lazy** — the transition is performed when you subscribe, not when the publisher is created: ```swift router.publishers.trigger(.home) @@ -284,7 +284,7 @@ router.rx.trigger(.home) ## ⬆️ Migrating from 2.x to 3.0 -3.0 removes the type-erased router wrappers and folds Combine into the main module. Migration is mechanical: +3.0 removes the type-erased router/coordinator wrappers, replaces the `TransitionPerformer`/`TransitionProtocol` layer with the single generic `Transition`, and folds Combine into the main module. Most of the migration is mechanical: | 2.x | 3.0 | | --- | --- | @@ -292,9 +292,18 @@ router.rx.trigger(.home) | `StrongRouter` | `any Router` | | `WeakRouter` | `weak var router: (any Router)?` | | `UnownedRouter` | `unowned let router: any Router` | -| `coordinator.unownedRouter` | pass `self` directly or capture explicitly | +| `WeakErased` / `UnownedErased` | use `weak`/`unowned` on an `any Router` directly | +| `coordinator.unownedRouter` / `coordinator.weakRouter` | pass `self` directly or capture explicitly with `unowned`/`weak` | +| `AnyCoordinator<…>` / `coordinator.anyCoordinator` | use the coordinator directly, or `any Router` where erasure is needed | +| `TransitionPerformer`, `TransitionProtocol`, `AnyTransitionPerformer` | removed — coordinators now use `Transition` directly | +| `Coordinator.TransitionType` associatedtype | removed — `prepareTransition(for:)` returns `Transition`; specify `RootViewController` instead of `TransitionType` | | `pod 'XCoordinator/Combine'` | the Combine extensions are bundled into `XCoordinator` | +### Other breaking changes + +- **Minimum platforms raised to iOS 16 / tvOS 16** (from iOS 9 / tvOS 9), and the package now uses **swift-tools 5.9** (Xcode 15+). +- **Combine publishers are now lazy.** `router.publishers.trigger(_:)` / `triggerPublisher(_:)` previously returned an eager `Future` that fired the transition immediately on creation; they now return a lazy `AnyPublisher` that performs the transition on **subscription**. Make sure you subscribe (e.g. `.sink`) to actually run the navigation. + The SwiftUI interop layer (`RoutingController`, `WrappedRouter`, `@Routing`, `Transition.withAnimation`, …) is new in 3.0 — see [SwiftUI interop](#-swiftui-interop). ## 🛠 Installation @@ -325,15 +334,9 @@ pod 'XCoordinator/RxSwift', '~> 3.0' Combine is bundled into the main pod; no separate subspec is needed. -### Carthage - -``` -github "quickbirdstudios/XCoordinator" ~> 3.0 -``` - ## ✅ Requirements -- iOS 14 / tvOS 14 +- iOS 16 / tvOS 16 - Swift 5.9 - Xcode 15 diff --git a/Scripts/docs_preview.sh b/Scripts/docs_preview.sh index ed2f2705..5d04ad7a 100755 --- a/Scripts/docs_preview.sh +++ b/Scripts/docs_preview.sh @@ -10,8 +10,8 @@ cd "$(dirname "$0")/.." echo "1. Building documentation archive for iOS..." (./Scripts/docs.sh) -# Locate the generated archive -DOCC_ARCHIVE=$(find .build/Documentation -type d -name "XCoordinator.doccarchive" | head -n 1) +# Locate the generated archive (docs.sh builds into .build/docs-derived-data) +DOCC_ARCHIVE=$(find .build/docs-derived-data -type d -name "XCoordinator.doccarchive" | head -n 1) if [ -z "$DOCC_ARCHIVE" ]; then echo "Error: Could not find the generated XCoordinator.doccarchive artifact." diff --git a/Sources/XCoordinator/Combine/Router+Combine.swift b/Sources/XCoordinator/Combine/Router+Combine.swift index 1e175880..ed4f2c55 100644 --- a/Sources/XCoordinator/Combine/Router+Combine.swift +++ b/Sources/XCoordinator/Combine/Router+Combine.swift @@ -28,60 +28,70 @@ extension Router { /// The Combine namespace for this router. /// - /// Use `router.publishers.trigger(_:)` to obtain a `Future` that completes when the - /// route's transition finishes. + /// Use `router.publishers.trigger(_:)` to obtain a publisher that performs the route's transition + /// when subscribed to and completes when the transition finishes. public var publishers: PublisherExtension { .init(base: self) } /// - /// Triggers a route and returns a future that completes when the transition finishes. + /// Triggers a route and returns a publisher that completes when the transition finishes. /// - /// Prefer the convenience accessor ``publishers`` for new code: `router.publishers.trigger(.home)`. + /// The transition is performed on **subscription** (the returned publisher is lazy), so no + /// navigation happens until a subscriber attaches. Prefer the convenience accessor ``publishers`` + /// for new code: `router.publishers.trigger(.home)`. /// /// - Parameters: /// - route: The route to trigger. /// - options: Transition options. Defaults to animated. - /// - Returns: A `Future` that emits `()` and finishes once the transition completes. + /// - Returns: A publisher that emits `()` and finishes once the transition completes. /// public func triggerPublisher( _ route: RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future { - Future { completion in - self.trigger(route, with: options) { - completion(.success(())) + ) -> AnyPublisher { + Deferred { + Future { completion in + self.trigger(route, with: options) { + completion(.success(())) + } } } + .eraseToAnyPublisher() } /// - /// Triggers a route and returns a future that emits the resulting transition context. + /// Triggers a route and returns a publisher that emits the resulting transition context. /// - /// Useful for deep linking. Prefer ``publishers`` for new code: - /// `router.publishers.contextTrigger(.home)`. + /// The transition is performed on **subscription** (the returned publisher is lazy). Useful for + /// deep linking. Prefer ``publishers`` for new code: `router.publishers.contextTrigger(.home)`. /// /// - Parameters: /// - route: The route to trigger. /// - options: Transition options. Defaults to animated. - /// - Returns: A `Future` that emits the transition context and finishes. + /// - Returns: A publisher that emits the transition context and finishes. /// public func contextTriggerPublisher( _ route: RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future { - Future { completion in - self.contextTrigger(route, with: options) { - completion(.success($0)) + ) -> AnyPublisher { + Deferred { + Future { completion in + self.contextTrigger(route, with: options) { + completion(.success($0)) + } } } + .eraseToAnyPublisher() } } extension PublisherExtension where Base: Router { - /// Triggers a route on the wrapped router and returns a future that completes when the transition finishes. + /// Triggers a route on the wrapped router and returns a publisher that completes when the transition finishes. + /// + /// The transition is performed on subscription (lazy). /// /// - Parameters: /// - route: The route to trigger. @@ -89,11 +99,13 @@ extension PublisherExtension where Base: Router { public func trigger( _ route: Base.RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future { + ) -> AnyPublisher { base.triggerPublisher(route, with: options) } - /// Triggers a route on the wrapped router and returns a future emitting the resulting transition context. + /// Triggers a route on the wrapped router and returns a publisher emitting the resulting transition context. + /// + /// The transition is performed on subscription (lazy). /// /// - Parameters: /// - route: The route to trigger. @@ -101,7 +113,7 @@ extension PublisherExtension where Base: Router { public func contextTrigger( _ route: Base.RouteType, with options: TransitionOptions = .init(animated: true) - ) -> Future { + ) -> AnyPublisher { base.contextTriggerPublisher(route, with: options) } diff --git a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift index f9e7ff86..1ae1b1ef 100755 --- a/Sources/XCoordinator/Coordinators/BaseCoordinator.swift +++ b/Sources/XCoordinator/Coordinators/BaseCoordinator.swift @@ -85,6 +85,12 @@ open class BaseCoordinator` — i.e. the + /// same `RouteType` *and* the same `RootViewController`. It intentionally does not search child + /// coordinators; deep linking traverses the coordinator tree via the transition's `presentables` + /// (see `DeepLinking.swift`), and SwiftUI lookups register routers explicitly in the `RoutingContext`. public func router(for route: R.Type) -> (any Router)? { self as? BaseCoordinator } @@ -132,7 +138,11 @@ open class BaseCoordinator) { - guard !UIApplication.shared.windows.contains(where: { $0.isKeyWindow }) else { + let hasKeyWindow = UIApplication.shared.connectedScenes + .compactMap { $0 as? UIWindowScene } + .flatMap(\.windows) + .contains(where: \.isKeyWindow) + guard !hasKeyWindow else { return performTransition(transition, with: TransitionOptions(animated: false)) } diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index bf2405f9..ab312ded 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -122,9 +122,14 @@ extension Coordinator where Self: AnyObject { with options: TransitionOptions, completion: PresentationHandler? = nil) { #if canImport(SwiftUI) - if #available(iOS 13, tvOS 13, *) { - for presentable in transition.presentables { - (presentable as? RoutingContextProvider)?.routingContext.add(self) + for presentable in transition.presentables { + // The provider is usually the presentable's view controller (a `RoutingController`), + // not the presentable (a coordinator) itself — so check both. + if let provider = presentable as? RoutingContextProvider { + provider.routingContext.add(self) + } else if let viewController = presentable.viewController, + let provider = viewController as? RoutingContextProvider { + provider.routingContext.add(self) } } #endif diff --git a/Sources/XCoordinator/Coordinators/Router.swift b/Sources/XCoordinator/Coordinators/Router.swift index 61c57a26..76c8f4c0 100755 --- a/Sources/XCoordinator/Coordinators/Router.swift +++ b/Sources/XCoordinator/Coordinators/Router.swift @@ -125,7 +125,13 @@ extension Router { /// @MainActor public func contextTrigger(_ route: RouteType, with options: TransitionOptions) async -> any TransitionContext { await withCheckedContinuation { continuation in + // Some transitions (e.g. interactive ones, or custom `Transition.PerformClosure`s) may invoke + // their completion more than once. A checked continuation must be resumed exactly once, so we + // guard against the redundant calls to avoid a hard crash. + var resumed = false contextTrigger(route, with: options) { context in + guard !resumed else { return } + resumed = true continuation.resume(returning: context) } } diff --git a/Sources/XCoordinator/Split/SplitCoordinator.swift b/Sources/XCoordinator/Split/SplitCoordinator.swift index 169d95d9..5a8c804f 100755 --- a/Sources/XCoordinator/Split/SplitCoordinator.swift +++ b/Sources/XCoordinator/Split/SplitCoordinator.swift @@ -58,11 +58,25 @@ open class SplitCoordinator: BaseCoordinator: UIHostingController Void @@ -43,18 +62,18 @@ public class RoutingController: UIHostingController Void ) { - self.routingContext = context + self._box = ObservedObject(wrappedValue: box) self.content = content self.onUpdate = onUpdate } @@ -63,9 +82,16 @@ public class RoutingController: UIHostingController: UIHostingController Void)? + let box = RoutingContextBox(context) + self.box = box super.init( rootView: InjectorView( - context: context, + box: box, content: rootView - ) { updatedContext in - onUpdate?(updatedContext) + ) { [box] updatedContext in + // Merge routers flowing UP via the PreferenceKey back into the injected context. + box.context.add(updatedContext) } ) - onUpdate = { [weak self] updatedContext in - self?.routingContext = updatedContext - } } /// @@ -111,7 +135,7 @@ public class RoutingController: UIHostingController: ViewModifier { // MARK: Properties @@ -29,8 +28,9 @@ private struct TriggerViewModifier: ViewModif func body(content: Content) -> some View { content.task(id: item, priority: priority) { - guard skipFirst || !isFirstCall else { - isFirstCall = false + let wasFirst = isFirstCall + isFirstCall = false + guard !(skipFirst && wasFirst) else { return } guard let route = route() else { @@ -43,7 +43,6 @@ private struct TriggerViewModifier: ViewModif } -@available(iOS 15, tvOS 15, *) extension View { /// diff --git a/Sources/XCoordinator/SwiftUI/WrappedRouter.swift b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift index a13b333d..9ad6aa0d 100644 --- a/Sources/XCoordinator/SwiftUI/WrappedRouter.swift +++ b/Sources/XCoordinator/SwiftUI/WrappedRouter.swift @@ -29,23 +29,44 @@ import SwiftUI /// public struct WrappedRouter: View { + // MARK: Nested Types + + /// Holds the lazily-created router and its routing context for the lifetime of the view. + /// + /// This is a reference type so the router is created exactly once and the context can be built + /// without mutating SwiftUI `@State` during a view update. + @MainActor + private final class Holder: ObservableObject { + private var router: RouterType? + private(set) var routingContext = RoutingContext() + + func makeRouter(_ create: () -> RouterType) -> RouterType { + if let router { + return router + } + let router = create() + routingContext.add(router) + self.router = router + return router + } + } + // MARK: Stored Properties - @State private var routingContext = RoutingContext() + @StateObject private var holder = Holder() private let create: () -> RouterType private let update: (UIViewController, any RepresentableContext) -> Void // MARK: Computed Properties public var body: some View { - Representable { - let router = create() - routingContext.add(router) - return router + let router = holder.makeRouter(create) + return Representable { + router } update: { update($0, $1) } - .routingContext(routingContext) + .routingContext(holder.routingContext) } // MARK: Initialization diff --git a/Sources/XCoordinator/Tab/TabBarCoordinator.swift b/Sources/XCoordinator/Tab/TabBarCoordinator.swift index 085e1358..02053172 100755 --- a/Sources/XCoordinator/Tab/TabBarCoordinator.swift +++ b/Sources/XCoordinator/Tab/TabBarCoordinator.swift @@ -160,27 +160,37 @@ open class TabBarCoordinator: BaseCoordinator, content: (Items.Element) -> UIViewController ) where Items.Index == Int, Items.Element: Equatable { + // Work against a 0-based array so the tab bar's 0-based selectedIndex always lines up + // with both `tabs` and the items (the source collection's indices may be offset, e.g. a slice). + let items = Array(items) let tabs = items.map(content) - let selectedTab = tabs[items.firstIndex(of: selection.wrappedValue) ?? 0] if rootViewController.delegate == nil { rootViewController.delegate = animationDelegate } - super.init(rootViewController: rootViewController, - initialTransition: .multiple(.set(tabs), .select(selectedTab))) - + + if let selectedOffset = items.firstIndex(of: selection.wrappedValue) { + super.init(rootViewController: rootViewController, + initialTransition: .multiple(.set(tabs), .select(tabs[selectedOffset]))) + } else { + super.init(rootViewController: rootViewController, initialTransition: .set(tabs)) + } + let cancellable = Publishers.Merge( rootViewController - .publisher(for: \.selectedViewController) + .publisher(for: \.selectedViewController, options: [.new]) .compactMap { [weak self] _ in self?.rootViewController.selectedIndex }, rootViewController - .publisher(for: \.selectedIndex) + .publisher(for: \.selectedIndex, options: [.new]) ) .removeDuplicates() .receive(on: DispatchQueue.main) - .sink { selection.wrappedValue = items[$0] } + .sink { index in + guard items.indices.contains(index) else { return } + selection.wrappedValue = items[index] + } strongReferences.append(cancellable) } - + /// /// Creates a tab bar coordinator whose selection is a `CaseIterable & Equatable` enum. /// @@ -197,24 +207,34 @@ open class TabBarCoordinator: BaseCoordinator, content: (Item) -> UIViewController ) where Item.AllCases.Index == Int { - let tabs = Item.allCases.map(content) - let selectedTab = tabs[Item.allCases.firstIndex(of: selection.wrappedValue) ?? 0] + // Work against a 0-based array so the tab bar's 0-based selectedIndex always lines up + // with both `tabs` and the cases (AllCases indices may be offset). + let cases = Array(Item.allCases) + let tabs = cases.map(content) if rootViewController.delegate == nil { rootViewController.delegate = animationDelegate } - super.init(rootViewController: rootViewController, - initialTransition: .multiple(.set(tabs), .select(selectedTab))) - + + if let selectedOffset = cases.firstIndex(of: selection.wrappedValue) { + super.init(rootViewController: rootViewController, + initialTransition: .multiple(.set(tabs), .select(tabs[selectedOffset]))) + } else { + super.init(rootViewController: rootViewController, initialTransition: .set(tabs)) + } + let cancellable = Publishers.Merge( rootViewController - .publisher(for: \.selectedViewController) + .publisher(for: \.selectedViewController, options: [.new]) .compactMap { [weak self] _ in self?.rootViewController.selectedIndex }, rootViewController - .publisher(for: \.selectedIndex) + .publisher(for: \.selectedIndex, options: [.new]) ) .removeDuplicates() .receive(on: DispatchQueue.main) - .sink { selection.wrappedValue = Item.allCases[$0] } + .sink { index in + guard cases.indices.contains(index) else { return } + selection.wrappedValue = cases[index] + } strongReferences.append(cancellable) } #endif diff --git a/Sources/XCoordinator/Transitions/TransitionOptions.swift b/Sources/XCoordinator/Transitions/TransitionOptions.swift index b6d77a32..96b45efc 100755 --- a/Sources/XCoordinator/Transitions/TransitionOptions.swift +++ b/Sources/XCoordinator/Transitions/TransitionOptions.swift @@ -39,7 +39,8 @@ public struct TransitionOptions { // MARK: Static computed properties - static var `default`: TransitionOptions { + /// The default transition options (animated). + public static var `default`: TransitionOptions { TransitionOptions(animated: true) } diff --git a/Sources/XCoordinator/View/ViewCoordinator.swift b/Sources/XCoordinator/View/ViewCoordinator.swift index 89af01fe..97bb9519 100755 --- a/Sources/XCoordinator/View/ViewCoordinator.swift +++ b/Sources/XCoordinator/View/ViewCoordinator.swift @@ -73,10 +73,12 @@ open class ViewCoordinator: BaseCoordinator Content ) { + let controller = RoutingController(rootView: body()) super.init( - rootViewController: RoutingController(rootView: body()), + rootViewController: controller, initialRoute: initialRoute ) + controller.routingContext.add(self) } /// @@ -89,10 +91,12 @@ open class ViewCoordinator: BaseCoordinator Content ) { + let controller = RoutingController(rootView: body()) super.init( - rootViewController: RoutingController(rootView: body()), + rootViewController: controller, initialTransition: initialTransition ) + controller.routingContext.add(self) } /// @@ -106,10 +110,12 @@ open class ViewCoordinator: BaseCoordinator initialTransition: () -> ViewTransition, @ViewBuilder body: () -> Content ) { + let controller = RoutingController(rootView: body()) super.init( - rootViewController: RoutingController(rootView: body()), + rootViewController: controller, initialTransition: initialTransition() ) + controller.routingContext.add(self) } #endif diff --git a/Sources/XCoordinator/XCoordinator.docc/Documentation.md b/Sources/XCoordinator/XCoordinator.docc/Documentation.md index 4f9d423b..80ecc62c 100644 --- a/Sources/XCoordinator/XCoordinator.docc/Documentation.md +++ b/Sources/XCoordinator/XCoordinator.docc/Documentation.md @@ -242,14 +242,16 @@ class ChildCoordinator: RedirectionRouter { ## Combine and RxSwift -The Combine extensions ship in the main `XCoordinator` module. Use `router.publishers.trigger(_:)` to obtain a `Future` for a triggered route: +The Combine extensions ship in the main `XCoordinator` module. Use `router.publishers.trigger(_:)` to obtain a publisher that performs the route's transition on subscription and completes when it finishes: ```swift router.publishers.trigger(.home) .sink { /* transition finished */ } ``` -For RxSwift, add the `XCoordinatorRx` product. The `router.rx.trigger(_:)` accessor returns a `Single`: +> Note: The returned publisher is lazy — the transition is performed when you subscribe (e.g. `.sink`), not when the publisher is created. + +For RxSwift, add the `XCoordinatorRx` product. The `router.rx.trigger(_:)` accessor returns an `Observable`: ```swift router.rx.trigger(.home) @@ -262,7 +264,7 @@ The available transitions depend on the coordinator's `RootViewController` type. - `present` / `presentOnRoot` — present on top of the view hierarchy - `dismiss` / `dismissToRoot` -- `embed` — embed a view controller in a container view +- `embed` — embed a view controller in a container (any ``Container`` — both `UIView` and `UIViewController` conform) - `none` — no-op (useful in tests or to ignore routes) `NavigationTransition` (``NavigationCoordinator``) additionally provides `push`, `pop`, and `popToRoot`. ``TabBarCoordinator``, ``SplitCoordinator``, and ``PageCoordinator`` each provide transitions specific to their root view controller. @@ -292,6 +294,7 @@ The available transitions depend on the coordinator's `RootViewController` type. - ``Transition`` - ``TransitionContext`` - ``TransitionOptions`` +- ``Container`` - ``NavigationTransition`` - ``TabBarTransition`` - ``SplitTransition`` @@ -309,6 +312,14 @@ The available transitions depend on the coordinator's `RootViewController` type. - ``StaticTransitionAnimation`` - ``InteractiveTransitionAnimation`` - ``InterruptibleTransitionAnimation`` +- ``PercentDrivenInteractionController`` +- ``NavigationAnimationDelegate`` +- ``TabBarAnimationDelegate`` +- ``PageCoordinatorDataSource`` + +### Combine + +- ``PublisherExtension`` ### SwiftUI diff --git a/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj b/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj index db0f08b5..3f25aebc 100644 --- a/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj +++ b/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj @@ -13,7 +13,13 @@ 0A0000000000000000000041 /* TestAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000021 /* TestAnimation.swift */; }; 0A0000000000000000000042 /* TestRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000022 /* TestRoute.swift */; }; 0A0000000000000000000043 /* TransitionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000023 /* TransitionTests.swift */; }; - 0A0000000000000000000044 /* XCText+Extras.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000024 /* XCText+Extras.swift */; }; + 0A0000000000000000000044 /* XCTest+Extras.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000024 /* XCTest+Extras.swift */; }; + 0A0000000000000000000045 /* SwiftUIRoutingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000025 /* SwiftUIRoutingTests.swift */; }; + 0A0000000000000000000046 /* TriggerModifierTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000026 /* TriggerModifierTests.swift */; }; + 0A0000000000000000000047 /* TransitionSwiftUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000027 /* TransitionSwiftUITests.swift */; }; + 0A0000000000000000000048 /* TransitionBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000028 /* TransitionBuilderTests.swift */; }; + 0A0000000000000000000049 /* AsyncCombineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000029 /* AsyncCombineTests.swift */; }; + 0A000000000000000000004A /* TabSplitBindingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A000000000000000000002A /* TabSplitBindingTests.swift */; }; 0A0000000000000000000050 /* XCoordinator in Frameworks */ = {isa = PBXBuildFile; productRef = 0A00000000000000000000A1 /* XCoordinator */; }; /* End PBXBuildFile section */ @@ -37,7 +43,13 @@ 0A0000000000000000000021 /* TestAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestAnimation.swift; sourceTree = ""; }; 0A0000000000000000000022 /* TestRoute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestRoute.swift; sourceTree = ""; }; 0A0000000000000000000023 /* TransitionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransitionTests.swift; sourceTree = ""; }; - 0A0000000000000000000024 /* XCText+Extras.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCText+Extras.swift"; sourceTree = ""; }; + 0A0000000000000000000024 /* XCTest+Extras.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCTest+Extras.swift"; sourceTree = ""; }; + 0A0000000000000000000025 /* SwiftUIRoutingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIRoutingTests.swift; sourceTree = ""; }; + 0A0000000000000000000026 /* TriggerModifierTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TriggerModifierTests.swift; sourceTree = ""; }; + 0A0000000000000000000027 /* TransitionSwiftUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransitionSwiftUITests.swift; sourceTree = ""; }; + 0A0000000000000000000028 /* TransitionBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransitionBuilderTests.swift; sourceTree = ""; }; + 0A0000000000000000000029 /* AsyncCombineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncCombineTests.swift; sourceTree = ""; }; + 0A000000000000000000002A /* TabSplitBindingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSplitBindingTests.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -94,7 +106,13 @@ 0A0000000000000000000021 /* TestAnimation.swift */, 0A0000000000000000000022 /* TestRoute.swift */, 0A0000000000000000000023 /* TransitionTests.swift */, - 0A0000000000000000000024 /* XCText+Extras.swift */, + 0A0000000000000000000024 /* XCTest+Extras.swift */, + 0A0000000000000000000025 /* SwiftUIRoutingTests.swift */, + 0A0000000000000000000026 /* TriggerModifierTests.swift */, + 0A0000000000000000000027 /* TransitionSwiftUITests.swift */, + 0A0000000000000000000028 /* TransitionBuilderTests.swift */, + 0A0000000000000000000029 /* AsyncCombineTests.swift */, + 0A000000000000000000002A /* TabSplitBindingTests.swift */, ); name = XCoordinatorTests; path = ../Tests/XCoordinatorTests; @@ -219,7 +237,13 @@ 0A0000000000000000000041 /* TestAnimation.swift in Sources */, 0A0000000000000000000042 /* TestRoute.swift in Sources */, 0A0000000000000000000043 /* TransitionTests.swift in Sources */, - 0A0000000000000000000044 /* XCText+Extras.swift in Sources */, + 0A0000000000000000000044 /* XCTest+Extras.swift in Sources */, + 0A0000000000000000000045 /* SwiftUIRoutingTests.swift in Sources */, + 0A0000000000000000000046 /* TriggerModifierTests.swift in Sources */, + 0A0000000000000000000047 /* TransitionSwiftUITests.swift in Sources */, + 0A0000000000000000000048 /* TransitionBuilderTests.swift in Sources */, + 0A0000000000000000000049 /* AsyncCombineTests.swift in Sources */, + 0A000000000000000000004A /* TabSplitBindingTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Tests/XCoordinatorTests/AsyncCombineTests.swift b/Tests/XCoordinatorTests/AsyncCombineTests.swift new file mode 100644 index 00000000..f1b8dbd2 --- /dev/null +++ b/Tests/XCoordinatorTests/AsyncCombineTests.swift @@ -0,0 +1,73 @@ +// +// AsyncCombineTests.swift +// XCoordinatorTests +// +// Verifies async trigger, the continuation once-guard, and lazy Combine publishers. +// + +import Combine +import UIKit +import XCoordinator +import XCTest + +/// Records how many times `prepareTransition` runs and performs a no-op transition. +@MainActor +private final class NoopCoordinator: ViewCoordinator { + + private(set) var prepareCount = 0 + + init() { + super.init(rootViewController: UIViewController()) + } + + override func prepareTransition(for route: TestRoute) -> ViewTransition { + prepareCount += 1 + return .none() + } +} + +/// Returns a transition whose perform closure invokes its completion twice. +@MainActor +private final class DoubleCompletionCoordinator: ViewCoordinator { + + init() { + super.init(rootViewController: UIViewController()) + } + + override func prepareTransition(for route: TestRoute) -> ViewTransition { + Transition(presentables: [], animationInUse: nil) { _, _, completion in + completion?() + completion?() + } + } +} + +@MainActor +final class AsyncCombineTests: XCTestCase { + + func testAsyncTriggerCompletes() async { + let coordinator = NoopCoordinator() + await coordinator.trigger(.home) + XCTAssertEqual(coordinator.prepareCount, 1) + } + + /// A transition that fires its completion twice must not crash the awaiting continuation. + func testAsyncTriggerSurvivesDoubleCompletion() async { + let coordinator = DoubleCompletionCoordinator() + _ = await coordinator.contextTrigger(.home, with: .init(animated: false)) + } + + /// `router.publishers.trigger` must be lazy: no transition until a subscriber attaches. + func testCombinePublisherIsLazy() { + let coordinator = NoopCoordinator() + let publisher = coordinator.publishers.trigger(.home) + XCTAssertEqual(coordinator.prepareCount, 0, + "the publisher must not perform the transition before subscription") + + let completed = expectation(description: "completed") + let cancellable = publisher.sink { _ in completed.fulfill() } + wait(for: [completed], timeout: 3) + XCTAssertEqual(coordinator.prepareCount, 1) + _ = cancellable + } +} diff --git a/Tests/XCoordinatorTests/SwiftUIRoutingTests.swift b/Tests/XCoordinatorTests/SwiftUIRoutingTests.swift new file mode 100644 index 00000000..a6d6ed44 --- /dev/null +++ b/Tests/XCoordinatorTests/SwiftUIRoutingTests.swift @@ -0,0 +1,128 @@ +// +// SwiftUIRoutingTests.swift +// XCoordinatorTests +// +// Verifies that the SwiftUI routing context propagates so `@Routing` resolves. +// + +import SwiftUI +import UIKit +import XCoordinator +import XCTest + +/// A SwiftUI view that resolves `@Routing` from the environment and reports the result. +/// +/// Uses the projected value's subscript (rather than `wrappedValue`) so a missing router reports +/// `nil` instead of triggering the `fatalError` in `Routing.wrappedValue`. Reports both on appear and +/// whenever the injected routing context changes, so it catches routers that are merged in after the +/// first render. Callers latch on the first non-nil resolution. +private struct RouterProbeView: View { + + @Routing private var router + let onResolve: (AnyObject) -> Void + + var body: some View { + Color.clear + .onAppear { report() } + .onChange(of: $router) { _ in report() } + } + + private func report() { + if let resolved = $router[R.self] { + onResolve(resolved as AnyObject) + } + } +} + +@MainActor +final class SwiftUIRoutingTests: XCTestCase { + + lazy var window = makeWindow() + + /// `RoutingController` pushed from a UIKit coordinator must inject that coordinator so a + /// descendant `@Routing` resolves to it. (Regression for the snapshot-capture bug.) + func testRoutingControllerResolvesPushingCoordinator() { + let resolved = expectation(description: "resolved") + var resolvedRouter: AnyObject? + var didResolve = false + + let coordinator = BasicNavigationCoordinator( + rootViewController: .init() + ) { route in + switch route { + case .home: + Transition.push(RoutingController { + RouterProbeView { router in + guard !didResolve else { return } + didResolve = true + resolvedRouter = router + resolved.fulfill() + } + }) + } + } + coordinator.setRoot(for: window) + coordinator.trigger(.home) + + wait(for: [resolved], timeout: 5) + XCTAssertTrue(resolvedRouter === coordinator, + "@Routing should resolve to the pushing coordinator") + } + + /// `ViewCoordinator(body:)` hosts its SwiftUI content in a `RoutingController`; the coordinator + /// registers itself, so `@Routing` in the body resolves to it. + func testViewCoordinatorBodyResolvesItself() { + let resolved = expectation(description: "resolved") + var resolvedRouter: AnyObject? + var didResolve = false + + let coordinator = ViewCoordinator(body: { + RouterProbeView { router in + guard !didResolve else { return } + didResolve = true + resolvedRouter = router + resolved.fulfill() + } + }) + coordinator.setRoot(for: window) + + wait(for: [resolved], timeout: 5) + XCTAssertTrue(resolvedRouter === coordinator) + } + + /// A `WrappedRouter` publishes its router upward via the `PreferenceKey`; the hosting + /// `RoutingController` must merge it into its own context (the `onUpdate` path). + func testWrappedRouterPropagatesToHostContext() { + let embedded = ViewCoordinator(rootViewController: UIViewController()) + let host = RoutingController { + WrappedRouter { embedded } + } + window.rootViewController = host + window.makeKeyAndVisible() + + asyncWait(for: 0.5) + + let resolved = host.routingContext[TestRoute.self].map { $0 as AnyObject } + XCTAssertTrue(resolved === embedded, + "WrappedRouter should publish its router up to the hosting RoutingController's context") + } + + /// `WrappedRouter` builds its router exactly once and hosts it without crashing + /// (regression for mutating `@State` during a view update). + func testWrappedRouterBuildsRouterOnce() { + var createCount = 0 + let embedded = ViewCoordinator(rootViewController: UIViewController()) + + let host = UIHostingController( + rootView: WrappedRouter { () -> ViewCoordinator in + createCount += 1 + return embedded + } + ) + window.rootViewController = host + window.makeKeyAndVisible() + + asyncWait(for: 0.5) + XCTAssertEqual(createCount, 1, "WrappedRouter should build the router exactly once") + } +} diff --git a/Tests/XCoordinatorTests/TabSplitBindingTests.swift b/Tests/XCoordinatorTests/TabSplitBindingTests.swift new file mode 100644 index 00000000..f81e75ca --- /dev/null +++ b/Tests/XCoordinatorTests/TabSplitBindingTests.swift @@ -0,0 +1,68 @@ +// +// TabSplitBindingTests.swift +// XCoordinatorTests +// +// Regression tests for the TabBarCoordinator binding initializers and SplitCoordinator columns. +// + +import SwiftUI +import UIKit +import XCoordinator +import XCTest + +@MainActor +final class TabSplitBindingTests: XCTestCase { + + lazy var window = makeWindow() + + /// An empty `items` collection must not crash the binding initializer. + func testTabBarEmptyItemsDoesNotCrash() { + var selection = -1 + let binding = Binding(get: { selection }, set: { selection = $0 }) + let coordinator = TabBarCoordinator(items: [Int](), selection: binding) { _ in + UIViewController() + } + coordinator.setRoot(for: window) + asyncWait(for: 0.1) + XCTAssertEqual(coordinator.rootViewController.viewControllers?.count ?? 0, 0) + } + + /// A non-zero-based collection (e.g. an `ArraySlice`) must select the correct tab and not crash, + /// because the tab bar's 0-based index space differs from the collection's index space. + func testTabBarNonZeroBasedSliceSelectsCorrectTab() { + let slice = [10, 20, 30][1...] // [20, 30], startIndex == 1 + var selection = 30 + let binding = Binding(get: { selection }, set: { selection = $0 }) + let coordinator = TabBarCoordinator(items: slice, selection: binding) { value in + let viewController = UIViewController() + viewController.title = "\(value)" + return viewController + } + coordinator.setRoot(for: window) + asyncWait(for: 0.2) + + XCTAssertEqual(coordinator.rootViewController.viewControllers?.count, 2) + XCTAssertEqual(selection, 30, "the caller's selection must not be clobbered to a wrong value") + XCTAssertEqual(coordinator.rootViewController.selectedViewController?.title, "30") + } + + /// The supplementary column must be populated on a triple-column split controller. + func testSplitSupplementaryColumnIsPopulated() { + let split = UISplitViewController(style: .tripleColumn) + let primary = UIViewController() + let secondary = UIViewController() + let supplementary = UIViewController() + let coordinator = SplitCoordinator( + rootViewController: split, + primary: primary, + secondary: secondary, + supplementary: supplementary + ) + coordinator.setRoot(for: window) + asyncWait(for: 0.3) + + XCTAssertTrue(split.viewController(for: .primary) === primary) + XCTAssertTrue(split.viewController(for: .secondary) === secondary) + XCTAssertTrue(split.viewController(for: .supplementary) === supplementary) + } +} diff --git a/Tests/XCoordinatorTests/TransitionBuilderTests.swift b/Tests/XCoordinatorTests/TransitionBuilderTests.swift new file mode 100644 index 00000000..824de3e9 --- /dev/null +++ b/Tests/XCoordinatorTests/TransitionBuilderTests.swift @@ -0,0 +1,59 @@ +// +// TransitionBuilderTests.swift +// XCoordinatorTests +// +// Verifies the @TransitionBuilder result builder composes transitions as documented. +// + +import UIKit +import XCoordinator +import XCTest + +@MainActor +final class TransitionBuilderTests: XCTestCase { + + @TransitionBuilder + private func twoStatements(_ first: UIViewController, _ second: UIViewController) -> ViewTransition { + Transition.present(first) + Transition.present(second) + } + + @TransitionBuilder + private func conditional(_ include: Bool, _ viewController: UIViewController) -> ViewTransition { + if include { + Transition.present(viewController) + } else { + Transition.none() + } + } + + @TransitionBuilder + private func single(_ viewController: UIViewController) -> ViewTransition { + Transition.present(viewController) + } + + /// Listing several statements chains them like `.multiple`, preserving order. + func testBuilderChainsStatementsInOrder() { + let first = UIViewController() + let second = UIViewController() + let transition = twoStatements(first, second) + XCTAssertEqual(transition.presentables.count, 2) + XCTAssertTrue(transition.presentables[0].viewController === first) + XCTAssertTrue(transition.presentables[1].viewController === second) + } + + /// `if`/`else` (buildEither) selects the right branch. + func testBuilderConditionalBranches() { + let viewController = UIViewController() + XCTAssertEqual(conditional(true, viewController).presentables.count, 1) + XCTAssertEqual(conditional(false, viewController).presentables.count, 0) + } + + /// A single statement passes through unchanged. + func testBuilderSingleStatementPassthrough() { + let viewController = UIViewController() + let transition = single(viewController) + XCTAssertEqual(transition.presentables.count, 1) + XCTAssertTrue(transition.presentables[0].viewController === viewController) + } +} diff --git a/Tests/XCoordinatorTests/TransitionSwiftUITests.swift b/Tests/XCoordinatorTests/TransitionSwiftUITests.swift new file mode 100644 index 00000000..83cca96b --- /dev/null +++ b/Tests/XCoordinatorTests/TransitionSwiftUITests.swift @@ -0,0 +1,53 @@ +// +// TransitionSwiftUITests.swift +// XCoordinatorTests +// +// Verifies Transition.withAnimation / withTransaction run their body and call completion. +// + +import SwiftUI +import UIKit +import XCoordinator +import XCTest + +@MainActor +final class TransitionSwiftUITests: XCTestCase { + + func testWithAnimationRunsBodyAndCompletes() { + var bodyRan = false + let completed = expectation(description: "completion") + let transition = Transition.withAnimation { bodyRan = true } + transition.perform(on: UIViewController(), with: .init(animated: true)) { + completed.fulfill() + } + wait(for: [completed], timeout: 3) + XCTAssertTrue(bodyRan) + } + + func testWithAnimationCompletesWhenNotAnimated() { + var bodyRan = false + let completed = expectation(description: "completion") + let transition = Transition.withAnimation { bodyRan = true } + transition.perform(on: UIViewController(), with: .init(animated: false)) { + completed.fulfill() + } + wait(for: [completed], timeout: 3) + XCTAssertTrue(bodyRan) + } + + func testWithTransactionRunsBodyAndCompletes() { + var bodyRan = false + let completed = expectation(description: "completion") + let transition = Transition.withTransaction(Transaction()) { bodyRan = true } + transition.perform(on: UIViewController(), with: .init(animated: true)) { + completed.fulfill() + } + wait(for: [completed], timeout: 3) + XCTAssertTrue(bodyRan) + } + + func testWithAnimationHasNoPresentables() { + let transition = Transition.withAnimation { } + XCTAssertTrue(transition.presentables.isEmpty) + } +} diff --git a/Tests/XCoordinatorTests/TriggerModifierTests.swift b/Tests/XCoordinatorTests/TriggerModifierTests.swift new file mode 100644 index 00000000..795f9db7 --- /dev/null +++ b/Tests/XCoordinatorTests/TriggerModifierTests.swift @@ -0,0 +1,116 @@ +// +// TriggerModifierTests.swift +// XCoordinatorTests +// +// Verifies the declarative trigger view modifiers fire (and skip the initial value) as documented. +// + +import SwiftUI +import UIKit +import XCoordinator +import XCTest + +/// A coordinator that records the routes triggered on it (returning a no-op transition). +@MainActor +private final class RecordingCoordinator: ViewCoordinator { + + private(set) var triggered: [TestRoute] = [] + var onTrigger: (() -> Void)? + + init() { + super.init(rootViewController: UIViewController()) + } + + override func prepareTransition(for route: TestRoute) -> ViewTransition { + triggered.append(route) + onTrigger?() + return .none() + } +} + +@MainActor +private final class Model: ObservableObject { + @Published var value = 0 +} + +@MainActor +final class TriggerModifierTests: XCTestCase { + + lazy var window = makeWindow() + + private func host(_ view: Content) { + window.rootViewController = UIHostingController(rootView: view) + window.makeKeyAndVisible() + } + + /// `triggerOnAppear` must fire exactly once when the view appears. (Regression for the inverted guard.) + func testTriggerOnAppearFiresOnce() { + let coordinator = RecordingCoordinator() + // No `assertForOverFulfill = false`: triggerOnAppear must fire exactly once, so a second + // fulfillment should fail the test (it would mean the route fired more than once). + let fired = expectation(description: "fired") + coordinator.onTrigger = { fired.fulfill() } + + host( + Color.clear + .triggerOnAppear(route: TestRoute.home) + .router(coordinator) + ) + + wait(for: [fired], timeout: 5) + asyncWait(for: 0.2) + XCTAssertEqual(coordinator.triggered, [.home]) + } + + /// `triggerOnChange(of:)` must skip the initial value and fire when the value changes. + func testTriggerOnChangeSkipsInitialThenFires() { + let coordinator = RecordingCoordinator() + let model = Model() + + struct Probe: View { + @ObservedObject var model: Model + let coordinator: RecordingCoordinator + var body: some View { + Color.clear + .triggerOnChange(of: model.value, route: TestRoute.home) + .router(coordinator) + } + } + + host(Probe(model: model, coordinator: coordinator)) + asyncWait(for: 0.3) + XCTAssertEqual(coordinator.triggered, [], "triggerOnChange must skip the initial value") + + let fired = expectation(description: "fired") + coordinator.onTrigger = { fired.fulfill() } + model.value = 1 + wait(for: [fired], timeout: 5) + XCTAssertEqual(coordinator.triggered, [.home]) + } + + /// `trigger(when:)` must fire only when the condition transitions to `true`. + func testTriggerWhenFiresOnFalseToTrue() { + let coordinator = RecordingCoordinator() + let model = Model() // value 0 => condition false + + struct Probe: View { + @ObservedObject var model: Model + let coordinator: RecordingCoordinator + var body: some View { + Color.clear + .trigger(when: model.value == 1, route: TestRoute.home) + .router(coordinator) + } + } + + host(Probe(model: model, coordinator: coordinator)) + asyncWait(for: 0.3) + XCTAssertEqual(coordinator.triggered, [], "should not fire while the condition is false") + + let fired = expectation(description: "fired") + coordinator.onTrigger = { fired.fulfill() } + model.value = 1 + wait(for: [fired], timeout: 5) + XCTAssertEqual(coordinator.triggered, [.home]) + } +} diff --git a/Tests/XCoordinatorTests/XCText+Extras.swift b/Tests/XCoordinatorTests/XCTest+Extras.swift similarity index 100% rename from Tests/XCoordinatorTests/XCText+Extras.swift rename to Tests/XCoordinatorTests/XCTest+Extras.swift From 9496ecaa81a82de7a20715afd8c14ce78bdb300f Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 1 Jun 2026 17:27:44 +0200 Subject: [PATCH 35/35] Add ContextMenuInteraction, remove asPresentable, add children property to Coordinator protocol, fix child deallocation --- .../Coordinators/Coordinator.swift | 7 + .../XCoordinator/General/Presentable.swift | 7 - .../View/Coordinator+ContextMenu.swift | 46 ++++++ ...inatorContextMenuInteractionDelegate.swift | 95 +++++++++++++ .../project.pbxproj | 8 ++ .../ContextMenuInteractionTests.swift | 68 +++++++++ .../CoordinatorChildLifecycleTests.swift | 132 ++++++++++++++++++ 7 files changed, 356 insertions(+), 7 deletions(-) create mode 100644 Sources/XCoordinator/View/Coordinator+ContextMenu.swift create mode 100644 Sources/XCoordinator/View/CoordinatorContextMenuInteractionDelegate.swift create mode 100644 Tests/XCoordinatorTests/ContextMenuInteractionTests.swift create mode 100644 Tests/XCoordinatorTests/CoordinatorChildLifecycleTests.swift diff --git a/Sources/XCoordinator/Coordinators/Coordinator.swift b/Sources/XCoordinator/Coordinators/Coordinator.swift index ab312ded..3baacb02 100755 --- a/Sources/XCoordinator/Coordinators/Coordinator.swift +++ b/Sources/XCoordinator/Coordinators/Coordinator.swift @@ -58,6 +58,13 @@ public protocol Coordinator: Router { with options: TransitionOptions, completion: PresentationHandler?) + /// + /// The child coordinators currently in the view hierarchy. + /// They are added and removed automatically during transitions depending on whether they are in the + /// view hierarchy. + /// + var children: [any Presentable] { get } + /// /// This method adds a child to a coordinator's children. /// diff --git a/Sources/XCoordinator/General/Presentable.swift b/Sources/XCoordinator/General/Presentable.swift index 82b48f4e..57bbf757 100755 --- a/Sources/XCoordinator/General/Presentable.swift +++ b/Sources/XCoordinator/General/Presentable.swift @@ -97,13 +97,6 @@ extension 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 { diff --git a/Sources/XCoordinator/View/Coordinator+ContextMenu.swift b/Sources/XCoordinator/View/Coordinator+ContextMenu.swift new file mode 100644 index 00000000..b1f4ec7a --- /dev/null +++ b/Sources/XCoordinator/View/Coordinator+ContextMenu.swift @@ -0,0 +1,46 @@ +// +// Coordinator+ContextMenu.swift +// XCoordinator +// +// Created by Paul Kraft on 13.02.20. +// Copyright © 2020 QuickBird Studios. All rights reserved. +// + +#if os(iOS) + +import UIKit + +extension Coordinator where Self: AnyObject { + + /// + /// Creates a `UIContextMenuInteractionDelegate` that generates a preview from a given route and + /// performs that route when the preview is committed. + /// + /// The preview shown is the view controller produced by the route's transition. Committing the preview + /// triggers the route on this coordinator via ``performTransition(_:with:completion:)``, so any presented + /// presentables are correctly retained as children. + /// + /// - Parameters: + /// - route: The route to be triggered when the preview is committed. + /// - identifier: An optional identifier for the context menu configuration. + /// - menu: The menu to be shown alongside the preview. + /// - completion: A closure called once the route's transition completes. + /// + public func contextMenuInteractionDelegate( + for route: RouteType, + identifier: NSCopying? = nil, + menu: UIMenu? = nil, + completion: PresentationHandler? = nil + ) -> UIContextMenuInteractionDelegate { + CoordinatorContextMenuInteractionDelegate( + coordinator: self, + route: route, + identifier: identifier, + menu: menu, + completion: completion + ) + } + +} + +#endif diff --git a/Sources/XCoordinator/View/CoordinatorContextMenuInteractionDelegate.swift b/Sources/XCoordinator/View/CoordinatorContextMenuInteractionDelegate.swift new file mode 100644 index 00000000..b9017535 --- /dev/null +++ b/Sources/XCoordinator/View/CoordinatorContextMenuInteractionDelegate.swift @@ -0,0 +1,95 @@ +// +// CoordinatorContextMenuInteractionDelegate.swift +// XCoordinator +// +// Created by Paul Kraft on 13.02.20. +// Copyright © 2020 QuickBird Studios. All rights reserved. +// + +#if os(iOS) + +import UIKit + +/// +/// A `UIContextMenuInteractionDelegate` that previews and triggers a coordinator route. +/// +/// The preview is the view controller produced by the route's transition; committing the preview performs +/// that route on the coordinator. +/// +/// - Important: +/// The route is performed via the coordinator's ``Coordinator/performTransition(_:with:completion:)``, +/// **not** by running the transition directly. This is what keeps the presented presentables retained as +/// children of the coordinator — performing the transition directly would bypass child management and the +/// presented coordinator would be deallocated immediately (see `CoordinatorChildLifecycleTests`). +/// +internal final class CoordinatorContextMenuInteractionDelegate: NSObject, + UIContextMenuInteractionDelegate { + + // MARK: Stored properties + + private let identifier: NSCopying? + private let route: C.RouteType + private let menu: UIMenu? + private weak var coordinator: C? + private let completion: PresentationHandler? + + // MARK: Initialization + + internal init( + coordinator: C, + route: C.RouteType, + identifier: NSCopying?, + menu: UIMenu?, + completion: PresentationHandler? + ) { + self.coordinator = coordinator + self.route = route + self.identifier = identifier + self.menu = menu + self.completion = completion + } + + // MARK: Methods + + internal func contextMenuInteraction( + _ interaction: UIContextMenuInteraction, + configurationForMenuAtLocation location: CGPoint + ) -> UIContextMenuConfiguration? { + UIContextMenuConfiguration( + identifier: identifier, + previewProvider: { [weak self] in + guard let self else { return nil } + return self.coordinator?.prepareTransition(for: self.route).presentables.last?.viewController + }, + actionProvider: { [weak self] _ in + self?.menu + } + ) + } + + internal func contextMenuInteraction( + _ interaction: UIContextMenuInteraction, + willPerformPreviewActionForMenuWith configuration: UIContextMenuConfiguration, + animator: UIContextMenuInteractionCommitAnimating + ) { + animator.addCompletion { [weak self] in + self?.performRoute() + } + } + + /// Performs the configured route on the coordinator, keeping child management intact. + /// + /// Factored out of the delegate callback so it can be exercised directly in tests without a live + /// `UIContextMenuInteractionCommitAnimating`. + internal func performRoute() { + guard let coordinator else { return } + coordinator.performTransition( + coordinator.prepareTransition(for: route), + with: .default, + completion: completion + ) + } + +} + +#endif diff --git a/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj b/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj index 3f25aebc..969f9d12 100644 --- a/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj +++ b/TestHost/XCoordinatorTestHost.xcodeproj/project.pbxproj @@ -20,6 +20,8 @@ 0A0000000000000000000048 /* TransitionBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000028 /* TransitionBuilderTests.swift */; }; 0A0000000000000000000049 /* AsyncCombineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0000000000000000000029 /* AsyncCombineTests.swift */; }; 0A000000000000000000004A /* TabSplitBindingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A000000000000000000002A /* TabSplitBindingTests.swift */; }; + 0A000000000000000000004B /* CoordinatorChildLifecycleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A000000000000000000002B /* CoordinatorChildLifecycleTests.swift */; }; + 0A000000000000000000004C /* ContextMenuInteractionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A000000000000000000002C /* ContextMenuInteractionTests.swift */; }; 0A0000000000000000000050 /* XCoordinator in Frameworks */ = {isa = PBXBuildFile; productRef = 0A00000000000000000000A1 /* XCoordinator */; }; /* End PBXBuildFile section */ @@ -50,6 +52,8 @@ 0A0000000000000000000028 /* TransitionBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransitionBuilderTests.swift; sourceTree = ""; }; 0A0000000000000000000029 /* AsyncCombineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncCombineTests.swift; sourceTree = ""; }; 0A000000000000000000002A /* TabSplitBindingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSplitBindingTests.swift; sourceTree = ""; }; + 0A000000000000000000002B /* CoordinatorChildLifecycleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoordinatorChildLifecycleTests.swift; sourceTree = ""; }; + 0A000000000000000000002C /* ContextMenuInteractionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextMenuInteractionTests.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -113,6 +117,8 @@ 0A0000000000000000000028 /* TransitionBuilderTests.swift */, 0A0000000000000000000029 /* AsyncCombineTests.swift */, 0A000000000000000000002A /* TabSplitBindingTests.swift */, + 0A000000000000000000002B /* CoordinatorChildLifecycleTests.swift */, + 0A000000000000000000002C /* ContextMenuInteractionTests.swift */, ); name = XCoordinatorTests; path = ../Tests/XCoordinatorTests; @@ -244,6 +250,8 @@ 0A0000000000000000000048 /* TransitionBuilderTests.swift in Sources */, 0A0000000000000000000049 /* AsyncCombineTests.swift in Sources */, 0A000000000000000000004A /* TabSplitBindingTests.swift in Sources */, + 0A000000000000000000004B /* CoordinatorChildLifecycleTests.swift in Sources */, + 0A000000000000000000004C /* ContextMenuInteractionTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Tests/XCoordinatorTests/ContextMenuInteractionTests.swift b/Tests/XCoordinatorTests/ContextMenuInteractionTests.swift new file mode 100644 index 00000000..b048dc27 --- /dev/null +++ b/Tests/XCoordinatorTests/ContextMenuInteractionTests.swift @@ -0,0 +1,68 @@ +// +// ContextMenuInteractionTests.swift +// XCoordinatorTests +// +// Created by Paul Kraft. +// Copyright © 2020 QuickBird Studios. All rights reserved. +// + +#if os(iOS) + +import UIKit +@testable import XCoordinator +import XCTest + +/// +/// Guards that the context-menu interaction performs its route through `performTransition` — so a coordinator +/// presented from a context menu is retained as a child rather than deallocated. +/// +/// The legacy implementation ran `transition.perform(...)` directly, bypassing child management. This is the +/// same hazard the deallocation-fix addresses (see `CoordinatorChildLifecycleTests`). +/// +@MainActor +final class ContextMenuInteractionTests: XCTestCase { + + // MARK: Stored properties + + lazy var window = makeWindow() + + // MARK: Tests + + func testCommittingPreviewRetainsPresentedCoordinatorAsChild() { + let coordinator = ContextMenuTestCoordinator() + coordinator.setRoot(for: window) + + let delegate = coordinator.contextMenuInteractionDelegate(for: .home) + guard let concreteDelegate = delegate as? CoordinatorContextMenuInteractionDelegate else { + return XCTFail("Unexpected delegate type: \(type(of: delegate))") + } + + XCTAssertTrue(coordinator.children.isEmpty, "Precondition: no children before committing the preview") + + concreteDelegate.performRoute() + + XCTAssertTrue( + coordinator.children.contains { $0.viewController === coordinator.child.viewController }, + "Coordinator presented from the context menu was not retained as a child" + ) + } + +} + +@MainActor +private final class ContextMenuTestCoordinator: ViewCoordinator { + + let child = BasicViewCoordinator(rootViewController: .init()) { _ in .present(UIViewController()) } + + init() { + super.init(rootViewController: .init()) + } + + // A synchronous transition so the test does not depend on on-screen presentation animations completing. + override func prepareTransition(for route: TestRoute) -> ViewTransition { + .synchronouslyPresent(child) + } + +} + +#endif diff --git a/Tests/XCoordinatorTests/CoordinatorChildLifecycleTests.swift b/Tests/XCoordinatorTests/CoordinatorChildLifecycleTests.swift new file mode 100644 index 00000000..eb2204d2 --- /dev/null +++ b/Tests/XCoordinatorTests/CoordinatorChildLifecycleTests.swift @@ -0,0 +1,132 @@ +// +// CoordinatorChildLifecycleTests.swift +// XCoordinatorTests +// +// Created by Paul Kraft. +// Copyright © 2018 QuickBird Studios. All rights reserved. +// + +import UIKit +import XCoordinator +import XCTest + +/// +/// Regression coverage for the "deallocation-fix" (`Add children at the end of transitions after clearing +/// other children`). +/// +/// `performTransition` used to register children *before* running the transition and call +/// `removeChildrenIfNeeded()` afterwards. Because a child coordinator's `rootViewController` is not yet in the +/// view hierarchy when a transition is kicked off — and `addChild` also wires the child's +/// `childTransitionCompleted()` back to the parent's `removeChildrenIfNeeded()` — any sweep firing during the +/// in-flight transition would judge the freshly-presented child "removable" and drop it from `children`, +/// deallocating the coordinator mid-presentation. +/// +/// The fix moved `addChild` into the completion, *after* `removeChildrenIfNeeded()` +/// (`Coordinators/Coordinator.swift`): a newly-presented child is therefore added *after* the transition's own +/// removal sweep and survives it, while a later sweep still reclaims a child once its view controller is gone. +/// +/// These tests drive `performTransition` with synchronous transitions so they validate that ordering +/// deterministically, without depending on on-screen presentation animations completing. +/// +@MainActor +final class CoordinatorChildLifecycleTests: XCTestCase { + + // MARK: Tests + + /// Core regression: a child added by a transition must survive that transition's own + /// `removeChildrenIfNeeded()` sweep, even before its view controller is in the hierarchy. + /// + /// Under the pre-fix ordering (`addChild` before `perform`, sweep in the completion) this child would be + /// swept away and deallocated; under the fix it is added *after* the sweep and survives. + func testPresentedChildSurvivesTransitionCompletionSweep() { + let parent = ViewCoordinator(rootViewController: .init()) + + weak var weakChild: BasicViewCoordinator? + let detachedViewController = UIViewController() // intentionally not in any view hierarchy + + autoreleasepool { + let child = makeChildCoordinator(rootViewController: detachedViewController) + weakChild = child + parent.performTransition(.synchronouslyPresent(child), with: .default) + } + + XCTAssertNotNil(weakChild, "Child added by the transition was swept/deallocated by the completion sweep") + XCTAssertTrue(parent.children.contains { $0.viewController === detachedViewController }, + "Child added by the transition was not tracked as a child") + } + + /// No-leak guard: once a child's view controller is gone, a subsequent sweep must reclaim it — i.e. the + /// fix did not trade the premature-deallocation bug for a retain leak. + func testChildReleasedOnceRemovedFromHierarchy() { + let parent = ViewCoordinator(rootViewController: .init()) + + weak var weakChild: BasicViewCoordinator? + + autoreleasepool { + let child = makeChildCoordinator(rootViewController: UIViewController()) + weakChild = child + parent.performTransition(.synchronouslyPresent(child), with: .default) + } + XCTAssertNotNil(weakChild, "Precondition: child should be retained after being added") + + // The child's view controller was never in the hierarchy, so the next sweep should reclaim it. + parent.removeChildrenIfNeeded() + + XCTAssertNil(weakChild, "Child leaked — removeChildrenIfNeeded did not reclaim a vanished child") + XCTAssertFalse(parent.children.contains { $0 is BasicViewCoordinator }, + "Reclaimed child is still tracked") + } + + /// A child whose view controller is in the hierarchy must be kept by a sweep, and only released once it + /// leaves the hierarchy. Exercises `canBeRemovedAsChild`'s hierarchy check end to end. + func testChildInHierarchyIsKeptUntilItLeaves() { + let parent = ViewCoordinator(rootViewController: .init()) + + weak var weakChild: BasicViewCoordinator? + let childViewController = UIViewController() + + // Embed the child's view controller so `childViewController.parent != nil` (i.e. it is in the hierarchy). + parent.rootViewController.addChild(childViewController) + parent.rootViewController.view.addSubview(childViewController.view) + childViewController.didMove(toParent: parent.rootViewController) + + autoreleasepool { + let child = makeChildCoordinator(rootViewController: childViewController) + weakChild = child + parent.performTransition(.synchronouslyPresent(child), with: .default) + } + + // A sweep must NOT remove the child while its view controller is in the hierarchy. + parent.removeChildrenIfNeeded() + XCTAssertNotNil(weakChild, "Child in the view hierarchy was incorrectly reclaimed") + XCTAssertTrue(parent.children.contains { $0.viewController === childViewController }, + "Child in the view hierarchy was dropped from its parent") + + // Once it leaves the hierarchy, the next sweep reclaims it. + childViewController.willMove(toParent: nil) + childViewController.view.removeFromSuperview() + childViewController.removeFromParent() + parent.removeChildrenIfNeeded() + + XCTAssertNil(weakChild, "Child leaked after leaving the view hierarchy") + } + + // MARK: Helpers + + private func makeChildCoordinator(rootViewController: UIViewController) -> BasicViewCoordinator { + BasicViewCoordinator(rootViewController: rootViewController) { _ in .none() } + } + +} + +extension Transition { + + /// A transition that "presents" a presentable but completes synchronously without any UIKit presentation, + /// so child bookkeeping in `performTransition` can be exercised without on-screen rendering. + static func synchronouslyPresent(_ presentable: any Presentable) -> Transition { + Transition(presentables: [presentable], animationInUse: nil) { _, _, completion in + completion?() + } + } + +}