From a965f870ff007ccce75a2c8407dd445fe7a52ac5 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sat, 25 Apr 2020 18:55:10 -0400 Subject: [PATCH 01/25] Squashed commit of the following: commit daae5be93d72384b44154f688bc004ed2895bb26 Author: Joe Mattiello Date: Tue Apr 21 21:45:42 2020 -0400 Update docs/UsageGuide.md Resolve conflicts commit 2478d8e1e3ef50c28eda16b6d21abecf8cc126dc Author: nrgbistro <35301702+nrgbistro@users.noreply.github.com> Date: Thu Jan 31 13:37:42 2019 -0500 Update UsageGuide.md --- docs/UsageGuide.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs/UsageGuide.md diff --git a/docs/UsageGuide.md b/docs/UsageGuide.md new file mode 100644 index 00000000..1461fd3c --- /dev/null +++ b/docs/UsageGuide.md @@ -0,0 +1,60 @@ +# Usage + +## Storyboard + +1. In the Identity Inspector, for every pair of source/destination views, give each one the same `HeroID` attribute. +2. For any other views that you would like to animate, specify animation effects in the `Hero Modifier String` attribute. +3. Also in the Identity Inspector, enable Hero Transition on your destination view controller. + +## In Code + +1. Before doing a transition, set the desired `heroID` and `heroModifiers` to both your source and destination views. +2. Enable Hero for the destination view controller + + ```swift + viewController.hero.isEnabled = true + ``` + +### UINavigationController & UITabBarController + +Hero also supports transitions within a navigation controller or a tab bar controller—just set the 'hero.isEnabled' attribute to true on the UINavigationController/UITabBarController instance. + +## Attributes + +There are two important attributes to understand: `heroID` and `heroModifiers`. These are implemented as extensions (using associated objects) for `UIView`. Therefore, after the Hero library is imported, every `UIView` will have these two attributes. + +| Attribute Name | Description | +| --- | --- | +| `heroID` | Identifier for the view. Hero will automatically transition between views with the same `heroID` | +| `hero.modifiers` | Specifies the extra animations performed alongside the main transition. | + +## HeroID + +`heroID` is the identifier for the view. When doing a transition between two view controllers, Hero will search through all subviews for both controllers, and match any views with the same `heroID`. Whenever a pair is discovered, Hero will automatically transit the views from source state to destination state. + +## HeroModifiers + +Use `hero.modifiers` to specify animations alongside the main transition. Checkout [HeroModifier.swift](https://github.com/lkzhao/Hero/blob/master/Sources/HeroModifier.swift) for available modifiers. + +#### For example, to achieve the following effect, set the `hero.modifiers` to be + +```swift +view.hero.modifiers = [.fade, .translate(x:0, y:-250), .rotate(x:-1.6), .scale(1.5)] +``` + + + + +Note: For matched views, the target view's heroModifier will be used. The source view's heroModifier will be ignored. When dismissing, the target view is the presentingViewController's view and the source view is the presentedViewController's view. + +## HeroModifierString + +This is a string value. It provides another way to set `hero.modifiers`. It can be accessed through the storyboard. + +It must be in the following syntax: + +```swift +modifier1() modifier2(parameter1) modifier3(parameter1, parameter2) ... +``` + +Parameters must be between a pair of parentheses, separated by a comma, and each modifier must be separated by a space. Not all modifiers are settable this way. From c86e98362a8b53642b98dff435fdd06d1d8b5964 Mon Sep 17 00:00:00 2001 From: nrgbistro <35301702+nrgbistro@users.noreply.github.com> Date: Sat, 25 Apr 2020 18:57:20 -0400 Subject: [PATCH 02/25] Update UsageGuide.md (#576) * Update UsageGuide.md * Update docs/UsageGuide.md Co-authored-by: Joe Mattiello From c70b471eeb91c5ac72d9d8e99affb9fbe0748b81 Mon Sep 17 00:00:00 2001 From: Arnaud Dorgans Date: Wed, 30 May 2018 00:05:50 +0200 Subject: [PATCH 03/25] fix keyboard transition --- Sources/Transition/HeroTransition+Start.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Transition/HeroTransition+Start.swift b/Sources/Transition/HeroTransition+Start.swift index f2763820..d4cf457f 100644 --- a/Sources/Transition/HeroTransition+Start.swift +++ b/Sources/Transition/HeroTransition+Start.swift @@ -91,6 +91,7 @@ extension HeroTransition { // a view to hold all the animating views container = UIView(frame: transitionContainer?.bounds ?? .zero) + container.isUserInteractionEnabled = false if !toOverFullScreen && !fromOverFullScreen { container.backgroundColor = containerColor } From 6390a80b5c29f3ccd60e9e2c76ece04b6fe9dcac Mon Sep 17 00:00:00 2001 From: Oleh Stasula Date: Mon, 29 Jun 2020 14:51:54 +0200 Subject: [PATCH 04/25] Fix no such module UIKit --- Sources/Animator/HeroAnimatorViewContext.swift | 4 ++++ Sources/Animator/HeroCoreAnimationViewContext.swift | 4 ++++ Sources/Animator/HeroDefaultAnimator.swift | 4 ++++ Sources/Animator/HeroViewPropertyViewContext.swift | 4 ++++ Sources/Debug Plugin/HeroDebugPlugin.swift | 4 +++- Sources/Debug Plugin/HeroDebugView.swift | 3 ++- Sources/Extensions/Array+HeroModifier.swift | 4 ++++ Sources/Extensions/CALayer+Hero.swift | 4 ++++ Sources/Extensions/CAMediaTimingFunction+Hero.swift | 4 ++++ Sources/Extensions/UIColor+HexString.swift | 4 ++++ Sources/Extensions/UIKit+Hero.swift | 4 ++++ Sources/Extensions/UIView+Hero.swift | 4 ++++ Sources/Extensions/UIViewController+Hero.swift | 4 ++++ Sources/HeroContext.swift | 4 ++++ Sources/HeroModifier+Advanced.swift | 4 ++++ Sources/HeroModifier+HeroStringConvertible.swift | 4 ++++ Sources/HeroModifier.swift | 4 ++++ Sources/HeroPlugin.swift | 4 ++++ Sources/HeroTargetState.swift | 5 +++++ Sources/HeroTypes.swift | 4 ++++ Sources/HeroViewControllerDelegate.swift | 4 ++++ Sources/Parser/HeroStringConvertible.swift | 4 ++++ Sources/Preprocessors/BasePreprocessor.swift | 4 ++++ Sources/Preprocessors/CascadePreprocessor.swift | 4 ++++ Sources/Preprocessors/ConditionalPreprocessor.swift | 4 ++++ Sources/Preprocessors/DefaultAnimationPreprocessor.swift | 4 ++++ .../Preprocessors/IgnoreSubviewModifiersPreprocessor.swift | 4 ++++ Sources/Preprocessors/MatchPreprocessor.swift | 4 ++++ Sources/Preprocessors/SourcePreprocessor.swift | 4 ++++ Sources/SwiftSupport.swift | 4 +++- Sources/Transition/HeroProgressRunner.swift | 4 ++++ Sources/Transition/HeroTransition+Animate.swift | 4 ++++ Sources/Transition/HeroTransition+Complete.swift | 4 ++++ Sources/Transition/HeroTransition+CustomTransition.swift | 4 ++++ Sources/Transition/HeroTransition+Interactive.swift | 4 ++++ Sources/Transition/HeroTransition+Start.swift | 4 ++++ .../HeroTransition+UINavigationControllerDelegate.swift | 4 ++++ .../HeroTransition+UITabBarControllerDelegate.swift | 4 ++++ ...eroTransition+UIViewControllerTransitioningDelegate.swift | 4 ++++ Sources/Transition/HeroTransition.swift | 4 ++++ 40 files changed, 157 insertions(+), 3 deletions(-) diff --git a/Sources/Animator/HeroAnimatorViewContext.swift b/Sources/Animator/HeroAnimatorViewContext.swift index 7828d468..0f2e199c 100644 --- a/Sources/Animator/HeroAnimatorViewContext.swift +++ b/Sources/Animator/HeroAnimatorViewContext.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit internal class HeroAnimatorViewContext { @@ -69,3 +71,5 @@ internal class HeroAnimatorViewContext { self.appearing = appearing } } + +#endif diff --git a/Sources/Animator/HeroCoreAnimationViewContext.swift b/Sources/Animator/HeroCoreAnimationViewContext.swift index 8ea7990c..b402170c 100644 --- a/Sources/Animator/HeroCoreAnimationViewContext.swift +++ b/Sources/Animator/HeroCoreAnimationViewContext.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit extension CALayer { @@ -456,3 +458,5 @@ internal class HeroCoreAnimationViewContext: HeroAnimatorViewContext { return animate(delay: targetState.delay, duration: duration) } } + +#endif diff --git a/Sources/Animator/HeroDefaultAnimator.swift b/Sources/Animator/HeroDefaultAnimator.swift index 68a787a3..e61bf5e7 100644 --- a/Sources/Animator/HeroDefaultAnimator.swift +++ b/Sources/Animator/HeroDefaultAnimator.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit internal extension UIView { @@ -137,3 +139,5 @@ internal class HeroDefaultAnimator: HeroAn viewContexts.removeAll() } } + +#endif diff --git a/Sources/Animator/HeroViewPropertyViewContext.swift b/Sources/Animator/HeroViewPropertyViewContext.swift index fffd62e5..b20d3641 100644 --- a/Sources/Animator/HeroViewPropertyViewContext.swift +++ b/Sources/Animator/HeroViewPropertyViewContext.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit @available(iOS 10, tvOS 10, *) @@ -72,3 +74,5 @@ internal class HeroViewPropertyViewContext: HeroAnimatorViewContext { return duration } } + +#endif diff --git a/Sources/Debug Plugin/HeroDebugPlugin.swift b/Sources/Debug Plugin/HeroDebugPlugin.swift index 148814d8..07a0c324 100644 --- a/Sources/Debug Plugin/HeroDebugPlugin.swift +++ b/Sources/Debug Plugin/HeroDebugPlugin.swift @@ -20,9 +20,10 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) && os(iOS) + import UIKit -#if os(iOS) public class HeroDebugPlugin: HeroPlugin { public static var showOnTop: Bool = false @@ -176,4 +177,5 @@ extension HeroDebugPlugin: HeroDebugViewDelegate { hero.container.layer.sublayerTransform = t } } + #endif diff --git a/Sources/Debug Plugin/HeroDebugView.swift b/Sources/Debug Plugin/HeroDebugView.swift index 21af2bb9..fc3de27d 100644 --- a/Sources/Debug Plugin/HeroDebugView.swift +++ b/Sources/Debug Plugin/HeroDebugView.swift @@ -20,9 +20,10 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) && os(iOS) + import UIKit -#if os(iOS) protocol HeroDebugViewDelegate: class { func onProcessSliderChanged(progress: Float) func onPerspectiveChanged(translation: CGPoint, rotation: CGFloat, scale: CGFloat) diff --git a/Sources/Extensions/Array+HeroModifier.swift b/Sources/Extensions/Array+HeroModifier.swift index 8b6e3beb..caf3109c 100644 --- a/Sources/Extensions/Array+HeroModifier.swift +++ b/Sources/Extensions/Array+HeroModifier.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit internal extension Array { @@ -57,3 +59,5 @@ internal extension Array where Element: ExprNode { return nil } } + +#endif diff --git a/Sources/Extensions/CALayer+Hero.swift b/Sources/Extensions/CALayer+Hero.swift index 642da1a3..a8ceb738 100644 --- a/Sources/Extensions/CALayer+Hero.swift +++ b/Sources/Extensions/CALayer+Hero.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit internal extension CALayer { @@ -49,3 +51,5 @@ internal extension CALayer { } } } + +#endif diff --git a/Sources/Extensions/CAMediaTimingFunction+Hero.swift b/Sources/Extensions/CAMediaTimingFunction+Hero.swift index 3e093e0b..f7efd2af 100644 --- a/Sources/Extensions/CAMediaTimingFunction+Hero.swift +++ b/Sources/Extensions/CAMediaTimingFunction+Hero.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit import QuartzCore @@ -62,3 +64,5 @@ public extension CAMediaTimingFunction { } } } + +#endif diff --git a/Sources/Extensions/UIColor+HexString.swift b/Sources/Extensions/UIColor+HexString.swift index 2a6092c5..a4a693f9 100644 --- a/Sources/Extensions/UIColor+HexString.swift +++ b/Sources/Extensions/UIColor+HexString.swift @@ -6,6 +6,8 @@ // Copyright © 2019 Luke Zhao. All rights reserved. // +#if canImport(UIKit) + import UIKit extension UIColor { @@ -31,3 +33,5 @@ extension UIColor { ) } } + +#endif diff --git a/Sources/Extensions/UIKit+Hero.swift b/Sources/Extensions/UIKit+Hero.swift index b76ff13b..a3aa0230 100644 --- a/Sources/Extensions/UIKit+Hero.swift +++ b/Sources/Extensions/UIKit+Hero.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit private let parameterRegex = "(?:\\-?\\d+(\\.?\\d+)?)|\\w+" @@ -54,3 +56,5 @@ internal extension UIColor { return components.a } } + +#endif diff --git a/Sources/Extensions/UIView+Hero.swift b/Sources/Extensions/UIView+Hero.swift index 95cbb6e6..18181789 100644 --- a/Sources/Extensions/UIView+Hero.swift +++ b/Sources/Extensions/UIView+Hero.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit class SnapshotWrapperView: UIView { @@ -194,3 +196,5 @@ public extension UIView { set { hero.storedAlpha = newValue } } } + +#endif diff --git a/Sources/Extensions/UIViewController+Hero.swift b/Sources/Extensions/UIViewController+Hero.swift index 97d6aea8..0fe09443 100644 --- a/Sources/Extensions/UIViewController+Hero.swift +++ b/Sources/Extensions/UIViewController+Hero.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit internal class HeroViewControllerConfig: NSObject { @@ -379,3 +381,5 @@ extension UIViewController { hero.replaceViewController(with: next) } } + +#endif diff --git a/Sources/HeroContext.swift b/Sources/HeroContext.swift index 6edf570b..f1e1adc7 100644 --- a/Sources/HeroContext.swift +++ b/Sources/HeroContext.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit public class HeroContext { @@ -402,3 +404,5 @@ extension HeroContext { public protocol HeroCustomSnapshotView { var heroSnapshot: UIView? { get } } + +#endif diff --git a/Sources/HeroModifier+Advanced.swift b/Sources/HeroModifier+Advanced.swift index eb385d99..76dee9e2 100644 --- a/Sources/HeroModifier+Advanced.swift +++ b/Sources/HeroModifier+Advanced.swift @@ -21,6 +21,8 @@ // THE SOFTWARE. // +#if canImport(UIKit) + // advance modifiers extension HeroModifier { /** @@ -130,3 +132,5 @@ extension HeroModifier { targetState.useScaleBasedSizeChange = true } } + +#endif diff --git a/Sources/HeroModifier+HeroStringConvertible.swift b/Sources/HeroModifier+HeroStringConvertible.swift index 898a5656..50ffe640 100644 --- a/Sources/HeroModifier+HeroStringConvertible.swift +++ b/Sources/HeroModifier+HeroStringConvertible.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit /// used to construct HeroModifier from heroModifierString @@ -122,3 +124,5 @@ extension HeroModifier: HeroStringConvertible { return nil } } + +#endif diff --git a/Sources/HeroModifier.swift b/Sources/HeroModifier.swift index ad912722..7b69eb4b 100644 --- a/Sources/HeroModifier.swift +++ b/Sources/HeroModifier.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit public final class HeroModifier { @@ -497,3 +499,5 @@ extension HeroModifier { return .when({ !$0.isAppearing }, modifiers) } } + +#endif diff --git a/Sources/HeroPlugin.swift b/Sources/HeroPlugin.swift index d46296c8..4636fa66 100644 --- a/Sources/HeroPlugin.swift +++ b/Sources/HeroPlugin.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit open class HeroPlugin: NSObject, HeroPreprocessor, HeroAnimator { @@ -169,3 +171,5 @@ internal extension HeroTransition { } } } + +#endif diff --git a/Sources/HeroTargetState.swift b/Sources/HeroTargetState.swift index 5fff5e4d..f2ae0c2b 100644 --- a/Sources/HeroTargetState.swift +++ b/Sources/HeroTargetState.swift @@ -20,6 +20,9 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + +import QuartzCore import UIKit public enum HeroSnapshotType { @@ -127,3 +130,5 @@ extension HeroTargetState: ExpressibleByArrayLiteral { append(contentsOf: elements) } } + +#endif diff --git a/Sources/HeroTypes.swift b/Sources/HeroTypes.swift index 675f9abf..7949cc62 100644 --- a/Sources/HeroTypes.swift +++ b/Sources/HeroTypes.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit public protocol HeroPreprocessor: class { @@ -46,3 +48,5 @@ public protocol HeroProgressUpdateObserver: class { public enum HeroViewOrderingStrategy { case auto, sourceViewOnTop, destinationViewOnTop } + +#endif diff --git a/Sources/HeroViewControllerDelegate.swift b/Sources/HeroViewControllerDelegate.swift index 3bd84436..d218c00c 100644 --- a/Sources/HeroViewControllerDelegate.swift +++ b/Sources/HeroViewControllerDelegate.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit @objc public protocol HeroViewControllerDelegate { @@ -56,3 +58,5 @@ internal extension HeroTransition { } } } + +#endif diff --git a/Sources/Parser/HeroStringConvertible.swift b/Sources/Parser/HeroStringConvertible.swift index cbfadab5..312a413f 100644 --- a/Sources/Parser/HeroStringConvertible.swift +++ b/Sources/Parser/HeroStringConvertible.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit public protocol HeroStringConvertible { @@ -51,3 +53,5 @@ extension String { return parse()?.last } } + +#endif diff --git a/Sources/Preprocessors/BasePreprocessor.swift b/Sources/Preprocessors/BasePreprocessor.swift index 88cf8170..6bb0d575 100644 --- a/Sources/Preprocessors/BasePreprocessor.swift +++ b/Sources/Preprocessors/BasePreprocessor.swift @@ -22,6 +22,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit class BasePreprocessor: HeroPreprocessor { @@ -32,3 +34,5 @@ class BasePreprocessor: HeroPreprocessor { func process(fromViews: [UIView], toViews: [UIView]) {} } + +#endif diff --git a/Sources/Preprocessors/CascadePreprocessor.swift b/Sources/Preprocessors/CascadePreprocessor.swift index d3d40a13..22f9f694 100644 --- a/Sources/Preprocessors/CascadePreprocessor.swift +++ b/Sources/Preprocessors/CascadePreprocessor.swift @@ -22,6 +22,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit public enum CascadeDirection { @@ -136,3 +138,5 @@ class CascadePreprocessor: BasePreprocessor { } } } + +#endif diff --git a/Sources/Preprocessors/ConditionalPreprocessor.swift b/Sources/Preprocessors/ConditionalPreprocessor.swift index 980dfd77..c471252a 100644 --- a/Sources/Preprocessors/ConditionalPreprocessor.swift +++ b/Sources/Preprocessors/ConditionalPreprocessor.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit public struct HeroConditionalContext { @@ -89,3 +91,5 @@ class ConditionalPreprocessor: BasePreprocessor { } } } + +#endif diff --git a/Sources/Preprocessors/DefaultAnimationPreprocessor.swift b/Sources/Preprocessors/DefaultAnimationPreprocessor.swift index 048af948..06feb0f9 100644 --- a/Sources/Preprocessors/DefaultAnimationPreprocessor.swift +++ b/Sources/Preprocessors/DefaultAnimationPreprocessor.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit public enum HeroDefaultAnimationType { @@ -378,3 +380,5 @@ class DefaultAnimationPreprocessor: BasePreprocessor { } } } + +#endif diff --git a/Sources/Preprocessors/IgnoreSubviewModifiersPreprocessor.swift b/Sources/Preprocessors/IgnoreSubviewModifiersPreprocessor.swift index 7d601b7d..096ed34c 100644 --- a/Sources/Preprocessors/IgnoreSubviewModifiersPreprocessor.swift +++ b/Sources/Preprocessors/IgnoreSubviewModifiersPreprocessor.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit class IgnoreSubviewModifiersPreprocessor: BasePreprocessor { @@ -53,3 +55,5 @@ class IgnoreSubviewModifiersPreprocessor: BasePreprocessor { } } } + +#endif diff --git a/Sources/Preprocessors/MatchPreprocessor.swift b/Sources/Preprocessors/MatchPreprocessor.swift index fe91c1e1..bae58f70 100644 --- a/Sources/Preprocessors/MatchPreprocessor.swift +++ b/Sources/Preprocessors/MatchPreprocessor.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit class MatchPreprocessor: BasePreprocessor { @@ -74,3 +76,5 @@ class MatchPreprocessor: BasePreprocessor { } } } + +#endif diff --git a/Sources/Preprocessors/SourcePreprocessor.swift b/Sources/Preprocessors/SourcePreprocessor.swift index 44dcb2ba..7e9baa5c 100644 --- a/Sources/Preprocessors/SourcePreprocessor.swift +++ b/Sources/Preprocessors/SourcePreprocessor.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit class SourcePreprocessor: BasePreprocessor { @@ -82,3 +84,5 @@ class SourcePreprocessor: BasePreprocessor { context[view] = state } } + +#endif diff --git a/Sources/SwiftSupport.swift b/Sources/SwiftSupport.swift index b601818c..0f417558 100644 --- a/Sources/SwiftSupport.swift +++ b/Sources/SwiftSupport.swift @@ -6,10 +6,11 @@ // Copyright © 2018 Luke Zhao. All rights reserved. // -#if !(swift(>=4.2)) +#if canImport(UIKit) && !(swift(>=4.2)) import Foundation import CoreMedia import CoreGraphics + import UIKit extension CMTime { @@ -46,4 +47,5 @@ extension RunLoop { static let common = RunLoopMode.commonModes } } + #endif diff --git a/Sources/Transition/HeroProgressRunner.swift b/Sources/Transition/HeroProgressRunner.swift index a34d6539..b9835fb0 100644 --- a/Sources/Transition/HeroProgressRunner.swift +++ b/Sources/Transition/HeroProgressRunner.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit protocol HeroProgressRunnerDelegate: class { @@ -70,3 +72,5 @@ class HeroProgressRunner { displayLink = nil } } + +#endif diff --git a/Sources/Transition/HeroTransition+Animate.swift b/Sources/Transition/HeroTransition+Animate.swift index e570379e..24a3be15 100644 --- a/Sources/Transition/HeroTransition+Animate.swift +++ b/Sources/Transition/HeroTransition+Animate.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import Foundation extension HeroTransition { @@ -79,3 +81,5 @@ extension HeroTransition { fullScreenSnapshot?.removeFromSuperview() } } + +#endif diff --git a/Sources/Transition/HeroTransition+Complete.swift b/Sources/Transition/HeroTransition+Complete.swift index ad9aaf72..cbc2e978 100644 --- a/Sources/Transition/HeroTransition+Complete.swift +++ b/Sources/Transition/HeroTransition+Complete.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit extension HeroTransition { @@ -143,3 +145,5 @@ extension HeroTransition { transitionContext?.completeTransition(finished) } } + +#endif diff --git a/Sources/Transition/HeroTransition+CustomTransition.swift b/Sources/Transition/HeroTransition+CustomTransition.swift index 7a01131b..add4c192 100644 --- a/Sources/Transition/HeroTransition+CustomTransition.swift +++ b/Sources/Transition/HeroTransition+CustomTransition.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit // custom transition helper, used in hero_replaceViewController @@ -38,3 +40,5 @@ public extension HeroTransition { start() } } + +#endif diff --git a/Sources/Transition/HeroTransition+Interactive.swift b/Sources/Transition/HeroTransition+Interactive.swift index 8ba9663b..3cac05a9 100644 --- a/Sources/Transition/HeroTransition+Interactive.swift +++ b/Sources/Transition/HeroTransition+Interactive.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit extension HeroTransition { @@ -130,3 +132,5 @@ extension HeroTransition { } } } + +#endif diff --git a/Sources/Transition/HeroTransition+Start.swift b/Sources/Transition/HeroTransition+Start.swift index d4cf457f..504c4c28 100644 --- a/Sources/Transition/HeroTransition+Start.swift +++ b/Sources/Transition/HeroTransition+Start.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit extension HeroTransition { @@ -163,3 +165,5 @@ extension HeroTransition { #endif } } + +#endif diff --git a/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift b/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift index ec46a272..67b8bd87 100644 --- a/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift +++ b/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit extension HeroTransition: UINavigationControllerDelegate { @@ -49,3 +51,5 @@ extension HeroTransition: UINavigationControllerDelegate { return interactiveTransitioning } } + +#endif diff --git a/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift b/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift index ad1b9d58..0fdb957f 100644 --- a/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift +++ b/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit extension HeroTransition: UITabBarControllerDelegate { @@ -49,3 +51,5 @@ extension HeroTransition: UITabBarControllerDelegate { return self } } + +#endif diff --git a/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift b/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift index eee488de..b0ab0b10 100644 --- a/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift +++ b/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit extension HeroTransition: UIViewControllerTransitioningDelegate { @@ -78,3 +80,5 @@ extension HeroTransition: UIViewControllerInteractiveTransitioning { animateTransition(using: transitionContext) } } + +#endif diff --git a/Sources/Transition/HeroTransition.swift b/Sources/Transition/HeroTransition.swift index a645db8d..1080f526 100644 --- a/Sources/Transition/HeroTransition.swift +++ b/Sources/Transition/HeroTransition.swift @@ -20,6 +20,8 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#if canImport(UIKit) + import UIKit /** @@ -213,3 +215,5 @@ extension HeroTransition: HeroProgressRunnerDelegate { self.progress = progress } } + +#endif From 10e3c9e79ae6ce7334ff56fe21568889eb12c5ee Mon Sep 17 00:00:00 2001 From: Sung Date: Tue, 4 Aug 2020 10:28:09 +0900 Subject: [PATCH 05/25] Add BackButton --- Examples/SwiftUIMatchExample.swift | 32 +++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/Examples/SwiftUIMatchExample.swift b/Examples/SwiftUIMatchExample.swift index efc4ed2b..fb3f9a3a 100644 --- a/Examples/SwiftUIMatchExample.swift +++ b/Examples/SwiftUIMatchExample.swift @@ -8,7 +8,7 @@ class SwiftUIMatchExampleViewController: UIHostingController { required init() { super.init(rootView: ImagesTableView()) - + rootView.dismiss = self.dismiss rootView.onTapRow = { image in let destinationViewController = UIHostingController(rootView: ImageViewWrapper(name: image.name, heroID: image.name) @@ -25,6 +25,10 @@ class SwiftUIMatchExampleViewController: UIHostingController { @objc required dynamic init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + func dismiss(){ + self.dismiss(animated: true, completion: nil) + } } struct ImageInfo: Identifiable { @@ -35,20 +39,30 @@ struct ImageInfo: Identifiable { @available(iOS 13.0, *) struct ImagesTableView: View { - + var dismiss: (() -> Void)? var onTapRow: ((ImageInfo)->())? @State var images = (0...9).map{ ImageInfo(id: $0, name: "Unsplash\($0)") } var body: some View { - List(images) { image in - - HStack { - ImageViewWrapper(name: "\(image.name)_cell", heroID: image.name) + VStack { + HStack{ + Button(action: { + self.dismiss?() + }) { + Text("Back") + }.padding(.leading) Spacer() - Text("Image number \(image.id)").padding() - }.onTapGesture { - self.onTapRow?(image) + } + + List(images) { image in + HStack { + ImageViewWrapper(name: "\(image.name)_cell", heroID: image.name) + Spacer() + Text("Image number \(image.id)").padding() + }.onTapGesture { + self.onTapRow?(image) + } } } } From 97c09de5967a126b55cebb72020e6a014f112662 Mon Sep 17 00:00:00 2001 From: Ara Gevorkian <4725661+aragevorkian@users.noreply.github.com> Date: Tue, 24 Mar 2020 20:49:57 -0700 Subject: [PATCH 06/25] Update HeroTransition+Start.swift https://github.com/HeroTransitions/Hero/issues/640 --- Sources/Transition/HeroTransition+Start.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Sources/Transition/HeroTransition+Start.swift b/Sources/Transition/HeroTransition+Start.swift index 504c4c28..7ff7b4bf 100644 --- a/Sources/Transition/HeroTransition+Start.swift +++ b/Sources/Transition/HeroTransition+Start.swift @@ -36,7 +36,9 @@ extension HeroTransition { toView.frame = fromView.frame } toView.setNeedsLayout() - toView.layoutIfNeeded() + if nil != toView.window { + toView.layoutIfNeeded() + } } if let fvc = fromViewController, let tvc = toViewController { From 12108a2379fb8888b261a2b9da09082a584d4558 Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Thu, 8 Nov 2018 18:08:38 +0300 Subject: [PATCH 07/25] Resuming property animator from current fraction If you call `Hero.shared.cancel()`, UIVisualEffectView starts animation from scratch instead of the current fraction value. This commit fixed this issue. --- Sources/Animator/HeroViewPropertyViewContext.swift | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Sources/Animator/HeroViewPropertyViewContext.swift b/Sources/Animator/HeroViewPropertyViewContext.swift index b20d3641..841ff5d2 100644 --- a/Sources/Animator/HeroViewPropertyViewContext.swift +++ b/Sources/Animator/HeroViewPropertyViewContext.swift @@ -40,11 +40,22 @@ internal class HeroViewPropertyViewContext: HeroAnimatorViewContext { if reverse { viewPropertyAnimator?.stopAnimation(false) viewPropertyAnimator?.finishAnimation(at: .current) + viewPropertyAnimator = UIViewPropertyAnimator(duration: duration, curve: .linear) { visualEffectView.effect = reverse ? self.startEffect : self.endEffect } + + // workaround for a bug https://openradar.appspot.com/30856746 + viewPropertyAnimator.startAnimation() + viewPropertyAnimator.pauseAnimation() + + viewPropertyAnimator.fractionComplete = CGFloat(1.0 - timePassed / duration) } - viewPropertyAnimator.startAnimation() + + DispatchQueue.main.async { + self.viewPropertyAnimator.startAnimation() + } + return duration } From f737a0a75d9a721b21b62a25adf05cf05c5fa3b2 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Fortier Date: Wed, 9 Dec 2020 15:13:52 -0500 Subject: [PATCH 08/25] Fix broken link to Interactive Transitions Tutorial The previous link (http://lkzhao.com/2016/12/28/hero.html) was redirecting to a Page not found. The expected page has been moved to https://lkzhao.gitbooks.io/hero/content/docs/InteractiveTransition.html. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f94e4ba5..4e4a9517 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,7 @@ For more up-to-date ones, please see the header-doc. (use **alt+click** in Xcode ## Interactive Transition Tutorials -[Interactive transitions with Hero (Part 1)](http://lkzhao.com/2017/02/05/hero-interactive-transition.html) +[Interactive transitions with Hero (Part 1)](https://lkzhao.gitbooks.io/hero/content/docs/InteractiveTransition.html) ## FAQ From 2de8d787ac788b7afb45287a454977b46a820265 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 7 Feb 2021 19:32:08 -0500 Subject: [PATCH 09/25] Swift 5.0 remix (#695) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Swift 5.0 * Podspec * Podspec version to 1.6 * Bump version in Jazzy and xcodeproj config files Co-authored-by: Carlos Alcalá Helguero --- .jazzy.yaml | 4 ++-- Hero.podspec | 16 ++++++++-------- Hero.xcodeproj/project.pbxproj | 16 ++++++++-------- .../xcshareddata/xcschemes/Hero (tvOS).xcscheme | 6 +----- .../xcshareddata/xcschemes/Hero.xcscheme | 2 +- .../xcshareddata/WorkspaceSettings.xcsettings | 10 ++++++++++ Sources/HeroContext.swift | 4 ++-- Sources/HeroPlugin.swift | 4 ++-- ...roTransition+UITabBarControllerDelegate.swift | 4 ++-- 9 files changed, 36 insertions(+), 30 deletions(-) create mode 100644 Hero.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/.jazzy.yaml b/.jazzy.yaml index cef3e040..cb52011a 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -1,6 +1,6 @@ # ---- About ---- module: Hero -module_version: 1.5.0 +module_version: 1.6.0 author: HeroTransitions readme: README.md copyright: 'See [license](https://github.com/HeroTransitions/Hero/blob/develop/LICENSE) for more details.' @@ -9,7 +9,7 @@ copyright: 'See [license](https://github.com/HeroTransitions/Hero/blob/develop/L author_url: https://herotransitions.github.io/Hero/ dash_url: https://herotransitions.github.io/Hero/docsets/Hero.xml github_url: https://github.com/HeroTransitions/Hero/ -github_file_prefix: https://github.com/HeroTransitions/Hero/tree/1.5.0/ +github_file_prefix: https://github.com/HeroTransitions/Hero/tree/1.6.0/ # ---- Sources ---- podspec: Hero.podspec diff --git a/Hero.podspec b/Hero.podspec index a3a6b9be..fbfe5122 100644 --- a/Hero.podspec +++ b/Hero.podspec @@ -2,12 +2,12 @@ Pod::Spec.new do |s| s.name = 'Hero' - s.version = '1.5.0' + s.version = '1.6.0' s.summary = 'Elegant transition library for iOS' s.description = <<-DESC - Hero is a library for building iOS view controller transitions. - It provides a declarative layer on top of the UIKit's cumbersome transition APIs. + Hero is a library for building iOS view controller transitions. + It provides a declarative layer on top of the UIKit's cumbersome transition APIs. Making custom transitions an easy task for developers. DESC @@ -16,21 +16,21 @@ Pod::Spec.new do |s| s.documentation_url = 'https://herotransitions.github.io/Hero/' s.screenshots = ['https://git.io/JeRkv', 'https://git.io/JeRke', 'https://git.io/JeRkf', 'https://git.io/JeRkJ'] s.license = { :type => 'MIT' } - s.author = { + s.author = { 'Luke' => 'lzhaoyilun@gmail.com', - 'Joe Mattiello' => 'git@joemattiello.com' + 'Joe Mattiello' => 'git@joemattiello.com' } s.source = { git: 'https://github.com/HeroTransitions/Hero.git', tag: s.version.to_s } s.cocoapods_version = '>= 1.4.0' - s.ios.deployment_target = '8.0' - s.tvos.deployment_target = '9.0' + s.ios.deployment_target = '10.0' + s.tvos.deployment_target = '10.0' s.ios.frameworks = 'UIKit', 'Foundation', 'QuartzCore', 'CoreGraphics', 'CoreMedia' s.tvos.frameworks = 'UIKit', 'Foundation', 'QuartzCore', 'CoreGraphics', 'CoreMedia' - s.swift_version = '4.2' + s.swift_version = '5.0' s.requires_arc = true diff --git a/Hero.xcodeproj/project.pbxproj b/Hero.xcodeproj/project.pbxproj index 2c43bd11..7e7d5360 100644 --- a/Hero.xcodeproj/project.pbxproj +++ b/Hero.xcodeproj/project.pbxproj @@ -1186,7 +1186,7 @@ INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; SDKROOT = appletvos; @@ -1213,7 +1213,7 @@ INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; SDKROOT = appletvos; @@ -1236,7 +1236,7 @@ DEVELOPMENT_TEAM = 4VSEW78TKT; INFOPLIST_FILE = TvOSExamples/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTvOSExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; @@ -1256,7 +1256,7 @@ DEVELOPMENT_TEAM = 4VSEW78TKT; INFOPLIST_FILE = TvOSExamples/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTvOSExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; @@ -1283,7 +1283,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; SKIP_INSTALL = YES; @@ -1310,7 +1310,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; SKIP_INSTALL = YES; @@ -1443,7 +1443,7 @@ INFOPLIST_FILE = "$(SRCROOT)/Examples/Resources/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 4.2; @@ -1460,7 +1460,7 @@ INFOPLIST_FILE = "$(SRCROOT)/Examples/Resources/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.5.0; + MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 4.2; diff --git a/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme b/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme index 6c24ddfa..f3bdece8 100644 --- a/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme +++ b/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme @@ -1,6 +1,6 @@ - - - - + + + + BuildSystemType + Latest + PreviewsEnabled + + + diff --git a/Sources/HeroContext.swift b/Sources/HeroContext.swift index f1e1adc7..f948e789 100644 --- a/Sources/HeroContext.swift +++ b/Sources/HeroContext.swift @@ -167,7 +167,7 @@ extension HeroContext { if superviewToNoSnapshotSubviewMap[superview] == nil { superviewToNoSnapshotSubviewMap[superview] = [] } - if let index = superview.subviews.index(of: view) { + if let index = superview.subviews.firstIndex(of: view) { superviewToNoSnapshotSubviewMap[superview]!.append((index, view)) } } @@ -272,7 +272,7 @@ extension HeroContext { let pairedView = pairedView(for: view), let pairedSnapshot = snapshotViews[pairedView], let siblingViews = pairedView.superview?.subviews, - let index = siblingViews.index(of: pairedView) { + let index = siblingViews.firstIndex(of: pairedView) { let nextSiblings = siblingViews[index+1.. Bool { - return enabledPlugins.index(where: { return $0 == plugin}) != nil + return enabledPlugins.firstIndex(where: { return $0 == plugin}) != nil } static func enable(plugin: HeroPlugin.Type) { @@ -166,7 +166,7 @@ internal extension HeroTransition { } static func disable(plugin: HeroPlugin.Type) { - if let index = enabledPlugins.index(where: { return $0 == plugin}) { + if let index = enabledPlugins.firstIndex(where: { return $0 == plugin}) { enabledPlugins.remove(at: index) } } diff --git a/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift b/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift index 0fdb957f..2fa1daf0 100644 --- a/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift +++ b/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift @@ -42,8 +42,8 @@ extension HeroTransition: UITabBarControllerDelegate { public func tabBarController(_ tabBarController: UITabBarController, animationControllerForTransitionFrom fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? { guard !isTransitioning else { return nil } self.state = .notified - let fromVCIndex = tabBarController.children.index(of: fromVC)! - let toVCIndex = tabBarController.children.index(of: toVC)! + let fromVCIndex = tabBarController.children.firstIndex(of: fromVC)! + let toVCIndex = tabBarController.children.firstIndex(of: toVC)! self.isPresenting = toVCIndex > fromVCIndex self.fromViewController = fromViewController ?? fromVC self.toViewController = toViewController ?? toVC From 800b9d90238e385df8bb69f5e94887e2d0e7a695 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 7 Feb 2021 19:37:08 -0500 Subject: [PATCH 10/25] Redo of Enables application extension API only #557 (#681) * Enables application extension API only * Replace UIApp...leftToRight with Locale extension For use in Extensions that don't support UIApp Co-authored-by: Lukas Schmidt --- Examples/SwiftUIMatchExample.swift | 2 +- Hero.xcodeproj/project.pbxproj | 10 ++++++++ Sources/Extensions/Locale+Hero.swift | 24 +++++++++++++++++++ .../Extensions/UIViewController+Hero.swift | 2 ++ .../Preprocessors/CascadePreprocessor.swift | 4 ++-- .../DefaultAnimationPreprocessor.swift | 12 ++++++++-- .../Transition/HeroTransition+Complete.swift | 2 ++ 7 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 Sources/Extensions/Locale+Hero.swift diff --git a/Examples/SwiftUIMatchExample.swift b/Examples/SwiftUIMatchExample.swift index fb3f9a3a..7f3dc870 100644 --- a/Examples/SwiftUIMatchExample.swift +++ b/Examples/SwiftUIMatchExample.swift @@ -41,7 +41,7 @@ struct ImageInfo: Identifiable { struct ImagesTableView: View { var dismiss: (() -> Void)? var onTapRow: ((ImageInfo)->())? - + @State var images = (0...9).map{ ImageInfo(id: $0, name: "Unsplash\($0)") } var body: some View { diff --git a/Hero.xcodeproj/project.pbxproj b/Hero.xcodeproj/project.pbxproj index 7e7d5360..2c168106 100644 --- a/Hero.xcodeproj/project.pbxproj +++ b/Hero.xcodeproj/project.pbxproj @@ -128,6 +128,8 @@ B1D816EC1EF5A720007B9776 /* HeroTransition+Animate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1D816EA1EF5A720007B9776 /* HeroTransition+Animate.swift */; }; B1D834041F02E7C0009E1E36 /* ConditionalPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1D834031F02E7C0009E1E36 /* ConditionalPreprocessor.swift */; }; B1D834051F02E7C0009E1E36 /* ConditionalPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1D834031F02E7C0009E1E36 /* ConditionalPreprocessor.swift */; }; + B35264CE2454FEF300D33861 /* Locale+Hero.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35264CD2454FEF300D33861 /* Locale+Hero.swift */; }; + B35264CF2454FEF300D33861 /* Locale+Hero.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35264CD2454FEF300D33861 /* Locale+Hero.swift */; }; DBA05BB41A704A4A17967918 /* Pods_HeroTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841FFA357ACB279D3F74CDEE /* Pods_HeroTests.framework */; }; F482F0BE235D7808002E97ED /* UIColor+HexString.swift in Sources */ = {isa = PBXBuildFile; fileRef = F482F0BD235D7808002E97ED /* UIColor+HexString.swift */; }; F482F0BF235D7808002E97ED /* UIColor+HexString.swift in Sources */ = {isa = PBXBuildFile; fileRef = F482F0BD235D7808002E97ED /* UIColor+HexString.swift */; }; @@ -285,6 +287,7 @@ B1D816E71EF5A6FE007B9776 /* HeroTransition+Complete.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "HeroTransition+Complete.swift"; sourceTree = ""; }; B1D816EA1EF5A720007B9776 /* HeroTransition+Animate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "HeroTransition+Animate.swift"; sourceTree = ""; }; B1D834031F02E7C0009E1E36 /* ConditionalPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConditionalPreprocessor.swift; sourceTree = ""; }; + B35264CD2454FEF300D33861 /* Locale+Hero.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Locale+Hero.swift"; sourceTree = ""; }; C377744CBFF1E24426E80F55 /* Pods-HeroExamples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HeroExamples.release.xcconfig"; path = "Pods/Target Support Files/Pods-HeroExamples/Pods-HeroExamples.release.xcconfig"; sourceTree = ""; }; C51A6465EC2CB38D82F28B93 /* Pods-HeroTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HeroTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-HeroTests/Pods-HeroTests.debug.xcconfig"; sourceTree = ""; }; EEE340F89FF0A49DD23A5A6E /* Pods_HeroExamples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HeroExamples.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -355,6 +358,7 @@ A37D7B471E2C0C9300AC1959 /* CAMediaTimingFunction+Hero.swift */, A37D7B481E2C0C9300AC1959 /* CG+Hero.swift */, A37D7B491E2C0C9300AC1959 /* DispatchQueue+Hero.swift */, + B35264CD2454FEF300D33861 /* Locale+Hero.swift */, A37D7B4A1E2C0C9300AC1959 /* UIKit+Hero.swift */, B101B2C91E561408007E7112 /* UIView+Hero.swift */, B101B2CD1E561421007E7112 /* UIViewController+Hero.swift */, @@ -981,6 +985,7 @@ 2D1F7FD61E49DD18004D944B /* DispatchQueue+Hero.swift in Sources */, 2D1F7FCB1E49DD08004D944B /* HeroTargetState.swift in Sources */, B17D888D1EF5A5500048D3E8 /* HeroTransition+UIViewControllerTransitioningDelegate.swift in Sources */, + B35264CF2454FEF300D33861 /* Locale+Hero.swift in Sources */, B1D816E01EF5A5DF007B9776 /* HeroViewControllerDelegate.swift in Sources */, B1193ABA1E525D12005B1C87 /* HeroAnimatorViewContext.swift in Sources */, 2D1F7FCA1E49DD08004D944B /* HeroPlugin.swift in Sources */, @@ -1050,6 +1055,7 @@ A37D7B4D1E2C0C9300AC1959 /* CAMediaTimingFunction+Hero.swift in Sources */, A37D7B5D1E2C0CBD00AC1959 /* HeroModifier.swift in Sources */, B17D888C1EF5A5500048D3E8 /* HeroTransition+UIViewControllerTransitioningDelegate.swift in Sources */, + B35264CE2454FEF300D33861 /* Locale+Hero.swift in Sources */, B1D816DF1EF5A5DF007B9776 /* HeroViewControllerDelegate.swift in Sources */, B1193AB91E525D12005B1C87 /* HeroAnimatorViewContext.swift in Sources */, A37D7B5B1E2C0CBD00AC1959 /* HeroDefaultAnimator.swift in Sources */, @@ -1175,6 +1181,7 @@ 2D1F7FC41E49DCB5004D944B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; CURRENT_PROJECT_VERSION = 1; @@ -1203,6 +1210,7 @@ 2D1F7FC51E49DCB5004D944B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; @@ -1270,6 +1278,7 @@ A306D3BC1E1C7A2E00B6C23A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1298,6 +1307,7 @@ A306D3BD1E1C7A2E00B6C23A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; diff --git a/Sources/Extensions/Locale+Hero.swift b/Sources/Extensions/Locale+Hero.swift new file mode 100644 index 00000000..3f5ea75d --- /dev/null +++ b/Sources/Extensions/Locale+Hero.swift @@ -0,0 +1,24 @@ +// +// Locale+Hero.swift +// Hero +// +// Created by Joseph Mattiello on 4/25/20. +// Copyright © 2020 Luke Zhao. All rights reserved. +// + +import Foundation + +internal extension Locale { + internal static var isDeviceLanguageRightToLeft: Bool { + let currentLocale: Locale = Locale.current + guard let code: String = currentLocale.languageCode else { + return false + } + let direction: Locale.LanguageDirection = Locale.characterDirection(forLanguage: code) + return (direction == .rightToLeft) + } + + internal static var isDeviceLanguageLeftToRight: Bool { + return !isDeviceLanguageRightToLeft + } +} diff --git a/Sources/Extensions/UIViewController+Hero.swift b/Sources/Extensions/UIViewController+Hero.swift index 0fe09443..ed792477 100644 --- a/Sources/Extensions/UIViewController+Hero.swift +++ b/Sources/Extensions/UIViewController+Hero.swift @@ -326,7 +326,9 @@ public extension HeroExtension where Base: UIViewController { parentVC.present(next, animated: false, completion: completion) } } else { + #if TARGET_IS_EXTENSION UIApplication.shared.keyWindow?.rootViewController = next + #endif } } } diff --git a/Sources/Preprocessors/CascadePreprocessor.swift b/Sources/Preprocessors/CascadePreprocessor.swift index 22f9f694..3c8b17ff 100644 --- a/Sources/Preprocessors/CascadePreprocessor.swift +++ b/Sources/Preprocessors/CascadePreprocessor.swift @@ -74,11 +74,11 @@ public enum CascadeDirection { } public static var leadingToTrailing: CascadeDirection { - return UIApplication.shared.userInterfaceLayoutDirection == .leftToRight ? .leftToRight : .rightToLeft + return !Locale.isDeviceLanguageRightToLeft ? .leftToRight : .rightToLeft } public static var trailingToLeading: CascadeDirection { - return UIApplication.shared.userInterfaceLayoutDirection == .leftToRight ? .rightToLeft : .leftToRight + return !Locale.isDeviceLanguageRightToLeft ? .rightToLeft : .leftToRight } private func topToBottomComperator(lhs: UIView, rhs: UIView) -> Bool { diff --git a/Sources/Preprocessors/DefaultAnimationPreprocessor.swift b/Sources/Preprocessors/DefaultAnimationPreprocessor.swift index 06feb0f9..f254beb5 100644 --- a/Sources/Preprocessors/DefaultAnimationPreprocessor.swift +++ b/Sources/Preprocessors/DefaultAnimationPreprocessor.swift @@ -39,12 +39,20 @@ public enum HeroDefaultAnimationType { } } + public static var leadingToTrailing: CascadeDirection { + return !Locale.isDeviceLanguageRightToLeft ? .leftToRight : .rightToLeft + } + + public static var trailingToLeading: CascadeDirection { + return !Locale.isDeviceLanguageRightToLeft ? .rightToLeft : .leftToRight + } + public static var leading: Direction { - return UIApplication.shared.userInterfaceLayoutDirection == .leftToRight ? .left : .right + return !Locale.isDeviceLanguageRightToLeft ? .left : .right } public static var trailing: Direction { - return UIApplication.shared.userInterfaceLayoutDirection == .leftToRight ? .right : .left + return !Locale.isDeviceLanguageRightToLeft ? .right : .left } } diff --git a/Sources/Transition/HeroTransition+Complete.swift b/Sources/Transition/HeroTransition+Complete.swift index cbc2e978..208b97b5 100644 --- a/Sources/Transition/HeroTransition+Complete.swift +++ b/Sources/Transition/HeroTransition+Complete.swift @@ -89,7 +89,9 @@ extension HeroTransition { if isPresenting != finished, !inContainerController, transitionContext != nil { // only happens when present a .overFullScreen VC // bug: http://openradar.appspot.com/radar?id=5320103646199808 + #if TARGET_IS_EXTENSION UIApplication.shared.keyWindow?.addSubview(isPresenting ? fromView : toView) + #endif } } From b1a73c47b177ec86971da83204c27dc87e1edfca Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 7 Feb 2021 19:48:12 -0500 Subject: [PATCH 11/25] Swift 5 Migration + SwiftUI (#696) * Run Swift 5 Migration Tool * Inhibit warnings from CollectionKit as it is out of date * ref #623 - add SwiftUI example * ref #623 - revert target settings and make sure Example still works (in simulator) * bundle install and pod install lockfiles Co-authored-by: Nick Potts --- .gitignore | 1 + Hero.xcodeproj/project.pbxproj | 59 +++++++++---------- .../xcschemes/Hero (tvOS).xcscheme | 2 +- .../xcshareddata/xcschemes/Hero.xcscheme | 2 +- Podfile | 2 +- Podfile.lock | 4 +- Sources/HeroContext.swift | 2 +- Sources/SwiftSupport.swift | 4 +- 8 files changed, 37 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index eaee54f0..ae8ff81a 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ node_modules _book xcodebuild.log .swiftpm +/.bundle diff --git a/Hero.xcodeproj/project.pbxproj b/Hero.xcodeproj/project.pbxproj index 2c168106..9c8d6f07 100644 --- a/Hero.xcodeproj/project.pbxproj +++ b/Hero.xcodeproj/project.pbxproj @@ -780,35 +780,30 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1120; ORGANIZATIONNAME = "Luke Zhao"; TargetAttributes = { 2D1F7FBE1E49DCB5004D944B = { CreatedOnToolsVersion = 8.2; - DevelopmentTeam = 4VSEW78TKT; ProvisioningStyle = Automatic; }; 2D1F7FE11E49DD90004D944B = { CreatedOnToolsVersion = 8.2; - DevelopmentTeam = 4VSEW78TKT; ProvisioningStyle = Automatic; }; A306D3B11E1C7A2E00B6C23A = { CreatedOnToolsVersion = 8.2.1; - DevelopmentTeam = 4VSEW78TKT; - LastSwiftMigration = 1000; + LastSwiftMigration = 1120; ProvisioningStyle = Automatic; }; A33E60A01DE761C90065CBD8 = { CreatedOnToolsVersion = 8.0; - DevelopmentTeam = 683UGRW72Z; - LastSwiftMigration = 1000; + LastSwiftMigration = 1120; ProvisioningStyle = Automatic; }; AF1E1B501E66822C00ECE039 = { CreatedOnToolsVersion = 8.2; - DevelopmentTeam = 4VSEW78TKT; - LastSwiftMigration = 1000; + LastSwiftMigration = 1120; ProvisioningStyle = Automatic; TestTargetID = A33E60A01DE761C90065CBD8; }; @@ -816,10 +811,9 @@ }; buildConfigurationList = A33E609C1DE761C90065CBD8 /* Build configuration list for PBXProject "Hero" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - English, en, Base, ); @@ -1186,7 +1180,7 @@ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 4VSEW78TKT; + DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -1214,7 +1208,7 @@ CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 4VSEW78TKT; + DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -1241,7 +1235,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - DEVELOPMENT_TEAM = 4VSEW78TKT; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = TvOSExamples/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.6.0; @@ -1261,7 +1255,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - DEVELOPMENT_TEAM = 4VSEW78TKT; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = TvOSExamples/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.6.0; @@ -1282,9 +1276,10 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 4VSEW78TKT; + DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -1297,7 +1292,7 @@ PRODUCT_NAME = Hero; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1312,7 +1307,7 @@ CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 4VSEW78TKT; + DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -1324,7 +1319,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1335,6 +1330,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -1361,7 +1357,6 @@ CLANG_WARN_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1387,7 +1382,7 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1395,6 +1390,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -1421,7 +1417,6 @@ CLANG_WARN_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -1439,7 +1434,7 @@ SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -1449,14 +1444,14 @@ baseConfigurationReference = 5CD4F09A588E81DA75C2BE38 /* Pods-HeroExamples.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = 683UGRW72Z; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "$(SRCROOT)/Examples/Resources/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -1466,14 +1461,14 @@ baseConfigurationReference = C377744CBFF1E24426E80F55 /* Pods-HeroExamples.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = 683UGRW72Z; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "$(SRCROOT)/Examples/Resources/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; @@ -1483,13 +1478,14 @@ baseConfigurationReference = C51A6465EC2CB38D82F28B93 /* Pods-HeroTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = 4VSEW78TKT; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HeroExamples.app/HeroExamples"; }; name = Debug; @@ -1499,13 +1495,14 @@ baseConfigurationReference = 5CEC69C9A9A60129002FD931 /* Pods-HeroTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = 4VSEW78TKT; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HeroExamples.app/HeroExamples"; }; name = Release; diff --git a/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme b/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme index f3bdece8..942a03ee 100644 --- a/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme +++ b/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme @@ -1,6 +1,6 @@ true target 'HeroTests' do inherit! :search_paths diff --git a/Podfile.lock b/Podfile.lock index cff3af08..5eab3ecf 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -7,12 +7,12 @@ DEPENDENCIES: - CollectionKit SPEC REPOS: - https://github.com/CocoaPods/Specs.git: + https://cdn.cocoapods.org/: - CollectionKit SPEC CHECKSUMS: CollectionKit: 5caa5341860d4c9b748ebfeaab97530b2d02c7c0 -PODFILE CHECKSUM: efc6b025c2cee81dcc6fa480009618ed1af56837 +PODFILE CHECKSUM: bfa4251748617deb38237ad241be4629254392c1 COCOAPODS: 1.8.4 diff --git a/Sources/HeroContext.swift b/Sources/HeroContext.swift index f948e789..03cc6a0d 100644 --- a/Sources/HeroContext.swift +++ b/Sources/HeroContext.swift @@ -272,7 +272,7 @@ extension HeroContext { let pairedView = pairedView(for: view), let pairedSnapshot = snapshotViews[pairedView], let siblingViews = pairedView.superview?.subviews, - let index = siblingViews.firstIndex(of: pairedView) { + let index = siblingViews.firstIndex(of: pairedView) { let nextSiblings = siblingViews[index+1.. Date: Tue, 29 Oct 2019 02:20:07 -0400 Subject: [PATCH 12/25] Fix tvOS 13 if available markers Signed-off-by: Joe Mattiello --- Examples/AppStoreCardExample.swift | 2 +- Examples/ExampleBaseViewController.swift | 2 +- Examples/MainViewController.swift | 4 ++-- Examples/MatchExample.swift | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Examples/AppStoreCardExample.swift b/Examples/AppStoreCardExample.swift index ae67d213..d9cc3533 100644 --- a/Examples/AppStoreCardExample.swift +++ b/Examples/AppStoreCardExample.swift @@ -219,7 +219,7 @@ class AppStoreViewController2: ExampleBaseViewController { Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent neque est, hendrerit vitae nibh ultrices, accumsan elementum ante. Phasellus fringilla sapien non lorem consectetur, in ullamcorper tortor condimentum. Nulla tincidunt iaculis maximus. Sed ut urna urna. Nulla at sem vel neque scelerisque imperdiet. Donec ornare luctus dapibus. Donec aliquet ante augue, at pellentesque ipsum mollis eget. Cras vulputate mauris ac eleifend sollicitudin. Vivamus ut posuere odio. Suspendisse vulputate sem vel felis vehicula iaculis. Fusce sagittis, eros quis consequat tincidunt, arcu nunc ornare nulla, non egestas dolor ex at ipsum. Cras et massa sit amet quam imperdiet viverra. Mauris vitae finibus nibh, ac vulputate sapien. """ - if #available(iOS 13.0, *) { + if #available(iOS 13.0, tvOS 13, *) { contentCard.backgroundColor = .systemBackground } else { contentCard.backgroundColor = .white diff --git a/Examples/ExampleBaseViewController.swift b/Examples/ExampleBaseViewController.swift index 35d7999b..2232eaad 100644 --- a/Examples/ExampleBaseViewController.swift +++ b/Examples/ExampleBaseViewController.swift @@ -14,7 +14,7 @@ class ExampleBaseViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - if #available(iOS 13.0, *) { + if #available(iOS 13.0, tvOS 13, *) { view.backgroundColor = .systemBackground } else { view.backgroundColor = .white diff --git a/Examples/MainViewController.swift b/Examples/MainViewController.swift index 91eb8ad1..1a5249a8 100644 --- a/Examples/MainViewController.swift +++ b/Examples/MainViewController.swift @@ -9,7 +9,7 @@ class MainViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - if #available(iOS 13.0, *) { + if #available(iOS 13.0, tvOS 13, *) { view.backgroundColor = UIColor.systemBackground } else { view.backgroundColor = .white @@ -35,7 +35,7 @@ class MainViewController: UIViewController { let viewSource = ClosureViewSource { (label: UILabel, data: SourceData, index) in label.text = "\(index + 1). \(data.exampleTitle)" label.textAlignment = .center - if #available(iOS 13.0, *) { + if #available(iOS 13.0, tvOS 13, *) { label.textColor = .label label.backgroundColor = .systemBackground } else { diff --git a/Examples/MatchExample.swift b/Examples/MatchExample.swift index 3c94b9c0..fa1247e0 100644 --- a/Examples/MatchExample.swift +++ b/Examples/MatchExample.swift @@ -65,7 +65,7 @@ class MatchExampleViewController2: ExampleBaseViewController { blackView.cornerRadius = 8 view.addSubview(blackView) - if #available(iOS 13.0, *) { + if #available(iOS 13.0, tvOS 13, *) { backgroundView.backgroundColor = .systemBackground } else { backgroundView.backgroundColor = .white From bbcb4250ca7945dd9b46b4aed1dd70b86c1818ee Mon Sep 17 00:00:00 2001 From: Adam Cumiskey Date: Tue, 19 Mar 2019 17:23:54 -0400 Subject: [PATCH 13/25] Support `maskedCorners` on iOS 11+ --- Sources/HeroContext.swift | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Sources/HeroContext.swift b/Sources/HeroContext.swift index 03cc6a0d..a8c55abe 100644 --- a/Sources/HeroContext.swift +++ b/Sources/HeroContext.swift @@ -141,6 +141,13 @@ extension HeroContext { unhide(view: view) // capture a snapshot without alpha, cornerRadius, or shadows + let oldMaskedCorners: CACornerMask = { + if #available(iOS 11, *) { + return view.layer.maskedCorners + } else { + return [] + } + }() let oldCornerRadius = view.layer.cornerRadius let oldAlpha = view.alpha let oldShadowRadius = view.layer.shadowRadius @@ -222,6 +229,9 @@ extension HeroContext { } #endif + if #available(iOS 11, *) { + view.layer.maskedCorners = oldMaskedCorners + } view.layer.cornerRadius = oldCornerRadius view.alpha = oldAlpha view.layer.shadowRadius = oldShadowRadius @@ -241,12 +251,18 @@ extension HeroContext { if !(view is UINavigationBar), let contentView = snapshot.subviews.get(0) { // the Snapshot's contentView must have hold the cornerRadius value, // since the snapshot might not have maskToBounds set + if #available(iOS 11, *) { + contentView.layer.maskedCorners = view.layer.maskedCorners + } contentView.layer.cornerRadius = view.layer.cornerRadius contentView.layer.masksToBounds = true } - snapshot.layer.allowsGroupOpacity = false + if #available(iOS 11, *) { + snapshot.layer.maskedCorners = view.layer.maskedCorners + } snapshot.layer.cornerRadius = view.layer.cornerRadius + snapshot.layer.allowsGroupOpacity = false snapshot.layer.zPosition = view.layer.zPosition snapshot.layer.opacity = view.layer.opacity snapshot.layer.isOpaque = view.layer.isOpaque From 03491d57b2e63c7da8e7df22c3efe83ad9ee3af5 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 7 Feb 2021 20:56:12 -0500 Subject: [PATCH 14/25] Warnings fix (#698) * Fix available view.layer.maskedCorners on tvOS 11+ * Fix redundant privacy statements # Conflicts: # Sources/Extensions/CAMediaTimingFunction+Hero.swift * Swift version bump 5.0 in demo targets * XCode 11 suggested project settings * Fix swiftlint warnings * Gem update, cocoapods to 1.10 * iOS Min version to 10.0 in local targets * .swiftlint.yml renamed variable_name to identifier_name * Parallize command line builds --- .swiftlint.yml | 5 +- Gemfile | 2 +- Gemfile.lock | 260 +++++++++++------- Hero.xcodeproj/project.pbxproj | 109 +++++--- .../xcschemes/Hero (tvOS).xcscheme | 2 +- .../xcshareddata/xcschemes/Hero.xcscheme | 2 +- Podfile | 4 +- Podfile.lock | 12 +- .../HeroCoreAnimationViewContext.swift | 2 + .../HeroViewPropertyViewContext.swift | 10 +- Sources/Extensions/CALayer+Hero.swift | 1 + Sources/Extensions/Locale+Hero.swift | 4 +- Sources/HeroContext.swift | 8 +- 13 files changed, 258 insertions(+), 163 deletions(-) diff --git a/.swiftlint.yml b/.swiftlint.yml index 18dcbf10..8ac9c143 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,9 +1,8 @@ disabled_rules: # rule identifiers to exclude from running - missing_docs - unused_closure_parameter - - force_cast + - identifier_name - weak_delegate - - variable_name - cyclomatic_complexity - function_body_length - todo @@ -52,7 +51,7 @@ type_name: - T - t -variable_name: +identifier_name: min_length: # only min_length error: 3 # only error excluded: # excluded via string array diff --git a/Gemfile b/Gemfile index 29321ba5..4ee0deff 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' #ruby '~> 2.5.1' -gem 'cocoapods', '~> 1.8' +gem 'cocoapods', '~> 1.10' gem 'cocoapods-check' gem 'cocoapods-generate' gem 'cocoapods-githooks' # Sync .git-hooks across team members at `pod install` time diff --git a/Gemfile.lock b/Gemfile.lock index 2167f95e..ba58c9c4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,39 +1,56 @@ GIT remote: https://github.com/jcouball/ruby-git.git - revision: 2402674cc50168f85fdc9c8faa0ca4b9a16d5944 + revision: 12f908c2122ac539cef04474947535a5786bd15e specs: - git (1.5.0) + git (1.7.0) + rchardet (~> 1.8) GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.2) - activesupport (4.2.11.1) - i18n (~> 0.7) + CFPropertyList (3.0.3) + activesupport (5.2.4.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - algoliasearch (1.27.1) + algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) + artifactory (3.0.15) atomos (0.1.3) - babosa (1.0.3) + aws-eventstream (1.1.0) + aws-partitions (1.424.0) + aws-sdk-core (3.112.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.239.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-kms (1.42.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.88.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.1) + aws-sigv4 (1.2.2) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) claide (1.0.3) claide-plugins (0.9.2) cork nap open4 (~> 1.3) - cocoapods (1.8.4) - activesupport (>= 4.0.2, < 5) + cocoapods (1.10.1) + addressable (~> 2.6) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.8.4) + cocoapods-core (= 1.10.1) cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.2.2, < 2.0) + cocoapods-downloader (>= 1.4.0, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-stats (>= 1.0.0, < 2.0) cocoapods-trunk (>= 1.4.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) @@ -43,19 +60,23 @@ GEM molinillo (~> 0.6.6) nap (~> 1.0) ruby-macho (~> 1.4) - xcodeproj (>= 1.11.1, < 2.0) + xcodeproj (>= 1.19.0, < 2.0) cocoapods-check (1.1.0) cocoapods (~> 1.0) - cocoapods-core (1.8.4) - activesupport (>= 4.0.2, < 6) + cocoapods-core (1.10.1) + activesupport (> 5.0, < 6) + addressable (~> 2.6) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) fuzzy_match (~> 2.0.4) nap (~> 1.0) + netrc (~> 0.11) + public_suffix + typhoeus (~> 1.0) cocoapods-deintegrate (1.0.4) cocoapods-disable-podfile-validations (0.1.1) - cocoapods-downloader (1.3.0) - cocoapods-generate (1.6.0) + cocoapods-downloader (1.4.0) + cocoapods-generate (2.2.1) cocoapods-disable-podfile-validations (~> 0.1.1) cocoapods-githooks (1.0.3) cocoapods-packager (1.5.0) @@ -65,27 +86,26 @@ GEM cocoapods-repo-update (0.0.4) cocoapods (~> 1.0, >= 1.3.0) cocoapods-search (1.0.0) - cocoapods-stats (1.1.0) - cocoapods-trunk (1.4.1) + cocoapods-trunk (1.5.0) nap (>= 0.8, < 2.0) netrc (~> 0.11) - cocoapods-try (1.1.0) + cocoapods-try (1.2.0) colored (1.2) colored2 (3.1.2) commander-fastlane (4.4.6) highline (~> 1.7.2) - concurrent-ruby (1.1.5) + concurrent-ruby (1.1.8) cork (0.3.0) colored2 (~> 3.1) - danger (6.1.0) + danger (8.2.2) claide (~> 1.0) claide-plugins (>= 0.9.2) colored2 (~> 3.1) cork (~> 0.1) - faraday (~> 0.9) + faraday (>= 0.9.0, < 2.0) faraday-http-cache (~> 2.0) - git (~> 1.5) - kramdown (~> 2.0) + git (~> 1.7) + kramdown (~> 2.3) kramdown-parser-gfm (~> 1.0) no_proxy_fix octokit (~> 4.7) @@ -94,58 +114,64 @@ GEM danger-plugin-api (~> 1.0) danger-plugin-api (1.0.0) danger (> 2.0) - danger-swiftlint (0.23.0) + danger-swiftlint (0.24.5) danger rake (> 10) thor (~> 0.19) - danger-xcov (0.4.1) + danger-xcov (0.5.0) danger (>= 2.1) - xcov (>= 1.1.2) - declarative (0.0.10) + xcov (>= 1.7.3) + declarative (0.0.20) declarative-option (0.1.0) - digest-crc (0.4.1) + digest-crc (0.6.3) + rake (>= 12.0.0, < 14.0.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.5) - emoji_regex (1.0.1) + dotenv (2.7.6) + emoji_regex (3.2.1) escape (0.0.4) - excon (0.70.0) - faraday (0.17.1) + ethon (0.12.0) + ffi (>= 1.3.0) + excon (0.79.0) + faraday (1.3.0) + faraday-net_http (~> 1.0) multipart-post (>= 1.2, < 3) - faraday-cookie_jar (0.0.6) - faraday (>= 0.7.4) + ruby2_keywords + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) http-cookie (~> 1.0.0) - faraday-http-cache (2.0.0) - faraday (~> 0.8) - faraday_middleware (0.13.1) - faraday (>= 0.7.4, < 1.0) - fastimage (2.1.7) - fastlane (2.137.0) + faraday-http-cache (2.2.0) + faraday (>= 0.8) + faraday-net_http (1.0.1) + faraday_middleware (1.0.0) + faraday (~> 1.0) + fastimage (2.2.2) + fastlane (2.173.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) - babosa (>= 1.0.2, < 2.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) bundler (>= 1.12.0, < 3.0.0) colored commander-fastlane (>= 4.4.6, < 5.0.0) dotenv (>= 2.1.1, < 3.0.0) - emoji_regex (>= 0.1, < 2.0) - excon (>= 0.45.0, < 1.0.0) - faraday (~> 0.17) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 0.13.1) + faraday_middleware (~> 1.0) fastimage (>= 2.1.0, < 3.0.0) gh_inspector (>= 1.1.2, < 2.0.0) - google-api-client (>= 0.21.2, < 0.24.0) + google-api-client (>= 0.37.0, < 0.39.0) google-cloud-storage (>= 1.15.0, < 2.0.0) highline (>= 1.7.2, < 2.0.0) json (< 3.0.0) - jwt (~> 2.1.0) + jwt (>= 2.1.0, < 3) mini_magick (>= 4.9.4, < 5.0.0) - multi_xml (~> 0.5) multipart-post (~> 2.0.0) plist (>= 3.1.0, < 4.0.0) - public_suffix (~> 2.0.0) - rubyzip (>= 1.3.0, < 2.0.0) + rubyzip (>= 2.0.0, < 3.0.0) security (= 0.1.3) simctl (~> 1.6.3) slack-notifier (>= 2.0.0, < 3.0.0) @@ -154,88 +180,111 @@ GEM tty-screen (>= 0.6.3, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) - xcodeproj (>= 1.8.1, < 2.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) + ffi (1.14.2) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) git_diff_parser (3.2.0) - google-api-client (0.23.9) + google-api-client (0.38.0) + addressable (~> 2.5, >= 2.5.1) + googleauth (~> 0.9) + httpclient (>= 2.8.1, < 3.0) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + signet (~> 0.12) + google-apis-core (0.2.1) addressable (~> 2.5, >= 2.5.1) - googleauth (>= 0.5, < 0.7.0) + googleauth (~> 0.14) httpclient (>= 2.8.1, < 3.0) - mime-types (~> 3.0) + mini_mime (~> 1.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) - signet (~> 0.9) - google-cloud-core (1.4.1) + rexml + signet (~> 0.14) + webrick + google-apis-iamcredentials_v1 (0.1.0) + google-apis-core (~> 0.1) + google-apis-storage_v1 (0.1.0) + google-apis-core (~> 0.1) + google-cloud-core (1.5.0) google-cloud-env (~> 1.0) - google-cloud-env (1.3.0) - faraday (~> 0.11) - google-cloud-storage (1.16.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.4.0) + faraday (>= 0.17.3, < 2.0) + google-cloud-errors (1.0.1) + google-cloud-storage (1.30.0) + addressable (~> 2.5) digest-crc (~> 0.4) - google-api-client (~> 0.23) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.1) google-cloud-core (~> 1.2) - googleauth (>= 0.6.2, < 0.10.0) - googleauth (0.6.7) - faraday (~> 0.12) + googleauth (~> 0.9) + mini_mime (~> 1.0) + googleauth (0.15.0) + faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.7) + signet (~> 0.14) highline (1.7.10) http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) - i18n (0.9.5) + i18n (1.8.8) concurrent-ruby (~> 1.0) - json (2.3.0) - jwt (2.1.0) - kramdown (2.1.0) + jmespath (1.4.0) + json (2.5.1) + jwt (2.2.2) + kramdown (2.3.0) + rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) memoist (0.16.2) - mime-types (3.3) - mime-types-data (~> 3.2015) - mime-types-data (3.2019.1009) - mini_magick (4.9.5) - minitest (5.13.0) + mini_magick (4.11.0) + mini_mime (1.0.2) + minitest (5.14.3) molinillo (0.6.6) - multi_json (1.14.1) - multi_xml (0.6.0) + multi_json (1.15.0) multipart-post (2.0.0) - nanaimo (0.2.6) + nanaimo (0.3.0) nap (1.1.0) - naturally (2.2.0) + naturally (2.2.1) netrc (0.11.0) no_proxy_fix (0.1.2) - octokit (4.14.0) + octokit (4.20.0) + faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) open4 (1.3.4) - os (1.0.1) - plist (3.5.0) - public_suffix (2.0.5) - rake (13.0.1) + os (1.1.1) + plist (3.6.0) + public_suffix (4.0.6) + rake (13.0.3) + rchardet (1.8.0) representable (3.0.4) declarative (< 0.1.0) declarative-option (< 0.2.0) uber (< 0.2.0) retriable (3.1.2) + rexml (3.2.4) rouge (2.0.7) ruby-macho (1.4.0) - rubyzip (1.3.0) + ruby2_keywords (0.0.4) + rubyzip (2.3.0) sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) security (0.1.3) - signet (0.12.0) + signet (0.14.1) addressable (~> 2.3) - faraday (~> 0.9) + faraday (>= 0.17.3, < 2.0) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) - simctl (1.6.6) + simctl (1.6.8) CFPropertyList naturally slack-notifier (2.3.2) @@ -244,29 +293,32 @@ GEM unicode-display_width (~> 1.1, >= 1.1.1) thor (0.20.3) thread_safe (0.3.6) - tty-cursor (0.7.0) - tty-screen (0.7.0) - tty-spinner (0.9.2) + tty-cursor (0.7.1) + tty-screen (0.8.1) + tty-spinner (0.9.3) tty-cursor (~> 0.7) - tzinfo (1.2.5) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (1.2.9) thread_safe (~> 0.1) uber (0.1.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) - unicode-display_width (1.6.0) + unf_ext (0.0.7.7) + unicode-display_width (1.7.0) + webrick (1.7.0) word_wrap (1.0.0) - xcode-install (2.6.3) + xcode-install (2.6.8) claide (>= 0.9.1, < 1.1.0) fastlane (>= 2.1.0, < 3.0.0) - xcodeproj (1.13.0) + xcodeproj (1.19.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.2.6) - xcov (1.7.0) - fastlane (>= 2.82.0, < 3.0.0) + nanaimo (~> 0.3.0) + xcov (1.7.5) + fastlane (>= 2.141.0, < 3.0.0) multipart-post slack-notifier terminal-table @@ -274,15 +326,15 @@ GEM xcresult (~> 0.2.0) xcpretty (0.3.0) rouge (~> 2.0.7) - xcpretty-travis-formatter (1.0.0) + xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) - xcresult (0.2.0) + xcresult (0.2.1) PLATFORMS ruby DEPENDENCIES - cocoapods (~> 1.8) + cocoapods (~> 1.10) cocoapods-check cocoapods-generate cocoapods-githooks @@ -299,4 +351,4 @@ DEPENDENCIES xcpretty BUNDLED WITH - 2.0.2 + 2.1.4 diff --git a/Hero.xcodeproj/project.pbxproj b/Hero.xcodeproj/project.pbxproj index 9c8d6f07..6a4e5338 100644 --- a/Hero.xcodeproj/project.pbxproj +++ b/Hero.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 53; objects = { /* Begin PBXBuildFile section */ @@ -779,16 +779,19 @@ A33E60991DE761C90065CBD8 /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 1120; - ORGANIZATIONNAME = "Luke Zhao"; + LastUpgradeCheck = 1240; + ORGANIZATIONNAME = "Hero Transitions"; TargetAttributes = { 2D1F7FBE1E49DCB5004D944B = { CreatedOnToolsVersion = 8.2; + LastSwiftMigration = 1240; ProvisioningStyle = Automatic; }; 2D1F7FE11E49DD90004D944B = { CreatedOnToolsVersion = 8.2; + LastSwiftMigration = 1240; ProvisioningStyle = Automatic; }; A306D3B11E1C7A2E00B6C23A = { @@ -810,7 +813,7 @@ }; }; buildConfigurationList = A33E609C1DE761C90065CBD8 /* Build configuration list for PBXProject "Hero" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 11.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -882,13 +885,12 @@ buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-HeroExamples/Pods-HeroExamples-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/CollectionKit/CollectionKit.framework", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-HeroExamples/Pods-HeroExamples-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CollectionKit.framework", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-HeroExamples/Pods-HeroExamples-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -1186,16 +1188,20 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; SDKROOT = appletvos; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 10.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1214,16 +1220,20 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; SDKROOT = appletvos; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 10.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1237,15 +1247,18 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = TvOSExamples/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTvOSExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 10.0; }; name = Debug; }; @@ -1257,15 +1270,18 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = TvOSExamples/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTvOSExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 10.0; }; name = Release; }; @@ -1285,8 +1301,12 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; @@ -1313,8 +1333,12 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.Hero; PRODUCT_NAME = Hero; @@ -1351,6 +1375,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1375,7 +1400,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -1411,6 +1436,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1429,10 +1455,11 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_VERSION = 5.0; VALIDATE_PRODUCT = YES; @@ -1446,8 +1473,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "$(SRCROOT)/Examples/Resources/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1463,8 +1493,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "$(SRCROOT)/Examples/Resources/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); MARKETING_VERSION = 1.6.0; PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1482,7 +1515,11 @@ DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -1499,7 +1536,11 @@ DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; diff --git a/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme b/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme index 942a03ee..75ff4994 100644 --- a/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme +++ b/Hero.xcodeproj/xcshareddata/xcschemes/Hero (tvOS).xcscheme @@ -1,6 +1,6 @@ true @@ -11,6 +11,6 @@ target 'HeroExamples' do end target 'HeroTvOSExamples' do - platform :tvos, '9.0' + platform :tvos, '10.0' use_frameworks! end diff --git a/Podfile.lock b/Podfile.lock index 5eab3ecf..729f414a 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,7 +1,7 @@ PODS: - - CollectionKit (2.2.0): - - CollectionKit/Core (= 2.2.0) - - CollectionKit/Core (2.2.0) + - CollectionKit (2.4.0): + - CollectionKit/Core (= 2.4.0) + - CollectionKit/Core (2.4.0) DEPENDENCIES: - CollectionKit @@ -11,8 +11,8 @@ SPEC REPOS: - CollectionKit SPEC CHECKSUMS: - CollectionKit: 5caa5341860d4c9b748ebfeaab97530b2d02c7c0 + CollectionKit: 8f01e7629185bb81072c4aa734d105df5c2d1c8b -PODFILE CHECKSUM: bfa4251748617deb38237ad241be4629254392c1 +PODFILE CHECKSUM: 5c14933c915eeee6fbe5ecdd950d3da01c4a0a86 -COCOAPODS: 1.8.4 +COCOAPODS: 1.10.1 diff --git a/Sources/Animator/HeroCoreAnimationViewContext.swift b/Sources/Animator/HeroCoreAnimationViewContext.swift index b402170c..012c67a8 100644 --- a/Sources/Animator/HeroCoreAnimationViewContext.swift +++ b/Sources/Animator/HeroCoreAnimationViewContext.swift @@ -234,9 +234,11 @@ internal class HeroCoreAnimationViewContext: HeroAnimatorViewContext { case "cornerRadius", "contentsRect", "contentsScale": addAnimation(anim, for: key, to: snapshot.layer) if let contentLayer = contentLayer { + // swiftlint:disable:next force_cast addAnimation(anim.copy() as! CAAnimation, for: key, to: contentLayer) } if let overlayLayer = overlayLayer { + // swiftlint:disable:next force_cast addAnimation(anim.copy() as! CAAnimation, for: key, to: overlayLayer) } case "bounds.size": diff --git a/Sources/Animator/HeroViewPropertyViewContext.swift b/Sources/Animator/HeroViewPropertyViewContext.swift index 841ff5d2..11e56596 100644 --- a/Sources/Animator/HeroViewPropertyViewContext.swift +++ b/Sources/Animator/HeroViewPropertyViewContext.swift @@ -40,22 +40,22 @@ internal class HeroViewPropertyViewContext: HeroAnimatorViewContext { if reverse { viewPropertyAnimator?.stopAnimation(false) viewPropertyAnimator?.finishAnimation(at: .current) - + viewPropertyAnimator = UIViewPropertyAnimator(duration: duration, curve: .linear) { visualEffectView.effect = reverse ? self.startEffect : self.endEffect } - + // workaround for a bug https://openradar.appspot.com/30856746 viewPropertyAnimator.startAnimation() viewPropertyAnimator.pauseAnimation() - + viewPropertyAnimator.fractionComplete = CGFloat(1.0 - timePassed / duration) } - + DispatchQueue.main.async { self.viewPropertyAnimator.startAnimation() } - + return duration } diff --git a/Sources/Extensions/CALayer+Hero.swift b/Sources/Extensions/CALayer+Hero.swift index a8ceb738..86ca09b7 100644 --- a/Sources/Extensions/CALayer+Hero.swift +++ b/Sources/Extensions/CALayer+Hero.swift @@ -29,6 +29,7 @@ internal extension CALayer { // the returned value is mutable var animations: [(String, CAAnimation)] { if let keys = animationKeys() { + // swiftlint:disable:next force_cast return keys.map { return ($0, self.animation(forKey: $0)!.copy() as! CAAnimation) } } return [] diff --git a/Sources/Extensions/Locale+Hero.swift b/Sources/Extensions/Locale+Hero.swift index 3f5ea75d..11c0244b 100644 --- a/Sources/Extensions/Locale+Hero.swift +++ b/Sources/Extensions/Locale+Hero.swift @@ -9,7 +9,7 @@ import Foundation internal extension Locale { - internal static var isDeviceLanguageRightToLeft: Bool { + static var isDeviceLanguageRightToLeft: Bool { let currentLocale: Locale = Locale.current guard let code: String = currentLocale.languageCode else { return false @@ -18,7 +18,7 @@ internal extension Locale { return (direction == .rightToLeft) } - internal static var isDeviceLanguageLeftToRight: Bool { + static var isDeviceLanguageLeftToRight: Bool { return !isDeviceLanguageRightToLeft } } diff --git a/Sources/HeroContext.swift b/Sources/HeroContext.swift index a8c55abe..c98b5a4a 100644 --- a/Sources/HeroContext.swift +++ b/Sources/HeroContext.swift @@ -142,7 +142,7 @@ extension HeroContext { // capture a snapshot without alpha, cornerRadius, or shadows let oldMaskedCorners: CACornerMask = { - if #available(iOS 11, *) { + if #available(iOS 11, tvOS 11, *) { return view.layer.maskedCorners } else { return [] @@ -229,7 +229,7 @@ extension HeroContext { } #endif - if #available(iOS 11, *) { + if #available(iOS 11, tvOS 11, *) { view.layer.maskedCorners = oldMaskedCorners } view.layer.cornerRadius = oldCornerRadius @@ -251,14 +251,14 @@ extension HeroContext { if !(view is UINavigationBar), let contentView = snapshot.subviews.get(0) { // the Snapshot's contentView must have hold the cornerRadius value, // since the snapshot might not have maskToBounds set - if #available(iOS 11, *) { + if #available(iOS 11, tvOS 11, *) { contentView.layer.maskedCorners = view.layer.maskedCorners } contentView.layer.cornerRadius = view.layer.cornerRadius contentView.layer.masksToBounds = true } - if #available(iOS 11, *) { + if #available(iOS 11, tvOS 11, *) { snapshot.layer.maskedCorners = view.layer.maskedCorners } snapshot.layer.cornerRadius = view.layer.cornerRadius From 8aae14c19e856b2955b224325e395f1a0a958e37 Mon Sep 17 00:00:00 2001 From: _ant_one Date: Mon, 16 Sep 2019 07:37:44 -0300 Subject: [PATCH 15/25] Create FUNDING.yml --- .github/FUNDING.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..18f83502 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [JoeMatt] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 45e05893ae03980cf6f2859f8074ae2c9cbe6a16 Mon Sep 17 00:00:00 2001 From: Joseph Mattiello Date: Sun, 7 Feb 2021 21:14:55 -0500 Subject: [PATCH 16/25] funding.yml add opencollective group --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 18f83502..52357120 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -2,7 +2,7 @@ github: [JoeMatt] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username +open_collective: herotransitions # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry From 616d9872e7c5f8da801db7455577a2dbe11def8d Mon Sep 17 00:00:00 2001 From: Joseph Mattiello Date: Sun, 7 Feb 2021 21:25:17 -0500 Subject: [PATCH 17/25] funding.yml add admins GH usernames --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 52357120..24c8faaf 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: [JoeMatt] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: [JoeMatt, lkzhao, SD10, kuyazee] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username open_collective: herotransitions # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username From 504afc8ada7da45733b844ad980cc8db19171b2b Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Mon, 8 Feb 2021 00:10:35 -0500 Subject: [PATCH 18/25] Swift Package Manager 5 (#628) * Update Package.swift for SPM 5 Signed-off-by: Joe Mattiello * Add if canImport for UIKit for Swift PM * swiftlint autocorrect * swift pm add CLI tools --- Package.resolved | 187 ++++++++++++++++++ Package.swift | 45 ++++- Sources/Extensions/Array+HeroModifier.swift | 6 +- .../CAMediaTimingFunction+Hero.swift | 4 +- Sources/Extensions/UIColor+HexString.swift | 3 +- .../HeroModifier+HeroStringConvertible.swift | 2 + Sources/HeroModifier.swift | 176 +++++++++-------- Sources/HeroTargetState.swift | 5 +- Sources/Parser/HeroStringConvertible.swift | 6 +- Sources/SwiftSupport.swift | 6 +- Sources/Transition/HeroProgressRunner.swift | 6 +- .../Transition/HeroTransition+Animate.swift | 3 +- Tests/HeroTests.swift | 1 - 13 files changed, 331 insertions(+), 119 deletions(-) create mode 100644 Package.resolved diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 00000000..40069492 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,187 @@ +{ + "object": { + "pins": [ + { + "package": "Commandant", + "repositoryURL": "https://github.com/Carthage/Commandant.git", + "state": { + "branch": null, + "revision": "ab68611013dec67413628ac87c1f29e8427bc8e4", + "version": "0.17.0" + } + }, + { + "package": "Files", + "repositoryURL": "https://github.com/JohnSundell/Files.git", + "state": { + "branch": null, + "revision": "a84615f4558151fab52ac38df697ce2442991f93", + "version": "2.3.0" + } + }, + { + "package": "Komondor", + "repositoryURL": "https://github.com/orta/Komondor", + "state": { + "branch": null, + "revision": "855c74f395a4dc9e02828f58d931be6920bcbf6f", + "version": "1.0.6" + } + }, + { + "package": "Logger", + "repositoryURL": "https://github.com/shibapm/Logger", + "state": { + "branch": null, + "revision": "53c3ecca5abe8cf46697e33901ee774236d94cce", + "version": "0.2.3" + } + }, + { + "package": "Marathon", + "repositoryURL": "https://github.com/JohnSundell/Marathon", + "state": { + "branch": null, + "revision": "35b672e05ac411fb104e462fbfd6541f995abc17", + "version": "3.3.0" + } + }, + { + "package": "Nimble", + "repositoryURL": "https://github.com/Quick/Nimble.git", + "state": { + "branch": null, + "revision": "7a46a5fc86cb917f69e3daf79fcb045283d8f008", + "version": "8.1.2" + } + }, + { + "package": "OctoKit", + "repositoryURL": "https://github.com/nerdishbynature/octokit.swift", + "state": { + "branch": null, + "revision": "c391cfba4d33f3f4c7d7d8fa6708970f7d30af82", + "version": "0.10.1" + } + }, + { + "package": "PackageConfig", + "repositoryURL": "https://github.com/shibapm/PackageConfig.git", + "state": { + "branch": null, + "revision": "bf90dc69fa0792894b08a0b74cf34029694ae486", + "version": "0.13.0" + } + }, + { + "package": "Quick", + "repositoryURL": "https://github.com/Quick/Quick.git", + "state": { + "branch": null, + "revision": "09b3becb37cb2163919a3842a4c5fa6ec7130792", + "version": "2.2.1" + } + }, + { + "package": "Releases", + "repositoryURL": "https://github.com/JohnSundell/Releases.git", + "state": { + "branch": null, + "revision": "ea62f33a429185b0ed21344c2355862c5bc4fcce", + "version": "4.0.0" + } + }, + { + "package": "RequestKit", + "repositoryURL": "https://github.com/nerdishbynature/RequestKit.git", + "state": { + "branch": null, + "revision": "fd5e9e99aada7432170366c9e95967011ce13bad", + "version": "2.4.0" + } + }, + { + "package": "Require", + "repositoryURL": "https://github.com/JohnSundell/Require.git", + "state": { + "branch": null, + "revision": "7cfbd0d8a2dede0e01f6f0d8ab2c7acef1df112e", + "version": "2.0.1" + } + }, + { + "package": "ShellOut", + "repositoryURL": "https://github.com/JohnSundell/ShellOut.git", + "state": { + "branch": null, + "revision": "e1577acf2b6e90086d01a6d5e2b8efdaae033568", + "version": "2.3.0" + } + }, + { + "package": "SourceKitten", + "repositoryURL": "https://github.com/jpsim/SourceKitten.git", + "state": { + "branch": null, + "revision": "c0f960f72fa1e6151695074ffa696e4da6c45ce8", + "version": "0.30.1" + } + }, + { + "package": "danger-swift", + "repositoryURL": "https://github.com/danger/swift.git", + "state": { + "branch": null, + "revision": "33d35bf94f54155be505ffecfca745e4cc1cd0cc", + "version": "1.6.5" + } + }, + { + "package": "SwiftFormat", + "repositoryURL": "https://github.com/nicklockwood/SwiftFormat", + "state": { + "branch": null, + "revision": "d1c8a16cc21a3dfc577fe5e881509501ed22d0ce", + "version": "0.47.11" + } + }, + { + "package": "SwiftLint", + "repositoryURL": "https://github.com/Realm/SwiftLint", + "state": { + "branch": null, + "revision": "d53fc2664df92ef322bfa9ce5238d34f1461526a", + "version": "0.42.0" + } + }, + { + "package": "SwiftyTextTable", + "repositoryURL": "https://github.com/scottrhoyt/SwiftyTextTable.git", + "state": { + "branch": null, + "revision": "c6df6cf533d120716bff38f8ff9885e1ce2a4ac3", + "version": "0.9.0" + } + }, + { + "package": "SWXMLHash", + "repositoryURL": "https://github.com/drmohundro/SWXMLHash.git", + "state": { + "branch": null, + "revision": "9183170d20857753d4f331b0ca63f73c60764bf3", + "version": "5.0.2" + } + }, + { + "package": "Yams", + "repositoryURL": "https://github.com/jpsim/Yams.git", + "state": { + "branch": null, + "revision": "9003d51672e516cc59297b7e96bff1dfdedcb4ea", + "version": "4.0.4" + } + } + ] + }, + "version": 1 +} diff --git a/Package.swift b/Package.swift index ee5fb788..3f760756 100644 --- a/Package.swift +++ b/Package.swift @@ -1,15 +1,50 @@ -// swift-tools-version:4.0 +// swift-tools-version:5.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription +let ciDependencies: [Package.Dependency] = [ + .package(url: "https://github.com/danger/swift.git", from: "1.0.0"), + .package(url: "https://github.com/nicklockwood/SwiftFormat", from: "0.35.8"), + .package(url: "https://github.com/Realm/SwiftLint", from: "0.28.1"), + .package(url: "https://github.com/orta/Komondor", from: "1.0.0")] + +let dependencies = ciDependencies + let package = Package( name: "Hero", + platforms: [ + .tvOS(.v10), + .iOS(.v10) + ], products: [ - .library(name: "Hero", targets: ["Hero"]) + .library(name: "Hero", + type: .dynamic, + targets: ["Hero"]), ], - dependencies: [], + dependencies: dependencies, targets: [ - .target(name: "Hero", path: "Sources") - ] + .target(name: "Hero", path: "Sources"), + .testTarget(name: "HeroTests", + dependencies: [.target(name: "Hero")], + path: "Tests"), + ], + swiftLanguageVersions: [.v5] ) + +// The settings for the git hooks for our repo +#if canImport(PackageConfig) + import PackageConfig + + let config = PackageConfig([ + "komondor": [ + // When someone has run `git commit`, first run + // SwiftFormat and the auto-correcter for SwiftLint + "pre-commit": [ + "swift run swiftformat .", + "swift run swiftlint autocorrect", + "git add .", + ], + ] + ]) +#endif diff --git a/Sources/Extensions/Array+HeroModifier.swift b/Sources/Extensions/Array+HeroModifier.swift index caf3109c..a07a86ca 100644 --- a/Sources/Extensions/Array+HeroModifier.swift +++ b/Sources/Extensions/Array+HeroModifier.swift @@ -20,9 +20,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -#if canImport(UIKit) - -import UIKit +import Foundation internal extension Array { func get(_ index: Int) -> Element? { @@ -59,5 +57,3 @@ internal extension Array where Element: ExprNode { return nil } } - -#endif diff --git a/Sources/Extensions/CAMediaTimingFunction+Hero.swift b/Sources/Extensions/CAMediaTimingFunction+Hero.swift index f7efd2af..478aa4e8 100644 --- a/Sources/Extensions/CAMediaTimingFunction+Hero.swift +++ b/Sources/Extensions/CAMediaTimingFunction+Hero.swift @@ -20,9 +20,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -#if canImport(UIKit) - -import UIKit +#if canImport(QuartzCore) import QuartzCore public extension CAMediaTimingFunction { diff --git a/Sources/Extensions/UIColor+HexString.swift b/Sources/Extensions/UIColor+HexString.swift index a4a693f9..673d6fbc 100644 --- a/Sources/Extensions/UIColor+HexString.swift +++ b/Sources/Extensions/UIColor+HexString.swift @@ -7,8 +7,7 @@ // #if canImport(UIKit) - -import UIKit +import UIKit.UIColor extension UIColor { convenience init?(hexString hex: String) { diff --git a/Sources/HeroModifier+HeroStringConvertible.swift b/Sources/HeroModifier+HeroStringConvertible.swift index 50ffe640..6d6e1c8b 100644 --- a/Sources/HeroModifier+HeroStringConvertible.swift +++ b/Sources/HeroModifier+HeroStringConvertible.swift @@ -59,12 +59,14 @@ extension HeroModifier: HeroStringConvertible { return .translate(x: parameters.getCGFloat(0) ?? 0, y: parameters.getCGFloat(1) ?? 0, z: parameters.getCGFloat(2) ?? 0) + #if canImport(UIKit) case "overlay": return .overlay(color: UIColor(red: parameters.getCGFloat(0) ?? 1, green: parameters.getCGFloat(1) ?? 1, blue: parameters.getCGFloat(2) ?? 1, alpha: 1), opacity: parameters.getCGFloat(3) ?? 1) + #endif case "duration": if let duration = parameters.getDouble(0) { return .duration(duration) diff --git a/Sources/HeroModifier.swift b/Sources/HeroModifier.swift index 7b69eb4b..0b36c3ba 100644 --- a/Sources/HeroModifier.swift +++ b/Sources/HeroModifier.swift @@ -21,8 +21,8 @@ // THE SOFTWARE. #if canImport(UIKit) - import UIKit +import CoreGraphics public final class HeroModifier { internal let apply:(inout HeroTargetState) -> Void @@ -50,7 +50,7 @@ extension HeroModifier { /** Set the position for the view to animate from/to. - Parameters: - - position: position for the view to animate from/to + - position: position for the view to animate from/to */ public static func position(_ position: CGPoint) -> HeroModifier { return HeroModifier { targetState in @@ -61,7 +61,7 @@ extension HeroModifier { /** Set the size for the view to animate from/to. - Parameters: - - size: size for the view to animate from/to + - size: size for the view to animate from/to */ public static func size(_ size: CGSize) -> HeroModifier { return HeroModifier { targetState in @@ -75,7 +75,7 @@ extension HeroModifier { /** Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers - Parameters: - - t: the CATransform3D object + - t: the CATransform3D object */ public static func transform(_ t: CATransform3D) -> HeroModifier { return HeroModifier { targetState in @@ -86,7 +86,7 @@ extension HeroModifier { /** Set the perspective on the transform. use in combination with the rotate modifier. - Parameters: - - perspective: set the camera distance of the transform + - perspective: set the camera distance of the transform */ public static func perspective(_ perspective: CGFloat) -> HeroModifier { return HeroModifier { targetState in @@ -99,9 +99,9 @@ extension HeroModifier { /** Scale 3d - Parameters: - - x: scale factor on x axis, default 1 - - y: scale factor on y axis, default 1 - - z: scale factor on z axis, default 1 + - x: scale factor on x axis, default 1 + - y: scale factor on y axis, default 1 + - z: scale factor on z axis, default 1 */ public static func scale(x: CGFloat = 1, y: CGFloat = 1, z: CGFloat = 1) -> HeroModifier { return HeroModifier { targetState in @@ -112,7 +112,7 @@ extension HeroModifier { /** Scale in x & y axis - Parameters: - - xy: scale factor in both x & y axis + - xy: scale factor in both x & y axis */ public static func scale(_ xy: CGFloat) -> HeroModifier { return .scale(x: xy, y: xy) @@ -121,9 +121,9 @@ extension HeroModifier { /** Translate 3d - Parameters: - - x: translation distance on x axis in display pixel, default 0 - - y: translation distance on y axis in display pixel, default 0 - - z: translation distance on z axis in display pixel, default 0 + - x: translation distance on x axis in display pixel, default 0 + - y: translation distance on y axis in display pixel, default 0 + - z: translation distance on z axis in display pixel, default 0 */ public static func translate(x: CGFloat = 0, y: CGFloat = 0, z: CGFloat = 0) -> HeroModifier { return HeroModifier { targetState in @@ -138,9 +138,9 @@ extension HeroModifier { /** Rotate 3d - Parameters: - - x: rotation on x axis in radian, default 0 - - y: rotation on y axis in radian, default 0 - - z: rotation on z axis in radian, default 0 + - x: rotation on x axis in radian, default 0 + - y: rotation on y axis in radian, default 0 + - z: rotation on z axis in radian, default 0 */ public static func rotate(x: CGFloat = 0, y: CGFloat = 0, z: CGFloat = 0) -> HeroModifier { return HeroModifier { targetState in @@ -157,40 +157,77 @@ extension HeroModifier { /** Rotate 2d - Parameters: - - z: rotation in radian + - z: rotation in radian */ public static func rotate(_ z: CGFloat) -> HeroModifier { return .rotate(z: z) } } +// MARK: UIKit extension HeroModifier { /** - Set the opacity for the view to animate from/to. + Set the backgroundColor for the view to animate from/to. - Parameters: - - opacity: opacity for the view to animate from/to + - backgroundColor: backgroundColor for the view to animate from/to */ - public static func opacity(_ opacity: CGFloat) -> HeroModifier { + public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier { return HeroModifier { targetState in - targetState.opacity = Float(opacity) + targetState.backgroundColor = backgroundColor.cgColor } } /** - Set the backgroundColor for the view to animate from/to. + Set the borderColor for the view to animate from/to. - Parameters: - - backgroundColor: backgroundColor for the view to animate from/to + - borderColor: borderColor for the view to animate from/to */ - public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier { + public static func borderColor(_ borderColor: UIColor) -> HeroModifier { return HeroModifier { targetState in - targetState.backgroundColor = backgroundColor.cgColor + targetState.borderColor = borderColor.cgColor + } + } + + /** + Set the shadowColor for the view to animate from/to. + - Parameters: + - shadowColor: shadowColor for the view to animate from/to + */ + public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier { + return HeroModifier { targetState in + targetState.shadowColor = shadowColor.cgColor + } + } + + /** + Create an overlay on the animating view. + - Parameters: + - color: color of the overlay + - opacity: opacity of the overlay + */ + public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier { + return HeroModifier { targetState in + targetState.overlay = (color.cgColor, opacity) + } + } +} + +extension HeroModifier { + /** + Set the opacity for the view to animate from/to. + - Parameters: + - opacity: opacity for the view to animate from/to + */ + public static func opacity(_ opacity: CGFloat) -> HeroModifier { + return HeroModifier { targetState in + targetState.opacity = Float(opacity) } } /** Set the cornerRadius for the view to animate from/to. - Parameters: - - cornerRadius: cornerRadius for the view to animate from/to + - cornerRadius: cornerRadius for the view to animate from/to */ public static func cornerRadius(_ cornerRadius: CGFloat) -> HeroModifier { return HeroModifier { targetState in @@ -242,28 +279,6 @@ extension HeroModifier { } } - /** - Set the borderColor for the view to animate from/to. - - Parameters: - - borderColor: borderColor for the view to animate from/to - */ - public static func borderColor(_ borderColor: UIColor) -> HeroModifier { - return HeroModifier { targetState in - targetState.borderColor = borderColor.cgColor - } - } - - /** - Set the shadowColor for the view to animate from/to. - - Parameters: - - shadowColor: shadowColor for the view to animate from/to - */ - public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier { - return HeroModifier { targetState in - targetState.shadowColor = shadowColor.cgColor - } - } - /** Set the shadowOpacity for the view to animate from/to. - Parameters: @@ -318,18 +333,6 @@ extension HeroModifier { targetState.masksToBounds = masksToBounds } } - - /** - Create an overlay on the animating view. - - Parameters: - - color: color of the overlay - - opacity: opacity of the overlay - */ - public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier { - return HeroModifier { targetState in - targetState.overlay = (color.cgColor, opacity) - } - } } // timing modifiers @@ -337,7 +340,7 @@ extension HeroModifier { /** Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes. - Parameters: - - duration: duration of the animation + - duration: duration of the animation Note: a duration of .infinity means matching the duration of the longest animation. same as .durationMatchLongest */ @@ -357,7 +360,7 @@ extension HeroModifier { /** Sets the delay of the animation for a given view. - Parameters: - - delay: delay of the animation + - delay: delay of the animation */ public static func delay(_ delay: TimeInterval) -> HeroModifier { return HeroModifier { targetState in @@ -368,7 +371,7 @@ extension HeroModifier { /** Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen. - Parameters: - - timingFunction: timing function of the animation + - timingFunction: timing function of the animation */ public static func timingFunction(_ timingFunction: CAMediaTimingFunction) -> HeroModifier { return HeroModifier { targetState in @@ -379,8 +382,8 @@ extension HeroModifier { /** (iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set. - Parameters: - - stiffness: stiffness of the spring - - damping: damping of the spring + - stiffness: stiffness of the spring + - damping: damping of the spring */ @available(iOS 9, *) public static func spring(stiffness: CGFloat, damping: CGFloat) -> HeroModifier { @@ -397,25 +400,25 @@ extension HeroModifier { Will also force the view to use global coordinate space. The following layer properties will be animated from the given view. - - position - bounds.size - cornerRadius - transform - shadowColor - shadowOpacity - shadowOffset - shadowRadius - shadowPath - + + position + bounds.size + cornerRadius + transform + shadowColor + shadowOpacity + shadowOffset + shadowRadius + shadowPath + Note that the following properties **won't** be taken from the source view. - - backgroundColor - borderWidth - borderColor - + + backgroundColor + borderWidth + borderColor + - Parameters: - - heroID: the source view's heroId. + - heroID: the source view's heroId. */ public static func source(heroID: String) -> HeroModifier { return HeroModifier { targetState in @@ -431,8 +434,8 @@ extension HeroModifier { /** Works in combination with position modifier to apply a natural curve when moving to the destination. - Parameters: - - intensity: a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. - default is 1. + - intensity: a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. + default is 1. */ public static func arc(intensity: CGFloat = 1) -> HeroModifier { return HeroModifier { targetState in @@ -448,9 +451,9 @@ extension HeroModifier { /** Cascade applys increasing delay modifiers to subviews - Parameters: - - delta: delay in between each animation - - direction: cascade direction - - delayMatchedViews: whether or not to delay matched subviews until all cascading animation have started + - delta: delay in between each animation + - direction: cascade direction + - delayMatchedViews: whether or not to delay matched subviews until all cascading animation have started */ public static func cascade(delta: TimeInterval = 0.02, direction: CascadeDirection = .topToBottom, @@ -499,5 +502,4 @@ extension HeroModifier { return .when({ !$0.isAppearing }, modifiers) } } - #endif diff --git a/Sources/HeroTargetState.swift b/Sources/HeroTargetState.swift index f2ae0c2b..449cdd78 100644 --- a/Sources/HeroTargetState.swift +++ b/Sources/HeroTargetState.swift @@ -21,9 +21,7 @@ // THE SOFTWARE. #if canImport(UIKit) - -import QuartzCore -import UIKit +import CoreGraphics public enum HeroSnapshotType { /// Will optimize for different type of views @@ -130,5 +128,4 @@ extension HeroTargetState: ExpressibleByArrayLiteral { append(contentsOf: elements) } } - #endif diff --git a/Sources/Parser/HeroStringConvertible.swift b/Sources/Parser/HeroStringConvertible.swift index 312a413f..0ac9c4de 100644 --- a/Sources/Parser/HeroStringConvertible.swift +++ b/Sources/Parser/HeroStringConvertible.swift @@ -20,9 +20,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -#if canImport(UIKit) - -import UIKit +import Foundation public protocol HeroStringConvertible { static func from(node: ExprNode) -> Self? @@ -53,5 +51,3 @@ extension String { return parse()?.last } } - -#endif diff --git a/Sources/SwiftSupport.swift b/Sources/SwiftSupport.swift index 2ae0692e..2f5fe517 100644 --- a/Sources/SwiftSupport.swift +++ b/Sources/SwiftSupport.swift @@ -11,8 +11,6 @@ import Foundation import CoreMedia import CoreGraphics -import UIKit - extension CMTime { static let zero = CMTime.zero } @@ -28,6 +26,9 @@ enum CAMediaTimingFunctionName { static let easeInEaseOut = kCAMediaTimingFunctionEaseInEaseOut } +#if canImport(UIKit) +import UIKit + extension UIControl { typealias State = UIControlState } @@ -41,6 +42,7 @@ extension UIViewController { return childViewControllers } } +#endif extension RunLoop { enum Mode { diff --git a/Sources/Transition/HeroProgressRunner.swift b/Sources/Transition/HeroProgressRunner.swift index b9835fb0..df8cc582 100644 --- a/Sources/Transition/HeroProgressRunner.swift +++ b/Sources/Transition/HeroProgressRunner.swift @@ -21,8 +21,7 @@ // THE SOFTWARE. #if canImport(UIKit) - -import UIKit +import QuartzCore protocol HeroProgressRunnerDelegate: class { func updateProgress(progress: Double) @@ -37,8 +36,9 @@ class HeroProgressRunner { } internal var timePassed: TimeInterval = 0.0 internal var duration: TimeInterval = 0.0 + internal var isReversed: Bool = false + internal var displayLink: CADisplayLink? - internal var isReversed: Bool = false @objc func displayUpdate(_ link: CADisplayLink) { timePassed += isReversed ? -link.duration : link.duration diff --git a/Sources/Transition/HeroTransition+Animate.swift b/Sources/Transition/HeroTransition+Animate.swift index 24a3be15..87862129 100644 --- a/Sources/Transition/HeroTransition+Animate.swift +++ b/Sources/Transition/HeroTransition+Animate.swift @@ -21,8 +21,7 @@ // THE SOFTWARE. #if canImport(UIKit) - -import Foundation +import UIKit extension HeroTransition { open func animate() { diff --git a/Tests/HeroTests.swift b/Tests/HeroTests.swift index 8e66ced5..dd3fa2a7 100755 --- a/Tests/HeroTests.swift +++ b/Tests/HeroTests.swift @@ -9,7 +9,6 @@ import XCTest import Hero - @discardableResult func parse(_ source: String) throws -> [ExprNode] { let lexer = Lexer(input: source) let tokens = lexer.tokenize() From 3964588098ae83ab6f282dfac15356c6bc8d27c1 Mon Sep 17 00:00:00 2001 From: Andrea Miotto Date: Tue, 19 Feb 2019 12:32:12 +0100 Subject: [PATCH 19/25] replaceViewControllers prompts the completion extended the UINavigationController with a new setViewControllers methods that accept a completion. Now the replaceViewControllers launch correctly the completion --- Sources/Extensions/UIViewController+Hero.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Sources/Extensions/UIViewController+Hero.swift b/Sources/Extensions/UIViewController+Hero.swift index ed792477..7ff05b79 100644 --- a/Sources/Extensions/UIViewController+Hero.swift +++ b/Sources/Extensions/UIViewController+Hero.swift @@ -170,6 +170,16 @@ extension UINavigationController { get { return hero.navigationAnimationTypeString } set { hero.navigationAnimationTypeString = newValue } } + + /// This function call the standard setViewControllers() but it also add a completion callback. + func setViewControllers(viewControllers: [UIViewController], animated: Bool, completion: (() -> Void)?) { + setViewControllers(viewControllers, animated: animated) + guard animated, let coordinator = transitionCoordinator else { + DispatchQueue.main.async { completion?() } + return + } + coordinator.animate(alongsideTransition: nil) { _ in completion?() } + } } public extension HeroExtension where Base: UITabBarController { @@ -313,7 +323,7 @@ public extension HeroExtension where Base: UIViewController { if navigationController.hero.isEnabled { hero.forceNotInteractive = true } - navigationController.setViewControllers(vcs, animated: true) + navigationController.setViewControllers(viewControllers: vcs, animated: true, completion: completion) } else if let container = base.view.superview { let parentVC = base.presentingViewController hero.transition(from: base, to: next, in: container) { [weak base] finished in From d9a99b07c94b4da99bb40ba44ae2033b229d13af Mon Sep 17 00:00:00 2001 From: Joseph Mattiello Date: Mon, 8 Feb 2021 00:20:42 -0500 Subject: [PATCH 20/25] swiftlint autocorrect whitespace --- Sources/Extensions/UIViewController+Hero.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Extensions/UIViewController+Hero.swift b/Sources/Extensions/UIViewController+Hero.swift index 7ff05b79..cc4527f1 100644 --- a/Sources/Extensions/UIViewController+Hero.swift +++ b/Sources/Extensions/UIViewController+Hero.swift @@ -170,7 +170,7 @@ extension UINavigationController { get { return hero.navigationAnimationTypeString } set { hero.navigationAnimationTypeString = newValue } } - + /// This function call the standard setViewControllers() but it also add a completion callback. func setViewControllers(viewControllers: [UIViewController], animated: Bool, completion: (() -> Void)?) { setViewControllers(viewControllers, animated: animated) From 1f0cfa9c88c02b079b496ab68298c2c41581c4a5 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 14 Feb 2021 22:04:49 -0500 Subject: [PATCH 21/25] Update Gems --- Gemfile.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ba58c9c4..fe7ccd3f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - activesupport (5.2.4.4) + activesupport (5.2.4.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -22,7 +22,7 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.1.0) - aws-partitions (1.424.0) + aws-partitions (1.427.0) aws-sdk-core (3.112.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) @@ -31,7 +31,7 @@ GEM aws-sdk-kms (1.42.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.88.0) + aws-sdk-s3 (1.88.1) aws-sdk-core (~> 3, >= 3.112.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) @@ -76,7 +76,7 @@ GEM cocoapods-deintegrate (1.0.4) cocoapods-disable-podfile-validations (0.1.1) cocoapods-downloader (1.4.0) - cocoapods-generate (2.2.1) + cocoapods-generate (2.2.2) cocoapods-disable-podfile-validations (~> 0.1.1) cocoapods-githooks (1.0.3) cocoapods-packager (1.5.0) @@ -146,7 +146,7 @@ GEM faraday_middleware (1.0.0) faraday (~> 1.0) fastimage (2.2.2) - fastlane (2.173.0) + fastlane (2.174.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) artifactory (~> 3.0) @@ -208,7 +208,7 @@ GEM webrick google-apis-iamcredentials_v1 (0.1.0) google-apis-core (~> 0.1) - google-apis-storage_v1 (0.1.0) + google-apis-storage_v1 (0.2.0) google-apis-core (~> 0.1) google-cloud-core (1.5.0) google-cloud-env (~> 1.0) @@ -224,7 +224,7 @@ GEM google-cloud-core (~> 1.2) googleauth (~> 0.9) mini_mime (~> 1.0) - googleauth (0.15.0) + googleauth (0.15.1) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) @@ -235,7 +235,7 @@ GEM http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.8.8) + i18n (1.8.9) concurrent-ruby (~> 1.0) jmespath (1.4.0) json (2.5.1) From 5b3ac17fcd1ee2649cbf4ef6c94e47bbd8f4c0fb Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 14 Feb 2021 22:31:28 -0500 Subject: [PATCH 22/25] CI - Fix github test action (#651) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove duplicate iOS-legacy test.yml job * Makefile fix test scheme name * Add xcscheme to HeroExamples for XCode test action * Updated SwiftUIMatchExample.swift to import Hero * Update project to weak_link Combine and SwiftUI Fixes “/System/Library/Frameworks/SwiftUI.framework/SwiftUI: mach-o, but not built for iOS simulator” * Update test.yml newer XCode and iOS 13 versions * Test.yml add Podfile.lock * Update test.yml fix iOS version numbs * Weak link SwiftUI.framework resolve ci compile issue maybe * github action test swiftpm * test.yml update iOS versions for current ver test * github test action non-parallel, config Debug Signed-off-by: Joe Mattiello * github actions tvos only active arch Signed-off-by: Joe Mattiello * Makefile make test for sim not device Signed-off-by: Joe Mattiello --- .github/workflows/test.yml | 96 ++++++++----------- .makefiles/ios.mk | 16 ++-- Examples/SwiftUIMatchExample.swift | 1 + Hero.xcodeproj/project.pbxproj | 60 ++++++++++++ .../xcschemes/HeroExamples.xcscheme | 88 +++++++++++++++++ Makefile | 2 +- 6 files changed, 200 insertions(+), 63 deletions(-) create mode 100644 Hero.xcodeproj/xcshareddata/xcschemes/HeroExamples.xcscheme diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1d4805be..eba75f01 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,6 +1,6 @@ name: Unit Test -on: +on: pull_request: paths: - "**.swift" @@ -9,94 +9,82 @@ on: - "**.h" - "**.podspec" - "Podfile" + - "Podfile.lock" - "test.yml" jobs: - iOS: - name: Test iOS + swiftpm: + name: Test iOS (swiftpm) runs-on: macOS-latest env: - DEVELOPER_DIR: /Applications/Xcode_11.1.app/Contents/Developer - strategy: - matrix: - destination: [ - 'platform=iOS Simulator,OS=13.1,name=iPhone 11' - ] + DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer steps: - name: Checkout uses: actions/checkout@master - - name: iOS - ${{ matrix.destination }} + - name: iOS - Swift PM run: | pod install - set -o pipefail && xcodebuild clean test -workspace Hero.xcworkspace -scheme Hero -destination "${destination}" -parallelizeTargets -showBuildTimingSummary -enableThreadSanitizer YES -enableCodeCoverage YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO | xcpretty - bash <(curl -s https://codecov.io/bash) - env: - destination: ${{ matrix.destination }} - - name: Upload Code Coverage - run: | - bash <(curl -s https://codecov.io/bash) - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - iOS-legacy: + set -o pipefail && swift test --parallel + iOS: name: Test iOS runs-on: macOS-latest env: - DEVELOPER_DIR: /Applications/Xcode_11.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer strategy: matrix: destination: [ - 'platform=iOS Simulator,OS=10.3.1,name=iPhone 7' + 'platform=iOS Simulator,OS=14.4,name=iPhone 12' ] steps: - name: Checkout uses: actions/checkout@master + - name: iOS - ${{ matrix.destination }} run: | - xcversion simulators --install='iOS 10.3.1' pod install - set -o pipefail && xcodebuild clean test -workspace Hero.xcworkspace -scheme Hero -destination "${destination}" -parallelizeTargets -showBuildTimingSummary -enableThreadSanitizer YES -enableCodeCoverage YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO | xcpretty - bash <(curl -s https://codecov.io/bash) - env: - destination: ${{ matrix.destination }} - - name: Upload Code Coverage - run: | + set -o pipefail && xcodebuild clean test -workspace Hero.xcworkspace -scheme Hero -destination "${destination}" -configuration "Debug" -showBuildTimingSummary -enableThreadSanitizer YES -enableCodeCoverage YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=YES | xcpretty bash <(curl -s https://codecov.io/bash) env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - iOS-legacy: - name: Test iOS - runs-on: macOS-latest - env: - DEVELOPER_DIR: /Applications/Xcode_11.1.app/Contents/Developer - strategy: - matrix: - destination: [ - 'platform=iOS Simulator,OS=10.3.1,name=iPhone 7' - ] - steps: - - name: Checkout - uses: actions/checkout@master - - name: iOS - ${{ matrix.destination }} - run: | - xcversion simulators --install='iOS 10.3.1' - pod install - set -o pipefail && xcodebuild clean test -workspace Hero.xcworkspace -scheme Hero -destination "${destination}" -parallelizeTargets -showBuildTimingSummary -enableThreadSanitizer YES -enableCodeCoverage YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO | xcpretty - bash <(curl -s https://codecov.io/bash) - env: destination: ${{ matrix.destination }} - name: Upload Code Coverage run: | bash <(curl -s https://codecov.io/bash) env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + # iOS-legacy: + # name: Test iOS + # runs-on: macOS-latest + # env: + # DEVELOPER_DIR: /Applications/Xcode_10.3.1.app/Contents/Developer + # strategy: + # matrix: + # destination: [ + # 'platform=iOS Simulator,OS=10.3.1,name=iPhone 7' + # ] + # steps: + # - name: Checkout + # uses: actions/checkout@master + # - name: iOS - ${{ matrix.destination }} + # run: | + # xcversion simulators --install='iOS 10.3.1' + # pod install + # set -o pipefail && xcodebuild clean test -workspace Hero.xcworkspace -scheme Hero -destination "${destination}" -parallelizeTargets -showBuildTimingSummary -enableThreadSanitizer YES -enableCodeCoverage YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO | xcpretty + # bash <(curl -s https://codecov.io/bash) + # env: + # destination: ${{ matrix.destination }} + # - name: Upload Code Coverage + # run: | + # bash <(curl -s https://codecov.io/bash) + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} tvOS: name: Test tvOS runs-on: macOS-latest env: - DEVELOPER_DIR: /Applications/Xcode_11.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer strategy: matrix: destination: [ - 'platform=tvOS Simulator,OS=13.0,name=Apple TV 4K' + 'platform=tvOS Simulator,OS=14.3,name=Apple TV 4K' ] steps: @@ -105,6 +93,6 @@ jobs: - name: tvOS - ${{ matrix.destination }} run: | pod install - set -o pipefail && xcodebuild clean build -workspace Hero.xcworkspace -scheme "Hero (tvOS)" -destination "${destination}" -parallelizeTargets -showBuildTimingSummary -enableThreadSanitizer YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO | xcpretty - env: + set -o pipefail && xcodebuild clean build -workspace Hero.xcworkspace -scheme "Hero (tvOS)" -destination "${destination}" -parallelizeTargets -showBuildTimingSummary -enableThreadSanitizer YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=YES | xcpretty + env: destination: ${{ matrix.destination }} diff --git a/.makefiles/ios.mk b/.makefiles/ios.mk index 36833f11..e6d64710 100644 --- a/.makefiles/ios.mk +++ b/.makefiles/ios.mk @@ -90,7 +90,7 @@ pre_setup: check_for_ruby: $(info Checking for Ruby ...) -ifeq ($(RUBY),) +ifeq ($(RUBY),) $(error Ruby is not installed) endif @@ -109,7 +109,7 @@ update_homebrew: install_swift_lint: $(info Install swiftlint ...) -ifneq ($(SWIFTLINT),) +ifneq ($(SWIFTLINT),) brew install swiftlint else $(info Already have, skipping.) @@ -132,7 +132,7 @@ install_ruby_gems: install_carthage: $(info Install Carthage ...) -ifneq ($(CARTHAGE),) +ifneq ($(CARTHAGE),) brew install carthage else $(info Already have, skipping.) @@ -141,7 +141,7 @@ endif install_carting: $(info Install Carting ...) -ifneq ($(CARTING),) +ifneq ($(CARTING),) brew install artemnovichkov/projects/carting else $(info Already have, skipping.) @@ -150,7 +150,7 @@ endif install_swiftgen: $(info Install Swift-Gen (https://github.com/SwiftGen/SwiftGen) ...) -ifneq ($(SWIFTGEN),) +ifneq ($(SWIFTGEN),) brew install swiftgen else $(info Already have, skipping.) @@ -160,7 +160,7 @@ gitpull: $(info Pulling new commits ...) git pull - + #> -- QA Task Runners -- codecov_upload: @@ -170,7 +170,7 @@ codecov_upload: danger_pr: bundle exec danger pr "$(GITHUB_URL:/=)/pull/$(PULL)" -danger: +danger: bundle exec danger #> SwiftLint autocorrect @@ -181,7 +181,7 @@ autocorrect: #> Run test on all targets test: - xcodebuild test -scheme $(TEST_SCHEME) -workspace $(WORKSPACE) | tee xcodebuild.log | xcpretty + xcodebuild test -scheme $(TEST_SCHEME) -workspace $(WORKSPACE) -destination 'platform=iOS Simulator,OS=14.4,name=iPhone 12' -parallelizeTargets -showBuildTimingSummary -enableThreadSanitizer YES CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=YES | tee xcodebuild.log | xcpretty #> -- Building -- diff --git a/Examples/SwiftUIMatchExample.swift b/Examples/SwiftUIMatchExample.swift index 7f3dc870..2c7feb6e 100644 --- a/Examples/SwiftUIMatchExample.swift +++ b/Examples/SwiftUIMatchExample.swift @@ -2,6 +2,7 @@ import UIKit import SwiftUI +import Hero @available(iOS 13.0, *) class SwiftUIMatchExampleViewController: UIHostingController { diff --git a/Hero.xcodeproj/project.pbxproj b/Hero.xcodeproj/project.pbxproj index 6a4e5338..e7caea2a 100644 --- a/Hero.xcodeproj/project.pbxproj +++ b/Hero.xcodeproj/project.pbxproj @@ -130,6 +130,8 @@ B1D834051F02E7C0009E1E36 /* ConditionalPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1D834031F02E7C0009E1E36 /* ConditionalPreprocessor.swift */; }; B35264CE2454FEF300D33861 /* Locale+Hero.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35264CD2454FEF300D33861 /* Locale+Hero.swift */; }; B35264CF2454FEF300D33861 /* Locale+Hero.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35264CD2454FEF300D33861 /* Locale+Hero.swift */; }; + B383074925D1041A00B7A0D8 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B383074825D1041A00B7A0D8 /* SwiftUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + B383074B25D1042C00B7A0D8 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B383074A25D1042C00B7A0D8 /* SwiftUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; DBA05BB41A704A4A17967918 /* Pods_HeroTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841FFA357ACB279D3F74CDEE /* Pods_HeroTests.framework */; }; F482F0BE235D7808002E97ED /* UIColor+HexString.swift in Sources */ = {isa = PBXBuildFile; fileRef = F482F0BD235D7808002E97ED /* UIColor+HexString.swift */; }; F482F0BF235D7808002E97ED /* UIColor+HexString.swift in Sources */ = {isa = PBXBuildFile; fileRef = F482F0BD235D7808002E97ED /* UIColor+HexString.swift */; }; @@ -288,6 +290,8 @@ B1D816EA1EF5A720007B9776 /* HeroTransition+Animate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "HeroTransition+Animate.swift"; sourceTree = ""; }; B1D834031F02E7C0009E1E36 /* ConditionalPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConditionalPreprocessor.swift; sourceTree = ""; }; B35264CD2454FEF300D33861 /* Locale+Hero.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Locale+Hero.swift"; sourceTree = ""; }; + B383074825D1041A00B7A0D8 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; + B383074A25D1042C00B7A0D8 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.3.sdk/System/Library/Frameworks/SwiftUI.framework; sourceTree = DEVELOPER_DIR; }; C377744CBFF1E24426E80F55 /* Pods-HeroExamples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HeroExamples.release.xcconfig"; path = "Pods/Target Support Files/Pods-HeroExamples/Pods-HeroExamples.release.xcconfig"; sourceTree = ""; }; C51A6465EC2CB38D82F28B93 /* Pods-HeroTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HeroTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-HeroTests/Pods-HeroTests.debug.xcconfig"; sourceTree = ""; }; EEE340F89FF0A49DD23A5A6E /* Pods_HeroExamples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HeroExamples.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -309,6 +313,7 @@ buildActionMask = 2147483647; files = ( 2D1F7FF21E49E043004D944B /* Hero.framework in Frameworks */, + B383074B25D1042C00B7A0D8 /* SwiftUI.framework in Frameworks */, A355CEC8D787CF71B0D7CBDA /* Pods_HeroTvOSExamples.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -325,6 +330,7 @@ buildActionMask = 2147483647; files = ( A306D3B91E1C7A2E00B6C23A /* Hero.framework in Frameworks */, + B383074925D1041A00B7A0D8 /* SwiftUI.framework in Frameworks */, 83043017B73BC66DBB920D5C /* Pods_HeroExamples.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -343,6 +349,8 @@ 0ED3C727BC790F37EE7BD698 /* Frameworks */ = { isa = PBXGroup; children = ( + B383074825D1041A00B7A0D8 /* SwiftUI.framework */, + B383074A25D1042C00B7A0D8 /* SwiftUI.framework */, EEE340F89FF0A49DD23A5A6E /* Pods_HeroExamples.framework */, FD2306FDA4E15ADA91EFED44 /* Pods_HeroTvOSExamples.framework */, 841FFA357ACB279D3F74CDEE /* Pods_HeroTests.framework */, @@ -1479,6 +1487,19 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.6.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + "\"CollectionKit\"", + "-framework", + "\"Foundation\"", + "-framework", + "\"UIKit\"", + "-weak_framework", + SwiftUI, + "-weak_framework", + Combine, + ); PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -1499,6 +1520,19 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.6.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + "\"CollectionKit\"", + "-framework", + "\"Foundation\"", + "-framework", + "\"UIKit\"", + "-weak_framework", + SwiftUI, + "-weak_framework", + Combine, + ); PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroExamples; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -1520,6 +1554,19 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + "\"CollectionKit\"", + "-framework", + "\"Foundation\"", + "-framework", + "\"UIKit\"", + "-weak_framework", + Combine, + "-weak_framework", + SwiftUI, + ); PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -1541,6 +1588,19 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + "\"CollectionKit\"", + "-framework", + "\"Foundation\"", + "-framework", + "\"UIKit\"", + "-weak_framework", + Combine, + "-weak_framework", + SwiftUI, + ); PRODUCT_BUNDLE_IDENTIFIER = com.lkzhao.HeroTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; diff --git a/Hero.xcodeproj/xcshareddata/xcschemes/HeroExamples.xcscheme b/Hero.xcodeproj/xcshareddata/xcschemes/HeroExamples.xcscheme new file mode 100644 index 00000000..c3a3a91f --- /dev/null +++ b/Hero.xcodeproj/xcshareddata/xcschemes/HeroExamples.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Makefile b/Makefile index fdded7e2..659e900d 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ include .makefiles/bundler.mk include .makefiles/ios.mk PLATFORM := 'iOS' -TEST_SCHEME := 'HeroExample' +TEST_SCHEME := 'HeroExamples' WORKSPACE := 'Hero.xcworkspace' %: From 3d7838d6a3a04cdd00651630123714eb79067916 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 14 Feb 2021 22:45:08 -0500 Subject: [PATCH 23/25] CHANGELOG.md update Signed-off-by: Joe Mattiello --- CHANGELOG.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 113a9f35..9976b70c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,29 @@ The changelog for `Hero`. Also see the [releases](https://github.com/HeroTransit -------------------------------------- -## [1.5.0](https://github.com/HeroTransitions/Hero/releases/tag/1.5.0) +## [1.6.0](https://github.com/HeroTransitions/Hero/releases/tag/1.6.0) +### Added + +- #695 - Swift 5 support +- #628 - Swift Package Manager Support +- #623 - Swift UI support and example +- #681 - Application extension target support +- #595 - Add Accio supported badge +- #619 - XCode 11/12 support in example +- CI/CD improvements +### Changed + +- #648 - Updated iOS version support +- #576 - Usage guide updates +### Fixed + +- #698 - Warnings fix +- #585 - replaceViewControllers now calls the completion +- #559 - Resuming property animator from current fraction +- #465 - fix keyboard transition + +## [1.5.0](https://github.com/HeroTransitions/Hero/releases/tag/1.5.0) ### Added - Use custom snapshot for views that implement `HeroCustomSnapshotView`. From b5079b28cb20803eb269f092abd195673ba73c18 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 14 Feb 2021 22:45:53 -0500 Subject: [PATCH 24/25] Update README.md 1.6.0 version bump Signed-off-by: Joe Mattiello --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4e4a9517..d178261b 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ let package = Package( targets: ["MyPackage"]), ], dependencies: [ - .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.5.0")) + .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.6.0")) ], targets: [ .target( From 87028b968cc2bb2129cdbbc41f7f1734aaad69f1 Mon Sep 17 00:00:00 2001 From: Joe Mattiello Date: Sun, 14 Feb 2021 22:47:27 -0500 Subject: [PATCH 25/25] Update jazzydocs for 1.6.0 Signed-off-by: Joe Mattiello --- docs/Classes.html | 85 +- docs/Classes/BinaryOpNode.html | 25 +- docs/Classes/CallNode.html | 23 +- docs/Classes/ExprNode.html | 25 +- docs/Classes/FunctionNode.html | 25 +- docs/Classes/Hero.html | 17 +- docs/Classes/HeroContext.html | 59 +- docs/Classes/HeroDebugPlugin.html | 21 +- docs/Classes/HeroExtension.html | 112 +- docs/Classes/HeroModifier.html | 1004 +++---- docs/Classes/HeroPlugin.html | 63 +- docs/Classes/HeroTransition.html | 216 +- docs/Classes/Lexer.html | 21 +- docs/Classes/NumberNode.html | 23 +- docs/Classes/Parser.html | 21 +- docs/Classes/PrototypeNode.html | 23 +- docs/Classes/VariableNode.html | 17 +- docs/Enums.html | 52 +- docs/Enums/CascadeDirection.html | 35 +- docs/Enums/HeroCoordinateSpace.html | 19 +- docs/Enums/HeroDefaultAnimationType.html | 80 +- .../HeroDefaultAnimationType/Direction.html | 91 +- .../HeroDefaultAnimationType/Strategy.html | 21 +- docs/Enums/HeroSnapshotType.html | 23 +- docs/Enums/HeroTransitionState.html | 25 +- docs/Enums/HeroViewOrderingStrategy.html | 21 +- docs/Enums/ParseError.html | 31 +- docs/Enums/Token.html | 39 +- docs/Extensions.html | 77 +- docs/Extensions/CAMediaTimingFunction.html | 34 +- docs/Extensions/CATransform3D.html | 16 +- docs/Extensions/HeroDebugView.html | 13 +- docs/Extensions/String.html | 19 +- docs/Extensions/UINavigationController.html | 11 +- docs/Extensions/UITabBarController.html | 16 +- docs/Extensions/UIView.html | 24 +- docs/Extensions/UIViewController.html | 56 +- docs/Functions.html | 15 +- docs/Protocols.html | 47 +- docs/Protocols/HeroAnimator.html | 43 +- docs/Protocols/HeroCompatible.html | 19 +- docs/Protocols/HeroCustomSnapshotView.html | 17 +- docs/Protocols/HeroPreprocessor.html | 21 +- .../Protocols/HeroProgressUpdateObserver.html | 19 +- docs/Protocols/HeroStringConvertible.html | 21 +- docs/Protocols/HeroTransitionDelegate.html | 23 +- .../Protocols/HeroViewControllerDelegate.html | 45 +- docs/Structs.html | 20 +- docs/Structs/HeroConditionalContext.html | 43 +- docs/Structs/HeroTargetState.html | 106 +- docs/UsageGuide.md | 60 - docs/css/jazzy.css | 29 +- .../Contents/Resources/Documents/Classes.html | 85 +- .../Documents/Classes/BinaryOpNode.html | 25 +- .../Resources/Documents/Classes/CallNode.html | 23 +- .../Resources/Documents/Classes/ExprNode.html | 25 +- .../Documents/Classes/FunctionNode.html | 25 +- .../Resources/Documents/Classes/Hero.html | 17 +- .../Documents/Classes/HeroContext.html | 59 +- .../Documents/Classes/HeroDebugPlugin.html | 21 +- .../Documents/Classes/HeroExtension.html | 112 +- .../Documents/Classes/HeroModifier.html | 1004 +++---- .../Documents/Classes/HeroPlugin.html | 63 +- .../Documents/Classes/HeroTransition.html | 216 +- .../Resources/Documents/Classes/Lexer.html | 21 +- .../Documents/Classes/NumberNode.html | 23 +- .../Resources/Documents/Classes/Parser.html | 21 +- .../Documents/Classes/PrototypeNode.html | 23 +- .../Documents/Classes/VariableNode.html | 17 +- .../Contents/Resources/Documents/Enums.html | 52 +- .../Documents/Enums/CascadeDirection.html | 35 +- .../Documents/Enums/HeroCoordinateSpace.html | 19 +- .../Enums/HeroDefaultAnimationType.html | 80 +- .../HeroDefaultAnimationType/Direction.html | 91 +- .../HeroDefaultAnimationType/Strategy.html | 21 +- .../Documents/Enums/HeroSnapshotType.html | 23 +- .../Documents/Enums/HeroTransitionState.html | 25 +- .../Enums/HeroViewOrderingStrategy.html | 21 +- .../Resources/Documents/Enums/ParseError.html | 31 +- .../Resources/Documents/Enums/Token.html | 39 +- .../Resources/Documents/Extensions.html | 77 +- .../Extensions/CAMediaTimingFunction.html | 34 +- .../Documents/Extensions/CATransform3D.html | 16 +- .../Documents/Extensions/HeroDebugView.html | 13 +- .../Documents/Extensions/String.html | 19 +- .../Extensions/UINavigationController.html | 11 +- .../Extensions/UITabBarController.html | 16 +- .../Documents/Extensions/UIView.html | 24 +- .../Extensions/UIViewController.html | 56 +- .../Resources/Documents/Functions.html | 15 +- .../Resources/Documents/Protocols.html | 47 +- .../Documents/Protocols/HeroAnimator.html | 43 +- .../Documents/Protocols/HeroCompatible.html | 19 +- .../Protocols/HeroCustomSnapshotView.html | 17 +- .../Documents/Protocols/HeroPreprocessor.html | 21 +- .../Protocols/HeroProgressUpdateObserver.html | 19 +- .../Protocols/HeroStringConvertible.html | 21 +- .../Protocols/HeroTransitionDelegate.html | 23 +- .../Protocols/HeroViewControllerDelegate.html | 45 +- .../Contents/Resources/Documents/Structs.html | 20 +- .../Structs/HeroConditionalContext.html | 43 +- .../Documents/Structs/HeroTargetState.html | 106 +- .../Resources/Documents/css/jazzy.css | 29 +- .../Contents/Resources/Documents/index.html | 53 +- .../Contents/Resources/Documents/js/jazzy.js | 13 +- .../Resources/Documents/js/jquery.min.js | 4 +- .../Resources/Documents/js/lunr.min.js | 7 +- .../Documents/js/typeahead.jquery.js | 48 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 114688 -> 118784 bytes docs/docsets/Hero.tgz | Bin 156627 -> 158472 bytes docs/index.html | 53 +- docs/js/jazzy.js | 13 +- docs/js/jquery.min.js | 4 +- docs/js/lunr.min.js | 7 +- docs/js/typeahead.jquery.js | 48 +- docs/search.json | 2 +- docs/undocumented.json | 2295 +++++++++-------- 118 files changed, 3803 insertions(+), 4708 deletions(-) delete mode 100644 docs/UsageGuide.md diff --git a/docs/Classes.html b/docs/Classes.html index cf82ce64..d411cccd 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,7 +232,7 @@
-
+

Classes

The following classes are available globally.

@@ -272,15 +269,11 @@

Declaration

- - -
-
  • @@ -307,15 +300,11 @@

    Declaration

- - -
-
  • @@ -342,15 +331,11 @@

    Declaration

- - -
-
- - -
-
  • @@ -412,15 +394,11 @@

    Declaration

- - -
-
  • @@ -447,15 +425,11 @@

    Declaration

- - -
-
  • @@ -482,7 +456,7 @@

    Declaration

@@ -513,7 +487,7 @@

Declaration

@@ -544,7 +518,7 @@

Declaration

@@ -575,7 +549,7 @@

Declaration

@@ -606,7 +580,7 @@

Declaration

@@ -637,7 +611,7 @@

Declaration

@@ -668,15 +642,11 @@

Declaration

- - -
-
  • @@ -703,15 +673,11 @@

    Declaration

- - -
-
  • @@ -734,11 +700,16 @@

    Declaration

    Swift

    open class HeroTransition : NSObject
    +
    extension HeroTransition: UINavigationControllerDelegate
    +
    extension HeroTransition: UITabBarControllerDelegate
    +
    extension HeroTransition: UIViewControllerTransitioningDelegate
    +
    extension HeroTransition: UIViewControllerAnimatedTransitioning
    +
    extension HeroTransition: UIViewControllerInteractiveTransitioning
@@ -777,15 +748,11 @@

Declaration

- - -
-
diff --git a/docs/Classes/BinaryOpNode.html b/docs/Classes/BinaryOpNode.html index 28e4acd6..dd4922ad 100644 --- a/docs/Classes/BinaryOpNode.html +++ b/docs/Classes/BinaryOpNode.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,16 +232,20 @@
-
+

BinaryOpNode

+
public class BinaryOpNode : ExprNode

Undocumented

+
@@ -277,7 +278,7 @@

Declaration

@@ -307,7 +308,7 @@

Declaration

@@ -337,7 +338,7 @@

Declaration

@@ -347,7 +348,7 @@

Declaration

- init(name:lhs:rhs:) + init(name:lhs:rhs:)
@@ -367,7 +368,7 @@

Declaration

@@ -381,7 +382,7 @@

Declaration

diff --git a/docs/Classes/CallNode.html b/docs/Classes/CallNode.html index c22af489..fc333136 100644 --- a/docs/Classes/CallNode.html +++ b/docs/Classes/CallNode.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,16 +232,20 @@
-
+

CallNode

+
public class CallNode : ExprNode

Undocumented

+
@@ -277,7 +278,7 @@

Declaration

@@ -307,7 +308,7 @@

Declaration

@@ -317,7 +318,7 @@

Declaration

- init(name:arguments:) + init(name:arguments:)
@@ -337,7 +338,7 @@

Declaration

@@ -351,7 +352,7 @@

Declaration

diff --git a/docs/Classes/ExprNode.html b/docs/Classes/ExprNode.html index 14c3160a..94e4f0bf 100644 --- a/docs/Classes/ExprNode.html +++ b/docs/Classes/ExprNode.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,16 +232,20 @@
-
+

ExprNode

+
public class ExprNode : CustomStringConvertible, Equatable

Undocumented

+
@@ -277,7 +278,7 @@

Declaration

@@ -307,7 +308,7 @@

Declaration

@@ -336,7 +337,7 @@

Declaration

@@ -346,7 +347,7 @@

Declaration

- init(name:) + init(name:)
@@ -366,7 +367,7 @@

Declaration

@@ -380,7 +381,7 @@

Declaration

diff --git a/docs/Classes/FunctionNode.html b/docs/Classes/FunctionNode.html index 0a05f517..db32f439 100644 --- a/docs/Classes/FunctionNode.html +++ b/docs/Classes/FunctionNode.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,16 +232,20 @@
-
+

FunctionNode

+
public class FunctionNode : ExprNode

Undocumented

+
@@ -277,7 +278,7 @@

Declaration

@@ -307,7 +308,7 @@

Declaration

@@ -337,7 +338,7 @@

Declaration

@@ -347,7 +348,7 @@

Declaration

- init(prototype:body:) + init(prototype:body:)
@@ -367,7 +368,7 @@

Declaration

@@ -381,7 +382,7 @@

Declaration

diff --git a/docs/Classes/Hero.html b/docs/Classes/Hero.html index b19a3518..9cbc07ff 100644 --- a/docs/Classes/Hero.html +++ b/docs/Classes/Hero.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,10 +232,11 @@
-
+

Hero

+
public class Hero : NSObject
@@ -253,6 +251,9 @@

func apply(modifiers:[HeroModifier], to view:UIView) +

@@ -285,7 +286,7 @@

Declaration

@@ -299,7 +300,7 @@

Declaration

diff --git a/docs/Classes/HeroContext.html b/docs/Classes/HeroContext.html index d8f523b6..70784774 100644 --- a/docs/Classes/HeroContext.html +++ b/docs/Classes/HeroContext.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,16 +232,20 @@
-
+

HeroContext

+
public class HeroContext

Undocumented

+
@@ -277,7 +278,7 @@

Declaration

@@ -307,7 +308,7 @@

Declaration

@@ -337,21 +338,17 @@

Declaration

- - -
-
@@ -384,7 +381,7 @@

Return Value

- destinationView(for:) + destinationView(for:)
@@ -407,7 +404,7 @@

Return Value

a destination view matching the heroID, nil if not found

@@ -417,7 +414,7 @@

Return Value

- pairedView(for:) + pairedView(for:)
@@ -440,7 +437,7 @@

Return Value

a view with the same heroID, but on different view controller, nil if not found

@@ -450,7 +447,7 @@

Return Value

- snapshotView(for:) + snapshotView(for:)
@@ -473,7 +470,7 @@

Return Value

a snapshot view for animation

@@ -483,7 +480,7 @@

Return Value

- subscript(_:) + subscript(_:)
@@ -503,7 +500,7 @@

Declaration

@@ -533,21 +530,17 @@

Declaration

- - -
-
@@ -577,7 +570,7 @@

Declaration

- unhide(view:) + unhide(view:)
@@ -597,7 +590,7 @@

Declaration

@@ -611,7 +604,7 @@

Declaration

diff --git a/docs/Classes/HeroDebugPlugin.html b/docs/Classes/HeroDebugPlugin.html index 7c99207b..0e94acaa 100644 --- a/docs/Classes/HeroDebugPlugin.html +++ b/docs/Classes/HeroDebugPlugin.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,7 +232,7 @@
-
+

HeroDebugPlugin

@@ -268,7 +265,7 @@

HeroDebugPlugin

- animate(fromViews:toViews:) + animate(fromViews:toViews:)
@@ -286,7 +283,7 @@

HeroDebugPlugin

- resume(timePassed:reverse:) + resume(timePassed:reverse:)
@@ -317,10 +314,6 @@

HeroDebugPlugin

- - -
-
diff --git a/docs/Classes/HeroExtension.html b/docs/Classes/HeroExtension.html index 6b061bea..b86443cb 100644 --- a/docs/Classes/HeroExtension.html +++ b/docs/Classes/HeroExtension.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,16 +232,20 @@
-
+

HeroExtension

+
public class HeroExtension<Base>

Undocumented

+
@@ -277,7 +278,7 @@

Declaration

@@ -285,6 +286,15 @@

Declaration

+
+ + +
+ +

Available where Base: UIView

+

+
+
  • @@ -315,7 +325,7 @@

    Declaration

@@ -346,7 +356,7 @@

Declaration

@@ -377,7 +387,7 @@

Declaration

@@ -407,7 +417,7 @@

Declaration

@@ -437,7 +447,7 @@

Declaration

@@ -445,6 +455,15 @@

Declaration

+
+ + +
+ +

Available where Base: UIViewController

+

+
+
  • @@ -471,7 +490,7 @@

    Declaration

@@ -501,7 +520,7 @@

Declaration

@@ -531,7 +550,7 @@

Declaration

@@ -539,6 +558,15 @@

Declaration

+
+ + +
+ +

Available where Base: UINavigationController

+

+
+
  • @@ -565,7 +593,7 @@

    Declaration

@@ -595,7 +623,7 @@

Declaration

@@ -603,6 +631,15 @@

Declaration

+
+ + +
+ +

Available where Base: UITabBarController

+

+
+
  • @@ -629,7 +666,7 @@

    Declaration

@@ -659,7 +696,7 @@

Declaration

@@ -667,13 +704,22 @@

Declaration

+
+ + +
+ +

Available where Base: UIViewController

+

+
+
@@ -724,7 +770,7 @@

Declaration

@@ -734,7 +780,7 @@

Declaration

- unwindToViewController(_:) + unwindToViewController(_:)
@@ -754,7 +800,7 @@

Declaration

@@ -764,7 +810,7 @@

Declaration

- unwindToViewController(withSelector:) + unwindToViewController(withSelector:)
@@ -784,7 +830,7 @@

Declaration

@@ -794,7 +840,7 @@

Declaration

- unwindToViewController(withClass:) + unwindToViewController(withClass:)
@@ -814,7 +860,7 @@

Declaration

@@ -824,7 +870,7 @@

Declaration

- unwindToViewController(withMatchBlock:) + unwindToViewController(withMatchBlock:)
@@ -844,7 +890,7 @@

Declaration

@@ -854,7 +900,7 @@

Declaration

- replaceViewController(with:completion:) + replaceViewController(with:completion:)
@@ -874,7 +920,7 @@

Declaration

@@ -888,7 +934,7 @@

Declaration

diff --git a/docs/Classes/HeroModifier.html b/docs/Classes/HeroModifier.html index e7b6ce5c..0b8608f6 100644 --- a/docs/Classes/HeroModifier.html +++ b/docs/Classes/HeroModifier.html @@ -21,7 +21,7 @@

- Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

@@ -40,7 +40,7 @@

- + Install in Dash @@ -159,9 +159,6 @@

- @@ -235,16 +232,21 @@
-
+

HeroModifier

+
public final class HeroModifier
+
extension HeroModifier: HeroStringConvertible

Undocumented

+
@@ -257,7 +259,7 @@

HeroModifier

- init(applyFunction:) + init(applyFunction:)
@@ -272,26 +274,22 @@

HeroModifier

Declaration

Swift

-
public init(applyFunction:@escaping (inout HeroTargetState) -> Void)
+
public init(applyFunction: @escaping (inout HeroTargetState) -> Void)
- - -
-
@@ -324,7 +322,7 @@

Declaration

- beginWith(modifiers:) + beginWith(modifiers:)
@@ -344,7 +342,7 @@

Declaration

@@ -354,7 +352,7 @@

Declaration

- beginWith(_:) + beginWith(_:)
@@ -374,7 +372,7 @@

Declaration

@@ -412,7 +410,7 @@

Declaration

@@ -442,7 +440,7 @@

Declaration

@@ -452,7 +450,7 @@

Declaration

- ignoreSubviewModifiers(recursive:) + ignoreSubviewModifiers(recursive:)
@@ -476,7 +474,7 @@

Declaration

@@ -511,7 +509,7 @@

Declaration

@@ -541,7 +539,7 @@

Declaration

@@ -572,7 +570,7 @@

Declaration

@@ -604,7 +602,7 @@

Declaration

@@ -636,7 +634,7 @@

Declaration

@@ -667,21 +665,17 @@

Declaration

- - -
-
- - -
-
  • @@ -735,7 +725,7 @@

    Declaration

@@ -765,7 +755,7 @@

Declaration

@@ -775,7 +765,7 @@

Declaration

- position(_:) + position(_:)
@@ -785,6 +775,10 @@

Declaration

Set the position for the view to animate from/to.

+
    +
  • position: position for the view to animate from/to
  • +
+

Declaration

@@ -794,27 +788,8 @@

Declaration

-
-

Parameters

- - - - - - - -
- - position - - -
-

position for the view to animate from/to

-
-
-
@@ -824,7 +799,7 @@

Parameters

- size(_:) + size(_:)
@@ -834,6 +809,10 @@

Parameters

Set the size for the view to animate from/to.

+
    +
  • size: size for the view to animate from/to
  • +
+

Declaration

@@ -843,41 +822,18 @@

Declaration

-
-

Parameters

- - - - - - - -
- - size - - -
-

size for the view to animate from/to

-
-
-
- - -
-
  • @@ -887,6 +843,10 @@

    Parameters

    Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers

    +
      +
    • t: the CATransform3D object
    • +
    +

    Declaration

    @@ -896,27 +856,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - t - - -
    -

    the CATransform3D object

    -
    -
    -
@@ -926,7 +867,7 @@

Parameters

- perspective(_:) + perspective(_:)
@@ -936,6 +877,10 @@

Parameters

Set the perspective on the transform. use in combination with the rotate modifier.

+
    +
  • perspective: set the camera distance of the transform
  • +
+

Declaration

@@ -945,27 +890,8 @@

Declaration

-
-

Parameters

- - - - - - - -
- - perspective - - -
-

set the camera distance of the transform

-
-
-
@@ -975,7 +901,7 @@

Parameters

- scale(x:y:z:) + scale(x:y:z:)
@@ -985,6 +911,12 @@

Parameters

Scale 3d

+
    +
  • x: scale factor on x axis, default 1
  • +
  • y: scale factor on y axis, default 1
  • +
  • z: scale factor on z axis, default 1
  • +
+

Declaration

@@ -994,51 +926,8 @@

Declaration

-
-

Parameters

- - - - - - - - - - - - - - - -
- - x - - -
-

scale factor on x axis, default 1

-
-
- - y - - -
-

scale factor on y axis, default 1

-
-
- - z - - -
-

scale factor on z axis, default 1

-
-
-
@@ -1048,7 +937,7 @@

Parameters

- scale(_:) + scale(_:)
@@ -1058,6 +947,10 @@

Parameters

Scale in x & y axis

+
    +
  • xy: scale factor in both x & y axis
  • +
+

Declaration

@@ -1067,27 +960,8 @@

Declaration

-
-

Parameters

- - - - - - - -
- - xy - - -
-

scale factor in both x & y axis

-
-
-
@@ -1097,7 +971,7 @@

Parameters

- translate(x:y:z:) + translate(x:y:z:)
@@ -1107,6 +981,12 @@

Parameters

Translate 3d

+
    +
  • x: translation distance on x axis in display pixel, default 0
  • +
  • y: translation distance on y axis in display pixel, default 0
  • +
  • z: translation distance on z axis in display pixel, default 0
  • +
+

Declaration

@@ -1116,51 +996,8 @@

Declaration

-
-

Parameters

- - - - - - - - - - - - - - - -
- - x - - -
-

translation distance on x axis in display pixel, default 0

-
-
- - y - - -
-

translation distance on y axis in display pixel, default 0

-
-
- - z - - -
-

translation distance on z axis in display pixel, default 0

-
-
-
@@ -1170,7 +1007,7 @@

Parameters

- translate(_:z:) + translate(_:z:)
@@ -1190,7 +1027,7 @@

Declaration

@@ -1200,7 +1037,7 @@

Declaration

- rotate(x:y:z:) + rotate(x:y:z:)
@@ -1210,6 +1047,12 @@

Declaration

Rotate 3d

+
    +
  • x: rotation on x axis in radian, default 0
  • +
  • y: rotation on y axis in radian, default 0
  • +
  • z: rotation on z axis in radian, default 0
  • +
+

Declaration

@@ -1219,51 +1062,8 @@

Declaration

-
-

Parameters

- - - - - - - - - - - - - - - -
- - x - - -
-

rotation on x axis in radian, default 0

-
-
- - y - - -
-

rotation on y axis in radian, default 0

-
-
- - z - - -
-

rotation on z axis in radian, default 0

-
-
-
@@ -1273,7 +1073,7 @@

Parameters

- rotate(_:z:) + rotate(_:z:)
@@ -1293,7 +1093,7 @@

Declaration

@@ -1303,7 +1103,7 @@

Declaration

- rotate(_:) + rotate(_:)
@@ -1313,6 +1113,10 @@

Declaration

Rotate 2d

+
    +
  • z: rotation in radian
  • +
+

Declaration

@@ -1322,27 +1126,8 @@

Declaration

-
-

Parameters

- - - - - - - -
- - z - - -
-

rotation in radian

-
-
-
@@ -1350,13 +1135,22 @@

Parameters

+
+ + +
+ +

UIKit

+

+
+
  • @@ -1364,38 +1158,23 @@

    Parameters

    -

    Set the opacity for the view to animate from/to.

    +

    Set the backgroundColor for the view to animate from/to.

    + +
      +
    • backgroundColor: backgroundColor for the view to animate from/to
    • +

    Declaration

    Swift

    -
    public static func opacity(_ opacity: CGFloat) -> HeroModifier
    +
    public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier
    -
    -

    Parameters

    - - - - - - - -
    - - opacity - - -
    -

    opacity for the view to animate from/to

    -
    -
    -
    @@ -1403,9 +1182,9 @@

    Parameters

  • @@ -1413,10 +1192,10 @@

    Parameters

    -

    Set the backgroundColor for the view to animate from/to.

    +

    Set the borderColor for the view to animate from/to.

      -
    • backgroundColor: backgroundColor for the view to animate from/to
    • +
    • borderColor: borderColor for the view to animate from/to
    @@ -1424,12 +1203,12 @@

    Parameters

    Declaration

    Swift

    -
    public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier
    +
    public static func borderColor(_ borderColor: UIColor) -> HeroModifier
@@ -1437,9 +1216,9 @@

Declaration

  • @@ -1447,38 +1226,58 @@

    Declaration

    -

    Set the cornerRadius for the view to animate from/to.

    +

    Set the shadowColor for the view to animate from/to.

    + +
      +
    • shadowColor: shadowColor for the view to animate from/to
    • +

    Declaration

    Swift

    -
    public static func cornerRadius(_ cornerRadius: CGFloat) -> HeroModifier
    +
    public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier
    -
    -

    Parameters

    - - - - - - - -
    - - cornerRadius - - -
    -

    cornerRadius for the view to animate from/to

    -
    -
    + +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an overlay on the animating view.

    + +
      +
    • color: color of the overlay
    • +
    • opacity: opacity of the overlay
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier
    + +
    @@ -1486,9 +1285,9 @@

    Parameters

  • @@ -1496,10 +1295,10 @@

    Parameters

    -

    Set the zPosition for the view to animate from/to.

    +

    Set the opacity for the view to animate from/to.

      -
    • zPosition: zPosition for the view to animate from/to
    • +
    • opacity: opacity for the view to animate from/to
    @@ -1507,12 +1306,12 @@

    Parameters

    Declaration

    Swift

    -
    public static func zPosition(_ zPosition: CGFloat) -> HeroModifier
    +
    public static func opacity(_ opacity: CGFloat) -> HeroModifier
    @@ -1520,9 +1319,9 @@

    Declaration

  • @@ -1530,10 +1329,10 @@

    Declaration

    -

    Set the contentsRect for the view to animate from/to.

    +

    Set the cornerRadius for the view to animate from/to.

      -
    • contentsRect: contentsRect for the view to animate from/to
    • +
    • cornerRadius: cornerRadius for the view to animate from/to
    @@ -1541,12 +1340,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func contentsRect(_ contentsRect: CGRect) -> HeroModifier
    +
    public static func cornerRadius(_ cornerRadius: CGFloat) -> HeroModifier
    @@ -1554,9 +1353,9 @@

    Declaration

  • @@ -1564,10 +1363,10 @@

    Declaration

    -

    Set the contentsScale for the view to animate from/to.

    +

    Set the zPosition for the view to animate from/to.

      -
    • contentsScale: contentsScale for the view to animate from/to
    • +
    • zPosition: zPosition for the view to animate from/to
    @@ -1575,12 +1374,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func contentsScale(_ contentsScale: CGFloat) -> HeroModifier
    +
    public static func zPosition(_ zPosition: CGFloat) -> HeroModifier
    @@ -1588,9 +1387,9 @@

    Declaration

  • @@ -1598,10 +1397,10 @@

    Declaration

    -

    Set the borderWidth for the view to animate from/to.

    +

    Set the contentsRect for the view to animate from/to.

      -
    • borderWidth: borderWidth for the view to animate from/to
    • +
    • contentsRect: contentsRect for the view to animate from/to
    @@ -1609,12 +1408,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func borderWidth(_ borderWidth: CGFloat) -> HeroModifier
    +
    public static func contentsRect(_ contentsRect: CGRect) -> HeroModifier
    @@ -1622,9 +1421,9 @@

    Declaration

  • @@ -1632,10 +1431,10 @@

    Declaration

    -

    Set the borderColor for the view to animate from/to.

    +

    Set the contentsScale for the view to animate from/to.

      -
    • borderColor: borderColor for the view to animate from/to
    • +
    • contentsScale: contentsScale for the view to animate from/to
    @@ -1643,12 +1442,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func borderColor(_ borderColor: UIColor) -> HeroModifier
    +
    public static func contentsScale(_ contentsScale: CGFloat) -> HeroModifier
    @@ -1656,9 +1455,9 @@

    Declaration

  • @@ -1666,10 +1465,10 @@

    Declaration

    -

    Set the shadowColor for the view to animate from/to.

    +

    Set the borderWidth for the view to animate from/to.

      -
    • shadowColor: shadowColor for the view to animate from/to
    • +
    • borderWidth: borderWidth for the view to animate from/to
    @@ -1677,12 +1476,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier
    +
    public static func borderWidth(_ borderWidth: CGFloat) -> HeroModifier
    @@ -1692,7 +1491,7 @@

    Declaration

    - shadowOpacity(_:) + shadowOpacity(_:)
    @@ -1716,7 +1515,7 @@

    Declaration

    @@ -1726,7 +1525,7 @@

    Declaration

    - shadowOffset(_:) + shadowOffset(_:)
    @@ -1750,7 +1549,7 @@

    Declaration

    @@ -1760,7 +1559,7 @@

    Declaration

    - shadowRadius(_:) + shadowRadius(_:)
    @@ -1784,7 +1583,7 @@

    Declaration

    @@ -1794,7 +1593,7 @@

    Declaration

    - shadowPath(_:) + shadowPath(_:)
    @@ -1818,7 +1617,7 @@

    Declaration

    @@ -1828,7 +1627,7 @@

    Declaration

    - masksToBounds(_:) + masksToBounds(_:)
    @@ -1852,82 +1651,17 @@

    Declaration

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

    Create an overlay on the animating view.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - color - - -
    -

    color of the overlay

    -
    -
    - - opacity - - -
    -

    opacity of the overlay

    -
    -
    -
    -
  • - - -
    -
    • @@ -1937,6 +1671,10 @@

      Parameters

      Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.

      +
        +
      • duration: duration of the animation
      • +
      +

      Note: a duration of .infinity means matching the duration of the longest animation. same as .durationMatchLongest

      @@ -1948,27 +1686,8 @@

      Declaration

    -
    -

    Parameters

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

    duration of the animation

    -
    -
    -
    @@ -1998,7 +1717,7 @@

    Declaration

    @@ -2008,7 +1727,7 @@

    Declaration

    - delay(_:) + delay(_:)
    @@ -2018,6 +1737,10 @@

    Declaration

    Sets the delay of the animation for a given view.

    +
      +
    • delay: delay of the animation
    • +
    +

    Declaration

    @@ -2027,27 +1750,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - delay - - -
    -

    delay of the animation

    -
    -
    -
    @@ -2057,7 +1761,7 @@

    Parameters

    - timingFunction(_:) + timingFunction(_:)
    @@ -2067,6 +1771,10 @@

    Parameters

    Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.

    +
      +
    • timingFunction: timing function of the animation
    • +
    +

    Declaration

    @@ -2076,27 +1784,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - timingFunction - - -
    -

    timing function of the animation

    -
    -
    -
    @@ -2106,7 +1795,7 @@

    Parameters

    - spring(stiffness:damping:) + spring(stiffness:damping:)
    @@ -2116,63 +1805,33 @@

    Parameters

    (iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.

    +
      +
    • stiffness: stiffness of the spring
    • +
    • damping: damping of the spring
    • +
    +

    Declaration

    Swift

    -
    @available(iOS 9, *)
    +                          
    @available(iOS 9, *)
     public static func spring(stiffness: CGFloat, damping: CGFloat) -> HeroModifier
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - stiffness - - -
    -

    stiffness of the spring

    -
    -
    - - damping - - -
    -

    damping of the spring

    -
    -
    -
    - - -
    -
    • @@ -2184,22 +1843,26 @@

      Parameters

      Will also force the view to use global coordinate space.

      The following layer properties will be animated from the given view.

      -
      position
      -bounds.size
      -cornerRadius
      -transform
      -shadowColor
      -shadowOpacity
      -shadowOffset
      -shadowRadius
      -shadowPath
      -
      + +

      position +bounds.size +cornerRadius +transform +shadowColor +shadowOpacity +shadowOffset +shadowRadius +shadowPath

      Note that the following properties won’t be taken from the source view.

      -
      backgroundColor
      -borderWidth
      -borderColor
      -
      + +

      backgroundColor +borderWidth +borderColor

      + +
        +
      • heroID: the source view’s heroId.
      • +
      @@ -2210,27 +1873,8 @@

      Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - heroID - - -
    -

    the source view’s heroId.

    -
    -
    -
    @@ -2260,7 +1904,7 @@

    Declaration

    @@ -2270,7 +1914,7 @@

    Declaration

    - arc(intensity:) + arc(intensity:)
    @@ -2280,6 +1924,11 @@

    Declaration

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    +
      +
    • intensity: a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. +default is 1.
    • +
    +

    Declaration

    @@ -2289,28 +1938,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - intensity - - -
    -

    a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. -default is 1.

    -
    -
    -
    @@ -2340,7 +1969,7 @@

    Declaration

    @@ -2350,7 +1979,7 @@

    Declaration

    - cascade(delta:direction:delayMatchedViews:) + cascade(delta:direction:delayMatchedViews:)
    @@ -2360,6 +1989,12 @@

    Declaration

    Cascade applys increasing delay modifiers to subviews

    +
      +
    • delta: delay in between each animation
    • +
    • direction: cascade direction
    • +
    • delayMatchedViews: whether or not to delay matched subviews until all cascading animation have started
    • +
    +

    Declaration

    @@ -2371,65 +2006,18 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - delta - - -
    -

    delay in between each animation

    -
    -
    - - direction - - -
    -

    cascade direction

    -
    -
    - - delayMatchedViews - - -
    -

    whether or not to delay matched subviews until all cascading animation have started

    -
    -
    -
    - - -
    -
    @@ -2459,7 +2047,7 @@

    Declaration

    - when(_:_:) + when(_:_:)
    @@ -2479,7 +2067,7 @@

    Declaration

    @@ -2489,7 +2077,7 @@

    Declaration

    - whenMatched(_:) + whenMatched(_:)
    @@ -2509,7 +2097,7 @@

    Declaration

    @@ -2519,7 +2107,7 @@

    Declaration

    - whenPresenting(_:) + whenPresenting(_:)
    @@ -2539,7 +2127,7 @@

    Declaration

    @@ -2549,7 +2137,7 @@

    Declaration

    - whenDismissing(_:) + whenDismissing(_:)
    @@ -2569,7 +2157,7 @@

    Declaration

    @@ -2579,7 +2167,7 @@

    Declaration

    - whenAppearing(_:) + whenAppearing(_:)
    @@ -2599,7 +2187,7 @@

    Declaration

    @@ -2609,7 +2197,7 @@

    Declaration

    - whenDisappearing(_:) + whenDisappearing(_:)
    @@ -2629,7 +2217,7 @@

    Declaration

    @@ -2643,7 +2231,7 @@

    Declaration

    diff --git a/docs/Classes/HeroPlugin.html b/docs/Classes/HeroPlugin.html index ff5a54de..1dd001fd 100644 --- a/docs/Classes/HeroPlugin.html +++ b/docs/Classes/HeroPlugin.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroPlugin

    +
    open class HeroPlugin : NSObject, HeroPreprocessor, HeroAnimator

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -344,7 +345,7 @@

    Declaration

    @@ -374,7 +375,7 @@

    Declaration

    @@ -384,7 +385,7 @@

    Declaration

    - process(fromViews:toViews:) + process(fromViews:toViews:)
    @@ -458,7 +459,7 @@

    Parameters

    @@ -468,7 +469,7 @@

    Parameters

    - canAnimate(view:appearing:) + canAnimate(view:appearing:)
    @@ -536,7 +537,7 @@

    Return Value

    return true if the plugin can handle animating the view.

    @@ -546,7 +547,7 @@

    Return Value

    - animate(fromViews:toViews:) + animate(fromViews:toViews:)
    @@ -615,7 +616,7 @@

    Return Value

    The duration needed to complete the animation

    @@ -647,7 +648,7 @@

    Declaration

    @@ -657,7 +658,7 @@

    Declaration

    - seekTo(timePassed:) + seekTo(timePassed:)
    @@ -699,7 +700,7 @@

    Parameters

    @@ -709,7 +710,7 @@

    Parameters

    - resume(timePassed:reverse:) + resume(timePassed:reverse:)
    @@ -737,7 +738,7 @@

    Declaration

    @@ -747,7 +748,7 @@

    Declaration

    - apply(state:to:) + apply(state:to:)
    @@ -800,7 +801,7 @@

    Parameters

    @@ -810,7 +811,7 @@

    Parameters

    - changeTarget(state:isDestination:to:) + changeTarget(state:isDestination:to:)
    @@ -830,15 +831,11 @@

    Declaration

    - - -
    -
    • @@ -864,7 +861,7 @@

      Declaration

    @@ -894,7 +891,7 @@

    Declaration

    @@ -924,7 +921,7 @@

    Declaration

    @@ -938,7 +935,7 @@

    Declaration

    diff --git a/docs/Classes/HeroTransition.html b/docs/Classes/HeroTransition.html index a03a0052..dbeacb71 100644 --- a/docs/Classes/HeroTransition.html +++ b/docs/Classes/HeroTransition.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,25 @@
    -
    +

    HeroTransition

    +
    open class HeroTransition : NSObject
    +
    extension HeroTransition: UINavigationControllerDelegate
    +
    extension HeroTransition: UITabBarControllerDelegate
    +
    extension HeroTransition: UIViewControllerTransitioningDelegate
    +
    extension HeroTransition: UIViewControllerAnimatedTransitioning
    +
    extension HeroTransition: UIViewControllerInteractiveTransitioning

    Undocumented

    +
    @@ -277,7 +283,7 @@

    Declaration

    @@ -307,7 +313,7 @@

    Declaration

    @@ -337,7 +343,7 @@

    Declaration

    @@ -367,7 +373,7 @@

    Declaration

    @@ -397,7 +403,7 @@

    Declaration

    @@ -427,7 +433,7 @@

    Declaration

    @@ -457,7 +463,7 @@

    Declaration

    @@ -487,7 +493,7 @@

    Declaration

    @@ -512,12 +518,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var isPresenting: Bool
    +
    public internal(set) var isPresenting: Bool { get }
    @@ -547,7 +553,7 @@

    Declaration

    @@ -577,7 +583,7 @@

    Declaration

    @@ -603,12 +609,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var container: UIView!
    +
    public internal(set) var container: UIView! { get }
    @@ -633,12 +639,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var toViewController: UIViewController?
    +
    public internal(set) var toViewController: UIViewController? { get }
    @@ -663,12 +669,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var fromViewController: UIViewController?
    +
    public internal(set) var fromViewController: UIViewController? { get }
    @@ -693,12 +699,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var context: HeroContext!
    +
    public internal(set) var context: HeroContext! { get }
    @@ -728,7 +734,7 @@

    Declaration

    @@ -753,12 +759,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var totalDuration: TimeInterval
    +
    public internal(set) var totalDuration: TimeInterval { get }
    @@ -788,7 +794,7 @@

    Declaration

    @@ -818,7 +824,7 @@

    Declaration

    @@ -829,9 +835,11 @@

    Declaration

    - -

    Observe Progress

    -
    +
    + +

    Observe Progress

    +

    +
    - -
    -
    • @@ -898,21 +902,17 @@

      Declaration

    - - -
    -
    - - - - - -
    -
    @@ -1014,7 +1006,7 @@

    Declaration

    - finish(animate:) + finish(animate:)
    @@ -1036,7 +1028,7 @@

    Declaration

    @@ -1046,7 +1038,7 @@

    Declaration

    - cancel(animate:) + cancel(animate:)
    @@ -1068,7 +1060,7 @@

    Declaration

    @@ -1078,7 +1070,7 @@

    Declaration

    - apply(modifiers:to:) + apply(modifiers:to:)
    @@ -1109,7 +1101,7 @@

    Declaration

    @@ -1119,7 +1111,7 @@

    Declaration

    - changeTarget(modifiers:isDestination:to:) + changeTarget(modifiers:isDestination:to:)
    @@ -1151,15 +1143,11 @@

    Declaration

    - - -
    -
    • @@ -1185,21 +1173,17 @@

      Declaration

    - - - @@ -1229,7 +1213,7 @@

    Declaration

    - navigationController(_:didShow:animated:) + navigationController(_:didShow:animated:)
    @@ -1249,7 +1233,7 @@

    Declaration

    @@ -1259,7 +1243,7 @@

    Declaration

    - navigationController(_:animationControllerFor:from:to:) + navigationController(_:animationControllerFor:from:to:)
    @@ -1279,7 +1263,7 @@

    Declaration

    @@ -1289,7 +1273,7 @@

    Declaration

    - navigationController(_:interactionControllerFor:) + navigationController(_:interactionControllerFor:)
    @@ -1309,21 +1293,17 @@

    Declaration

    - - - @@ -1353,7 +1333,7 @@

    Declaration

    - tabBarController(_:interactionControllerFor:) + tabBarController(_:interactionControllerFor:)
    @@ -1373,7 +1353,7 @@

    Declaration

    @@ -1383,7 +1363,7 @@

    Declaration

    - tabBarController(_:animationControllerForTransitionFrom:to:) + tabBarController(_:animationControllerForTransitionFrom:to:)
    @@ -1403,21 +1383,17 @@

    Declaration

    - - - @@ -1447,7 +1423,7 @@

    Declaration

    - animationController(forDismissed:) + animationController(forDismissed:)
    @@ -1467,7 +1443,7 @@

    Declaration

    @@ -1477,7 +1453,7 @@

    Declaration

    - interactionControllerForDismissal(using:) + interactionControllerForDismissal(using:)
    @@ -1497,7 +1473,7 @@

    Declaration

    @@ -1507,7 +1483,7 @@

    Declaration

    - interactionControllerForPresentation(using:) + interactionControllerForPresentation(using:)
    @@ -1527,21 +1503,17 @@

    Declaration

    - - -
    -
    @@ -1571,7 +1543,7 @@

    Declaration

    - transitionDuration(using:) + transitionDuration(using:)
    @@ -1591,7 +1563,7 @@

    Declaration

    @@ -1601,7 +1573,7 @@

    Declaration

    - animationEnded(_:) + animationEnded(_:)
    @@ -1621,15 +1593,11 @@

    Declaration

    - - -
    -
    • @@ -1655,7 +1623,7 @@

      Declaration

    @@ -1665,7 +1633,7 @@

    Declaration

    - startInteractiveTransition(_:) + startInteractiveTransition(_:)
    @@ -1685,7 +1653,7 @@

    Declaration

    @@ -1699,7 +1667,7 @@

    Declaration

    diff --git a/docs/Classes/Lexer.html b/docs/Classes/Lexer.html index 031ed16c..8255583a 100644 --- a/docs/Classes/Lexer.html +++ b/docs/Classes/Lexer.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Lexer

    +
    public class Lexer

    Undocumented

    +
    @@ -257,7 +258,7 @@

    Lexer

    - init(input:) + init(input:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/Classes/NumberNode.html b/docs/Classes/NumberNode.html index fd5033e1..7598ef85 100644 --- a/docs/Classes/NumberNode.html +++ b/docs/Classes/NumberNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    NumberNode

    +
    public class NumberNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - init(value:) + init(value:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/Classes/Parser.html b/docs/Classes/Parser.html index 4dc3c084..4a062e73 100644 --- a/docs/Classes/Parser.html +++ b/docs/Classes/Parser.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Parser

    +
    public class Parser

    Undocumented

    +
    @@ -257,7 +258,7 @@

    Parser

    - init(tokens:) + init(tokens:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/Classes/PrototypeNode.html b/docs/Classes/PrototypeNode.html index ec9a8290..de64dc06 100644 --- a/docs/Classes/PrototypeNode.html +++ b/docs/Classes/PrototypeNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    PrototypeNode

    +
    public class PrototypeNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - init(name:argumentNames:) + init(name:argumentNames:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/Classes/VariableNode.html b/docs/Classes/VariableNode.html index 15a55486..f98ae03c 100644 --- a/docs/Classes/VariableNode.html +++ b/docs/Classes/VariableNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    VariableNode

    +
    public class VariableNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/Enums.html b/docs/Enums.html index 80e7142b..3487fce2 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Enumerations

    The following enumerations are available globally.

    @@ -272,7 +269,7 @@

    Declaration

    @@ -303,15 +300,11 @@

    Declaration

    - - -
    -
    • @@ -338,15 +331,11 @@

      Declaration

    - - -
    -
    • @@ -373,15 +362,11 @@

      Declaration

    - - -
    -
    • @@ -408,15 +393,11 @@

      Declaration

    - - -
    -
    • @@ -443,15 +424,11 @@

      Declaration

    - - -
    -
    - - -
    -
    • @@ -513,7 +487,7 @@

      Declaration

    @@ -527,7 +501,7 @@

    Declaration

    diff --git a/docs/Enums/CascadeDirection.html b/docs/Enums/CascadeDirection.html index ab2e02ab..8e28bd2a 100644 --- a/docs/Enums/CascadeDirection.html +++ b/docs/Enums/CascadeDirection.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    CascadeDirection

    +
    public enum CascadeDirection

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - radial(center:) + radial(center:)
    @@ -397,7 +398,7 @@

    Declaration

    @@ -407,7 +408,7 @@

    Declaration

    - inverseRadial(center:) + inverseRadial(center:)
    @@ -427,7 +428,7 @@

    Declaration

    @@ -457,7 +458,7 @@

    Declaration

    @@ -487,7 +488,7 @@

    Declaration

    @@ -501,7 +502,7 @@

    Declaration

    diff --git a/docs/Enums/HeroCoordinateSpace.html b/docs/Enums/HeroCoordinateSpace.html index dd7f2d9e..742aca62 100644 --- a/docs/Enums/HeroCoordinateSpace.html +++ b/docs/Enums/HeroCoordinateSpace.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroCoordinateSpace

    +
    public enum HeroCoordinateSpace

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/Enums/HeroDefaultAnimationType.html b/docs/Enums/HeroDefaultAnimationType.html index f5f95688..6550884c 100644 --- a/docs/Enums/HeroDefaultAnimationType.html +++ b/docs/Enums/HeroDefaultAnimationType.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,21 @@
    -
    +

    HeroDefaultAnimationType

    +
    public enum HeroDefaultAnimationType
    +
    extension HeroDefaultAnimationType: HeroStringConvertible

    Undocumented

    +
    @@ -278,7 +280,7 @@

    Declaration

    @@ -309,7 +311,7 @@

    Declaration

    @@ -339,7 +341,7 @@

    Declaration

    @@ -349,7 +351,7 @@

    Declaration

    - push(direction:) + push(direction:)
    @@ -369,7 +371,7 @@

    Declaration

    @@ -379,7 +381,7 @@

    Declaration

    - pull(direction:) + pull(direction:)
    @@ -399,7 +401,7 @@

    Declaration

    @@ -409,7 +411,7 @@

    Declaration

    - cover(direction:) + cover(direction:)
    @@ -429,7 +431,7 @@

    Declaration

    @@ -439,7 +441,7 @@

    Declaration

    - uncover(direction:) + uncover(direction:)
    @@ -459,7 +461,7 @@

    Declaration

    @@ -469,7 +471,7 @@

    Declaration

    - slide(direction:) + slide(direction:)
    @@ -489,7 +491,7 @@

    Declaration

    @@ -499,7 +501,7 @@

    Declaration

    - zoomSlide(direction:) + zoomSlide(direction:)
    @@ -519,7 +521,7 @@

    Declaration

    @@ -529,7 +531,7 @@

    Declaration

    - pageIn(direction:) + pageIn(direction:)
    @@ -549,7 +551,7 @@

    Declaration

    @@ -559,7 +561,7 @@

    Declaration

    - pageOut(direction:) + pageOut(direction:)
    @@ -579,7 +581,7 @@

    Declaration

    @@ -609,7 +611,7 @@

    Declaration

    @@ -639,7 +641,7 @@

    Declaration

    @@ -669,7 +671,7 @@

    Declaration

    @@ -679,7 +681,7 @@

    Declaration

    - selectBy(presenting:dismissing:) + selectBy(presenting:dismissing:)
    @@ -699,7 +701,7 @@

    Declaration

    @@ -709,7 +711,7 @@

    Declaration

    - autoReverse(presenting:) + autoReverse(presenting:)
    @@ -729,7 +731,7 @@

    Declaration

    @@ -759,7 +761,7 @@

    Declaration

    @@ -789,21 +791,17 @@

    Declaration

    - - -
    -
    @@ -837,7 +835,7 @@

    Declaration

    diff --git a/docs/Enums/HeroDefaultAnimationType/Direction.html b/docs/Enums/HeroDefaultAnimationType/Direction.html index 94bbfe31..dcdb5d86 100644 --- a/docs/Enums/HeroDefaultAnimationType/Direction.html +++ b/docs/Enums/HeroDefaultAnimationType/Direction.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Direction

    +
    public enum Direction : HeroStringConvertible

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - from(node:) + from(node:)
    @@ -397,7 +398,67 @@

    Declaration

    + + + +
  • +
    + + + + leadingToTrailing + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var leadingToTrailing: CascadeDirection { get }
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + trailingToLeading + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var trailingToLeading: CascadeDirection { get }
    + +
    +
    +
    @@ -427,7 +488,7 @@

    Declaration

    @@ -457,7 +518,7 @@

    Declaration

    @@ -471,7 +532,7 @@

    Declaration

    diff --git a/docs/Enums/HeroDefaultAnimationType/Strategy.html b/docs/Enums/HeroDefaultAnimationType/Strategy.html index 1aa4d01f..5e7fd8ee 100644 --- a/docs/Enums/HeroDefaultAnimationType/Strategy.html +++ b/docs/Enums/HeroDefaultAnimationType/Strategy.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Strategy

    +
    public enum Strategy

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/Enums/HeroSnapshotType.html b/docs/Enums/HeroSnapshotType.html index aa830d57..e0586c13 100644 --- a/docs/Enums/HeroSnapshotType.html +++ b/docs/Enums/HeroSnapshotType.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroSnapshotType

    +
    public enum HeroSnapshotType

    Undocumented

    +
    @@ -280,7 +281,7 @@

    Declaration

    @@ -310,7 +311,7 @@

    Declaration

    @@ -340,7 +341,7 @@

    Declaration

    @@ -372,7 +373,7 @@

    Declaration

    @@ -386,7 +387,7 @@

    Declaration

    diff --git a/docs/Enums/HeroTransitionState.html b/docs/Enums/HeroTransitionState.html index ff717f30..98b22b56 100644 --- a/docs/Enums/HeroTransitionState.html +++ b/docs/Enums/HeroTransitionState.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroTransitionState

    +
    public enum HeroTransitionState : Int

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -397,7 +398,7 @@

    Declaration

    @@ -411,7 +412,7 @@

    Declaration

    diff --git a/docs/Enums/HeroViewOrderingStrategy.html b/docs/Enums/HeroViewOrderingStrategy.html index 20a8b4de..1f472faf 100644 --- a/docs/Enums/HeroViewOrderingStrategy.html +++ b/docs/Enums/HeroViewOrderingStrategy.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroViewOrderingStrategy

    +
    public enum HeroViewOrderingStrategy

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/Enums/ParseError.html b/docs/Enums/ParseError.html index a00cf466..243375fd 100644 --- a/docs/Enums/ParseError.html +++ b/docs/Enums/ParseError.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    ParseError

    +
    public enum ParseError : Error

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - undefinedOperator(_:) + undefinedOperator(_:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - expectCharacter(_:) + expectCharacter(_:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -397,7 +398,7 @@

    Declaration

    @@ -427,7 +428,7 @@

    Declaration

    @@ -441,7 +442,7 @@

    Declaration

    diff --git a/docs/Enums/Token.html b/docs/Enums/Token.html index 886a3c22..d03e94fe 100644 --- a/docs/Enums/Token.html +++ b/docs/Enums/Token.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Token

    +
    public enum Token

    Undocumented

    +
    @@ -257,7 +258,7 @@

    Token

    - identifier(_:_:) + identifier(_:_:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - number(_:_:) + number(_:_:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - parensOpen(_:) + parensOpen(_:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -347,7 +348,7 @@

    Declaration

    - parensClose(_:) + parensClose(_:)
    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - comma(_:) + comma(_:)
    @@ -397,7 +398,7 @@

    Declaration

    @@ -407,7 +408,7 @@

    Declaration

    - other(_:_:) + other(_:_:)
    @@ -427,7 +428,7 @@

    Declaration

    @@ -441,7 +442,7 @@

    Declaration

    diff --git a/docs/Extensions.html b/docs/Extensions.html index ea7f3193..0233689c 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Extensions

    The following extensions are available globally.

    @@ -244,41 +241,6 @@

    Extensions

    -
    -
      -
    • -
      - - - - HeroDebugView - -
      -
      -
      -
      -
      -
      -

      Undocumented

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      extension HeroDebugView: UIGestureRecognizerDelegate
      - -
      -
      - -
      -
      -
    • -
    -
    • @@ -308,10 +270,6 @@

      Declaration

  • - - -
    -
    • @@ -339,10 +297,6 @@

      Declaration

    • -
    -
    -
    -
    • @@ -363,17 +317,13 @@

      Declaration

      Declaration

      Swift

      -
      public extension UIView
      +
      extension UIView: HeroCompatible
    - - -
    -
    • @@ -394,7 +344,7 @@

      Declaration

      Declaration

      Swift

      -
      public extension UIViewController
      +
      extension UIViewController: HeroCompatible
      @@ -455,10 +405,6 @@

      Declaration

    - - -
    -
    • @@ -479,18 +425,13 @@

      Declaration

      Declaration

      Swift

      -
      @frozen
      -public extension String
      +
      public extension String
    - - -
    -
    • @@ -510,10 +451,6 @@

      Declaration

    • -
    -
    -
    -
    diff --git a/docs/Extensions/CAMediaTimingFunction.html b/docs/Extensions/CAMediaTimingFunction.html index 90392e26..f29a3ee1 100644 --- a/docs/Extensions/CAMediaTimingFunction.html +++ b/docs/Extensions/CAMediaTimingFunction.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    -
    +

    CAMediaTimingFunction

    +
    public extension CAMediaTimingFunction
    @@ -276,7 +274,7 @@

    Declaration

    @@ -306,7 +304,7 @@

    Declaration

    @@ -336,7 +334,7 @@

    Declaration

    @@ -366,7 +364,7 @@

    Declaration

    @@ -396,7 +394,7 @@

    Declaration

    @@ -426,7 +424,7 @@

    Declaration

    @@ -456,7 +454,7 @@

    Declaration

    @@ -486,7 +484,7 @@

    Declaration

    @@ -516,7 +514,7 @@

    Declaration

    @@ -526,7 +524,7 @@

    Declaration

    - from(name:) + from(name:)
    @@ -546,7 +544,7 @@

    Declaration

    @@ -560,7 +558,7 @@

    Declaration

    diff --git a/docs/Extensions/CATransform3D.html b/docs/Extensions/CATransform3D.html index c0c2ffb0..5d793d81 100644 --- a/docs/Extensions/CATransform3D.html +++ b/docs/Extensions/CATransform3D.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    -
    +

    CATransform3D

    +
    extension CATransform3D: Equatable
    @@ -256,7 +254,7 @@

    CATransform3D

    - ==(_:_:) + ==(_:_:)
    @@ -275,7 +273,7 @@

    Declaration

    @@ -289,7 +287,7 @@

    Declaration

    diff --git a/docs/Extensions/HeroDebugView.html b/docs/Extensions/HeroDebugView.html index 6e16be6f..e6f7d42f 100644 --- a/docs/Extensions/HeroDebugView.html +++ b/docs/Extensions/HeroDebugView.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    HeroDebugView

    @@ -250,7 +247,7 @@

    HeroDebugView

    - gestureRecognizerShouldBegin(_:) + gestureRecognizerShouldBegin(_:)
    @@ -272,7 +269,7 @@

    HeroDebugView

    diff --git a/docs/Extensions/String.html b/docs/Extensions/String.html index 9f99ff4b..768b2984 100644 --- a/docs/Extensions/String.html +++ b/docs/Extensions/String.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,12 +232,12 @@
    -
    +

    String

    -
    @frozen
    -public extension String
    + +
    public extension String
    @@ -257,7 +254,7 @@

    String

    - match(regex:) + match(regex:)
    @@ -277,7 +274,7 @@

    Declaration

    @@ -291,7 +288,7 @@

    Declaration

    diff --git a/docs/Extensions/UINavigationController.html b/docs/Extensions/UINavigationController.html index d96f7044..105ce6b9 100644 --- a/docs/Extensions/UINavigationController.html +++ b/docs/Extensions/UINavigationController.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    UINavigationController

    @@ -272,7 +269,7 @@

    UINavigationController

    diff --git a/docs/Extensions/UITabBarController.html b/docs/Extensions/UITabBarController.html index 736bed38..89b9fce5 100644 --- a/docs/Extensions/UITabBarController.html +++ b/docs/Extensions/UITabBarController.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    @@ -321,7 +319,7 @@

    Declaration

    diff --git a/docs/Extensions/UIView.html b/docs/Extensions/UIView.html index c0059c85..1698a65f 100644 --- a/docs/Extensions/UIView.html +++ b/docs/Extensions/UIView.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,11 +232,12 @@
    @@ -339,7 +337,7 @@

    Declaration

    @@ -369,7 +367,7 @@

    Declaration

    @@ -400,7 +398,7 @@

    Declaration

    @@ -414,7 +412,7 @@

    Declaration

    diff --git a/docs/Extensions/UIViewController.html b/docs/Extensions/UIViewController.html index 7475ebff..00dc042a 100644 --- a/docs/Extensions/UIViewController.html +++ b/docs/Extensions/UIViewController.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,11 +232,12 @@
    -
    +

    UIViewController

    -
    public extension UIViewController
    + +
    extension UIViewController: HeroCompatible
    @@ -276,7 +274,7 @@

    Declaration

    @@ -307,7 +305,7 @@

    Declaration

    @@ -338,21 +336,17 @@

    Declaration

    - - -
    -
    @@ -383,7 +377,7 @@

    Declaration

    - heroReplaceViewController(with:) + heroReplaceViewController(with:)
    @@ -403,7 +397,7 @@

    Declaration

    @@ -434,7 +428,7 @@

    Declaration

    @@ -465,7 +459,7 @@

    Declaration

    @@ -475,7 +469,7 @@

    Declaration

    - hero_unwindToViewController(_:) + hero_unwindToViewController(_:)
    @@ -495,7 +489,7 @@

    Declaration

    @@ -505,7 +499,7 @@

    Declaration

    - hero_unwindToViewController(withSelector:) + hero_unwindToViewController(withSelector:)
    @@ -525,7 +519,7 @@

    Declaration

    @@ -535,7 +529,7 @@

    Declaration

    - hero_unwindToViewController(withClass:) + hero_unwindToViewController(withClass:)
    @@ -555,7 +549,7 @@

    Declaration

    @@ -565,7 +559,7 @@

    Declaration

    - hero_unwindToViewController(withMatchBlock:) + hero_unwindToViewController(withMatchBlock:)
    @@ -585,7 +579,7 @@

    Declaration

    @@ -595,7 +589,7 @@

    Declaration

    - hero_replaceViewController(with:) + hero_replaceViewController(with:)
    @@ -615,7 +609,7 @@

    Declaration

    @@ -629,7 +623,7 @@

    Declaration

    diff --git a/docs/Functions.html b/docs/Functions.html index 17180afc..8c89e74e 100644 --- a/docs/Functions.html +++ b/docs/Functions.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Functions

    The following functions are available globally.

    @@ -251,7 +248,7 @@

    Functions

    - ==(_:_:) + ==(_:_:)
    @@ -271,7 +268,7 @@

    Declaration

    @@ -285,7 +282,7 @@

    Declaration

    diff --git a/docs/Protocols.html b/docs/Protocols.html index 033b0a19..f56763b9 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Protocols

    The following protocols are available globally.

    @@ -272,15 +269,11 @@

    Declaration

    - - -
    -
    • @@ -307,15 +300,11 @@

      Declaration

    - - -
    -
    • @@ -342,7 +331,7 @@

      Declaration

    @@ -373,7 +362,7 @@

    Declaration

    @@ -404,15 +393,11 @@

    Declaration

    - - -
    -
    • @@ -440,15 +425,11 @@

      Declaration

    - - -
    -
    • @@ -475,15 +456,11 @@

      Declaration

    - - -
    -
    • @@ -510,7 +487,7 @@

      Declaration

    @@ -524,7 +501,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroAnimator.html b/docs/Protocols/HeroAnimator.html index 8d581926..5a3b0cff 100644 --- a/docs/Protocols/HeroAnimator.html +++ b/docs/Protocols/HeroAnimator.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroAnimator

    +
    public protocol HeroAnimator : AnyObject

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - canAnimate(view:appearing:) + canAnimate(view:appearing:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - animate(fromViews:toViews:) + animate(fromViews:toViews:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - seekTo(timePassed:) + seekTo(timePassed:)
    @@ -397,7 +398,7 @@

    Declaration

    @@ -407,7 +408,7 @@

    Declaration

    - resume(timePassed:reverse:) + resume(timePassed:reverse:)
    @@ -427,7 +428,7 @@

    Declaration

    @@ -437,7 +438,7 @@

    Declaration

    - apply(state:to:) + apply(state:to:)
    @@ -457,7 +458,7 @@

    Declaration

    @@ -467,7 +468,7 @@

    Declaration

    - changeTarget(state:isDestination:to:) + changeTarget(state:isDestination:to:)
    @@ -487,7 +488,7 @@

    Declaration

    @@ -501,7 +502,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroCompatible.html b/docs/Protocols/HeroCompatible.html index 089cf89c..b8dc30ef 100644 --- a/docs/Protocols/HeroCompatible.html +++ b/docs/Protocols/HeroCompatible.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroCompatible

    +
    public protocol HeroCompatible

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -315,7 +316,7 @@

    Declaration

    @@ -329,7 +330,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroCustomSnapshotView.html b/docs/Protocols/HeroCustomSnapshotView.html index a8efc0b5..8baf588c 100644 --- a/docs/Protocols/HeroCustomSnapshotView.html +++ b/docs/Protocols/HeroCustomSnapshotView.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroCustomSnapshotView

    +
    public protocol HeroCustomSnapshotView

    Allows a view to create their own custom snapshot when using Optimized snapshot

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroPreprocessor.html b/docs/Protocols/HeroPreprocessor.html index 44046d54..4935326c 100644 --- a/docs/Protocols/HeroPreprocessor.html +++ b/docs/Protocols/HeroPreprocessor.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroPreprocessor

    +
    public protocol HeroPreprocessor : AnyObject

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - process(fromViews:toViews:) + process(fromViews:toViews:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroProgressUpdateObserver.html b/docs/Protocols/HeroProgressUpdateObserver.html index 6c8348ff..55b84b78 100644 --- a/docs/Protocols/HeroProgressUpdateObserver.html +++ b/docs/Protocols/HeroProgressUpdateObserver.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroProgressUpdateObserver

    +
    public protocol HeroProgressUpdateObserver : AnyObject

    Undocumented

    +
    @@ -257,7 +258,7 @@

    HeroProgressUpdateObserver

    - heroDidUpdateProgress(progress:) + heroDidUpdateProgress(progress:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroStringConvertible.html b/docs/Protocols/HeroStringConvertible.html index 83711b66..4d7d1969 100644 --- a/docs/Protocols/HeroStringConvertible.html +++ b/docs/Protocols/HeroStringConvertible.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroStringConvertible

    +
    public protocol HeroStringConvertible

    Undocumented

    +
    @@ -257,7 +258,7 @@

    HeroStringConvertible

    - from(node:) + from(node:)
    @@ -272,12 +273,12 @@

    HeroStringConvertible

    Declaration

    Swift

    -
    static func from(node: ExprNode) -> `Self`?
    +
    static func from(node: ExprNode) -> Self?
    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroTransitionDelegate.html b/docs/Protocols/HeroTransitionDelegate.html index b804aec7..feda1984 100644 --- a/docs/Protocols/HeroTransitionDelegate.html +++ b/docs/Protocols/HeroTransitionDelegate.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroTransitionDelegate

    +
    public protocol HeroTransitionDelegate : AnyObject

    Undocumented

    +
    @@ -257,7 +258,7 @@

    HeroTransitionDelegate

    - heroTransition(_:didUpdate:) + heroTransition(_:didUpdate:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - heroTransition(_:didUpdate:) + heroTransition(_:didUpdate:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/Protocols/HeroViewControllerDelegate.html b/docs/Protocols/HeroViewControllerDelegate.html index 2edd612c..46a5ee64 100644 --- a/docs/Protocols/HeroViewControllerDelegate.html +++ b/docs/Protocols/HeroViewControllerDelegate.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    -
    +

    HeroViewControllerDelegate

    +
    @objc
     public protocol HeroViewControllerDelegate
    @@ -246,6 +244,9 @@

    HeroViewControllerDelegate

    Undocumented

    +
    @@ -258,7 +259,7 @@

    HeroViewControllerDelegate

    - heroWillStartAnimatingFrom(viewController:) + heroWillStartAnimatingFrom(viewController:)
    @@ -279,7 +280,7 @@

    Declaration

    @@ -289,7 +290,7 @@

    Declaration

    - heroDidEndAnimatingFrom(viewController:) + heroDidEndAnimatingFrom(viewController:)
    @@ -310,7 +311,7 @@

    Declaration

    @@ -320,7 +321,7 @@

    Declaration

    - heroDidCancelAnimatingFrom(viewController:) + heroDidCancelAnimatingFrom(viewController:)
    @@ -341,7 +342,7 @@

    Declaration

    @@ -372,7 +373,7 @@

    Declaration

    @@ -403,7 +404,7 @@

    Declaration

    @@ -434,7 +435,7 @@

    Declaration

    @@ -444,7 +445,7 @@

    Declaration

    - heroWillStartAnimatingTo(viewController:) + heroWillStartAnimatingTo(viewController:)
    @@ -465,7 +466,7 @@

    Declaration

    @@ -475,7 +476,7 @@

    Declaration

    - heroDidEndAnimatingTo(viewController:) + heroDidEndAnimatingTo(viewController:)
    @@ -496,7 +497,7 @@

    Declaration

    @@ -506,7 +507,7 @@

    Declaration

    - heroDidCancelAnimatingTo(viewController:) + heroDidCancelAnimatingTo(viewController:)
    @@ -527,7 +528,7 @@

    Declaration

    @@ -541,7 +542,7 @@

    Declaration

    diff --git a/docs/Structs.html b/docs/Structs.html index 015ec15b..db180823 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Structures

    The following structures are available globally.

    @@ -268,19 +265,16 @@

    Declaration

    Swift

    public struct HeroTargetState
    +
    extension HeroTargetState: ExpressibleByArrayLiteral
    - - -
    -
    • @@ -307,7 +301,7 @@

      Declaration

    @@ -321,7 +315,7 @@

    Declaration

    diff --git a/docs/Structs/HeroConditionalContext.html b/docs/Structs/HeroConditionalContext.html index 9dd60566..bcb736a8 100644 --- a/docs/Structs/HeroConditionalContext.html +++ b/docs/Structs/HeroConditionalContext.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroConditionalContext

    +
    public struct HeroConditionalContext

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -302,12 +303,12 @@

    Declaration

    Declaration

    Swift

    -
    public private(set) var isAppearing: Bool
    +
    public private(set) var isAppearing: Bool { get }
    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -397,7 +398,7 @@

    Declaration

    @@ -427,7 +428,7 @@

    Declaration

    @@ -457,7 +458,7 @@

    Declaration

    @@ -487,7 +488,7 @@

    Declaration

    @@ -517,7 +518,7 @@

    Declaration

    @@ -547,7 +548,7 @@

    Declaration

    @@ -577,7 +578,7 @@

    Declaration

    @@ -607,7 +608,7 @@

    Declaration

    @@ -637,7 +638,7 @@

    Declaration

    @@ -651,7 +652,7 @@

    Declaration

    diff --git a/docs/Structs/HeroTargetState.html b/docs/Structs/HeroTargetState.html index 08b206d1..72f1c9f9 100644 --- a/docs/Structs/HeroTargetState.html +++ b/docs/Structs/HeroTargetState.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,21 @@
    -
    +

    HeroTargetState

    +
    public struct HeroTargetState
    +
    extension HeroTargetState: ExpressibleByArrayLiteral

    Undocumented

    +
    @@ -277,7 +279,7 @@

    Declaration

    @@ -307,7 +309,7 @@

    Declaration

    @@ -337,7 +339,7 @@

    Declaration

    @@ -367,7 +369,7 @@

    Declaration

    @@ -397,7 +399,7 @@

    Declaration

    @@ -427,7 +429,7 @@

    Declaration

    @@ -457,7 +459,7 @@

    Declaration

    @@ -487,7 +489,7 @@

    Declaration

    @@ -517,7 +519,7 @@

    Declaration

    @@ -547,7 +549,7 @@

    Declaration

    @@ -577,7 +579,7 @@

    Declaration

    @@ -607,7 +609,7 @@

    Declaration

    @@ -637,7 +639,7 @@

    Declaration

    @@ -667,7 +669,7 @@

    Declaration

    @@ -697,7 +699,7 @@

    Declaration

    @@ -727,7 +729,7 @@

    Declaration

    @@ -757,7 +759,7 @@

    Declaration

    @@ -787,7 +789,7 @@

    Declaration

    @@ -817,7 +819,7 @@

    Declaration

    @@ -847,7 +849,7 @@

    Declaration

    @@ -877,7 +879,7 @@

    Declaration

    @@ -907,7 +909,7 @@

    Declaration

    @@ -937,7 +939,7 @@

    Declaration

    @@ -967,7 +969,7 @@

    Declaration

    @@ -997,7 +999,7 @@

    Declaration

    @@ -1027,7 +1029,7 @@

    Declaration

    @@ -1057,7 +1059,7 @@

    Declaration

    @@ -1087,7 +1089,7 @@

    Declaration

    @@ -1117,7 +1119,7 @@

    Declaration

    @@ -1147,7 +1149,7 @@

    Declaration

    @@ -1177,7 +1179,7 @@

    Declaration

    @@ -1207,7 +1209,7 @@

    Declaration

    @@ -1237,7 +1239,7 @@

    Declaration

    @@ -1267,7 +1269,7 @@

    Declaration

    @@ -1297,7 +1299,7 @@

    Declaration

    @@ -1307,7 +1309,7 @@

    Declaration

    - append(_:) + append(_:)
    @@ -1327,7 +1329,7 @@

    Declaration

    @@ -1337,7 +1339,7 @@

    Declaration

    - append(contentsOf:) + append(contentsOf:)
    @@ -1357,7 +1359,7 @@

    Declaration

    @@ -1367,7 +1369,7 @@

    Declaration

    - subscript(_:) + subscript(_:)
    @@ -1390,21 +1392,17 @@

    Return Value

    custom item for a specific key

    - - -
    -
    @@ -1437,7 +1435,7 @@

    Declaration

    diff --git a/docs/UsageGuide.md b/docs/UsageGuide.md deleted file mode 100644 index 1461fd3c..00000000 --- a/docs/UsageGuide.md +++ /dev/null @@ -1,60 +0,0 @@ -# Usage - -## Storyboard - -1. In the Identity Inspector, for every pair of source/destination views, give each one the same `HeroID` attribute. -2. For any other views that you would like to animate, specify animation effects in the `Hero Modifier String` attribute. -3. Also in the Identity Inspector, enable Hero Transition on your destination view controller. - -## In Code - -1. Before doing a transition, set the desired `heroID` and `heroModifiers` to both your source and destination views. -2. Enable Hero for the destination view controller - - ```swift - viewController.hero.isEnabled = true - ``` - -### UINavigationController & UITabBarController - -Hero also supports transitions within a navigation controller or a tab bar controller—just set the 'hero.isEnabled' attribute to true on the UINavigationController/UITabBarController instance. - -## Attributes - -There are two important attributes to understand: `heroID` and `heroModifiers`. These are implemented as extensions (using associated objects) for `UIView`. Therefore, after the Hero library is imported, every `UIView` will have these two attributes. - -| Attribute Name | Description | -| --- | --- | -| `heroID` | Identifier for the view. Hero will automatically transition between views with the same `heroID` | -| `hero.modifiers` | Specifies the extra animations performed alongside the main transition. | - -## HeroID - -`heroID` is the identifier for the view. When doing a transition between two view controllers, Hero will search through all subviews for both controllers, and match any views with the same `heroID`. Whenever a pair is discovered, Hero will automatically transit the views from source state to destination state. - -## HeroModifiers - -Use `hero.modifiers` to specify animations alongside the main transition. Checkout [HeroModifier.swift](https://github.com/lkzhao/Hero/blob/master/Sources/HeroModifier.swift) for available modifiers. - -#### For example, to achieve the following effect, set the `hero.modifiers` to be - -```swift -view.hero.modifiers = [.fade, .translate(x:0, y:-250), .rotate(x:-1.6), .scale(1.5)] -``` - - - - -Note: For matched views, the target view's heroModifier will be used. The source view's heroModifier will be ignored. When dismissing, the target view is the presentingViewController's view and the source view is the presentedViewController's view. - -## HeroModifierString - -This is a string value. It provides another way to set `hero.modifiers`. It can be accessed through the storyboard. - -It must be in the following syntax: - -```swift -modifier1() modifier2(parameter1) modifier3(parameter1, parameter2) ... -``` - -Parameters must be between a pair of parentheses, separated by a comma, and each modifier must be separated by a space. Not all modifiers are settable this way. diff --git a/docs/css/jazzy.css b/docs/css/jazzy.css index 833be0d2..ff59f5f8 100644 --- a/docs/css/jazzy.css +++ b/docs/css/jazzy.css @@ -94,10 +94,10 @@ pre { code { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } -p > code, li > code { +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { background: #f7f7f7; padding: .2em; } - p > code:before, p > code:after, li > code:before, li > code:after { + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { letter-spacing: -.2em; content: "\00a0"; } @@ -111,7 +111,6 @@ pre code { @media (min-width: 768px) { .content-wrapper { flex-direction: row; } } - .header { display: flex; padding: 8px; @@ -157,7 +156,6 @@ pre code { word-wrap: normal; background: #fbfbfb; border-right: 1px solid #ddd; } } - .nav-groups { list-style-type: none; padding-left: 0; } @@ -188,7 +186,6 @@ pre code { order: 2; flex: 1; padding-bottom: 60px; } } - .section { padding: 0 32px; border-bottom: 1px solid #ddd; } @@ -201,6 +198,8 @@ pre code { .section-name { color: #666; display: block; } + .section-name p { + margin-bottom: inherit; } .declaration .highlight { overflow-x: initial; @@ -219,6 +218,22 @@ pre code { content: ""; display: block; } +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + .item-container { padding: 0; } @@ -230,8 +245,10 @@ pre code { content: ""; display: block; } .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; padding-left: 3px; - margin-left: 0px; + margin-left: 20px; font-size: 1rem; } .item .declaration-note { font-size: .85em; diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes.html index cf82ce64..d411cccd 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Classes

    The following classes are available globally.

    @@ -272,15 +269,11 @@

    Declaration

    - - -
    -
    • @@ -307,15 +300,11 @@

      Declaration

    - - -
    -
    • @@ -342,15 +331,11 @@

      Declaration

    - - -
    -
    - - -
    -
    • @@ -412,15 +394,11 @@

      Declaration

    - - -
    -
    • @@ -447,15 +425,11 @@

      Declaration

    - - -
    -
    • @@ -482,7 +456,7 @@

      Declaration

    @@ -513,7 +487,7 @@

    Declaration

    @@ -544,7 +518,7 @@

    Declaration

    @@ -575,7 +549,7 @@

    Declaration

    @@ -606,7 +580,7 @@

    Declaration

    @@ -637,7 +611,7 @@

    Declaration

    @@ -668,15 +642,11 @@

    Declaration

    - - -
    -
    • @@ -703,15 +673,11 @@

      Declaration

    - - -
    -
    • @@ -734,11 +700,16 @@

      Declaration

      Swift

      open class HeroTransition : NSObject
      +
      extension HeroTransition: UINavigationControllerDelegate
      +
      extension HeroTransition: UITabBarControllerDelegate
      +
      extension HeroTransition: UIViewControllerTransitioningDelegate
      +
      extension HeroTransition: UIViewControllerAnimatedTransitioning
      +
      extension HeroTransition: UIViewControllerInteractiveTransitioning
    @@ -777,15 +748,11 @@

    Declaration

    - - -
    -
    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/BinaryOpNode.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/BinaryOpNode.html index 28e4acd6..dd4922ad 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/BinaryOpNode.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/BinaryOpNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    BinaryOpNode

    +
    public class BinaryOpNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -347,7 +348,7 @@

    Declaration

    - init(name:lhs:rhs:) + init(name:lhs:rhs:)
    @@ -367,7 +368,7 @@

    Declaration

    @@ -381,7 +382,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/CallNode.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/CallNode.html index c22af489..fc333136 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/CallNode.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/CallNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    CallNode

    +
    public class CallNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - init(name:arguments:) + init(name:arguments:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/ExprNode.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/ExprNode.html index 14c3160a..94e4f0bf 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/ExprNode.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/ExprNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    ExprNode

    +
    public class ExprNode : CustomStringConvertible, Equatable

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -336,7 +337,7 @@

    Declaration

    @@ -346,7 +347,7 @@

    Declaration

    - init(name:) + init(name:)
    @@ -366,7 +367,7 @@

    Declaration

    @@ -380,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/FunctionNode.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/FunctionNode.html index 0a05f517..db32f439 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/FunctionNode.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/FunctionNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    FunctionNode

    +
    public class FunctionNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -347,7 +348,7 @@

    Declaration

    - init(prototype:body:) + init(prototype:body:)
    @@ -367,7 +368,7 @@

    Declaration

    @@ -381,7 +382,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Hero.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Hero.html index b19a3518..9cbc07ff 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Hero.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Hero.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    -
    +

    Hero

    +
    public class Hero : NSObject
    @@ -253,6 +251,9 @@

    func apply(modifiers:[HeroModifier], to view:UIView) +

    @@ -285,7 +286,7 @@

    Declaration

    @@ -299,7 +300,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroContext.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroContext.html index d8f523b6..70784774 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroContext.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroContext.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroContext

    +
    public class HeroContext

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,21 +338,17 @@

    Declaration

    - - -
    -
    @@ -384,7 +381,7 @@

    Return Value

    - destinationView(for:) + destinationView(for:)
    @@ -407,7 +404,7 @@

    Return Value

    a destination view matching the heroID, nil if not found

    @@ -417,7 +414,7 @@

    Return Value

    - pairedView(for:) + pairedView(for:)
    @@ -440,7 +437,7 @@

    Return Value

    a view with the same heroID, but on different view controller, nil if not found

    @@ -450,7 +447,7 @@

    Return Value

    - snapshotView(for:) + snapshotView(for:)
    @@ -473,7 +470,7 @@

    Return Value

    a snapshot view for animation

    @@ -483,7 +480,7 @@

    Return Value

    - subscript(_:) + subscript(_:)
    @@ -503,7 +500,7 @@

    Declaration

    @@ -533,21 +530,17 @@

    Declaration

    - - -
    -
    @@ -577,7 +570,7 @@

    Declaration

    - unhide(view:) + unhide(view:)
    @@ -597,7 +590,7 @@

    Declaration

    @@ -611,7 +604,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroDebugPlugin.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroDebugPlugin.html index 7c99207b..0e94acaa 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroDebugPlugin.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroDebugPlugin.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    HeroDebugPlugin

    @@ -268,7 +265,7 @@

    HeroDebugPlugin

    - animate(fromViews:toViews:) + animate(fromViews:toViews:)
    @@ -286,7 +283,7 @@

    HeroDebugPlugin

    - resume(timePassed:reverse:) + resume(timePassed:reverse:)
    @@ -317,10 +314,6 @@

    HeroDebugPlugin

    - - -
    -
    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroExtension.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroExtension.html index 6b061bea..b86443cb 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroExtension.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroExtension.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroExtension

    +
    public class HeroExtension<Base>

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -285,6 +286,15 @@

    Declaration

    +
    + + +
    + +

    Available where Base: UIView

    +

    +
    +
    • @@ -315,7 +325,7 @@

      Declaration

    @@ -346,7 +356,7 @@

    Declaration

    @@ -377,7 +387,7 @@

    Declaration

    @@ -407,7 +417,7 @@

    Declaration

    @@ -437,7 +447,7 @@

    Declaration

    @@ -445,6 +455,15 @@

    Declaration

    +
    + + +
    + +

    Available where Base: UIViewController

    +

    +
    +
    • @@ -471,7 +490,7 @@

      Declaration

    @@ -501,7 +520,7 @@

    Declaration

    @@ -531,7 +550,7 @@

    Declaration

    @@ -539,6 +558,15 @@

    Declaration

    +
    + + +
    + +

    Available where Base: UINavigationController

    +

    +
    +
    • @@ -565,7 +593,7 @@

      Declaration

    @@ -595,7 +623,7 @@

    Declaration

    @@ -603,6 +631,15 @@

    Declaration

    +
    + + +
    + +

    Available where Base: UITabBarController

    +

    +
    +
    • @@ -629,7 +666,7 @@

      Declaration

    @@ -659,7 +696,7 @@

    Declaration

    @@ -667,13 +704,22 @@

    Declaration

    +
    + + +
    + +

    Available where Base: UIViewController

    +

    +
    +
    @@ -724,7 +770,7 @@

    Declaration

    @@ -734,7 +780,7 @@

    Declaration

    - unwindToViewController(_:) + unwindToViewController(_:)
    @@ -754,7 +800,7 @@

    Declaration

    @@ -764,7 +810,7 @@

    Declaration

    - unwindToViewController(withSelector:) + unwindToViewController(withSelector:)
    @@ -784,7 +830,7 @@

    Declaration

    @@ -794,7 +840,7 @@

    Declaration

    - unwindToViewController(withClass:) + unwindToViewController(withClass:)
    @@ -814,7 +860,7 @@

    Declaration

    @@ -824,7 +870,7 @@

    Declaration

    - unwindToViewController(withMatchBlock:) + unwindToViewController(withMatchBlock:)
    @@ -844,7 +890,7 @@

    Declaration

    @@ -854,7 +900,7 @@

    Declaration

    - replaceViewController(with:completion:) + replaceViewController(with:completion:)
    @@ -874,7 +920,7 @@

    Declaration

    @@ -888,7 +934,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroModifier.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroModifier.html index e7b6ce5c..0b8608f6 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroModifier.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroModifier.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,21 @@
    -
    +

    HeroModifier

    +
    public final class HeroModifier
    +
    extension HeroModifier: HeroStringConvertible

    Undocumented

    +
    @@ -257,7 +259,7 @@

    HeroModifier

    - init(applyFunction:) + init(applyFunction:)
    @@ -272,26 +274,22 @@

    HeroModifier

    Declaration

    Swift

    -
    public init(applyFunction:@escaping (inout HeroTargetState) -> Void)
    +
    public init(applyFunction: @escaping (inout HeroTargetState) -> Void)
    - - -
    -
    @@ -324,7 +322,7 @@

    Declaration

    - beginWith(modifiers:) + beginWith(modifiers:)
    @@ -344,7 +342,7 @@

    Declaration

    @@ -354,7 +352,7 @@

    Declaration

    - beginWith(_:) + beginWith(_:)
    @@ -374,7 +372,7 @@

    Declaration

    @@ -412,7 +410,7 @@

    Declaration

    @@ -442,7 +440,7 @@

    Declaration

    @@ -452,7 +450,7 @@

    Declaration

    - ignoreSubviewModifiers(recursive:) + ignoreSubviewModifiers(recursive:)
    @@ -476,7 +474,7 @@

    Declaration

    @@ -511,7 +509,7 @@

    Declaration

    @@ -541,7 +539,7 @@

    Declaration

    @@ -572,7 +570,7 @@

    Declaration

    @@ -604,7 +602,7 @@

    Declaration

    @@ -636,7 +634,7 @@

    Declaration

    @@ -667,21 +665,17 @@

    Declaration

    - - -
    -
    - - -
    -
    • @@ -735,7 +725,7 @@

      Declaration

    @@ -765,7 +755,7 @@

    Declaration

    @@ -775,7 +765,7 @@

    Declaration

    - position(_:) + position(_:)
    @@ -785,6 +775,10 @@

    Declaration

    Set the position for the view to animate from/to.

    +
      +
    • position: position for the view to animate from/to
    • +
    +

    Declaration

    @@ -794,27 +788,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - position - - -
    -

    position for the view to animate from/to

    -
    -
    -
    @@ -824,7 +799,7 @@

    Parameters

    - size(_:) + size(_:)
    @@ -834,6 +809,10 @@

    Parameters

    Set the size for the view to animate from/to.

    +
      +
    • size: size for the view to animate from/to
    • +
    +

    Declaration

    @@ -843,41 +822,18 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - size - - -
    -

    size for the view to animate from/to

    -
    -
    -
    - - -
    -
    • @@ -887,6 +843,10 @@

      Parameters

      Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers

      +
        +
      • t: the CATransform3D object
      • +
      +

      Declaration

      @@ -896,27 +856,8 @@

      Declaration

      -
      -

      Parameters

      - - - - - - - -
      - - t - - -
      -

      the CATransform3D object

      -
      -
      -
    @@ -926,7 +867,7 @@

    Parameters

    - perspective(_:) + perspective(_:)
    @@ -936,6 +877,10 @@

    Parameters

    Set the perspective on the transform. use in combination with the rotate modifier.

    +
      +
    • perspective: set the camera distance of the transform
    • +
    +

    Declaration

    @@ -945,27 +890,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - perspective - - -
    -

    set the camera distance of the transform

    -
    -
    -
    @@ -975,7 +901,7 @@

    Parameters

    - scale(x:y:z:) + scale(x:y:z:)
    @@ -985,6 +911,12 @@

    Parameters

    Scale 3d

    +
      +
    • x: scale factor on x axis, default 1
    • +
    • y: scale factor on y axis, default 1
    • +
    • z: scale factor on z axis, default 1
    • +
    +

    Declaration

    @@ -994,51 +926,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - x - - -
    -

    scale factor on x axis, default 1

    -
    -
    - - y - - -
    -

    scale factor on y axis, default 1

    -
    -
    - - z - - -
    -

    scale factor on z axis, default 1

    -
    -
    -
    @@ -1048,7 +937,7 @@

    Parameters

    - scale(_:) + scale(_:)
    @@ -1058,6 +947,10 @@

    Parameters

    Scale in x & y axis

    +
      +
    • xy: scale factor in both x & y axis
    • +
    +

    Declaration

    @@ -1067,27 +960,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - xy - - -
    -

    scale factor in both x & y axis

    -
    -
    -
    @@ -1097,7 +971,7 @@

    Parameters

    - translate(x:y:z:) + translate(x:y:z:)
    @@ -1107,6 +981,12 @@

    Parameters

    Translate 3d

    +
      +
    • x: translation distance on x axis in display pixel, default 0
    • +
    • y: translation distance on y axis in display pixel, default 0
    • +
    • z: translation distance on z axis in display pixel, default 0
    • +
    +

    Declaration

    @@ -1116,51 +996,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - x - - -
    -

    translation distance on x axis in display pixel, default 0

    -
    -
    - - y - - -
    -

    translation distance on y axis in display pixel, default 0

    -
    -
    - - z - - -
    -

    translation distance on z axis in display pixel, default 0

    -
    -
    -
    @@ -1170,7 +1007,7 @@

    Parameters

    - translate(_:z:) + translate(_:z:)
    @@ -1190,7 +1027,7 @@

    Declaration

    @@ -1200,7 +1037,7 @@

    Declaration

    - rotate(x:y:z:) + rotate(x:y:z:)
    @@ -1210,6 +1047,12 @@

    Declaration

    Rotate 3d

    +
      +
    • x: rotation on x axis in radian, default 0
    • +
    • y: rotation on y axis in radian, default 0
    • +
    • z: rotation on z axis in radian, default 0
    • +
    +

    Declaration

    @@ -1219,51 +1062,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - x - - -
    -

    rotation on x axis in radian, default 0

    -
    -
    - - y - - -
    -

    rotation on y axis in radian, default 0

    -
    -
    - - z - - -
    -

    rotation on z axis in radian, default 0

    -
    -
    -
    @@ -1273,7 +1073,7 @@

    Parameters

    - rotate(_:z:) + rotate(_:z:)
    @@ -1293,7 +1093,7 @@

    Declaration

    @@ -1303,7 +1103,7 @@

    Declaration

    - rotate(_:) + rotate(_:)
    @@ -1313,6 +1113,10 @@

    Declaration

    Rotate 2d

    +
      +
    • z: rotation in radian
    • +
    +

    Declaration

    @@ -1322,27 +1126,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - z - - -
    -

    rotation in radian

    -
    -
    -
    @@ -1350,13 +1135,22 @@

    Parameters

    +
    + + +
    + +

    UIKit

    +

    +
    +
    • @@ -1364,38 +1158,23 @@

      Parameters

      -

      Set the opacity for the view to animate from/to.

      +

      Set the backgroundColor for the view to animate from/to.

      + +
        +
      • backgroundColor: backgroundColor for the view to animate from/to
      • +

      Declaration

      Swift

      -
      public static func opacity(_ opacity: CGFloat) -> HeroModifier
      +
      public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier
      -
      -

      Parameters

      - - - - - - - -
      - - opacity - - -
      -

      opacity for the view to animate from/to

      -
      -
      -
      @@ -1403,9 +1182,9 @@

      Parameters

    • @@ -1413,10 +1192,10 @@

      Parameters

      -

      Set the backgroundColor for the view to animate from/to.

      +

      Set the borderColor for the view to animate from/to.

        -
      • backgroundColor: backgroundColor for the view to animate from/to
      • +
      • borderColor: borderColor for the view to animate from/to
      @@ -1424,12 +1203,12 @@

      Parameters

      Declaration

      Swift

      -
      public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier
      +
      public static func borderColor(_ borderColor: UIColor) -> HeroModifier
    @@ -1437,9 +1216,9 @@

    Declaration

  • @@ -1447,38 +1226,58 @@

    Declaration

    -

    Set the cornerRadius for the view to animate from/to.

    +

    Set the shadowColor for the view to animate from/to.

    + +
      +
    • shadowColor: shadowColor for the view to animate from/to
    • +

    Declaration

    Swift

    -
    public static func cornerRadius(_ cornerRadius: CGFloat) -> HeroModifier
    +
    public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier
    -
    -

    Parameters

    - - - - - - - -
    - - cornerRadius - - -
    -

    cornerRadius for the view to animate from/to

    -
    -
    + +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an overlay on the animating view.

    + +
      +
    • color: color of the overlay
    • +
    • opacity: opacity of the overlay
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier
    + +
    @@ -1486,9 +1285,9 @@

    Parameters

  • @@ -1496,10 +1295,10 @@

    Parameters

    -

    Set the zPosition for the view to animate from/to.

    +

    Set the opacity for the view to animate from/to.

      -
    • zPosition: zPosition for the view to animate from/to
    • +
    • opacity: opacity for the view to animate from/to
    @@ -1507,12 +1306,12 @@

    Parameters

    Declaration

    Swift

    -
    public static func zPosition(_ zPosition: CGFloat) -> HeroModifier
    +
    public static func opacity(_ opacity: CGFloat) -> HeroModifier
    @@ -1520,9 +1319,9 @@

    Declaration

  • @@ -1530,10 +1329,10 @@

    Declaration

    -

    Set the contentsRect for the view to animate from/to.

    +

    Set the cornerRadius for the view to animate from/to.

      -
    • contentsRect: contentsRect for the view to animate from/to
    • +
    • cornerRadius: cornerRadius for the view to animate from/to
    @@ -1541,12 +1340,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func contentsRect(_ contentsRect: CGRect) -> HeroModifier
    +
    public static func cornerRadius(_ cornerRadius: CGFloat) -> HeroModifier
    @@ -1554,9 +1353,9 @@

    Declaration

  • @@ -1564,10 +1363,10 @@

    Declaration

    -

    Set the contentsScale for the view to animate from/to.

    +

    Set the zPosition for the view to animate from/to.

      -
    • contentsScale: contentsScale for the view to animate from/to
    • +
    • zPosition: zPosition for the view to animate from/to
    @@ -1575,12 +1374,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func contentsScale(_ contentsScale: CGFloat) -> HeroModifier
    +
    public static func zPosition(_ zPosition: CGFloat) -> HeroModifier
    @@ -1588,9 +1387,9 @@

    Declaration

  • @@ -1598,10 +1397,10 @@

    Declaration

    -

    Set the borderWidth for the view to animate from/to.

    +

    Set the contentsRect for the view to animate from/to.

      -
    • borderWidth: borderWidth for the view to animate from/to
    • +
    • contentsRect: contentsRect for the view to animate from/to
    @@ -1609,12 +1408,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func borderWidth(_ borderWidth: CGFloat) -> HeroModifier
    +
    public static func contentsRect(_ contentsRect: CGRect) -> HeroModifier
    @@ -1622,9 +1421,9 @@

    Declaration

  • @@ -1632,10 +1431,10 @@

    Declaration

    -

    Set the borderColor for the view to animate from/to.

    +

    Set the contentsScale for the view to animate from/to.

      -
    • borderColor: borderColor for the view to animate from/to
    • +
    • contentsScale: contentsScale for the view to animate from/to
    @@ -1643,12 +1442,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func borderColor(_ borderColor: UIColor) -> HeroModifier
    +
    public static func contentsScale(_ contentsScale: CGFloat) -> HeroModifier
    @@ -1656,9 +1455,9 @@

    Declaration

  • @@ -1666,10 +1465,10 @@

    Declaration

    -

    Set the shadowColor for the view to animate from/to.

    +

    Set the borderWidth for the view to animate from/to.

      -
    • shadowColor: shadowColor for the view to animate from/to
    • +
    • borderWidth: borderWidth for the view to animate from/to
    @@ -1677,12 +1476,12 @@

    Declaration

    Declaration

    Swift

    -
    public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier
    +
    public static func borderWidth(_ borderWidth: CGFloat) -> HeroModifier
    @@ -1692,7 +1491,7 @@

    Declaration

    - shadowOpacity(_:) + shadowOpacity(_:)
    @@ -1716,7 +1515,7 @@

    Declaration

    @@ -1726,7 +1525,7 @@

    Declaration

    - shadowOffset(_:) + shadowOffset(_:)
    @@ -1750,7 +1549,7 @@

    Declaration

    @@ -1760,7 +1559,7 @@

    Declaration

    - shadowRadius(_:) + shadowRadius(_:)
    @@ -1784,7 +1583,7 @@

    Declaration

    @@ -1794,7 +1593,7 @@

    Declaration

    - shadowPath(_:) + shadowPath(_:)
    @@ -1818,7 +1617,7 @@

    Declaration

    @@ -1828,7 +1627,7 @@

    Declaration

    - masksToBounds(_:) + masksToBounds(_:)
    @@ -1852,82 +1651,17 @@

    Declaration

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

    Create an overlay on the animating view.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - color - - -
    -

    color of the overlay

    -
    -
    - - opacity - - -
    -

    opacity of the overlay

    -
    -
    -
    -
  • - - -
    -
    • @@ -1937,6 +1671,10 @@

      Parameters

      Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.

      +
        +
      • duration: duration of the animation
      • +
      +

      Note: a duration of .infinity means matching the duration of the longest animation. same as .durationMatchLongest

      @@ -1948,27 +1686,8 @@

      Declaration

    -
    -

    Parameters

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

    duration of the animation

    -
    -
    -
    @@ -1998,7 +1717,7 @@

    Declaration

    @@ -2008,7 +1727,7 @@

    Declaration

    - delay(_:) + delay(_:)
    @@ -2018,6 +1737,10 @@

    Declaration

    Sets the delay of the animation for a given view.

    +
      +
    • delay: delay of the animation
    • +
    +

    Declaration

    @@ -2027,27 +1750,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - delay - - -
    -

    delay of the animation

    -
    -
    -
    @@ -2057,7 +1761,7 @@

    Parameters

    - timingFunction(_:) + timingFunction(_:)
    @@ -2067,6 +1771,10 @@

    Parameters

    Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.

    +
      +
    • timingFunction: timing function of the animation
    • +
    +

    Declaration

    @@ -2076,27 +1784,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - timingFunction - - -
    -

    timing function of the animation

    -
    -
    -
    @@ -2106,7 +1795,7 @@

    Parameters

    - spring(stiffness:damping:) + spring(stiffness:damping:)
    @@ -2116,63 +1805,33 @@

    Parameters

    (iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.

    +
      +
    • stiffness: stiffness of the spring
    • +
    • damping: damping of the spring
    • +
    +

    Declaration

    Swift

    -
    @available(iOS 9, *)
    +                          
    @available(iOS 9, *)
     public static func spring(stiffness: CGFloat, damping: CGFloat) -> HeroModifier
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - stiffness - - -
    -

    stiffness of the spring

    -
    -
    - - damping - - -
    -

    damping of the spring

    -
    -
    -
    - - -
    -
    • @@ -2184,22 +1843,26 @@

      Parameters

      Will also force the view to use global coordinate space.

      The following layer properties will be animated from the given view.

      -
      position
      -bounds.size
      -cornerRadius
      -transform
      -shadowColor
      -shadowOpacity
      -shadowOffset
      -shadowRadius
      -shadowPath
      -
      + +

      position +bounds.size +cornerRadius +transform +shadowColor +shadowOpacity +shadowOffset +shadowRadius +shadowPath

      Note that the following properties won’t be taken from the source view.

      -
      backgroundColor
      -borderWidth
      -borderColor
      -
      + +

      backgroundColor +borderWidth +borderColor

      + +
        +
      • heroID: the source view’s heroId.
      • +
      @@ -2210,27 +1873,8 @@

      Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - heroID - - -
    -

    the source view’s heroId.

    -
    -
    -
    @@ -2260,7 +1904,7 @@

    Declaration

    @@ -2270,7 +1914,7 @@

    Declaration

    - arc(intensity:) + arc(intensity:)
    @@ -2280,6 +1924,11 @@

    Declaration

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    +
      +
    • intensity: a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. +default is 1.
    • +
    +

    Declaration

    @@ -2289,28 +1938,8 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - -
    - - intensity - - -
    -

    a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. -default is 1.

    -
    -
    -
    @@ -2340,7 +1969,7 @@

    Declaration

    @@ -2350,7 +1979,7 @@

    Declaration

    - cascade(delta:direction:delayMatchedViews:) + cascade(delta:direction:delayMatchedViews:)
    @@ -2360,6 +1989,12 @@

    Declaration

    Cascade applys increasing delay modifiers to subviews

    +
      +
    • delta: delay in between each animation
    • +
    • direction: cascade direction
    • +
    • delayMatchedViews: whether or not to delay matched subviews until all cascading animation have started
    • +
    +

    Declaration

    @@ -2371,65 +2006,18 @@

    Declaration

    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - delta - - -
    -

    delay in between each animation

    -
    -
    - - direction - - -
    -

    cascade direction

    -
    -
    - - delayMatchedViews - - -
    -

    whether or not to delay matched subviews until all cascading animation have started

    -
    -
    -
    - - -
    -
    @@ -2459,7 +2047,7 @@

    Declaration

    - when(_:_:) + when(_:_:)
    @@ -2479,7 +2067,7 @@

    Declaration

    @@ -2489,7 +2077,7 @@

    Declaration

    - whenMatched(_:) + whenMatched(_:)
    @@ -2509,7 +2097,7 @@

    Declaration

    @@ -2519,7 +2107,7 @@

    Declaration

    - whenPresenting(_:) + whenPresenting(_:)
    @@ -2539,7 +2127,7 @@

    Declaration

    @@ -2549,7 +2137,7 @@

    Declaration

    - whenDismissing(_:) + whenDismissing(_:)
    @@ -2569,7 +2157,7 @@

    Declaration

    @@ -2579,7 +2167,7 @@

    Declaration

    - whenAppearing(_:) + whenAppearing(_:)
    @@ -2599,7 +2187,7 @@

    Declaration

    @@ -2609,7 +2197,7 @@

    Declaration

    - whenDisappearing(_:) + whenDisappearing(_:)
    @@ -2629,7 +2217,7 @@

    Declaration

    @@ -2643,7 +2231,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroPlugin.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroPlugin.html index ff5a54de..1dd001fd 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroPlugin.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroPlugin.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroPlugin

    +
    open class HeroPlugin : NSObject, HeroPreprocessor, HeroAnimator

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -344,7 +345,7 @@

    Declaration

    @@ -374,7 +375,7 @@

    Declaration

    @@ -384,7 +385,7 @@

    Declaration

    - process(fromViews:toViews:) + process(fromViews:toViews:)
    @@ -458,7 +459,7 @@

    Parameters

    @@ -468,7 +469,7 @@

    Parameters

    - canAnimate(view:appearing:) + canAnimate(view:appearing:)
    @@ -536,7 +537,7 @@

    Return Value

    return true if the plugin can handle animating the view.

    @@ -546,7 +547,7 @@

    Return Value

    - animate(fromViews:toViews:) + animate(fromViews:toViews:)
    @@ -615,7 +616,7 @@

    Return Value

    The duration needed to complete the animation

    @@ -647,7 +648,7 @@

    Declaration

    @@ -657,7 +658,7 @@

    Declaration

    - seekTo(timePassed:) + seekTo(timePassed:)
    @@ -699,7 +700,7 @@

    Parameters

    @@ -709,7 +710,7 @@

    Parameters

    - resume(timePassed:reverse:) + resume(timePassed:reverse:)
    @@ -737,7 +738,7 @@

    Declaration

    @@ -747,7 +748,7 @@

    Declaration

    - apply(state:to:) + apply(state:to:)
    @@ -800,7 +801,7 @@

    Parameters

    @@ -810,7 +811,7 @@

    Parameters

    - changeTarget(state:isDestination:to:) + changeTarget(state:isDestination:to:)
    @@ -830,15 +831,11 @@

    Declaration

    - - -
    -
    • @@ -864,7 +861,7 @@

      Declaration

    @@ -894,7 +891,7 @@

    Declaration

    @@ -924,7 +921,7 @@

    Declaration

    @@ -938,7 +935,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroTransition.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroTransition.html index a03a0052..dbeacb71 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroTransition.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/HeroTransition.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,25 @@
    -
    +

    HeroTransition

    +
    open class HeroTransition : NSObject
    +
    extension HeroTransition: UINavigationControllerDelegate
    +
    extension HeroTransition: UITabBarControllerDelegate
    +
    extension HeroTransition: UIViewControllerTransitioningDelegate
    +
    extension HeroTransition: UIViewControllerAnimatedTransitioning
    +
    extension HeroTransition: UIViewControllerInteractiveTransitioning

    Undocumented

    +
    @@ -277,7 +283,7 @@

    Declaration

    @@ -307,7 +313,7 @@

    Declaration

    @@ -337,7 +343,7 @@

    Declaration

    @@ -367,7 +373,7 @@

    Declaration

    @@ -397,7 +403,7 @@

    Declaration

    @@ -427,7 +433,7 @@

    Declaration

    @@ -457,7 +463,7 @@

    Declaration

    @@ -487,7 +493,7 @@

    Declaration

    @@ -512,12 +518,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var isPresenting: Bool
    +
    public internal(set) var isPresenting: Bool { get }
    @@ -547,7 +553,7 @@

    Declaration

    @@ -577,7 +583,7 @@

    Declaration

    @@ -603,12 +609,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var container: UIView!
    +
    public internal(set) var container: UIView! { get }
    @@ -633,12 +639,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var toViewController: UIViewController?
    +
    public internal(set) var toViewController: UIViewController? { get }
    @@ -663,12 +669,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var fromViewController: UIViewController?
    +
    public internal(set) var fromViewController: UIViewController? { get }
    @@ -693,12 +699,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var context: HeroContext!
    +
    public internal(set) var context: HeroContext! { get }
    @@ -728,7 +734,7 @@

    Declaration

    @@ -753,12 +759,12 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var totalDuration: TimeInterval
    +
    public internal(set) var totalDuration: TimeInterval { get }
    @@ -788,7 +794,7 @@

    Declaration

    @@ -818,7 +824,7 @@

    Declaration

    @@ -829,9 +835,11 @@

    Declaration

    - -

    Observe Progress

    -
    +
    + +

    Observe Progress

    +

    +
    - -
    -
    • @@ -898,21 +902,17 @@

      Declaration

    - - -
    -
    - - - - - -
    -
    @@ -1014,7 +1006,7 @@

    Declaration

    - finish(animate:) + finish(animate:)
    @@ -1036,7 +1028,7 @@

    Declaration

    @@ -1046,7 +1038,7 @@

    Declaration

    - cancel(animate:) + cancel(animate:)
    @@ -1068,7 +1060,7 @@

    Declaration

    @@ -1078,7 +1070,7 @@

    Declaration

    - apply(modifiers:to:) + apply(modifiers:to:)
    @@ -1109,7 +1101,7 @@

    Declaration

    @@ -1119,7 +1111,7 @@

    Declaration

    - changeTarget(modifiers:isDestination:to:) + changeTarget(modifiers:isDestination:to:)
    @@ -1151,15 +1143,11 @@

    Declaration

    - - -
    -
    • @@ -1185,21 +1173,17 @@

      Declaration

    - - - @@ -1229,7 +1213,7 @@

    Declaration

    - navigationController(_:didShow:animated:) + navigationController(_:didShow:animated:)
    @@ -1249,7 +1233,7 @@

    Declaration

    @@ -1259,7 +1243,7 @@

    Declaration

    - navigationController(_:animationControllerFor:from:to:) + navigationController(_:animationControllerFor:from:to:)
    @@ -1279,7 +1263,7 @@

    Declaration

    @@ -1289,7 +1273,7 @@

    Declaration

    - navigationController(_:interactionControllerFor:) + navigationController(_:interactionControllerFor:)
    @@ -1309,21 +1293,17 @@

    Declaration

    - - - @@ -1353,7 +1333,7 @@

    Declaration

    - tabBarController(_:interactionControllerFor:) + tabBarController(_:interactionControllerFor:)
    @@ -1373,7 +1353,7 @@

    Declaration

    @@ -1383,7 +1363,7 @@

    Declaration

    - tabBarController(_:animationControllerForTransitionFrom:to:) + tabBarController(_:animationControllerForTransitionFrom:to:)
    @@ -1403,21 +1383,17 @@

    Declaration

    - - - @@ -1447,7 +1423,7 @@

    Declaration

    - animationController(forDismissed:) + animationController(forDismissed:)
    @@ -1467,7 +1443,7 @@

    Declaration

    @@ -1477,7 +1453,7 @@

    Declaration

    - interactionControllerForDismissal(using:) + interactionControllerForDismissal(using:)
    @@ -1497,7 +1473,7 @@

    Declaration

    @@ -1507,7 +1483,7 @@

    Declaration

    - interactionControllerForPresentation(using:) + interactionControllerForPresentation(using:)
    @@ -1527,21 +1503,17 @@

    Declaration

    - - -
    -
    @@ -1571,7 +1543,7 @@

    Declaration

    - transitionDuration(using:) + transitionDuration(using:)
    @@ -1591,7 +1563,7 @@

    Declaration

    @@ -1601,7 +1573,7 @@

    Declaration

    - animationEnded(_:) + animationEnded(_:)
    @@ -1621,15 +1593,11 @@

    Declaration

    - - -
    -
    • @@ -1655,7 +1623,7 @@

      Declaration

    @@ -1665,7 +1633,7 @@

    Declaration

    - startInteractiveTransition(_:) + startInteractiveTransition(_:)
    @@ -1685,7 +1653,7 @@

    Declaration

    @@ -1699,7 +1667,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Lexer.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Lexer.html index 031ed16c..8255583a 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Lexer.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Lexer.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Lexer

    +
    public class Lexer

    Undocumented

    +
    @@ -257,7 +258,7 @@

    Lexer

    - init(input:) + init(input:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/NumberNode.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/NumberNode.html index fd5033e1..7598ef85 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/NumberNode.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/NumberNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    NumberNode

    +
    public class NumberNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - init(value:) + init(value:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Parser.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Parser.html index 4dc3c084..4a062e73 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Parser.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/Parser.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Parser

    +
    public class Parser

    Undocumented

    +
    @@ -257,7 +258,7 @@

    Parser

    - init(tokens:) + init(tokens:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/PrototypeNode.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/PrototypeNode.html index ec9a8290..de64dc06 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/PrototypeNode.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/PrototypeNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    PrototypeNode

    +
    public class PrototypeNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - init(name:argumentNames:) + init(name:argumentNames:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/VariableNode.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/VariableNode.html index 15a55486..f98ae03c 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/VariableNode.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Classes/VariableNode.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    VariableNode

    +
    public class VariableNode : ExprNode

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums.html index 80e7142b..3487fce2 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Enumerations

    The following enumerations are available globally.

    @@ -272,7 +269,7 @@

    Declaration

    @@ -303,15 +300,11 @@

    Declaration

    - - -
    -
    • @@ -338,15 +331,11 @@

      Declaration

    - - -
    -
    • @@ -373,15 +362,11 @@

      Declaration

    - - -
    -
    • @@ -408,15 +393,11 @@

      Declaration

    - - -
    -
    • @@ -443,15 +424,11 @@

      Declaration

    - - -
    -
    - - -
    -
    • @@ -513,7 +487,7 @@

      Declaration

    @@ -527,7 +501,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/CascadeDirection.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/CascadeDirection.html index ab2e02ab..8e28bd2a 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/CascadeDirection.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/CascadeDirection.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    CascadeDirection

    +
    public enum CascadeDirection

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - radial(center:) + radial(center:)
    @@ -397,7 +398,7 @@

    Declaration

    @@ -407,7 +408,7 @@

    Declaration

    - inverseRadial(center:) + inverseRadial(center:)
    @@ -427,7 +428,7 @@

    Declaration

    @@ -457,7 +458,7 @@

    Declaration

    @@ -487,7 +488,7 @@

    Declaration

    @@ -501,7 +502,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroCoordinateSpace.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroCoordinateSpace.html index dd7f2d9e..742aca62 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroCoordinateSpace.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroCoordinateSpace.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroCoordinateSpace

    +
    public enum HeroCoordinateSpace

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType.html index f5f95688..6550884c 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,21 @@
    -
    +

    HeroDefaultAnimationType

    +
    public enum HeroDefaultAnimationType
    +
    extension HeroDefaultAnimationType: HeroStringConvertible

    Undocumented

    +
    @@ -278,7 +280,7 @@

    Declaration

    @@ -309,7 +311,7 @@

    Declaration

    @@ -339,7 +341,7 @@

    Declaration

    @@ -349,7 +351,7 @@

    Declaration

    - push(direction:) + push(direction:)
    @@ -369,7 +371,7 @@

    Declaration

    @@ -379,7 +381,7 @@

    Declaration

    - pull(direction:) + pull(direction:)
    @@ -399,7 +401,7 @@

    Declaration

    @@ -409,7 +411,7 @@

    Declaration

    - cover(direction:) + cover(direction:)
    @@ -429,7 +431,7 @@

    Declaration

    @@ -439,7 +441,7 @@

    Declaration

    - uncover(direction:) + uncover(direction:)
    @@ -459,7 +461,7 @@

    Declaration

    @@ -469,7 +471,7 @@

    Declaration

    - slide(direction:) + slide(direction:)
    @@ -489,7 +491,7 @@

    Declaration

    @@ -499,7 +501,7 @@

    Declaration

    - zoomSlide(direction:) + zoomSlide(direction:)
    @@ -519,7 +521,7 @@

    Declaration

    @@ -529,7 +531,7 @@

    Declaration

    - pageIn(direction:) + pageIn(direction:)
    @@ -549,7 +551,7 @@

    Declaration

    @@ -559,7 +561,7 @@

    Declaration

    - pageOut(direction:) + pageOut(direction:)
    @@ -579,7 +581,7 @@

    Declaration

    @@ -609,7 +611,7 @@

    Declaration

    @@ -639,7 +641,7 @@

    Declaration

    @@ -669,7 +671,7 @@

    Declaration

    @@ -679,7 +681,7 @@

    Declaration

    - selectBy(presenting:dismissing:) + selectBy(presenting:dismissing:)
    @@ -699,7 +701,7 @@

    Declaration

    @@ -709,7 +711,7 @@

    Declaration

    - autoReverse(presenting:) + autoReverse(presenting:)
    @@ -729,7 +731,7 @@

    Declaration

    @@ -759,7 +761,7 @@

    Declaration

    @@ -789,21 +791,17 @@

    Declaration

    - - -
    -
    @@ -837,7 +835,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Direction.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Direction.html index 94bbfe31..dcdb5d86 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Direction.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Direction.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Direction

    +
    public enum Direction : HeroStringConvertible

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - from(node:) + from(node:)
    @@ -397,7 +398,67 @@

    Declaration

    + + + +
  • +
    + + + + leadingToTrailing + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var leadingToTrailing: CascadeDirection { get }
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + trailingToLeading + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var trailingToLeading: CascadeDirection { get }
    + +
    +
    +
    @@ -427,7 +488,7 @@

    Declaration

    @@ -457,7 +518,7 @@

    Declaration

    @@ -471,7 +532,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Strategy.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Strategy.html index 1aa4d01f..5e7fd8ee 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Strategy.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroDefaultAnimationType/Strategy.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Strategy

    +
    public enum Strategy

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroSnapshotType.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroSnapshotType.html index aa830d57..e0586c13 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroSnapshotType.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroSnapshotType.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroSnapshotType

    +
    public enum HeroSnapshotType

    Undocumented

    +
    @@ -280,7 +281,7 @@

    Declaration

    @@ -310,7 +311,7 @@

    Declaration

    @@ -340,7 +341,7 @@

    Declaration

    @@ -372,7 +373,7 @@

    Declaration

    @@ -386,7 +387,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroTransitionState.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroTransitionState.html index ff717f30..98b22b56 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroTransitionState.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroTransitionState.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroTransitionState

    +
    public enum HeroTransitionState : Int

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -397,7 +398,7 @@

    Declaration

    @@ -411,7 +412,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroViewOrderingStrategy.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroViewOrderingStrategy.html index 20a8b4de..1f472faf 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroViewOrderingStrategy.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/HeroViewOrderingStrategy.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroViewOrderingStrategy

    +
    public enum HeroViewOrderingStrategy

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -307,7 +308,7 @@

    Declaration

    @@ -337,7 +338,7 @@

    Declaration

    @@ -351,7 +352,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/ParseError.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/ParseError.html index a00cf466..243375fd 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/ParseError.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/ParseError.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    ParseError

    +
    public enum ParseError : Error

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - undefinedOperator(_:) + undefinedOperator(_:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - expectCharacter(_:) + expectCharacter(_:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -397,7 +398,7 @@

    Declaration

    @@ -427,7 +428,7 @@

    Declaration

    @@ -441,7 +442,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/Token.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/Token.html index 886a3c22..d03e94fe 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/Token.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Enums/Token.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    Token

    +
    public enum Token

    Undocumented

    +
    @@ -257,7 +258,7 @@

    Token

    - identifier(_:_:) + identifier(_:_:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - number(_:_:) + number(_:_:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - parensOpen(_:) + parensOpen(_:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -347,7 +348,7 @@

    Declaration

    - parensClose(_:) + parensClose(_:)
    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - comma(_:) + comma(_:)
    @@ -397,7 +398,7 @@

    Declaration

    @@ -407,7 +408,7 @@

    Declaration

    - other(_:_:) + other(_:_:)
    @@ -427,7 +428,7 @@

    Declaration

    @@ -441,7 +442,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions.html index ea7f3193..0233689c 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Extensions

    The following extensions are available globally.

    @@ -244,41 +241,6 @@

    Extensions

    -
    -
      -
    • -
      - - - - HeroDebugView - -
      -
      -
      -
      -
      -
      -

      Undocumented

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      extension HeroDebugView: UIGestureRecognizerDelegate
      - -
      -
      - -
      -
      -
    • -
    -
    • @@ -308,10 +270,6 @@

      Declaration

  • - - -
    -
    • @@ -339,10 +297,6 @@

      Declaration

    • -
    -
    -
    -
    • @@ -363,17 +317,13 @@

      Declaration

      Declaration

      Swift

      -
      public extension UIView
      +
      extension UIView: HeroCompatible
    - - -
    -
    • @@ -394,7 +344,7 @@

      Declaration

      Declaration

      Swift

      -
      public extension UIViewController
      +
      extension UIViewController: HeroCompatible
      @@ -455,10 +405,6 @@

      Declaration

    - - -
    -
    • @@ -479,18 +425,13 @@

      Declaration

      Declaration

      Swift

      -
      @frozen
      -public extension String
      +
      public extension String
    - - -
    -
    • @@ -510,10 +451,6 @@

      Declaration

    • -
    -
    -
    -
    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CAMediaTimingFunction.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CAMediaTimingFunction.html index 90392e26..f29a3ee1 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CAMediaTimingFunction.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CAMediaTimingFunction.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    -
    +

    CAMediaTimingFunction

    +
    public extension CAMediaTimingFunction
    @@ -276,7 +274,7 @@

    Declaration

    @@ -306,7 +304,7 @@

    Declaration

    @@ -336,7 +334,7 @@

    Declaration

    @@ -366,7 +364,7 @@

    Declaration

    @@ -396,7 +394,7 @@

    Declaration

    @@ -426,7 +424,7 @@

    Declaration

    @@ -456,7 +454,7 @@

    Declaration

    @@ -486,7 +484,7 @@

    Declaration

    @@ -516,7 +514,7 @@

    Declaration

    @@ -526,7 +524,7 @@

    Declaration

    - from(name:) + from(name:)
    @@ -546,7 +544,7 @@

    Declaration

    @@ -560,7 +558,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CATransform3D.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CATransform3D.html index c0c2ffb0..5d793d81 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CATransform3D.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/CATransform3D.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    -
    +

    CATransform3D

    +
    extension CATransform3D: Equatable
    @@ -256,7 +254,7 @@

    CATransform3D

    - ==(_:_:) + ==(_:_:)
    @@ -275,7 +273,7 @@

    Declaration

    @@ -289,7 +287,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/HeroDebugView.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/HeroDebugView.html index 6e16be6f..e6f7d42f 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/HeroDebugView.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/HeroDebugView.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    HeroDebugView

    @@ -250,7 +247,7 @@

    HeroDebugView

    - gestureRecognizerShouldBegin(_:) + gestureRecognizerShouldBegin(_:)
    @@ -272,7 +269,7 @@

    HeroDebugView

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/String.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/String.html index 9f99ff4b..768b2984 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/String.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/String.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,12 +232,12 @@
    -
    +

    String

    -
    @frozen
    -public extension String
    + +
    public extension String
    @@ -257,7 +254,7 @@

    String

    - match(regex:) + match(regex:)
    @@ -277,7 +274,7 @@

    Declaration

    @@ -291,7 +288,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UINavigationController.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UINavigationController.html index d96f7044..105ce6b9 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UINavigationController.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UINavigationController.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    UINavigationController

    @@ -272,7 +269,7 @@

    UINavigationController

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UITabBarController.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UITabBarController.html index 736bed38..89b9fce5 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UITabBarController.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UITabBarController.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    @@ -321,7 +319,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIView.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIView.html index c0059c85..1698a65f 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIView.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIView.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,11 +232,12 @@
    @@ -339,7 +337,7 @@

    Declaration

    @@ -369,7 +367,7 @@

    Declaration

    @@ -400,7 +398,7 @@

    Declaration

    @@ -414,7 +412,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIViewController.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIViewController.html index 7475ebff..00dc042a 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIViewController.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Extensions/UIViewController.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,11 +232,12 @@
    -
    +

    UIViewController

    -
    public extension UIViewController
    + +
    extension UIViewController: HeroCompatible
    @@ -276,7 +274,7 @@

    Declaration

    @@ -307,7 +305,7 @@

    Declaration

    @@ -338,21 +336,17 @@

    Declaration

    - - -
    -
    @@ -383,7 +377,7 @@

    Declaration

    - heroReplaceViewController(with:) + heroReplaceViewController(with:)
    @@ -403,7 +397,7 @@

    Declaration

    @@ -434,7 +428,7 @@

    Declaration

    @@ -465,7 +459,7 @@

    Declaration

    @@ -475,7 +469,7 @@

    Declaration

    - hero_unwindToViewController(_:) + hero_unwindToViewController(_:)
    @@ -495,7 +489,7 @@

    Declaration

    @@ -505,7 +499,7 @@

    Declaration

    - hero_unwindToViewController(withSelector:) + hero_unwindToViewController(withSelector:)
    @@ -525,7 +519,7 @@

    Declaration

    @@ -535,7 +529,7 @@

    Declaration

    - hero_unwindToViewController(withClass:) + hero_unwindToViewController(withClass:)
    @@ -555,7 +549,7 @@

    Declaration

    @@ -565,7 +559,7 @@

    Declaration

    - hero_unwindToViewController(withMatchBlock:) + hero_unwindToViewController(withMatchBlock:)
    @@ -585,7 +579,7 @@

    Declaration

    @@ -595,7 +589,7 @@

    Declaration

    - hero_replaceViewController(with:) + hero_replaceViewController(with:)
    @@ -615,7 +609,7 @@

    Declaration

    @@ -629,7 +623,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Functions.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Functions.html index 17180afc..8c89e74e 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Functions.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Functions.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Functions

    The following functions are available globally.

    @@ -251,7 +248,7 @@

    Functions

    - ==(_:_:) + ==(_:_:)
    @@ -271,7 +268,7 @@

    Declaration

    @@ -285,7 +282,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols.html index 033b0a19..f56763b9 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Protocols

    The following protocols are available globally.

    @@ -272,15 +269,11 @@

    Declaration

    - - -
    -
    • @@ -307,15 +300,11 @@

      Declaration

    - - -
    -
    • @@ -342,7 +331,7 @@

      Declaration

    @@ -373,7 +362,7 @@

    Declaration

    @@ -404,15 +393,11 @@

    Declaration

    - - -
    -
    • @@ -440,15 +425,11 @@

      Declaration

    - - -
    -
    • @@ -475,15 +456,11 @@

      Declaration

    - - -
    -
    • @@ -510,7 +487,7 @@

      Declaration

    @@ -524,7 +501,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroAnimator.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroAnimator.html index 8d581926..5a3b0cff 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroAnimator.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroAnimator.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroAnimator

    +
    public protocol HeroAnimator : AnyObject

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - canAnimate(view:appearing:) + canAnimate(view:appearing:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -317,7 +318,7 @@

    Declaration

    - animate(fromViews:toViews:) + animate(fromViews:toViews:)
    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -377,7 +378,7 @@

    Declaration

    - seekTo(timePassed:) + seekTo(timePassed:)
    @@ -397,7 +398,7 @@

    Declaration

    @@ -407,7 +408,7 @@

    Declaration

    - resume(timePassed:reverse:) + resume(timePassed:reverse:)
    @@ -427,7 +428,7 @@

    Declaration

    @@ -437,7 +438,7 @@

    Declaration

    - apply(state:to:) + apply(state:to:)
    @@ -457,7 +458,7 @@

    Declaration

    @@ -467,7 +468,7 @@

    Declaration

    - changeTarget(state:isDestination:to:) + changeTarget(state:isDestination:to:)
    @@ -487,7 +488,7 @@

    Declaration

    @@ -501,7 +502,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCompatible.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCompatible.html index 089cf89c..b8dc30ef 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCompatible.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCompatible.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroCompatible

    +
    public protocol HeroCompatible

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -315,7 +316,7 @@

    Declaration

    @@ -329,7 +330,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCustomSnapshotView.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCustomSnapshotView.html index a8efc0b5..8baf588c 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCustomSnapshotView.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroCustomSnapshotView.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroCustomSnapshotView

    +
    public protocol HeroCustomSnapshotView

    Allows a view to create their own custom snapshot when using Optimized snapshot

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroPreprocessor.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroPreprocessor.html index 44046d54..4935326c 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroPreprocessor.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroPreprocessor.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroPreprocessor

    +
    public protocol HeroPreprocessor : AnyObject

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - process(fromViews:toViews:) + process(fromViews:toViews:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroProgressUpdateObserver.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroProgressUpdateObserver.html index 6c8348ff..55b84b78 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroProgressUpdateObserver.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroProgressUpdateObserver.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroProgressUpdateObserver

    +
    public protocol HeroProgressUpdateObserver : AnyObject

    Undocumented

    +
    @@ -257,7 +258,7 @@

    HeroProgressUpdateObserver

    - heroDidUpdateProgress(progress:) + heroDidUpdateProgress(progress:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroStringConvertible.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroStringConvertible.html index 83711b66..4d7d1969 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroStringConvertible.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroStringConvertible.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroStringConvertible

    +
    public protocol HeroStringConvertible

    Undocumented

    +
    @@ -257,7 +258,7 @@

    HeroStringConvertible

    - from(node:) + from(node:)
    @@ -272,12 +273,12 @@

    HeroStringConvertible

    Declaration

    Swift

    -
    static func from(node: ExprNode) -> `Self`?
    +
    static func from(node: ExprNode) -> Self?
    @@ -291,7 +292,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroTransitionDelegate.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroTransitionDelegate.html index b804aec7..feda1984 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroTransitionDelegate.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroTransitionDelegate.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroTransitionDelegate

    +
    public protocol HeroTransitionDelegate : AnyObject

    Undocumented

    +
    @@ -257,7 +258,7 @@

    HeroTransitionDelegate

    - heroTransition(_:didUpdate:) + heroTransition(_:didUpdate:)
    @@ -277,7 +278,7 @@

    Declaration

    @@ -287,7 +288,7 @@

    Declaration

    - heroTransition(_:didUpdate:) + heroTransition(_:didUpdate:)
    @@ -307,7 +308,7 @@

    Declaration

    @@ -321,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroViewControllerDelegate.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroViewControllerDelegate.html index 2edd612c..46a5ee64 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroViewControllerDelegate.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Protocols/HeroViewControllerDelegate.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,10 +232,11 @@
    -
    +

    HeroViewControllerDelegate

    +
    @objc
     public protocol HeroViewControllerDelegate
    @@ -246,6 +244,9 @@

    HeroViewControllerDelegate

    Undocumented

    +
    @@ -258,7 +259,7 @@

    HeroViewControllerDelegate

    - heroWillStartAnimatingFrom(viewController:) + heroWillStartAnimatingFrom(viewController:)
    @@ -279,7 +280,7 @@

    Declaration

    @@ -289,7 +290,7 @@

    Declaration

    - heroDidEndAnimatingFrom(viewController:) + heroDidEndAnimatingFrom(viewController:)
    @@ -310,7 +311,7 @@

    Declaration

    @@ -320,7 +321,7 @@

    Declaration

    - heroDidCancelAnimatingFrom(viewController:) + heroDidCancelAnimatingFrom(viewController:)
    @@ -341,7 +342,7 @@

    Declaration

    @@ -372,7 +373,7 @@

    Declaration

    @@ -403,7 +404,7 @@

    Declaration

    @@ -434,7 +435,7 @@

    Declaration

    @@ -444,7 +445,7 @@

    Declaration

    - heroWillStartAnimatingTo(viewController:) + heroWillStartAnimatingTo(viewController:)
    @@ -465,7 +466,7 @@

    Declaration

    @@ -475,7 +476,7 @@

    Declaration

    - heroDidEndAnimatingTo(viewController:) + heroDidEndAnimatingTo(viewController:)
    @@ -496,7 +497,7 @@

    Declaration

    @@ -506,7 +507,7 @@

    Declaration

    - heroDidCancelAnimatingTo(viewController:) + heroDidCancelAnimatingTo(viewController:)
    @@ -527,7 +528,7 @@

    Declaration

    @@ -541,7 +542,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs.html index 015ec15b..db180823 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,7 +232,7 @@
    -
    +

    Structures

    The following structures are available globally.

    @@ -268,19 +265,16 @@

    Declaration

    Swift

    public struct HeroTargetState
    +
    extension HeroTargetState: ExpressibleByArrayLiteral
    - - -
    -
    • @@ -307,7 +301,7 @@

      Declaration

    @@ -321,7 +315,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroConditionalContext.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroConditionalContext.html index 9dd60566..bcb736a8 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroConditionalContext.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroConditionalContext.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,20 @@
    -
    +

    HeroConditionalContext

    +
    public struct HeroConditionalContext

    Undocumented

    +
    @@ -277,7 +278,7 @@

    Declaration

    @@ -302,12 +303,12 @@

    Declaration

    Declaration

    Swift

    -
    public private(set) var isAppearing: Bool
    +
    public private(set) var isAppearing: Bool { get }
    @@ -337,7 +338,7 @@

    Declaration

    @@ -367,7 +368,7 @@

    Declaration

    @@ -397,7 +398,7 @@

    Declaration

    @@ -427,7 +428,7 @@

    Declaration

    @@ -457,7 +458,7 @@

    Declaration

    @@ -487,7 +488,7 @@

    Declaration

    @@ -517,7 +518,7 @@

    Declaration

    @@ -547,7 +548,7 @@

    Declaration

    @@ -577,7 +578,7 @@

    Declaration

    @@ -607,7 +608,7 @@

    Declaration

    @@ -637,7 +638,7 @@

    Declaration

    @@ -651,7 +652,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroTargetState.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroTargetState.html index 08b206d1..72f1c9f9 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroTargetState.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/Structs/HeroTargetState.html @@ -21,7 +21,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -40,7 +40,7 @@

    - + Install in Dash @@ -159,9 +159,6 @@

    - @@ -235,16 +232,21 @@
    -
    +

    HeroTargetState

    +
    public struct HeroTargetState
    +
    extension HeroTargetState: ExpressibleByArrayLiteral

    Undocumented

    +
    @@ -277,7 +279,7 @@

    Declaration

    @@ -307,7 +309,7 @@

    Declaration

    @@ -337,7 +339,7 @@

    Declaration

    @@ -367,7 +369,7 @@

    Declaration

    @@ -397,7 +399,7 @@

    Declaration

    @@ -427,7 +429,7 @@

    Declaration

    @@ -457,7 +459,7 @@

    Declaration

    @@ -487,7 +489,7 @@

    Declaration

    @@ -517,7 +519,7 @@

    Declaration

    @@ -547,7 +549,7 @@

    Declaration

    @@ -577,7 +579,7 @@

    Declaration

    @@ -607,7 +609,7 @@

    Declaration

    @@ -637,7 +639,7 @@

    Declaration

    @@ -667,7 +669,7 @@

    Declaration

    @@ -697,7 +699,7 @@

    Declaration

    @@ -727,7 +729,7 @@

    Declaration

    @@ -757,7 +759,7 @@

    Declaration

    @@ -787,7 +789,7 @@

    Declaration

    @@ -817,7 +819,7 @@

    Declaration

    @@ -847,7 +849,7 @@

    Declaration

    @@ -877,7 +879,7 @@

    Declaration

    @@ -907,7 +909,7 @@

    Declaration

    @@ -937,7 +939,7 @@

    Declaration

    @@ -967,7 +969,7 @@

    Declaration

    @@ -997,7 +999,7 @@

    Declaration

    @@ -1027,7 +1029,7 @@

    Declaration

    @@ -1057,7 +1059,7 @@

    Declaration

    @@ -1087,7 +1089,7 @@

    Declaration

    @@ -1117,7 +1119,7 @@

    Declaration

    @@ -1147,7 +1149,7 @@

    Declaration

    @@ -1177,7 +1179,7 @@

    Declaration

    @@ -1207,7 +1209,7 @@

    Declaration

    @@ -1237,7 +1239,7 @@

    Declaration

    @@ -1267,7 +1269,7 @@

    Declaration

    @@ -1297,7 +1299,7 @@

    Declaration

    @@ -1307,7 +1309,7 @@

    Declaration

    - append(_:) + append(_:)
    @@ -1327,7 +1329,7 @@

    Declaration

    @@ -1337,7 +1339,7 @@

    Declaration

    - append(contentsOf:) + append(contentsOf:)
    @@ -1357,7 +1359,7 @@

    Declaration

    @@ -1367,7 +1369,7 @@

    Declaration

    - subscript(_:) + subscript(_:)
    @@ -1390,21 +1392,17 @@

    Return Value

    custom item for a specific key

    - - -
    -
    @@ -1437,7 +1435,7 @@

    Declaration

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/Hero.docset/Contents/Resources/Documents/css/jazzy.css index 833be0d2..ff59f5f8 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/css/jazzy.css +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/css/jazzy.css @@ -94,10 +94,10 @@ pre { code { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } -p > code, li > code { +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { background: #f7f7f7; padding: .2em; } - p > code:before, p > code:after, li > code:before, li > code:after { + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { letter-spacing: -.2em; content: "\00a0"; } @@ -111,7 +111,6 @@ pre code { @media (min-width: 768px) { .content-wrapper { flex-direction: row; } } - .header { display: flex; padding: 8px; @@ -157,7 +156,6 @@ pre code { word-wrap: normal; background: #fbfbfb; border-right: 1px solid #ddd; } } - .nav-groups { list-style-type: none; padding-left: 0; } @@ -188,7 +186,6 @@ pre code { order: 2; flex: 1; padding-bottom: 60px; } } - .section { padding: 0 32px; border-bottom: 1px solid #ddd; } @@ -201,6 +198,8 @@ pre code { .section-name { color: #666; display: block; } + .section-name p { + margin-bottom: inherit; } .declaration .highlight { overflow-x: initial; @@ -219,6 +218,22 @@ pre code { content: ""; display: block; } +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + .item-container { padding: 0; } @@ -230,8 +245,10 @@ pre code { content: ""; display: block; } .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; padding-left: 3px; - margin-left: 0px; + margin-left: 20px; font-size: 1rem; } .item .declaration-note { font-size: .85em; diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/index.html b/docs/docsets/Hero.docset/Contents/Resources/Documents/index.html index d68f78f7..e1d12e05 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/index.html @@ -20,7 +20,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -39,7 +39,7 @@

    - + Install in Dash @@ -158,9 +158,6 @@

    - @@ -234,13 +231,15 @@
    -
    +

    Hero is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit’s cumbersome transition APIs—making custom transitions an easy task for developers.

    Carthage compatible +Accio supported +codecov Version License Xcode 9.0+ @@ -263,18 +262,18 @@

    By default, Hero provides dynamic duration based on the Material Design Motion Guide. Duration is automatically determined by changes to distance and size—saving you the hassle, while providing consistent and delightful animations.

    -

    Hero doesn’t make any assumptions about how the view is built or structured. It won’t modify any of your views’ states other than hiding them during the animation. This makes it work with Auto Layout, programmatic layout, UICollectionView (without modifying its layout object), UITableView, UINavigationController, UITabBarController, etc…

    +

    Hero doesn’t make any assumptions about how the view is built or structured. It won’t modify any of your views’ states other than hiding them during the animation. This makes it work with Auto Layout, programmatic layout, UICollectionView (without modifying its layout object), UITableView, UINavigationController, UITabBarController, etc…

    Checkout the Example Gallery Blog Post for a general idea of what you can achieve with Hero

    Usage Example 1

    -
    View Controller 1
    +

    View Controller 1

    redView.hero.id = "ironMan"
     blackView.hero.id = "batMan"
     
    -
    View Controller 2
    +

    View Controller 2

    self.hero.isEnabled = true
     redView.hero.id = "ironMan"
     blackView.hero.id = "batMan"
    @@ -283,10 +282,10 @@ 
    View Controller 2

    Usage Example 2

    -
    View Controller 1
    +

    View Controller 1

    greyView.hero.id = "skyWalker"
     
    -
    View Controller 2
    +

    View Controller 2

    self.hero.isEnabled = true
     greyView.hero.id = "skyWalker"
     
    @@ -320,6 +319,22 @@ 

    Carthage

    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.

    +

    Accio

    + +

    Add the following to your Package.swift:

    +
    .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.4.0")),
    +
    + +

    Next, add Hero to your App targets dependencies like so:

    +
    .target(
    +    name: "App",
    +    dependencies: [
    +        "Hero",
    +    ]
    +),
    +
    + +

    Then run accio update.

    Swift Package Manager

    To integrate using Apple’s Swift package manager, add the following as a dependency to your Package.swift:

    @@ -339,7 +354,7 @@

    Swift Package Manager

    targets: ["MyPackage"]), ], dependencies: [ - .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.3.0")) + .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.6.0")) ], targets: [ .target( @@ -355,24 +370,24 @@

    Manually

    Documentations

    -

    Checkout the WIKI PAGES (Usage Guide) for documentations.

    +

    Checkout the WIKI PAGES (Usage Guide) for documentations.

    For more up-to-date ones, please see the header-doc. (use alt+click in Xcode)

    Interactive Transition Tutorials

    -

    Interactive transitions with Hero (Part 1)

    +

    Interactive transitions with Hero (Part 1)

    FAQ

    -

    Not able to use Hero transition even when self.hero.isEnabled is set to true

    +

    Not able to use Hero transition even when self.hero.isEnabled is set to true

    Make sure that you have also enabled self.hero.isEnabled on the navigation controller if you are doing a push/pop inside the navigation controller.

    -

    Views being covered by another matched view during the transition

    +

    Views being covered by another matched view during the transition

    Matched views use global coordinate space while unmatched views use local coordinate space by default. Local coordinate spaced views might be covered by other global coordinate spaced views. To solve this, use the useGlobalCoordinateSpace modifier on the views being covered. Checkout Coordinate Space Wiki page for details.

    -

    Push animation is shown along side my custom animation

    +

    Push animation is shown along side my custom animation

    This is the default animation for navigation controller provided by Hero. To disable the push animation, set self.hero.navigationAnimationType to .fade or .none on the navigation controller.

    -

    How do I use a different default animation when dismissing

    +

    How do I use a different default animation when dismissing

    You can use the animation type .selectBy(presenting:dismissing) to specify a different default animation for dismiss.

    @@ -391,7 +406,7 @@

    Contribute

    diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jazzy.js b/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jazzy.js index c31dc05e..1e55d6ef 100755 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jazzy.js +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jazzy.js @@ -23,7 +23,7 @@ function openCurrentItemIfClosed() { if (window.jazzy.docset) { return; } - var $link = $(`.token[href="${location.hash}"]`); + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); $content = itemLinkToContent($link); if ($content.is(':hidden')) { toggleItem($link, $content); @@ -57,3 +57,14 @@ $("a:not('.token')").on('click', function() { openCurrentItemIfClosed(); } }); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jquery.min.js index a1c07fd8..b0614034 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jquery.min.js +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/js/jquery.min.js @@ -1,2 +1,2 @@ -/*! 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+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0=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.pos0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/docsets/Hero.docset/Contents/Resources/Documents/js/typeahead.jquery.js index f80bb192..3a2d2ab0 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/js/typeahead.jquery.js +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -1,15 +1,16 @@ /*! - * typeahead.js 1.2.0 - * https://github.com/twitter/typeahead.js - * Copyright 2013-2017 Twitter, Inc. and other contributors; Licensed MIT + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT */ + (function(root, factory) { if (typeof define === "function" && define.amd) { define([ "jquery" ], function(a0) { return factory(a0); }); - } else if (typeof exports === "object") { + } else if (typeof module === "object" && module.exports) { module.exports = factory(require("jquery")); } else { factory(root["jQuery"]); @@ -482,6 +483,7 @@ 40: "down" }; function Input(o, www) { + var id; o = o || {}; if (!o.input) { $.error("input is missing"); @@ -489,14 +491,18 @@ www.mixin(this); this.$hint = $(o.hint); this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); this.$input.attr({ - "aria-activedescendant": "", - "aria-owns": this.$input.attr("id") + "_listbox", + "aria-owns": id + "_listbox", role: "combobox", - "aria-readonly": "true", - "aria-autocomplete": "list" + "aria-autocomplete": "list", + "aria-expanded": false }); - $(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); @@ -669,6 +675,9 @@ this.$input.off(".tt"); this.$overflowHelper.remove(); this.$hint = this.$input = this.$overflowHelper = $("
    "); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); } }); return Input; @@ -896,8 +905,12 @@ pending: templates.pending && _.templatify(templates.pending), header: templates.header && _.templatify(templates.header), footer: templates.footer && _.templatify(templates.footer), - suggestion: templates.suggestion || suggestionTemplate + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } function suggestionTemplate(context) { return $('
    ').attr("id", _.guid()).text(displayFn(context)); } @@ -1256,8 +1269,10 @@ var $selectable; if ($selectable = this.menu.getActiveSelectable()) { this.select($selectable) && $e.preventDefault(); - } else if ($selectable = this.menu.getTopSelectable()) { - this.autocomplete($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } } }, _onEscKeyed: function onEscKeyed() { @@ -1353,6 +1368,7 @@ }, open: function open() { if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); this.menu.open(); this._updateHint(); this.eventBus.trigger("open"); @@ -1361,6 +1377,7 @@ }, close: function close() { if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); this.menu.close(); this.input.clearHint(); this.input.resetInputValue(); @@ -1409,7 +1426,9 @@ if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { this.menu.setCursor($candidate); if (data) { - this.input.setInputValue(data.val); + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } } else { this.input.resetInputValue(); this._updateHint(); @@ -1477,7 +1496,8 @@ }); input = new Input({ hint: $hint, - input: $input + input: $input, + menu: $menu }, www); menu = new MenuConstructor({ node: $menu, diff --git a/docs/docsets/Hero.docset/Contents/Resources/Documents/search.json b/docs/docsets/Hero.docset/Contents/Resources/Documents/search.json index 0ae2f538..db19e439 100644 --- a/docs/docsets/Hero.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Hero.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV4viewSo6UIViewCSgvp":{"name":"view","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11isAppearingSbvp":{"name":"isAppearing","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInTabbarControllerSbvp":{"name":"isInTabbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInNavbarControllerSbvp":{"name":"isInNavbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV9isMatchedSbvp":{"name":"isMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21isAncestorViewMatchedSbvp":{"name":"isAncestorViewMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11matchedViewSo6UIViewCSgvp":{"name":"matchedView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19matchedAncestorViewSo6UIViewC_AFtSgvp":{"name":"matchedAncestorView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV18fromViewControllerSo06UIViewF0Cvp":{"name":"fromViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV16toViewControllerSo06UIViewF0Cvp":{"name":"toViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21currentViewControllerSo06UIViewF0Cvp":{"name":"currentViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19otherViewControllerSo06UIViewF0Cvp":{"name":"otherViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV05beginC0SayAA0A8ModifierCGSgvp":{"name":"beginState","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV20conditionalModifiersSaySbAA0A18ConditionalContextVc_SayAA0A8ModifierCGtGSgvp":{"name":"conditionalModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8positionSo7CGPointVSgvp":{"name":"position","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV4sizeSo6CGSizeVSgvp":{"name":"size","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9transformSo13CATransform3DVSgvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7opacitySfSgvp":{"name":"opacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15backgroundColorSo10CGColorRefaSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9zPosition12CoreGraphics7CGFloatVSgvp":{"name":"zPosition","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12contentsRectSo6CGRectVSgvp":{"name":"contentsRect","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13contentsScale12CoreGraphics7CGFloatVSgvp":{"name":"contentsScale","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderWidth12CoreGraphics7CGFloatVSgvp":{"name":"borderWidth","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderColorSo10CGColorRefaSgvp":{"name":"borderColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11shadowColorSo10CGColorRefaSgvp":{"name":"shadowColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13shadowOpacitySfSgvp":{"name":"shadowOpacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowOffsetSo6CGSizeVSgvp":{"name":"shadowOffset","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowRadius12CoreGraphics7CGFloatVSgvp":{"name":"shadowRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV10shadowPathSo9CGPathRefaSgvp":{"name":"shadowPath","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13masksToBoundsSbSgvp":{"name":"masksToBounds","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13displayShadowSbvp":{"name":"displayShadow","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7overlaySo10CGColorRefa5color_12CoreGraphics7CGFloatV7opacitytSgvp":{"name":"overlay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6spring12CoreGraphics7CGFloatV_AGtSgvp":{"name":"spring","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV5delaySdvp":{"name":"delay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8durationSdSgvp":{"name":"duration","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV14timingFunctionSo013CAMediaTimingE0CSgvp":{"name":"timingFunction","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV3arc12CoreGraphics7CGFloatVSgvp":{"name":"arc","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6sourceSSSgvp":{"name":"source","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7cascadeSd_AA16CascadeDirectionOSbtSgvp":{"name":"cascade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV22ignoreSubviewModifiersSbSgvp":{"name":"ignoreSubviewModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15coordinateSpaceAA0a10CoordinateE0OSgvp":{"name":"coordinateSpace","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV23useScaleBasedSizeChangeSbSgvp":{"name":"useScaleBasedSizeChange","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12snapshotTypeAA0a8SnapshotE0OSgvp":{"name":"snapshotType","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7nonFadeSbvp":{"name":"nonFade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12forceAnimateSbvp":{"name":"forceAnimate","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6customSDySSypGSgvp":{"name":"custom","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6appendyyAA0A8ModifierCF":{"name":"append(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6append10contentsOfySayAA0A8ModifierCG_tF":{"name":"append(contentsOf:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateVyypSgSScip":{"name":"subscript(_:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html":{"name":"HeroTargetState","abstract":"

    Undocumented

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

    Undocumented

    "},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_AA0aB5StateOtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_SdtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroStringConvertible.html#/s:4Hero0A17StringConvertibleP4from4nodexSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroStringConvertible"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingFromViewController:":{"name":"heroWillStartAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingFromViewController:":{"name":"heroDidEndAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingFromViewController:":{"name":"heroDidCancelAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartTransition":{"name":"heroWillStartTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndTransition":{"name":"heroDidEndTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelTransition":{"name":"heroDidCancelTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingToViewController:":{"name":"heroWillStartAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingToViewController:":{"name":"heroDidEndAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingToViewController:":{"name":"heroDidCancelAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroProgressUpdateObserver.html#/s:4Hero0A22ProgressUpdateObserverP07heroDidcB08progressySd_tF":{"name":"heroDidUpdateProgress(progress:)","abstract":"

    Undocumented

    ","parent_name":"HeroProgressUpdateObserver"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroCustomSnapshotView.html#/s:4Hero0A18CustomSnapshotViewP04heroC0So6UIViewCSgvp":{"name":"heroSnapshot","abstract":"

    Undocumented

    ","parent_name":"HeroCustomSnapshotView"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP0B4TypeQa":{"name":"CompatibleType","abstract":"

    Undocumented

    ","parent_name":"HeroCompatible"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP4heroAA0A9ExtensionCy0B4TypeQzGvp":{"name":"hero","abstract":"

    Undocumented

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

    Undocumented

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

    Allows a view to create their own custom snapshot when using Optimized snapshot

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Functions.html#/s:4Hero2eeoiySbAA8ExprNodeC_ADtF":{"name":"==(_:_:)","abstract":"

    Undocumented

    "},"Extensions/HeroDebugView.html#/gestureRecognizerShouldBegin(_:)":{"name":"gestureRecognizerShouldBegin(_:)","parent_name":"HeroDebugView"},"Extensions/UINavigationController.html#/Operation":{"name":"Operation","parent_name":"UINavigationController"},"Extensions/String.html#/s:SS4HeroE5match5regexSS_SnySiGtSgSS_tF":{"name":"match(regex:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/UITabBarController.html#/s:So18UITabBarControllerC4HeroE07heroTabB13AnimationTypeAC0d7DefaultgH0Ovp":{"name":"heroTabBarAnimationType","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UITabBarController.html#/c:@CM@Hero@@objc(cs)UITabBarController(py)heroTabBarAnimationTypeString":{"name":"heroTabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UINavigationController.html#/s:So22UINavigationControllerC4HeroE27heroNavigationAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroNavigationAnimationType","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UINavigationController.html#/c:@CM@Hero@@objc(cs)UINavigationController(py)heroNavigationAnimationTypeString":{"name":"heroNavigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE22heroModalAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroModalAnimationType","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)heroModalAnimationTypeString":{"name":"heroModalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)ht_dismiss:":{"name":"ht_dismiss(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE015heroReplaceViewB04withyAB_tF":{"name":"heroReplaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_dismissViewController":{"name":"hero_dismissViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_unwindToRootViewController":{"name":"hero_unwindToRootViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB0yyABF":{"name":"hero_unwindToViewController(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB012withSelectory10ObjectiveC0I0V_tF":{"name":"hero_unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB09withClassyyXlXp_tF":{"name":"hero_unwindToViewController(withClass:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB014withMatchBlockySbABXE_tF":{"name":"hero_unwindToViewController(withMatchBlock:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE016hero_replaceViewB04withyAB_tF":{"name":"hero_replaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroID":{"name":"heroID","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabledForSubviews":{"name":"isHeroEnabledForSubviews","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/s:So6UIViewC4HeroE13heroModifiersSayAC0B8ModifierCGSgvp":{"name":"heroModifiers","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroModifierString":{"name":"heroModifierString","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/CATransform3D.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CATransform3D"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6linearABvpZ":{"name":"linear","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6easeInABvpZ":{"name":"easeIn","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE7easeOutABvpZ":{"name":"easeOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE9easeInOutABvpZ":{"name":"easeInOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE8standardABvpZ":{"name":"standard","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12decelerationABvpZ":{"name":"deceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12accelerationABvpZ":{"name":"acceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE5sharpABvpZ":{"name":"sharp","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE11easeOutBackABvpZ":{"name":"easeOutBack","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE4from4nameABSgSS_tFZ":{"name":"from(name:)","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/HeroDebugView.html#/c:@CM@Hero@objc(cs)HeroDebugView(im)gestureRecognizerShouldBegin:":{"name":"gestureRecognizerShouldBegin(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroDebugView"},"Extensions/HeroDebugView.html":{"name":"HeroDebugView"},"Extensions/CAMediaTimingFunction.html":{"name":"CAMediaTimingFunction"},"Extensions/CATransform3D.html":{"name":"CATransform3D"},"Extensions/UIView.html":{"name":"UIView"},"Extensions/UIViewController.html":{"name":"UIViewController"},"Extensions/UINavigationController.html":{"name":"UINavigationController"},"Extensions/UITabBarController.html":{"name":"UITabBarController"},"Extensions/String.html":{"name":"String"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8possibleyA2CmF":{"name":"possible","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8notifiedyA2CmF":{"name":"notified","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8startingyA2CmF":{"name":"starting","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO9animatingyA2CmF":{"name":"animating","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO10completingyA2CmF":{"name":"completing","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceLeftToRightyA2EmF":{"name":"forceLeftToRight","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceRightToLeftyA2EmF":{"name":"forceRightToLeft","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO13userInterfaceyA2EmF":{"name":"userInterface","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO2upyA2EmF":{"name":"up","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4downyA2EmF":{"name":"down","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4from4nodeAESgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO7leadingAEvpZ":{"name":"leading","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO8trailingAEvpZ":{"name":"trailing","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pushyA2C9DirectionO_tcACmF":{"name":"push(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pullyA2C9DirectionO_tcACmF":{"name":"pull(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5coveryA2C9DirectionO_tcACmF":{"name":"cover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7uncoveryA2C9DirectionO_tcACmF":{"name":"uncover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5slideyA2C9DirectionO_tcACmF":{"name":"slide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO9zoomSlideyA2C9DirectionO_tcACmF":{"name":"zoomSlide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO6pageInyA2C9DirectionO_tcACmF":{"name":"pageIn(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7pageOutyA2C9DirectionO_tcACmF":{"name":"pageOut(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4fadeyA2CmF":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4zoomyA2CmF":{"name":"zoom","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7zoomOutyA2CmF":{"name":"zoomOut","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO8selectByyA2C_ACtcACmF":{"name":"selectBy(presenting:dismissing:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO11autoReverse10presentingA2C_tFZ":{"name":"autoReverse(presenting:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5labelSSSgvp":{"name":"label","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11topToBottomyA2CmF":{"name":"topToBottom","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11bottomToTopyA2CmF":{"name":"bottomToTop","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11leftToRightyA2CmF":{"name":"leftToRight","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11rightToLeftyA2CmF":{"name":"rightToLeft","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO6radialyACSo7CGPointV_tcACmF":{"name":"radial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO13inverseRadialyACSo7CGPointV_tcACmF":{"name":"inverseRadial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17leadingToTrailingACvpZ":{"name":"leadingToTrailing","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17trailingToLeadingACvpZ":{"name":"trailingToLeading","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/ParseError.html#/s:4Hero10ParseErrorO13unexpectTokenyA2CmF":{"name":"unexpectToken","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO17undefinedOperatoryACSScACmF":{"name":"undefinedOperator(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO15expectCharacteryACSJcACmF":{"name":"expectCharacter(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO16expectExpressionyA2CmF":{"name":"expectExpression","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectArgumentListyA2CmF":{"name":"expectArgumentList","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectFunctionNameyA2CmF":{"name":"expectFunctionName","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/Token.html#/s:4Hero5TokenO10identifieryACSS_SnySiGtcACmF":{"name":"identifier(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO6numberyACSf_SnySiGtcACmF":{"name":"number(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO10parensOpenyACSnySiGcACmF":{"name":"parensOpen(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO11parensCloseyACSnySiGcACmF":{"name":"parensClose(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5commayACSnySiGcACmF":{"name":"comma(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5otheryACSS_SnySiGtcACmF":{"name":"other(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO06sourceB5OnTopyA2CmF":{"name":"sourceViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO011destinationB5OnTopyA2CmF":{"name":"destinationViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO6globalyA2CmF":{"name":"global","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO5localyA2CmF":{"name":"local","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO9optimizedyA2CmF":{"name":"optimized","abstract":"

    Will optimize for different type of views","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO6normalyA2CmF":{"name":"normal","abstract":"

    snapshotView(afterScreenUpdates:)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO11layerRenderyA2CmF":{"name":"layerRender","abstract":"

    layer.render(in: currentContext)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO02noB0yA2CmF":{"name":"noSnapshot","abstract":"

    will not create snapshot. animate the view directly.","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html":{"name":"HeroSnapshotType","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/HeroDebugPlugin.html#/showOnTop":{"name":"showOnTop","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/animate(fromViews:toViews:)":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/resume(timePassed:reverse:)":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/clean()":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onDone()":{"name":"onDone()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onProcessSliderChanged(progress:)":{"name":"onProcessSliderChanged(progress:)","parent_name":"HeroDebugPlugin"},"Classes/Hero.html#/s:4HeroAAC6sharedAA0A10TransitionCvpZ":{"name":"shared","abstract":"

    Shared singleton object for controlling the transition

    ","parent_name":"Hero"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16defaultAnimationAA0a7DefaultD4TypeOvp":{"name":"defaultAnimation","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC14containerColorSo7UIColorCvp":{"name":"containerColor","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC20viewOrderingStrategyAA0a4ViewdE0Ovp":{"name":"viewOrderingStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC33defaultAnimationDirectionStrategyAA0a7DefaultD4TypeO0F0Ovp":{"name":"defaultAnimationDirectionStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5stateAA0aB5StateOvp":{"name":"state","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC15isTransitioningSbvp":{"name":"isTransitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13transitioningSbvp":{"name":"transitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10presentingSbvp":{"name":"presenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC9containerSo6UIViewCSgvp":{"name":"container","abstract":"

    container we created to hold all animating views, will be a subview of the","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16toViewControllerSo06UIViewE0CSgvp":{"name":"toViewController","abstract":"

    destination view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC18fromViewControllerSo06UIViewE0CSgvp":{"name":"fromViewController","abstract":"

    source view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    context object holding transition informations

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC11interactiveSbvp":{"name":"interactive","abstract":"

    whether or not we are handling transition interactively

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13totalDurationSdvp":{"name":"totalDuration","abstract":"

    max duration needed by the animators

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8progressSdvp":{"name":"progress","abstract":"

    progress of the current transition. 0 if no transition is happening

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@M@Hero@objc(cs)HeroTransition(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24observeForProgressUpdate8observeryAA0aeF8Observer_p_tF":{"name":"observeForProgressUpdate(observer:)","abstract":"

    Receive callbacks on each animation frame.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7animateyyF":{"name":"animate()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8complete8finishedySb_tF":{"name":"complete(finished:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10transition4from2to2in10completionySo16UIViewControllerC_AJSo0H0CySbcSgtF":{"name":"transition(from:to:in:completion:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6updateyy12CoreGraphics7CGFloatVF":{"name":"update(_:)","abstract":"

    Update the progress for the interactive transition.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6finish7animateySb_tF":{"name":"finish(animate:)","abstract":"

    Finish the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6cancel7animateySb_tF":{"name":"cancel(animate:)","abstract":"

    Cancel the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5apply9modifiers2toySayAA0A8ModifierCG_So6UIViewCtF":{"name":"apply(modifiers:to:)","abstract":"

    Override modifiers during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12changeTarget9modifiers13isDestination2toySayAA0A8ModifierCG_SbSo6UIViewCtF":{"name":"changeTarget(modifiers:isDestination:to:)","abstract":"

    Override target state during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5startyyF":{"name":"start()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:willShowViewController:animated:":{"name":"navigationController(_:willShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:didShowViewController:animated:":{"name":"navigationController(_:didShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:animationControllerForOperation:fromViewController:toViewController:":{"name":"navigationController(_:animationControllerFor:from:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:interactionControllerForAnimationController:":{"name":"navigationController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:shouldSelectViewController:":{"name":"tabBarController(_:shouldSelect:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:interactionControllerForAnimationController:":{"name":"tabBarController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:animationControllerForTransitionFromViewController:toViewController:":{"name":"tabBarController(_:animationControllerForTransitionFrom:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForPresentedController:presentingController:sourceController:":{"name":"animationController(forPresented:presenting:source:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForDismissedController:":{"name":"animationController(forDismissed:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForDismissal:":{"name":"interactionControllerForDismissal(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForPresentation:":{"name":"interactionControllerForPresentation(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationEnded:":{"name":"animationEnded(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(py)wantsInteractiveStart":{"name":"wantsInteractiveStart","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)startInteractiveTransition:":{"name":"startInteractiveTransition(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/Parser.html#/s:4Hero6ParserC6tokensACSayAA5TokenOG_tcfc":{"name":"init(tokens:)","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/Parser.html#/s:4Hero6ParserC5parseSayAA8ExprNodeCGyKF":{"name":"parse()","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototypeAA09PrototypeC0Cvp":{"name":"prototype","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC4bodyAA04ExprC0Cvp":{"name":"body","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototype4bodyAcA09PrototypeC0C_AA04ExprC0Ctcfc":{"name":"init(prototype:body:)","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC13argumentNamesSaySSGvp":{"name":"argumentNames","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC4name13argumentNamesACSS_SaySSGtcfc":{"name":"init(name:argumentNames:)","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC9argumentsSayAA04ExprC0CGvp":{"name":"arguments","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC4name9argumentsACSS_SayAA04ExprC0CGtcfc":{"name":"init(name:arguments:)","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3lhsAA04ExprD0Cvp":{"name":"lhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3rhsAA04ExprD0Cvp":{"name":"rhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC4name3lhs3rhsACSS_AA04ExprD0CAHtcfc":{"name":"init(name:lhs:rhs:)","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/VariableNode.html#/s:4Hero12VariableNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"VariableNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueSfvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueACSf_tcfc":{"name":"init(value:)","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC5rangeSnySiGvp":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/Lexer.html#/s:4Hero5LexerC5inputACSS_tcfc":{"name":"init(input:)","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/Lexer.html#/s:4Hero5LexerC8tokenizeSayAA5TokenOGyF":{"name":"tokenize()","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC23requirePerFrameCallbackSbvp":{"name":"requirePerFrameCallback","abstract":"

    Determines whether or not to receive seekTo callback on every frame.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/c:@M@Hero@objc(cs)HeroPlugin(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Called before any animation.","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Perform the animation.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5cleanyyF":{"name":"clean()","abstract":"

    Called when all animations are completed.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC9isEnabledSbvpZ":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6enableyyFZ":{"name":"enable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7disableyyFZ":{"name":"disable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13applyFunctionACyAA0A11TargetStateVzc_tcfc":{"name":"init(applyFunction:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyACSayACGFZ":{"name":"beginWith(_:)","abstract":"

    Apply modifiers directly to the view at the start of the transition.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWith9modifiersACSayACG_tFZ":{"name":"beginWith(modifiers:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyA2Cd_tFZ":{"name":"beginWith(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC24useGlobalCoordinateSpaceACvpZ":{"name":"useGlobalCoordinateSpace","abstract":"

    Use global coordinate space.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiersACvpZ":{"name":"ignoreSubviewModifiers","abstract":"

    ignore all heroModifiers attributes for a view’s direct subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiers9recursiveACSb_tFZ":{"name":"ignoreSubviewModifiers(recursive:)","abstract":"

    ignore all heroModifiers attributes for a view’s subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20useOptimizedSnapshotACvpZ":{"name":"useOptimizedSnapshot","abstract":"

    Will create snapshot optimized for different view type.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC17useNormalSnapshotACvpZ":{"name":"useNormalSnapshot","abstract":"

    Create snapshot using snapshotView(afterScreenUpdates:).

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22useLayerRenderSnapshotACvpZ":{"name":"useLayerRenderSnapshot","abstract":"

    Create snapshot using layer.render(in: currentContext).","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13useNoSnapshotACvpZ":{"name":"useNoSnapshot","abstract":"

    Force Hero to not create any snapshot when animating this view.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceAnimateACvpZ":{"name":"forceAnimate","abstract":"

    Force the view to animate.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC23useScaleBasedSizeChangeACvpZ":{"name":"useScaleBasedSizeChange","abstract":"

    Force Hero use scale based size animation. This will convert all .size modifier into .scale modifier.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4fadeACvpZ":{"name":"fade","abstract":"

    Fade the view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceNonFadeACvpZ":{"name":"forceNonFade","abstract":"

    Force don’t fade view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8positionyACSo7CGPointVFZ":{"name":"position(_:)","abstract":"

    Set the position for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4sizeyACSo6CGSizeVFZ":{"name":"size(_:)","abstract":"

    Set the size for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9transformyACSo13CATransform3DVFZ":{"name":"transform(_:)","abstract":"

    Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11perspectiveyAC12CoreGraphics7CGFloatVFZ":{"name":"perspective(_:)","abstract":"

    Set the perspective on the transform. use in combination with the rotate modifier.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scale1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"scale(x:y:z:)","abstract":"

    Scale 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scaleyAC12CoreGraphics7CGFloatVFZ":{"name":"scale(_:)","abstract":"

    Scale in x & y axis

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"translate(x:y:z:)","abstract":"

    Translate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"translate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"rotate(x:y:z:)","abstract":"

    Rotate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"rotate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotateyAC12CoreGraphics7CGFloatVFZ":{"name":"rotate(_:)","abstract":"

    Rotate 2d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7opacityyAC12CoreGraphics7CGFloatVFZ":{"name":"opacity(_:)","abstract":"

    Set the opacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC15backgroundColoryACSo7UIColorCFZ":{"name":"backgroundColor(_:)","abstract":"

    Set the backgroundColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12cornerRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"cornerRadius(_:)","abstract":"

    Set the cornerRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9zPositionyAC12CoreGraphics7CGFloatVFZ":{"name":"zPosition(_:)","abstract":"

    Set the zPosition for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12contentsRectyACSo6CGRectVFZ":{"name":"contentsRect(_:)","abstract":"

    Set the contentsRect for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13contentsScaleyAC12CoreGraphics7CGFloatVFZ":{"name":"contentsScale(_:)","abstract":"

    Set the contentsScale for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderWidthyAC12CoreGraphics7CGFloatVFZ":{"name":"borderWidth(_:)","abstract":"

    Set the borderWidth for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderColoryACSo7UIColorCFZ":{"name":"borderColor(_:)","abstract":"

    Set the borderColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11shadowColoryACSo7UIColorCFZ":{"name":"shadowColor(_:)","abstract":"

    Set the shadowColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13shadowOpacityyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowOpacity(_:)","abstract":"

    Set the shadowOpacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowOffsetyACSo6CGSizeVFZ":{"name":"shadowOffset(_:)","abstract":"

    Set the shadowOffset for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowRadius(_:)","abstract":"

    Set the shadowRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC10shadowPathyACSo9CGPathRefaFZ":{"name":"shadowPath(_:)","abstract":"

    Set the shadowPath for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13masksToBoundsyACSbFZ":{"name":"masksToBounds(_:)","abstract":"

    Set the masksToBounds for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7overlay5color7opacityACSo7UIColorC_12CoreGraphics7CGFloatVtFZ":{"name":"overlay(color:opacity:)","abstract":"

    Create an overlay on the animating view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8durationyACSdFZ":{"name":"duration(_:)","abstract":"

    Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20durationMatchLongestACvpZ":{"name":"durationMatchLongest","abstract":"

    Sets the duration of the animation for a given view to match the longest animation of the transition.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5delayyACSdFZ":{"name":"delay(_:)","abstract":"

    Sets the delay of the animation for a given view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14timingFunctionyACSo013CAMediaTimingD0CFZ":{"name":"timingFunction(_:)","abstract":"

    Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6spring9stiffness7dampingAC12CoreGraphics7CGFloatV_AItFZ":{"name":"spring(stiffness:damping:)","abstract":"

    (iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6source6heroIDACSS_tFZ":{"name":"source(heroID:)","abstract":"

    Transition from/to the state of the view with matching heroID","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arcACvpZ":{"name":"arc","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arc9intensityAC12CoreGraphics7CGFloatV_tFZ":{"name":"arc(intensity:)","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascadeACvpZ":{"name":"cascade","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascade5delta9direction17delayMatchedViewsACSd_AA16CascadeDirectionOSbtFZ":{"name":"cascade(delta:direction:delayMatchedViews:)","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_SayACGtFZ":{"name":"when(_:_:)","abstract":"

    Apply modifiers only if the condition return true.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_ACdtFZ":{"name":"when(_:_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11whenMatchedyA2Cd_tFZ":{"name":"whenMatched(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenPresentingyA2Cd_tFZ":{"name":"whenPresenting(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenDismissingyA2Cd_tFZ":{"name":"whenDismissing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13whenAppearingyA2Cd_tFZ":{"name":"whenAppearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC16whenDisappearingyA2Cd_tFZ":{"name":"whenDisappearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9containerSo6UIViewCvp":{"name":"container","abstract":"

    The container holding all of the animating views

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9fromViewsSaySo6UIViewCGvp":{"name":"fromViews","abstract":"

    A flattened list of all views from source ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC7toViewsSaySo6UIViewCGvp":{"name":"toViews","abstract":"

    A flattened list of all views from destination ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10sourceView3forSo6UIViewCSgSS_tF":{"name":"sourceView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC15destinationView3forSo6UIViewCSgSS_tF":{"name":"destinationView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10pairedView3forSo6UIViewCSgAG_tF":{"name":"pairedView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC12snapshotView3forSo6UIViewCAG_tF":{"name":"snapshotView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextCyAA0A11TargetStateVSgSo6UIViewCcip":{"name":"subscript(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC4hide4viewySo6UIViewC_tF":{"name":"hide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC6unhide4viewySo6UIViewC_tF":{"name":"unhide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionC4basexvp":{"name":"base","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE2idSSSgvp":{"name":"id","abstract":"

    ID is the identifier for the view. When doing a transition between two view controllers,","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    isEnabled allows to specify whether a view and its subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE20isEnabledForSubviewsSbvp":{"name":"isEnabledForSubviews","abstract":"

    isEnabledForSubviews allows to specify whether a view’s subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9modifiersSayAA0A8ModifierCGSgvp":{"name":"modifiers","abstract":"

    Use modifiers to specify animations alongside the main transition. Checkout HeroModifier.swift for available modifiers.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE14modifierStringSSSgvp":{"name":"modifierString","abstract":"

    modifierString** provides another way to set modifiers. It can be assigned through storyboard.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE18modalAnimationTypeAA0a7DefaultfG0Ovp":{"name":"modalAnimationType","abstract":"

    default hero animation type for presenting & dismissing modally

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE24modalAnimationTypeStringSSSgvp":{"name":"modalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE23navigationAnimationTypeAA0a7DefaultfG0Ovp":{"name":"navigationAnimationType","abstract":"

    default hero animation type for push and pop within the navigation controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE29navigationAnimationTypeStringSSSgvp":{"name":"navigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD13AnimationTypeAA0a7DefaultgH0Ovp":{"name":"tabBarAnimationType","abstract":"

    default hero animation type for switching tabs within the tab bar controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD19AnimationTypeStringSSSgvp":{"name":"tabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011dismissViewD010completionyyycSg_tF":{"name":"dismissViewController(completion:)","abstract":"

    Dismiss the current view controller with animation. Will perform a navigationController.popViewController","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE016unwindToRootViewD0yyF":{"name":"unwindToRootViewController()","abstract":"

    Unwind to the root view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD0yyAEF":{"name":"unwindToViewController(_:)","abstract":"

    Unwind to a specific view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD012withSelectory10ObjectiveC0I0V_tF":{"name":"unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD09withClassyyXlXp_tF":{"name":"unwindToViewController(withClass:)","abstract":"

    Unwind to a view controller with given class using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD014withMatchBlockySbAEXE_tF":{"name":"unwindToViewController(withMatchBlock:)","abstract":"

    Unwind to a view controller that the matchBlock returns true on.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011replaceViewD04with10completionyAE_yycSgtF":{"name":"replaceViewController(with:completion:)","abstract":"

    Replace the current view controller with another VC on the navigation/modal stack.

    ","parent_name":"HeroExtension"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC9showOnTopSbvpZ":{"name":"showOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC7animate9fromViews02toF0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC5cleanyyF":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6onDoneyyF":{"name":"onDone()","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC22onProcessSliderChanged8progressySf_tF":{"name":"onProcessSliderChanged(progress:)","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    The singleton class/object for controlling interactive transitions.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following functions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV4viewSo6UIViewCSgvp":{"name":"view","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11isAppearingSbvp":{"name":"isAppearing","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInTabbarControllerSbvp":{"name":"isInTabbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInNavbarControllerSbvp":{"name":"isInNavbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV9isMatchedSbvp":{"name":"isMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21isAncestorViewMatchedSbvp":{"name":"isAncestorViewMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11matchedViewSo6UIViewCSgvp":{"name":"matchedView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19matchedAncestorViewSo6UIViewC_AFtSgvp":{"name":"matchedAncestorView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV18fromViewControllerSo06UIViewF0Cvp":{"name":"fromViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV16toViewControllerSo06UIViewF0Cvp":{"name":"toViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21currentViewControllerSo06UIViewF0Cvp":{"name":"currentViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19otherViewControllerSo06UIViewF0Cvp":{"name":"otherViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV05beginC0SayAA0A8ModifierCGSgvp":{"name":"beginState","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV20conditionalModifiersSaySbAA0A18ConditionalContextVc_SayAA0A8ModifierCGtGSgvp":{"name":"conditionalModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8positionSo7CGPointVSgvp":{"name":"position","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV4sizeSo6CGSizeVSgvp":{"name":"size","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9transformSo13CATransform3DVSgvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7opacitySfSgvp":{"name":"opacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15backgroundColorSo10CGColorRefaSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9zPosition12CoreGraphics7CGFloatVSgvp":{"name":"zPosition","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12contentsRectSo6CGRectVSgvp":{"name":"contentsRect","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13contentsScale12CoreGraphics7CGFloatVSgvp":{"name":"contentsScale","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderWidth12CoreGraphics7CGFloatVSgvp":{"name":"borderWidth","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderColorSo10CGColorRefaSgvp":{"name":"borderColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11shadowColorSo10CGColorRefaSgvp":{"name":"shadowColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13shadowOpacitySfSgvp":{"name":"shadowOpacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowOffsetSo6CGSizeVSgvp":{"name":"shadowOffset","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowRadius12CoreGraphics7CGFloatVSgvp":{"name":"shadowRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV10shadowPathSo9CGPathRefaSgvp":{"name":"shadowPath","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13masksToBoundsSbSgvp":{"name":"masksToBounds","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13displayShadowSbvp":{"name":"displayShadow","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7overlaySo10CGColorRefa5color_12CoreGraphics7CGFloatV7opacitytSgvp":{"name":"overlay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6spring12CoreGraphics7CGFloatV_AGtSgvp":{"name":"spring","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV5delaySdvp":{"name":"delay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8durationSdSgvp":{"name":"duration","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV14timingFunctionSo013CAMediaTimingE0CSgvp":{"name":"timingFunction","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV3arc12CoreGraphics7CGFloatVSgvp":{"name":"arc","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6sourceSSSgvp":{"name":"source","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7cascadeSd_AA16CascadeDirectionOSbtSgvp":{"name":"cascade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV22ignoreSubviewModifiersSbSgvp":{"name":"ignoreSubviewModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15coordinateSpaceAA0a10CoordinateE0OSgvp":{"name":"coordinateSpace","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV23useScaleBasedSizeChangeSbSgvp":{"name":"useScaleBasedSizeChange","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12snapshotTypeAA0a8SnapshotE0OSgvp":{"name":"snapshotType","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7nonFadeSbvp":{"name":"nonFade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12forceAnimateSbvp":{"name":"forceAnimate","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6customSDySSypGSgvp":{"name":"custom","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6appendyyAA0A8ModifierCF":{"name":"append(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6append10contentsOfySayAA0A8ModifierCG_tF":{"name":"append(contentsOf:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateVyypSgSScip":{"name":"subscript(_:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html":{"name":"HeroTargetState","abstract":"

    Undocumented

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

    Undocumented

    "},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_AA0aB5StateOtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_SdtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroStringConvertible.html#/s:4Hero0A17StringConvertibleP4from4nodexSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroStringConvertible"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingFromViewController:":{"name":"heroWillStartAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingFromViewController:":{"name":"heroDidEndAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingFromViewController:":{"name":"heroDidCancelAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartTransition":{"name":"heroWillStartTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndTransition":{"name":"heroDidEndTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelTransition":{"name":"heroDidCancelTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingToViewController:":{"name":"heroWillStartAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingToViewController:":{"name":"heroDidEndAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingToViewController:":{"name":"heroDidCancelAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroProgressUpdateObserver.html#/s:4Hero0A22ProgressUpdateObserverP07heroDidcB08progressySd_tF":{"name":"heroDidUpdateProgress(progress:)","abstract":"

    Undocumented

    ","parent_name":"HeroProgressUpdateObserver"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroCustomSnapshotView.html#/s:4Hero0A18CustomSnapshotViewP04heroC0So6UIViewCSgvp":{"name":"heroSnapshot","abstract":"

    Undocumented

    ","parent_name":"HeroCustomSnapshotView"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP0B4TypeQa":{"name":"CompatibleType","abstract":"

    Undocumented

    ","parent_name":"HeroCompatible"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP4heroAA0A9ExtensionCy0B4TypeQzGvp":{"name":"hero","abstract":"

    Undocumented

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

    Undocumented

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

    Allows a view to create their own custom snapshot when using Optimized snapshot

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Functions.html#/s:4Hero2eeoiySbAA8ExprNodeC_ADtF":{"name":"==(_:_:)","abstract":"

    Undocumented

    "},"Extensions/HeroDebugView.html#/gestureRecognizerShouldBegin(_:)":{"name":"gestureRecognizerShouldBegin(_:)","parent_name":"HeroDebugView"},"Extensions/UINavigationController.html#/Operation":{"name":"Operation","parent_name":"UINavigationController"},"Extensions/String.html#/s:SS4HeroE5match5regexSS_SnySiGtSgSS_tF":{"name":"match(regex:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/UITabBarController.html#/s:So18UITabBarControllerC4HeroE07heroTabB13AnimationTypeAC0d7DefaultgH0Ovp":{"name":"heroTabBarAnimationType","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UITabBarController.html#/c:@CM@Hero@@objc(cs)UITabBarController(py)heroTabBarAnimationTypeString":{"name":"heroTabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UINavigationController.html#/s:So22UINavigationControllerC4HeroE27heroNavigationAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroNavigationAnimationType","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UINavigationController.html#/c:@CM@Hero@@objc(cs)UINavigationController(py)heroNavigationAnimationTypeString":{"name":"heroNavigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE22heroModalAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroModalAnimationType","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)heroModalAnimationTypeString":{"name":"heroModalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)ht_dismiss:":{"name":"ht_dismiss(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE015heroReplaceViewB04withyAB_tF":{"name":"heroReplaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_dismissViewController":{"name":"hero_dismissViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_unwindToRootViewController":{"name":"hero_unwindToRootViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB0yyABF":{"name":"hero_unwindToViewController(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB012withSelectory10ObjectiveC0I0V_tF":{"name":"hero_unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB09withClassyyXlXp_tF":{"name":"hero_unwindToViewController(withClass:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB014withMatchBlockySbABXE_tF":{"name":"hero_unwindToViewController(withMatchBlock:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE016hero_replaceViewB04withyAB_tF":{"name":"hero_replaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroID":{"name":"heroID","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabledForSubviews":{"name":"isHeroEnabledForSubviews","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/s:So6UIViewC4HeroE13heroModifiersSayAC0B8ModifierCGSgvp":{"name":"heroModifiers","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroModifierString":{"name":"heroModifierString","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/CATransform3D.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CATransform3D"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6linearABvpZ":{"name":"linear","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6easeInABvpZ":{"name":"easeIn","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE7easeOutABvpZ":{"name":"easeOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE9easeInOutABvpZ":{"name":"easeInOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE8standardABvpZ":{"name":"standard","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12decelerationABvpZ":{"name":"deceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12accelerationABvpZ":{"name":"acceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE5sharpABvpZ":{"name":"sharp","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE11easeOutBackABvpZ":{"name":"easeOutBack","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE4from4nameABSgSS_tFZ":{"name":"from(name:)","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html":{"name":"CAMediaTimingFunction"},"Extensions/CATransform3D.html":{"name":"CATransform3D"},"Extensions/UIView.html":{"name":"UIView"},"Extensions/UIViewController.html":{"name":"UIViewController"},"Extensions/UINavigationController.html":{"name":"UINavigationController"},"Extensions/UITabBarController.html":{"name":"UITabBarController"},"Extensions/String.html":{"name":"String"},"Extensions/HeroDebugView.html":{"name":"HeroDebugView"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8possibleyA2CmF":{"name":"possible","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8notifiedyA2CmF":{"name":"notified","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8startingyA2CmF":{"name":"starting","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO9animatingyA2CmF":{"name":"animating","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO10completingyA2CmF":{"name":"completing","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceLeftToRightyA2EmF":{"name":"forceLeftToRight","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceRightToLeftyA2EmF":{"name":"forceRightToLeft","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO13userInterfaceyA2EmF":{"name":"userInterface","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO2upyA2EmF":{"name":"up","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4downyA2EmF":{"name":"down","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4from4nodeAESgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO17leadingToTrailingAA07CascadeE0OvpZ":{"name":"leadingToTrailing","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO17trailingToLeadingAA07CascadeE0OvpZ":{"name":"trailingToLeading","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO7leadingAEvpZ":{"name":"leading","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO8trailingAEvpZ":{"name":"trailing","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pushyA2C9DirectionO_tcACmF":{"name":"push(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pullyA2C9DirectionO_tcACmF":{"name":"pull(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5coveryA2C9DirectionO_tcACmF":{"name":"cover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7uncoveryA2C9DirectionO_tcACmF":{"name":"uncover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5slideyA2C9DirectionO_tcACmF":{"name":"slide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO9zoomSlideyA2C9DirectionO_tcACmF":{"name":"zoomSlide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO6pageInyA2C9DirectionO_tcACmF":{"name":"pageIn(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7pageOutyA2C9DirectionO_tcACmF":{"name":"pageOut(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4fadeyA2CmF":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4zoomyA2CmF":{"name":"zoom","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7zoomOutyA2CmF":{"name":"zoomOut","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO8selectByyA2C_ACtcACmF":{"name":"selectBy(presenting:dismissing:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO11autoReverse10presentingA2C_tFZ":{"name":"autoReverse(presenting:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5labelSSSgvp":{"name":"label","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11topToBottomyA2CmF":{"name":"topToBottom","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11bottomToTopyA2CmF":{"name":"bottomToTop","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11leftToRightyA2CmF":{"name":"leftToRight","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11rightToLeftyA2CmF":{"name":"rightToLeft","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO6radialyACSo7CGPointV_tcACmF":{"name":"radial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO13inverseRadialyACSo7CGPointV_tcACmF":{"name":"inverseRadial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17leadingToTrailingACvpZ":{"name":"leadingToTrailing","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17trailingToLeadingACvpZ":{"name":"trailingToLeading","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/ParseError.html#/s:4Hero10ParseErrorO13unexpectTokenyA2CmF":{"name":"unexpectToken","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO17undefinedOperatoryACSScACmF":{"name":"undefinedOperator(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO15expectCharacteryACSJcACmF":{"name":"expectCharacter(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO16expectExpressionyA2CmF":{"name":"expectExpression","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectArgumentListyA2CmF":{"name":"expectArgumentList","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectFunctionNameyA2CmF":{"name":"expectFunctionName","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/Token.html#/s:4Hero5TokenO10identifieryACSS_SnySiGtcACmF":{"name":"identifier(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO6numberyACSf_SnySiGtcACmF":{"name":"number(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO10parensOpenyACSnySiGcACmF":{"name":"parensOpen(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO11parensCloseyACSnySiGcACmF":{"name":"parensClose(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5commayACSnySiGcACmF":{"name":"comma(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5otheryACSS_SnySiGtcACmF":{"name":"other(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO06sourceB5OnTopyA2CmF":{"name":"sourceViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO011destinationB5OnTopyA2CmF":{"name":"destinationViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO6globalyA2CmF":{"name":"global","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO5localyA2CmF":{"name":"local","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO9optimizedyA2CmF":{"name":"optimized","abstract":"

    Will optimize for different type of views","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO6normalyA2CmF":{"name":"normal","abstract":"

    snapshotView(afterScreenUpdates:)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO11layerRenderyA2CmF":{"name":"layerRender","abstract":"

    layer.render(in: currentContext)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO02noB0yA2CmF":{"name":"noSnapshot","abstract":"

    will not create snapshot. animate the view directly.","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html":{"name":"HeroSnapshotType","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/HeroDebugPlugin.html#/showOnTop":{"name":"showOnTop","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/animate(fromViews:toViews:)":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/resume(timePassed:reverse:)":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/clean()":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onDone()":{"name":"onDone()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onProcessSliderChanged(progress:)":{"name":"onProcessSliderChanged(progress:)","parent_name":"HeroDebugPlugin"},"Classes/Hero.html#/s:4HeroAAC6sharedAA0A10TransitionCvpZ":{"name":"shared","abstract":"

    Shared singleton object for controlling the transition

    ","parent_name":"Hero"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16defaultAnimationAA0a7DefaultD4TypeOvp":{"name":"defaultAnimation","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC14containerColorSo7UIColorCvp":{"name":"containerColor","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC20viewOrderingStrategyAA0a4ViewdE0Ovp":{"name":"viewOrderingStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC33defaultAnimationDirectionStrategyAA0a7DefaultD4TypeO0F0Ovp":{"name":"defaultAnimationDirectionStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5stateAA0aB5StateOvp":{"name":"state","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC15isTransitioningSbvp":{"name":"isTransitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13transitioningSbvp":{"name":"transitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10presentingSbvp":{"name":"presenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC9containerSo6UIViewCSgvp":{"name":"container","abstract":"

    container we created to hold all animating views, will be a subview of the","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16toViewControllerSo06UIViewE0CSgvp":{"name":"toViewController","abstract":"

    destination view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC18fromViewControllerSo06UIViewE0CSgvp":{"name":"fromViewController","abstract":"

    source view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    context object holding transition informations

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC11interactiveSbvp":{"name":"interactive","abstract":"

    whether or not we are handling transition interactively

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13totalDurationSdvp":{"name":"totalDuration","abstract":"

    max duration needed by the animators

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8progressSdvp":{"name":"progress","abstract":"

    progress of the current transition. 0 if no transition is happening

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@M@Hero@objc(cs)HeroTransition(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24observeForProgressUpdate8observeryAA0aeF8Observer_p_tF":{"name":"observeForProgressUpdate(observer:)","abstract":"

    Receive callbacks on each animation frame.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7animateyyF":{"name":"animate()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8complete8finishedySb_tF":{"name":"complete(finished:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10transition4from2to2in10completionySo16UIViewControllerC_AJSo0H0CySbcSgtF":{"name":"transition(from:to:in:completion:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6updateyy12CoreGraphics7CGFloatVF":{"name":"update(_:)","abstract":"

    Update the progress for the interactive transition.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6finish7animateySb_tF":{"name":"finish(animate:)","abstract":"

    Finish the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6cancel7animateySb_tF":{"name":"cancel(animate:)","abstract":"

    Cancel the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5apply9modifiers2toySayAA0A8ModifierCG_So6UIViewCtF":{"name":"apply(modifiers:to:)","abstract":"

    Override modifiers during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12changeTarget9modifiers13isDestination2toySayAA0A8ModifierCG_SbSo6UIViewCtF":{"name":"changeTarget(modifiers:isDestination:to:)","abstract":"

    Override target state during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5startyyF":{"name":"start()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:willShowViewController:animated:":{"name":"navigationController(_:willShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:didShowViewController:animated:":{"name":"navigationController(_:didShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:animationControllerForOperation:fromViewController:toViewController:":{"name":"navigationController(_:animationControllerFor:from:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:interactionControllerForAnimationController:":{"name":"navigationController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:shouldSelectViewController:":{"name":"tabBarController(_:shouldSelect:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:interactionControllerForAnimationController:":{"name":"tabBarController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:animationControllerForTransitionFromViewController:toViewController:":{"name":"tabBarController(_:animationControllerForTransitionFrom:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForPresentedController:presentingController:sourceController:":{"name":"animationController(forPresented:presenting:source:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForDismissedController:":{"name":"animationController(forDismissed:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForDismissal:":{"name":"interactionControllerForDismissal(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForPresentation:":{"name":"interactionControllerForPresentation(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationEnded:":{"name":"animationEnded(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(py)wantsInteractiveStart":{"name":"wantsInteractiveStart","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)startInteractiveTransition:":{"name":"startInteractiveTransition(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/Parser.html#/s:4Hero6ParserC6tokensACSayAA5TokenOG_tcfc":{"name":"init(tokens:)","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/Parser.html#/s:4Hero6ParserC5parseSayAA8ExprNodeCGyKF":{"name":"parse()","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototypeAA09PrototypeC0Cvp":{"name":"prototype","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC4bodyAA04ExprC0Cvp":{"name":"body","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototype4bodyAcA09PrototypeC0C_AA04ExprC0Ctcfc":{"name":"init(prototype:body:)","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC13argumentNamesSaySSGvp":{"name":"argumentNames","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC4name13argumentNamesACSS_SaySSGtcfc":{"name":"init(name:argumentNames:)","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC9argumentsSayAA04ExprC0CGvp":{"name":"arguments","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC4name9argumentsACSS_SayAA04ExprC0CGtcfc":{"name":"init(name:arguments:)","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3lhsAA04ExprD0Cvp":{"name":"lhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3rhsAA04ExprD0Cvp":{"name":"rhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC4name3lhs3rhsACSS_AA04ExprD0CAHtcfc":{"name":"init(name:lhs:rhs:)","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/VariableNode.html#/s:4Hero12VariableNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"VariableNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueSfvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueACSf_tcfc":{"name":"init(value:)","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC5rangeSnySiGvp":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/Lexer.html#/s:4Hero5LexerC5inputACSS_tcfc":{"name":"init(input:)","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/Lexer.html#/s:4Hero5LexerC8tokenizeSayAA5TokenOGyF":{"name":"tokenize()","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC23requirePerFrameCallbackSbvp":{"name":"requirePerFrameCallback","abstract":"

    Determines whether or not to receive seekTo callback on every frame.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/c:@M@Hero@objc(cs)HeroPlugin(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Called before any animation.","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Perform the animation.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5cleanyyF":{"name":"clean()","abstract":"

    Called when all animations are completed.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC9isEnabledSbvpZ":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6enableyyFZ":{"name":"enable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7disableyyFZ":{"name":"disable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13applyFunctionACyAA0A11TargetStateVzc_tcfc":{"name":"init(applyFunction:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyACSayACGFZ":{"name":"beginWith(_:)","abstract":"

    Apply modifiers directly to the view at the start of the transition.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWith9modifiersACSayACG_tFZ":{"name":"beginWith(modifiers:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyA2Cd_tFZ":{"name":"beginWith(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC24useGlobalCoordinateSpaceACvpZ":{"name":"useGlobalCoordinateSpace","abstract":"

    Use global coordinate space.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiersACvpZ":{"name":"ignoreSubviewModifiers","abstract":"

    ignore all heroModifiers attributes for a view’s direct subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiers9recursiveACSb_tFZ":{"name":"ignoreSubviewModifiers(recursive:)","abstract":"

    ignore all heroModifiers attributes for a view’s subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20useOptimizedSnapshotACvpZ":{"name":"useOptimizedSnapshot","abstract":"

    Will create snapshot optimized for different view type.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC17useNormalSnapshotACvpZ":{"name":"useNormalSnapshot","abstract":"

    Create snapshot using snapshotView(afterScreenUpdates:).

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22useLayerRenderSnapshotACvpZ":{"name":"useLayerRenderSnapshot","abstract":"

    Create snapshot using layer.render(in: currentContext).","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13useNoSnapshotACvpZ":{"name":"useNoSnapshot","abstract":"

    Force Hero to not create any snapshot when animating this view.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceAnimateACvpZ":{"name":"forceAnimate","abstract":"

    Force the view to animate.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC23useScaleBasedSizeChangeACvpZ":{"name":"useScaleBasedSizeChange","abstract":"

    Force Hero use scale based size animation. This will convert all .size modifier into .scale modifier.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4fadeACvpZ":{"name":"fade","abstract":"

    Fade the view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceNonFadeACvpZ":{"name":"forceNonFade","abstract":"

    Force don’t fade view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8positionyACSo7CGPointVFZ":{"name":"position(_:)","abstract":"

    Set the position for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4sizeyACSo6CGSizeVFZ":{"name":"size(_:)","abstract":"

    Set the size for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9transformyACSo13CATransform3DVFZ":{"name":"transform(_:)","abstract":"

    Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11perspectiveyAC12CoreGraphics7CGFloatVFZ":{"name":"perspective(_:)","abstract":"

    Set the perspective on the transform. use in combination with the rotate modifier.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scale1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"scale(x:y:z:)","abstract":"

    Scale 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scaleyAC12CoreGraphics7CGFloatVFZ":{"name":"scale(_:)","abstract":"

    Scale in x & y axis

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"translate(x:y:z:)","abstract":"

    Translate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"translate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"rotate(x:y:z:)","abstract":"

    Rotate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"rotate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotateyAC12CoreGraphics7CGFloatVFZ":{"name":"rotate(_:)","abstract":"

    Rotate 2d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC15backgroundColoryACSo7UIColorCFZ":{"name":"backgroundColor(_:)","abstract":"

    Set the backgroundColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderColoryACSo7UIColorCFZ":{"name":"borderColor(_:)","abstract":"

    Set the borderColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11shadowColoryACSo7UIColorCFZ":{"name":"shadowColor(_:)","abstract":"

    Set the shadowColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7overlay5color7opacityACSo7UIColorC_12CoreGraphics7CGFloatVtFZ":{"name":"overlay(color:opacity:)","abstract":"

    Create an overlay on the animating view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7opacityyAC12CoreGraphics7CGFloatVFZ":{"name":"opacity(_:)","abstract":"

    Set the opacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12cornerRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"cornerRadius(_:)","abstract":"

    Set the cornerRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9zPositionyAC12CoreGraphics7CGFloatVFZ":{"name":"zPosition(_:)","abstract":"

    Set the zPosition for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12contentsRectyACSo6CGRectVFZ":{"name":"contentsRect(_:)","abstract":"

    Set the contentsRect for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13contentsScaleyAC12CoreGraphics7CGFloatVFZ":{"name":"contentsScale(_:)","abstract":"

    Set the contentsScale for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderWidthyAC12CoreGraphics7CGFloatVFZ":{"name":"borderWidth(_:)","abstract":"

    Set the borderWidth for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13shadowOpacityyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowOpacity(_:)","abstract":"

    Set the shadowOpacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowOffsetyACSo6CGSizeVFZ":{"name":"shadowOffset(_:)","abstract":"

    Set the shadowOffset for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowRadius(_:)","abstract":"

    Set the shadowRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC10shadowPathyACSo9CGPathRefaFZ":{"name":"shadowPath(_:)","abstract":"

    Set the shadowPath for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13masksToBoundsyACSbFZ":{"name":"masksToBounds(_:)","abstract":"

    Set the masksToBounds for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8durationyACSdFZ":{"name":"duration(_:)","abstract":"

    Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20durationMatchLongestACvpZ":{"name":"durationMatchLongest","abstract":"

    Sets the duration of the animation for a given view to match the longest animation of the transition.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5delayyACSdFZ":{"name":"delay(_:)","abstract":"

    Sets the delay of the animation for a given view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14timingFunctionyACSo013CAMediaTimingD0CFZ":{"name":"timingFunction(_:)","abstract":"

    Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6spring9stiffness7dampingAC12CoreGraphics7CGFloatV_AItFZ":{"name":"spring(stiffness:damping:)","abstract":"

    (iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6source6heroIDACSS_tFZ":{"name":"source(heroID:)","abstract":"

    Transition from/to the state of the view with matching heroID","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arcACvpZ":{"name":"arc","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arc9intensityAC12CoreGraphics7CGFloatV_tFZ":{"name":"arc(intensity:)","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascadeACvpZ":{"name":"cascade","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascade5delta9direction17delayMatchedViewsACSd_AA16CascadeDirectionOSbtFZ":{"name":"cascade(delta:direction:delayMatchedViews:)","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_SayACGtFZ":{"name":"when(_:_:)","abstract":"

    Apply modifiers only if the condition return true.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_ACdtFZ":{"name":"when(_:_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11whenMatchedyA2Cd_tFZ":{"name":"whenMatched(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenPresentingyA2Cd_tFZ":{"name":"whenPresenting(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenDismissingyA2Cd_tFZ":{"name":"whenDismissing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13whenAppearingyA2Cd_tFZ":{"name":"whenAppearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC16whenDisappearingyA2Cd_tFZ":{"name":"whenDisappearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9containerSo6UIViewCvp":{"name":"container","abstract":"

    The container holding all of the animating views

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9fromViewsSaySo6UIViewCGvp":{"name":"fromViews","abstract":"

    A flattened list of all views from source ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC7toViewsSaySo6UIViewCGvp":{"name":"toViews","abstract":"

    A flattened list of all views from destination ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10sourceView3forSo6UIViewCSgSS_tF":{"name":"sourceView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC15destinationView3forSo6UIViewCSgSS_tF":{"name":"destinationView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10pairedView3forSo6UIViewCSgAG_tF":{"name":"pairedView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC12snapshotView3forSo6UIViewCAG_tF":{"name":"snapshotView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextCyAA0A11TargetStateVSgSo6UIViewCcip":{"name":"subscript(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC4hide4viewySo6UIViewC_tF":{"name":"hide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC6unhide4viewySo6UIViewC_tF":{"name":"unhide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionC4basexvp":{"name":"base","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE2idSSSgvp":{"name":"id","abstract":"

    ID is the identifier for the view. When doing a transition between two view controllers,","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    isEnabled allows to specify whether a view and its subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE20isEnabledForSubviewsSbvp":{"name":"isEnabledForSubviews","abstract":"

    isEnabledForSubviews allows to specify whether a view’s subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9modifiersSayAA0A8ModifierCGSgvp":{"name":"modifiers","abstract":"

    Use modifiers to specify animations alongside the main transition. Checkout HeroModifier.swift for available modifiers.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE14modifierStringSSSgvp":{"name":"modifierString","abstract":"

    modifierString** provides another way to set modifiers. It can be assigned through storyboard.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE18modalAnimationTypeAA0a7DefaultfG0Ovp":{"name":"modalAnimationType","abstract":"

    default hero animation type for presenting & dismissing modally

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE24modalAnimationTypeStringSSSgvp":{"name":"modalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE23navigationAnimationTypeAA0a7DefaultfG0Ovp":{"name":"navigationAnimationType","abstract":"

    default hero animation type for push and pop within the navigation controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE29navigationAnimationTypeStringSSSgvp":{"name":"navigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD13AnimationTypeAA0a7DefaultgH0Ovp":{"name":"tabBarAnimationType","abstract":"

    default hero animation type for switching tabs within the tab bar controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD19AnimationTypeStringSSSgvp":{"name":"tabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011dismissViewD010completionyyycSg_tF":{"name":"dismissViewController(completion:)","abstract":"

    Dismiss the current view controller with animation. Will perform a navigationController.popViewController","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE016unwindToRootViewD0yyF":{"name":"unwindToRootViewController()","abstract":"

    Unwind to the root view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD0yyAEF":{"name":"unwindToViewController(_:)","abstract":"

    Unwind to a specific view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD012withSelectory10ObjectiveC0I0V_tF":{"name":"unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD09withClassyyXlXp_tF":{"name":"unwindToViewController(withClass:)","abstract":"

    Unwind to a view controller with given class using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD014withMatchBlockySbAEXE_tF":{"name":"unwindToViewController(withMatchBlock:)","abstract":"

    Unwind to a view controller that the matchBlock returns true on.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011replaceViewD04with10completionyAE_yycSgtF":{"name":"replaceViewController(with:completion:)","abstract":"

    Replace the current view controller with another VC on the navigation/modal stack.

    ","parent_name":"HeroExtension"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC9showOnTopSbvpZ":{"name":"showOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC7animate9fromViews02toF0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC5cleanyyF":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6onDoneyyF":{"name":"onDone()","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC22onProcessSliderChanged8progressySf_tF":{"name":"onProcessSliderChanged(progress:)","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    The singleton class/object for controlling interactive transitions.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following functions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/Hero.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Hero.docset/Contents/Resources/docSet.dsidx index e228c262f6c44c7953d1a49e292d876c60a278cb..bb27ebf3ee3ca07e72c4bf237b5aa953d3ce3edf 100644 GIT binary patch delta 8671 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 diff --git a/docs/docsets/Hero.tgz b/docs/docsets/Hero.tgz index a3bb4d32baf3efc5fb988b37ff818c310cbed031..18ad7108c95b7ce61a9a7b36961b4bf2f261198b 100644 GIT binary patch literal 158472 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

    f4MdGE!29Dxd$gZFpST&FmjLqPM}um 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

  • B*$3U+K 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 WcF;v=0irleTpf}g@B&2k;@<$;9A{<# literal 156627 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 diff --git a/docs/index.html b/docs/index.html index d68f78f7..e1d12e05 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,7 +20,7 @@

    - Hero 1.5.0 Docs + Hero 1.6.0 Docs (24% documented)

    @@ -39,7 +39,7 @@

    - + Install in Dash @@ -158,9 +158,6 @@

    - @@ -234,13 +231,15 @@
    -
    +

    Hero is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit’s cumbersome transition APIs—making custom transitions an easy task for developers.

    Carthage compatible +Accio supported +codecov Version License Xcode 9.0+ @@ -263,18 +262,18 @@

    By default, Hero provides dynamic duration based on the Material Design Motion Guide. Duration is automatically determined by changes to distance and size—saving you the hassle, while providing consistent and delightful animations.

    -

    Hero doesn’t make any assumptions about how the view is built or structured. It won’t modify any of your views’ states other than hiding them during the animation. This makes it work with Auto Layout, programmatic layout, UICollectionView (without modifying its layout object), UITableView, UINavigationController, UITabBarController, etc…

    +

    Hero doesn’t make any assumptions about how the view is built or structured. It won’t modify any of your views’ states other than hiding them during the animation. This makes it work with Auto Layout, programmatic layout, UICollectionView (without modifying its layout object), UITableView, UINavigationController, UITabBarController, etc…

    Checkout the Example Gallery Blog Post for a general idea of what you can achieve with Hero

    Usage Example 1

    -
    View Controller 1
    +

    View Controller 1

    redView.hero.id = "ironMan"
     blackView.hero.id = "batMan"
     
    -
    View Controller 2
    +

    View Controller 2

    self.hero.isEnabled = true
     redView.hero.id = "ironMan"
     blackView.hero.id = "batMan"
    @@ -283,10 +282,10 @@ 
    View Controller 2

    Usage Example 2

    -
    View Controller 1
    +

    View Controller 1

    greyView.hero.id = "skyWalker"
     
    -
    View Controller 2
    +

    View Controller 2

    self.hero.isEnabled = true
     greyView.hero.id = "skyWalker"
     
    @@ -320,6 +319,22 @@ 

    Carthage

    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.

    +

    Accio

    + +

    Add the following to your Package.swift:

    +
    .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.4.0")),
    +
    + +

    Next, add Hero to your App targets dependencies like so:

    +
    .target(
    +    name: "App",
    +    dependencies: [
    +        "Hero",
    +    ]
    +),
    +
    + +

    Then run accio update.

    Swift Package Manager

    To integrate using Apple’s Swift package manager, add the following as a dependency to your Package.swift:

    @@ -339,7 +354,7 @@

    Swift Package Manager

    targets: ["MyPackage"]), ], dependencies: [ - .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.3.0")) + .package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.6.0")) ], targets: [ .target( @@ -355,24 +370,24 @@

    Manually

    Documentations

    -

    Checkout the WIKI PAGES (Usage Guide) for documentations.

    +

    Checkout the WIKI PAGES (Usage Guide) for documentations.

    For more up-to-date ones, please see the header-doc. (use alt+click in Xcode)

    Interactive Transition Tutorials

    -

    Interactive transitions with Hero (Part 1)

    +

    Interactive transitions with Hero (Part 1)

    FAQ

    -

    Not able to use Hero transition even when self.hero.isEnabled is set to true

    +

    Not able to use Hero transition even when self.hero.isEnabled is set to true

    Make sure that you have also enabled self.hero.isEnabled on the navigation controller if you are doing a push/pop inside the navigation controller.

    -

    Views being covered by another matched view during the transition

    +

    Views being covered by another matched view during the transition

    Matched views use global coordinate space while unmatched views use local coordinate space by default. Local coordinate spaced views might be covered by other global coordinate spaced views. To solve this, use the useGlobalCoordinateSpace modifier on the views being covered. Checkout Coordinate Space Wiki page for details.

    -

    Push animation is shown along side my custom animation

    +

    Push animation is shown along side my custom animation

    This is the default animation for navigation controller provided by Hero. To disable the push animation, set self.hero.navigationAnimationType to .fade or .none on the navigation controller.

    -

    How do I use a different default animation when dismissing

    +

    How do I use a different default animation when dismissing

    You can use the animation type .selectBy(presenting:dismissing) to specify a different default animation for dismiss.

    @@ -391,7 +406,7 @@

    Contribute

    diff --git a/docs/js/jazzy.js b/docs/js/jazzy.js index c31dc05e..1e55d6ef 100755 --- a/docs/js/jazzy.js +++ b/docs/js/jazzy.js @@ -23,7 +23,7 @@ function openCurrentItemIfClosed() { if (window.jazzy.docset) { return; } - var $link = $(`.token[href="${location.hash}"]`); + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); $content = itemLinkToContent($link); if ($content.is(':hidden')) { toggleItem($link, $content); @@ -57,3 +57,14 @@ $("a:not('.token')").on('click', function() { openCurrentItemIfClosed(); } }); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/js/jquery.min.js b/docs/js/jquery.min.js index a1c07fd8..b0614034 100644 --- a/docs/js/jquery.min.js +++ b/docs/js/jquery.min.js @@ -1,2 +1,2 @@ -/*! 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+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0=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.pos0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/js/typeahead.jquery.js b/docs/js/typeahead.jquery.js index f80bb192..3a2d2ab0 100644 --- a/docs/js/typeahead.jquery.js +++ b/docs/js/typeahead.jquery.js @@ -1,15 +1,16 @@ /*! - * typeahead.js 1.2.0 - * https://github.com/twitter/typeahead.js - * Copyright 2013-2017 Twitter, Inc. and other contributors; Licensed MIT + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT */ + (function(root, factory) { if (typeof define === "function" && define.amd) { define([ "jquery" ], function(a0) { return factory(a0); }); - } else if (typeof exports === "object") { + } else if (typeof module === "object" && module.exports) { module.exports = factory(require("jquery")); } else { factory(root["jQuery"]); @@ -482,6 +483,7 @@ 40: "down" }; function Input(o, www) { + var id; o = o || {}; if (!o.input) { $.error("input is missing"); @@ -489,14 +491,18 @@ www.mixin(this); this.$hint = $(o.hint); this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); this.$input.attr({ - "aria-activedescendant": "", - "aria-owns": this.$input.attr("id") + "_listbox", + "aria-owns": id + "_listbox", role: "combobox", - "aria-readonly": "true", - "aria-autocomplete": "list" + "aria-autocomplete": "list", + "aria-expanded": false }); - $(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); @@ -669,6 +675,9 @@ this.$input.off(".tt"); this.$overflowHelper.remove(); this.$hint = this.$input = this.$overflowHelper = $("
    "); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); } }); return Input; @@ -896,8 +905,12 @@ pending: templates.pending && _.templatify(templates.pending), header: templates.header && _.templatify(templates.header), footer: templates.footer && _.templatify(templates.footer), - suggestion: templates.suggestion || suggestionTemplate + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } function suggestionTemplate(context) { return $('
    ').attr("id", _.guid()).text(displayFn(context)); } @@ -1256,8 +1269,10 @@ var $selectable; if ($selectable = this.menu.getActiveSelectable()) { this.select($selectable) && $e.preventDefault(); - } else if ($selectable = this.menu.getTopSelectable()) { - this.autocomplete($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } } }, _onEscKeyed: function onEscKeyed() { @@ -1353,6 +1368,7 @@ }, open: function open() { if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); this.menu.open(); this._updateHint(); this.eventBus.trigger("open"); @@ -1361,6 +1377,7 @@ }, close: function close() { if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); this.menu.close(); this.input.clearHint(); this.input.resetInputValue(); @@ -1409,7 +1426,9 @@ if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { this.menu.setCursor($candidate); if (data) { - this.input.setInputValue(data.val); + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } } else { this.input.resetInputValue(); this._updateHint(); @@ -1477,7 +1496,8 @@ }); input = new Input({ hint: $hint, - input: $input + input: $input, + menu: $menu }, www); menu = new MenuConstructor({ node: $menu, diff --git a/docs/search.json b/docs/search.json index 0ae2f538..db19e439 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV4viewSo6UIViewCSgvp":{"name":"view","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11isAppearingSbvp":{"name":"isAppearing","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInTabbarControllerSbvp":{"name":"isInTabbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInNavbarControllerSbvp":{"name":"isInNavbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV9isMatchedSbvp":{"name":"isMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21isAncestorViewMatchedSbvp":{"name":"isAncestorViewMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11matchedViewSo6UIViewCSgvp":{"name":"matchedView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19matchedAncestorViewSo6UIViewC_AFtSgvp":{"name":"matchedAncestorView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV18fromViewControllerSo06UIViewF0Cvp":{"name":"fromViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV16toViewControllerSo06UIViewF0Cvp":{"name":"toViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21currentViewControllerSo06UIViewF0Cvp":{"name":"currentViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19otherViewControllerSo06UIViewF0Cvp":{"name":"otherViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV05beginC0SayAA0A8ModifierCGSgvp":{"name":"beginState","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV20conditionalModifiersSaySbAA0A18ConditionalContextVc_SayAA0A8ModifierCGtGSgvp":{"name":"conditionalModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8positionSo7CGPointVSgvp":{"name":"position","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV4sizeSo6CGSizeVSgvp":{"name":"size","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9transformSo13CATransform3DVSgvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7opacitySfSgvp":{"name":"opacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15backgroundColorSo10CGColorRefaSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9zPosition12CoreGraphics7CGFloatVSgvp":{"name":"zPosition","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12contentsRectSo6CGRectVSgvp":{"name":"contentsRect","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13contentsScale12CoreGraphics7CGFloatVSgvp":{"name":"contentsScale","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderWidth12CoreGraphics7CGFloatVSgvp":{"name":"borderWidth","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderColorSo10CGColorRefaSgvp":{"name":"borderColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11shadowColorSo10CGColorRefaSgvp":{"name":"shadowColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13shadowOpacitySfSgvp":{"name":"shadowOpacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowOffsetSo6CGSizeVSgvp":{"name":"shadowOffset","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowRadius12CoreGraphics7CGFloatVSgvp":{"name":"shadowRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV10shadowPathSo9CGPathRefaSgvp":{"name":"shadowPath","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13masksToBoundsSbSgvp":{"name":"masksToBounds","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13displayShadowSbvp":{"name":"displayShadow","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7overlaySo10CGColorRefa5color_12CoreGraphics7CGFloatV7opacitytSgvp":{"name":"overlay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6spring12CoreGraphics7CGFloatV_AGtSgvp":{"name":"spring","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV5delaySdvp":{"name":"delay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8durationSdSgvp":{"name":"duration","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV14timingFunctionSo013CAMediaTimingE0CSgvp":{"name":"timingFunction","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV3arc12CoreGraphics7CGFloatVSgvp":{"name":"arc","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6sourceSSSgvp":{"name":"source","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7cascadeSd_AA16CascadeDirectionOSbtSgvp":{"name":"cascade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV22ignoreSubviewModifiersSbSgvp":{"name":"ignoreSubviewModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15coordinateSpaceAA0a10CoordinateE0OSgvp":{"name":"coordinateSpace","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV23useScaleBasedSizeChangeSbSgvp":{"name":"useScaleBasedSizeChange","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12snapshotTypeAA0a8SnapshotE0OSgvp":{"name":"snapshotType","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7nonFadeSbvp":{"name":"nonFade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12forceAnimateSbvp":{"name":"forceAnimate","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6customSDySSypGSgvp":{"name":"custom","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6appendyyAA0A8ModifierCF":{"name":"append(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6append10contentsOfySayAA0A8ModifierCG_tF":{"name":"append(contentsOf:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateVyypSgSScip":{"name":"subscript(_:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html":{"name":"HeroTargetState","abstract":"

    Undocumented

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

    Undocumented

    "},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_AA0aB5StateOtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_SdtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroStringConvertible.html#/s:4Hero0A17StringConvertibleP4from4nodexSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroStringConvertible"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingFromViewController:":{"name":"heroWillStartAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingFromViewController:":{"name":"heroDidEndAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingFromViewController:":{"name":"heroDidCancelAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartTransition":{"name":"heroWillStartTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndTransition":{"name":"heroDidEndTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelTransition":{"name":"heroDidCancelTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingToViewController:":{"name":"heroWillStartAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingToViewController:":{"name":"heroDidEndAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingToViewController:":{"name":"heroDidCancelAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroProgressUpdateObserver.html#/s:4Hero0A22ProgressUpdateObserverP07heroDidcB08progressySd_tF":{"name":"heroDidUpdateProgress(progress:)","abstract":"

    Undocumented

    ","parent_name":"HeroProgressUpdateObserver"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroCustomSnapshotView.html#/s:4Hero0A18CustomSnapshotViewP04heroC0So6UIViewCSgvp":{"name":"heroSnapshot","abstract":"

    Undocumented

    ","parent_name":"HeroCustomSnapshotView"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP0B4TypeQa":{"name":"CompatibleType","abstract":"

    Undocumented

    ","parent_name":"HeroCompatible"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP4heroAA0A9ExtensionCy0B4TypeQzGvp":{"name":"hero","abstract":"

    Undocumented

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

    Undocumented

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

    Allows a view to create their own custom snapshot when using Optimized snapshot

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Functions.html#/s:4Hero2eeoiySbAA8ExprNodeC_ADtF":{"name":"==(_:_:)","abstract":"

    Undocumented

    "},"Extensions/HeroDebugView.html#/gestureRecognizerShouldBegin(_:)":{"name":"gestureRecognizerShouldBegin(_:)","parent_name":"HeroDebugView"},"Extensions/UINavigationController.html#/Operation":{"name":"Operation","parent_name":"UINavigationController"},"Extensions/String.html#/s:SS4HeroE5match5regexSS_SnySiGtSgSS_tF":{"name":"match(regex:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/UITabBarController.html#/s:So18UITabBarControllerC4HeroE07heroTabB13AnimationTypeAC0d7DefaultgH0Ovp":{"name":"heroTabBarAnimationType","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UITabBarController.html#/c:@CM@Hero@@objc(cs)UITabBarController(py)heroTabBarAnimationTypeString":{"name":"heroTabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UINavigationController.html#/s:So22UINavigationControllerC4HeroE27heroNavigationAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroNavigationAnimationType","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UINavigationController.html#/c:@CM@Hero@@objc(cs)UINavigationController(py)heroNavigationAnimationTypeString":{"name":"heroNavigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE22heroModalAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroModalAnimationType","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)heroModalAnimationTypeString":{"name":"heroModalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)ht_dismiss:":{"name":"ht_dismiss(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE015heroReplaceViewB04withyAB_tF":{"name":"heroReplaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_dismissViewController":{"name":"hero_dismissViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_unwindToRootViewController":{"name":"hero_unwindToRootViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB0yyABF":{"name":"hero_unwindToViewController(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB012withSelectory10ObjectiveC0I0V_tF":{"name":"hero_unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB09withClassyyXlXp_tF":{"name":"hero_unwindToViewController(withClass:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB014withMatchBlockySbABXE_tF":{"name":"hero_unwindToViewController(withMatchBlock:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE016hero_replaceViewB04withyAB_tF":{"name":"hero_replaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroID":{"name":"heroID","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabledForSubviews":{"name":"isHeroEnabledForSubviews","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/s:So6UIViewC4HeroE13heroModifiersSayAC0B8ModifierCGSgvp":{"name":"heroModifiers","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroModifierString":{"name":"heroModifierString","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/CATransform3D.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CATransform3D"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6linearABvpZ":{"name":"linear","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6easeInABvpZ":{"name":"easeIn","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE7easeOutABvpZ":{"name":"easeOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE9easeInOutABvpZ":{"name":"easeInOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE8standardABvpZ":{"name":"standard","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12decelerationABvpZ":{"name":"deceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12accelerationABvpZ":{"name":"acceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE5sharpABvpZ":{"name":"sharp","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE11easeOutBackABvpZ":{"name":"easeOutBack","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE4from4nameABSgSS_tFZ":{"name":"from(name:)","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/HeroDebugView.html#/c:@CM@Hero@objc(cs)HeroDebugView(im)gestureRecognizerShouldBegin:":{"name":"gestureRecognizerShouldBegin(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroDebugView"},"Extensions/HeroDebugView.html":{"name":"HeroDebugView"},"Extensions/CAMediaTimingFunction.html":{"name":"CAMediaTimingFunction"},"Extensions/CATransform3D.html":{"name":"CATransform3D"},"Extensions/UIView.html":{"name":"UIView"},"Extensions/UIViewController.html":{"name":"UIViewController"},"Extensions/UINavigationController.html":{"name":"UINavigationController"},"Extensions/UITabBarController.html":{"name":"UITabBarController"},"Extensions/String.html":{"name":"String"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8possibleyA2CmF":{"name":"possible","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8notifiedyA2CmF":{"name":"notified","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8startingyA2CmF":{"name":"starting","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO9animatingyA2CmF":{"name":"animating","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO10completingyA2CmF":{"name":"completing","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceLeftToRightyA2EmF":{"name":"forceLeftToRight","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceRightToLeftyA2EmF":{"name":"forceRightToLeft","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO13userInterfaceyA2EmF":{"name":"userInterface","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO2upyA2EmF":{"name":"up","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4downyA2EmF":{"name":"down","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4from4nodeAESgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO7leadingAEvpZ":{"name":"leading","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO8trailingAEvpZ":{"name":"trailing","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pushyA2C9DirectionO_tcACmF":{"name":"push(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pullyA2C9DirectionO_tcACmF":{"name":"pull(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5coveryA2C9DirectionO_tcACmF":{"name":"cover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7uncoveryA2C9DirectionO_tcACmF":{"name":"uncover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5slideyA2C9DirectionO_tcACmF":{"name":"slide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO9zoomSlideyA2C9DirectionO_tcACmF":{"name":"zoomSlide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO6pageInyA2C9DirectionO_tcACmF":{"name":"pageIn(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7pageOutyA2C9DirectionO_tcACmF":{"name":"pageOut(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4fadeyA2CmF":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4zoomyA2CmF":{"name":"zoom","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7zoomOutyA2CmF":{"name":"zoomOut","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO8selectByyA2C_ACtcACmF":{"name":"selectBy(presenting:dismissing:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO11autoReverse10presentingA2C_tFZ":{"name":"autoReverse(presenting:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5labelSSSgvp":{"name":"label","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11topToBottomyA2CmF":{"name":"topToBottom","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11bottomToTopyA2CmF":{"name":"bottomToTop","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11leftToRightyA2CmF":{"name":"leftToRight","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11rightToLeftyA2CmF":{"name":"rightToLeft","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO6radialyACSo7CGPointV_tcACmF":{"name":"radial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO13inverseRadialyACSo7CGPointV_tcACmF":{"name":"inverseRadial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17leadingToTrailingACvpZ":{"name":"leadingToTrailing","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17trailingToLeadingACvpZ":{"name":"trailingToLeading","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/ParseError.html#/s:4Hero10ParseErrorO13unexpectTokenyA2CmF":{"name":"unexpectToken","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO17undefinedOperatoryACSScACmF":{"name":"undefinedOperator(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO15expectCharacteryACSJcACmF":{"name":"expectCharacter(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO16expectExpressionyA2CmF":{"name":"expectExpression","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectArgumentListyA2CmF":{"name":"expectArgumentList","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectFunctionNameyA2CmF":{"name":"expectFunctionName","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/Token.html#/s:4Hero5TokenO10identifieryACSS_SnySiGtcACmF":{"name":"identifier(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO6numberyACSf_SnySiGtcACmF":{"name":"number(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO10parensOpenyACSnySiGcACmF":{"name":"parensOpen(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO11parensCloseyACSnySiGcACmF":{"name":"parensClose(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5commayACSnySiGcACmF":{"name":"comma(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5otheryACSS_SnySiGtcACmF":{"name":"other(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO06sourceB5OnTopyA2CmF":{"name":"sourceViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO011destinationB5OnTopyA2CmF":{"name":"destinationViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO6globalyA2CmF":{"name":"global","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO5localyA2CmF":{"name":"local","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO9optimizedyA2CmF":{"name":"optimized","abstract":"

    Will optimize for different type of views","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO6normalyA2CmF":{"name":"normal","abstract":"

    snapshotView(afterScreenUpdates:)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO11layerRenderyA2CmF":{"name":"layerRender","abstract":"

    layer.render(in: currentContext)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO02noB0yA2CmF":{"name":"noSnapshot","abstract":"

    will not create snapshot. animate the view directly.","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html":{"name":"HeroSnapshotType","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/HeroDebugPlugin.html#/showOnTop":{"name":"showOnTop","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/animate(fromViews:toViews:)":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/resume(timePassed:reverse:)":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/clean()":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onDone()":{"name":"onDone()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onProcessSliderChanged(progress:)":{"name":"onProcessSliderChanged(progress:)","parent_name":"HeroDebugPlugin"},"Classes/Hero.html#/s:4HeroAAC6sharedAA0A10TransitionCvpZ":{"name":"shared","abstract":"

    Shared singleton object for controlling the transition

    ","parent_name":"Hero"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16defaultAnimationAA0a7DefaultD4TypeOvp":{"name":"defaultAnimation","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC14containerColorSo7UIColorCvp":{"name":"containerColor","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC20viewOrderingStrategyAA0a4ViewdE0Ovp":{"name":"viewOrderingStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC33defaultAnimationDirectionStrategyAA0a7DefaultD4TypeO0F0Ovp":{"name":"defaultAnimationDirectionStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5stateAA0aB5StateOvp":{"name":"state","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC15isTransitioningSbvp":{"name":"isTransitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13transitioningSbvp":{"name":"transitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10presentingSbvp":{"name":"presenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC9containerSo6UIViewCSgvp":{"name":"container","abstract":"

    container we created to hold all animating views, will be a subview of the","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16toViewControllerSo06UIViewE0CSgvp":{"name":"toViewController","abstract":"

    destination view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC18fromViewControllerSo06UIViewE0CSgvp":{"name":"fromViewController","abstract":"

    source view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    context object holding transition informations

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC11interactiveSbvp":{"name":"interactive","abstract":"

    whether or not we are handling transition interactively

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13totalDurationSdvp":{"name":"totalDuration","abstract":"

    max duration needed by the animators

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8progressSdvp":{"name":"progress","abstract":"

    progress of the current transition. 0 if no transition is happening

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@M@Hero@objc(cs)HeroTransition(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24observeForProgressUpdate8observeryAA0aeF8Observer_p_tF":{"name":"observeForProgressUpdate(observer:)","abstract":"

    Receive callbacks on each animation frame.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7animateyyF":{"name":"animate()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8complete8finishedySb_tF":{"name":"complete(finished:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10transition4from2to2in10completionySo16UIViewControllerC_AJSo0H0CySbcSgtF":{"name":"transition(from:to:in:completion:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6updateyy12CoreGraphics7CGFloatVF":{"name":"update(_:)","abstract":"

    Update the progress for the interactive transition.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6finish7animateySb_tF":{"name":"finish(animate:)","abstract":"

    Finish the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6cancel7animateySb_tF":{"name":"cancel(animate:)","abstract":"

    Cancel the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5apply9modifiers2toySayAA0A8ModifierCG_So6UIViewCtF":{"name":"apply(modifiers:to:)","abstract":"

    Override modifiers during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12changeTarget9modifiers13isDestination2toySayAA0A8ModifierCG_SbSo6UIViewCtF":{"name":"changeTarget(modifiers:isDestination:to:)","abstract":"

    Override target state during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5startyyF":{"name":"start()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:willShowViewController:animated:":{"name":"navigationController(_:willShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:didShowViewController:animated:":{"name":"navigationController(_:didShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:animationControllerForOperation:fromViewController:toViewController:":{"name":"navigationController(_:animationControllerFor:from:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:interactionControllerForAnimationController:":{"name":"navigationController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:shouldSelectViewController:":{"name":"tabBarController(_:shouldSelect:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:interactionControllerForAnimationController:":{"name":"tabBarController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:animationControllerForTransitionFromViewController:toViewController:":{"name":"tabBarController(_:animationControllerForTransitionFrom:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForPresentedController:presentingController:sourceController:":{"name":"animationController(forPresented:presenting:source:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForDismissedController:":{"name":"animationController(forDismissed:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForDismissal:":{"name":"interactionControllerForDismissal(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForPresentation:":{"name":"interactionControllerForPresentation(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationEnded:":{"name":"animationEnded(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(py)wantsInteractiveStart":{"name":"wantsInteractiveStart","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)startInteractiveTransition:":{"name":"startInteractiveTransition(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/Parser.html#/s:4Hero6ParserC6tokensACSayAA5TokenOG_tcfc":{"name":"init(tokens:)","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/Parser.html#/s:4Hero6ParserC5parseSayAA8ExprNodeCGyKF":{"name":"parse()","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototypeAA09PrototypeC0Cvp":{"name":"prototype","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC4bodyAA04ExprC0Cvp":{"name":"body","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototype4bodyAcA09PrototypeC0C_AA04ExprC0Ctcfc":{"name":"init(prototype:body:)","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC13argumentNamesSaySSGvp":{"name":"argumentNames","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC4name13argumentNamesACSS_SaySSGtcfc":{"name":"init(name:argumentNames:)","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC9argumentsSayAA04ExprC0CGvp":{"name":"arguments","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC4name9argumentsACSS_SayAA04ExprC0CGtcfc":{"name":"init(name:arguments:)","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3lhsAA04ExprD0Cvp":{"name":"lhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3rhsAA04ExprD0Cvp":{"name":"rhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC4name3lhs3rhsACSS_AA04ExprD0CAHtcfc":{"name":"init(name:lhs:rhs:)","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/VariableNode.html#/s:4Hero12VariableNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"VariableNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueSfvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueACSf_tcfc":{"name":"init(value:)","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC5rangeSnySiGvp":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/Lexer.html#/s:4Hero5LexerC5inputACSS_tcfc":{"name":"init(input:)","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/Lexer.html#/s:4Hero5LexerC8tokenizeSayAA5TokenOGyF":{"name":"tokenize()","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC23requirePerFrameCallbackSbvp":{"name":"requirePerFrameCallback","abstract":"

    Determines whether or not to receive seekTo callback on every frame.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/c:@M@Hero@objc(cs)HeroPlugin(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Called before any animation.","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Perform the animation.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5cleanyyF":{"name":"clean()","abstract":"

    Called when all animations are completed.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC9isEnabledSbvpZ":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6enableyyFZ":{"name":"enable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7disableyyFZ":{"name":"disable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13applyFunctionACyAA0A11TargetStateVzc_tcfc":{"name":"init(applyFunction:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyACSayACGFZ":{"name":"beginWith(_:)","abstract":"

    Apply modifiers directly to the view at the start of the transition.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWith9modifiersACSayACG_tFZ":{"name":"beginWith(modifiers:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyA2Cd_tFZ":{"name":"beginWith(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC24useGlobalCoordinateSpaceACvpZ":{"name":"useGlobalCoordinateSpace","abstract":"

    Use global coordinate space.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiersACvpZ":{"name":"ignoreSubviewModifiers","abstract":"

    ignore all heroModifiers attributes for a view’s direct subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiers9recursiveACSb_tFZ":{"name":"ignoreSubviewModifiers(recursive:)","abstract":"

    ignore all heroModifiers attributes for a view’s subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20useOptimizedSnapshotACvpZ":{"name":"useOptimizedSnapshot","abstract":"

    Will create snapshot optimized for different view type.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC17useNormalSnapshotACvpZ":{"name":"useNormalSnapshot","abstract":"

    Create snapshot using snapshotView(afterScreenUpdates:).

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22useLayerRenderSnapshotACvpZ":{"name":"useLayerRenderSnapshot","abstract":"

    Create snapshot using layer.render(in: currentContext).","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13useNoSnapshotACvpZ":{"name":"useNoSnapshot","abstract":"

    Force Hero to not create any snapshot when animating this view.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceAnimateACvpZ":{"name":"forceAnimate","abstract":"

    Force the view to animate.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC23useScaleBasedSizeChangeACvpZ":{"name":"useScaleBasedSizeChange","abstract":"

    Force Hero use scale based size animation. This will convert all .size modifier into .scale modifier.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4fadeACvpZ":{"name":"fade","abstract":"

    Fade the view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceNonFadeACvpZ":{"name":"forceNonFade","abstract":"

    Force don’t fade view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8positionyACSo7CGPointVFZ":{"name":"position(_:)","abstract":"

    Set the position for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4sizeyACSo6CGSizeVFZ":{"name":"size(_:)","abstract":"

    Set the size for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9transformyACSo13CATransform3DVFZ":{"name":"transform(_:)","abstract":"

    Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11perspectiveyAC12CoreGraphics7CGFloatVFZ":{"name":"perspective(_:)","abstract":"

    Set the perspective on the transform. use in combination with the rotate modifier.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scale1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"scale(x:y:z:)","abstract":"

    Scale 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scaleyAC12CoreGraphics7CGFloatVFZ":{"name":"scale(_:)","abstract":"

    Scale in x & y axis

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"translate(x:y:z:)","abstract":"

    Translate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"translate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"rotate(x:y:z:)","abstract":"

    Rotate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"rotate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotateyAC12CoreGraphics7CGFloatVFZ":{"name":"rotate(_:)","abstract":"

    Rotate 2d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7opacityyAC12CoreGraphics7CGFloatVFZ":{"name":"opacity(_:)","abstract":"

    Set the opacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC15backgroundColoryACSo7UIColorCFZ":{"name":"backgroundColor(_:)","abstract":"

    Set the backgroundColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12cornerRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"cornerRadius(_:)","abstract":"

    Set the cornerRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9zPositionyAC12CoreGraphics7CGFloatVFZ":{"name":"zPosition(_:)","abstract":"

    Set the zPosition for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12contentsRectyACSo6CGRectVFZ":{"name":"contentsRect(_:)","abstract":"

    Set the contentsRect for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13contentsScaleyAC12CoreGraphics7CGFloatVFZ":{"name":"contentsScale(_:)","abstract":"

    Set the contentsScale for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderWidthyAC12CoreGraphics7CGFloatVFZ":{"name":"borderWidth(_:)","abstract":"

    Set the borderWidth for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderColoryACSo7UIColorCFZ":{"name":"borderColor(_:)","abstract":"

    Set the borderColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11shadowColoryACSo7UIColorCFZ":{"name":"shadowColor(_:)","abstract":"

    Set the shadowColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13shadowOpacityyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowOpacity(_:)","abstract":"

    Set the shadowOpacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowOffsetyACSo6CGSizeVFZ":{"name":"shadowOffset(_:)","abstract":"

    Set the shadowOffset for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowRadius(_:)","abstract":"

    Set the shadowRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC10shadowPathyACSo9CGPathRefaFZ":{"name":"shadowPath(_:)","abstract":"

    Set the shadowPath for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13masksToBoundsyACSbFZ":{"name":"masksToBounds(_:)","abstract":"

    Set the masksToBounds for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7overlay5color7opacityACSo7UIColorC_12CoreGraphics7CGFloatVtFZ":{"name":"overlay(color:opacity:)","abstract":"

    Create an overlay on the animating view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8durationyACSdFZ":{"name":"duration(_:)","abstract":"

    Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20durationMatchLongestACvpZ":{"name":"durationMatchLongest","abstract":"

    Sets the duration of the animation for a given view to match the longest animation of the transition.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5delayyACSdFZ":{"name":"delay(_:)","abstract":"

    Sets the delay of the animation for a given view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14timingFunctionyACSo013CAMediaTimingD0CFZ":{"name":"timingFunction(_:)","abstract":"

    Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6spring9stiffness7dampingAC12CoreGraphics7CGFloatV_AItFZ":{"name":"spring(stiffness:damping:)","abstract":"

    (iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6source6heroIDACSS_tFZ":{"name":"source(heroID:)","abstract":"

    Transition from/to the state of the view with matching heroID","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arcACvpZ":{"name":"arc","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arc9intensityAC12CoreGraphics7CGFloatV_tFZ":{"name":"arc(intensity:)","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascadeACvpZ":{"name":"cascade","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascade5delta9direction17delayMatchedViewsACSd_AA16CascadeDirectionOSbtFZ":{"name":"cascade(delta:direction:delayMatchedViews:)","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_SayACGtFZ":{"name":"when(_:_:)","abstract":"

    Apply modifiers only if the condition return true.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_ACdtFZ":{"name":"when(_:_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11whenMatchedyA2Cd_tFZ":{"name":"whenMatched(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenPresentingyA2Cd_tFZ":{"name":"whenPresenting(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenDismissingyA2Cd_tFZ":{"name":"whenDismissing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13whenAppearingyA2Cd_tFZ":{"name":"whenAppearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC16whenDisappearingyA2Cd_tFZ":{"name":"whenDisappearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9containerSo6UIViewCvp":{"name":"container","abstract":"

    The container holding all of the animating views

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9fromViewsSaySo6UIViewCGvp":{"name":"fromViews","abstract":"

    A flattened list of all views from source ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC7toViewsSaySo6UIViewCGvp":{"name":"toViews","abstract":"

    A flattened list of all views from destination ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10sourceView3forSo6UIViewCSgSS_tF":{"name":"sourceView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC15destinationView3forSo6UIViewCSgSS_tF":{"name":"destinationView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10pairedView3forSo6UIViewCSgAG_tF":{"name":"pairedView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC12snapshotView3forSo6UIViewCAG_tF":{"name":"snapshotView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextCyAA0A11TargetStateVSgSo6UIViewCcip":{"name":"subscript(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC4hide4viewySo6UIViewC_tF":{"name":"hide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC6unhide4viewySo6UIViewC_tF":{"name":"unhide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionC4basexvp":{"name":"base","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE2idSSSgvp":{"name":"id","abstract":"

    ID is the identifier for the view. When doing a transition between two view controllers,","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    isEnabled allows to specify whether a view and its subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE20isEnabledForSubviewsSbvp":{"name":"isEnabledForSubviews","abstract":"

    isEnabledForSubviews allows to specify whether a view’s subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9modifiersSayAA0A8ModifierCGSgvp":{"name":"modifiers","abstract":"

    Use modifiers to specify animations alongside the main transition. Checkout HeroModifier.swift for available modifiers.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE14modifierStringSSSgvp":{"name":"modifierString","abstract":"

    modifierString** provides another way to set modifiers. It can be assigned through storyboard.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE18modalAnimationTypeAA0a7DefaultfG0Ovp":{"name":"modalAnimationType","abstract":"

    default hero animation type for presenting & dismissing modally

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE24modalAnimationTypeStringSSSgvp":{"name":"modalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE23navigationAnimationTypeAA0a7DefaultfG0Ovp":{"name":"navigationAnimationType","abstract":"

    default hero animation type for push and pop within the navigation controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE29navigationAnimationTypeStringSSSgvp":{"name":"navigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD13AnimationTypeAA0a7DefaultgH0Ovp":{"name":"tabBarAnimationType","abstract":"

    default hero animation type for switching tabs within the tab bar controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD19AnimationTypeStringSSSgvp":{"name":"tabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011dismissViewD010completionyyycSg_tF":{"name":"dismissViewController(completion:)","abstract":"

    Dismiss the current view controller with animation. Will perform a navigationController.popViewController","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE016unwindToRootViewD0yyF":{"name":"unwindToRootViewController()","abstract":"

    Unwind to the root view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD0yyAEF":{"name":"unwindToViewController(_:)","abstract":"

    Unwind to a specific view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD012withSelectory10ObjectiveC0I0V_tF":{"name":"unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD09withClassyyXlXp_tF":{"name":"unwindToViewController(withClass:)","abstract":"

    Unwind to a view controller with given class using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD014withMatchBlockySbAEXE_tF":{"name":"unwindToViewController(withMatchBlock:)","abstract":"

    Unwind to a view controller that the matchBlock returns true on.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011replaceViewD04with10completionyAE_yycSgtF":{"name":"replaceViewController(with:completion:)","abstract":"

    Replace the current view controller with another VC on the navigation/modal stack.

    ","parent_name":"HeroExtension"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC9showOnTopSbvpZ":{"name":"showOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC7animate9fromViews02toF0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC5cleanyyF":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6onDoneyyF":{"name":"onDone()","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC22onProcessSliderChanged8progressySf_tF":{"name":"onProcessSliderChanged(progress:)","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    The singleton class/object for controlling interactive transitions.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following functions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV4viewSo6UIViewCSgvp":{"name":"view","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11isAppearingSbvp":{"name":"isAppearing","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInTabbarControllerSbvp":{"name":"isInTabbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV20isInNavbarControllerSbvp":{"name":"isInNavbarController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV9isMatchedSbvp":{"name":"isMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21isAncestorViewMatchedSbvp":{"name":"isAncestorViewMatched","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV11matchedViewSo6UIViewCSgvp":{"name":"matchedView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19matchedAncestorViewSo6UIViewC_AFtSgvp":{"name":"matchedAncestorView","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV18fromViewControllerSo06UIViewF0Cvp":{"name":"fromViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV16toViewControllerSo06UIViewF0Cvp":{"name":"toViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV21currentViewControllerSo06UIViewF0Cvp":{"name":"currentViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroConditionalContext.html#/s:4Hero0A18ConditionalContextV19otherViewControllerSo06UIViewF0Cvp":{"name":"otherViewController","abstract":"

    Undocumented

    ","parent_name":"HeroConditionalContext"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV05beginC0SayAA0A8ModifierCGSgvp":{"name":"beginState","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV20conditionalModifiersSaySbAA0A18ConditionalContextVc_SayAA0A8ModifierCGtGSgvp":{"name":"conditionalModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8positionSo7CGPointVSgvp":{"name":"position","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV4sizeSo6CGSizeVSgvp":{"name":"size","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9transformSo13CATransform3DVSgvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7opacitySfSgvp":{"name":"opacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15backgroundColorSo10CGColorRefaSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV9zPosition12CoreGraphics7CGFloatVSgvp":{"name":"zPosition","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12contentsRectSo6CGRectVSgvp":{"name":"contentsRect","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13contentsScale12CoreGraphics7CGFloatVSgvp":{"name":"contentsScale","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderWidth12CoreGraphics7CGFloatVSgvp":{"name":"borderWidth","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11borderColorSo10CGColorRefaSgvp":{"name":"borderColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV11shadowColorSo10CGColorRefaSgvp":{"name":"shadowColor","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13shadowOpacitySfSgvp":{"name":"shadowOpacity","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowOffsetSo6CGSizeVSgvp":{"name":"shadowOffset","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12shadowRadius12CoreGraphics7CGFloatVSgvp":{"name":"shadowRadius","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV10shadowPathSo9CGPathRefaSgvp":{"name":"shadowPath","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13masksToBoundsSbSgvp":{"name":"masksToBounds","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV13displayShadowSbvp":{"name":"displayShadow","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7overlaySo10CGColorRefa5color_12CoreGraphics7CGFloatV7opacitytSgvp":{"name":"overlay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6spring12CoreGraphics7CGFloatV_AGtSgvp":{"name":"spring","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV5delaySdvp":{"name":"delay","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV8durationSdSgvp":{"name":"duration","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV14timingFunctionSo013CAMediaTimingE0CSgvp":{"name":"timingFunction","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV3arc12CoreGraphics7CGFloatVSgvp":{"name":"arc","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6sourceSSSgvp":{"name":"source","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7cascadeSd_AA16CascadeDirectionOSbtSgvp":{"name":"cascade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV22ignoreSubviewModifiersSbSgvp":{"name":"ignoreSubviewModifiers","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV15coordinateSpaceAA0a10CoordinateE0OSgvp":{"name":"coordinateSpace","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV23useScaleBasedSizeChangeSbSgvp":{"name":"useScaleBasedSizeChange","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12snapshotTypeAA0a8SnapshotE0OSgvp":{"name":"snapshotType","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV7nonFadeSbvp":{"name":"nonFade","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV12forceAnimateSbvp":{"name":"forceAnimate","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6customSDySSypGSgvp":{"name":"custom","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6appendyyAA0A8ModifierCF":{"name":"append(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateV6append10contentsOfySayAA0A8ModifierCG_tF":{"name":"append(contentsOf:)","abstract":"

    Undocumented

    ","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:4Hero0A11TargetStateVyypSgSScip":{"name":"subscript(_:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html#/s:s25ExpressibleByArrayLiteralP05arrayD0x0cD7ElementQzd_tcfc":{"name":"init(arrayLiteral:)","parent_name":"HeroTargetState"},"Structs/HeroTargetState.html":{"name":"HeroTargetState","abstract":"

    Undocumented

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

    Undocumented

    "},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_AA0aB5StateOtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroTransitionDelegate.html#/s:4Hero0A18TransitionDelegateP04heroB0_9didUpdateyAA0aB0C_SdtF":{"name":"heroTransition(_:didUpdate:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionDelegate"},"Protocols/HeroStringConvertible.html#/s:4Hero0A17StringConvertibleP4from4nodexSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroStringConvertible"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingFromViewController:":{"name":"heroWillStartAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingFromViewController:":{"name":"heroDidEndAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingFromViewController:":{"name":"heroDidCancelAnimatingFrom(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartTransition":{"name":"heroWillStartTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndTransition":{"name":"heroDidEndTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelTransition":{"name":"heroDidCancelTransition()","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroWillStartAnimatingToViewController:":{"name":"heroWillStartAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidEndAnimatingToViewController:":{"name":"heroDidEndAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroViewControllerDelegate.html#/c:@M@Hero@objc(pl)HeroViewControllerDelegate(im)heroDidCancelAnimatingToViewController:":{"name":"heroDidCancelAnimatingTo(viewController:)","abstract":"

    Undocumented

    ","parent_name":"HeroViewControllerDelegate"},"Protocols/HeroProgressUpdateObserver.html#/s:4Hero0A22ProgressUpdateObserverP07heroDidcB08progressySd_tF":{"name":"heroDidUpdateProgress(progress:)","abstract":"

    Undocumented

    ","parent_name":"HeroProgressUpdateObserver"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroAnimator.html#/s:4Hero0A8AnimatorP12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroAnimator"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroPreprocessor.html#/s:4Hero0A12PreprocessorP7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Undocumented

    ","parent_name":"HeroPreprocessor"},"Protocols/HeroCustomSnapshotView.html#/s:4Hero0A18CustomSnapshotViewP04heroC0So6UIViewCSgvp":{"name":"heroSnapshot","abstract":"

    Undocumented

    ","parent_name":"HeroCustomSnapshotView"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP0B4TypeQa":{"name":"CompatibleType","abstract":"

    Undocumented

    ","parent_name":"HeroCompatible"},"Protocols/HeroCompatible.html#/s:4Hero0A10CompatibleP4heroAA0A9ExtensionCy0B4TypeQzGvp":{"name":"hero","abstract":"

    Undocumented

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

    Undocumented

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

    Allows a view to create their own custom snapshot when using Optimized snapshot

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Functions.html#/s:4Hero2eeoiySbAA8ExprNodeC_ADtF":{"name":"==(_:_:)","abstract":"

    Undocumented

    "},"Extensions/HeroDebugView.html#/gestureRecognizerShouldBegin(_:)":{"name":"gestureRecognizerShouldBegin(_:)","parent_name":"HeroDebugView"},"Extensions/UINavigationController.html#/Operation":{"name":"Operation","parent_name":"UINavigationController"},"Extensions/String.html#/s:SS4HeroE5match5regexSS_SnySiGtSgSS_tF":{"name":"match(regex:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/UITabBarController.html#/s:So18UITabBarControllerC4HeroE07heroTabB13AnimationTypeAC0d7DefaultgH0Ovp":{"name":"heroTabBarAnimationType","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UITabBarController.html#/c:@CM@Hero@@objc(cs)UITabBarController(py)heroTabBarAnimationTypeString":{"name":"heroTabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UITabBarController"},"Extensions/UINavigationController.html#/s:So22UINavigationControllerC4HeroE27heroNavigationAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroNavigationAnimationType","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UINavigationController.html#/c:@CM@Hero@@objc(cs)UINavigationController(py)heroNavigationAnimationTypeString":{"name":"heroNavigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UINavigationController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE22heroModalAnimationTypeAC0c7DefaultfG0Ovp":{"name":"heroModalAnimationType","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)heroModalAnimationTypeString":{"name":"heroModalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)ht_dismiss:":{"name":"ht_dismiss(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE015heroReplaceViewB04withyAB_tF":{"name":"heroReplaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_dismissViewController":{"name":"hero_dismissViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/c:@CM@Hero@@objc(cs)UIViewController(im)hero_unwindToRootViewController":{"name":"hero_unwindToRootViewController()","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB0yyABF":{"name":"hero_unwindToViewController(_:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB012withSelectory10ObjectiveC0I0V_tF":{"name":"hero_unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB09withClassyyXlXp_tF":{"name":"hero_unwindToViewController(withClass:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE017hero_unwindToViewB014withMatchBlockySbABXE_tF":{"name":"hero_unwindToViewController(withMatchBlock:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC4HeroE016hero_replaceViewB04withyAB_tF":{"name":"hero_replaceViewController(with:)","abstract":"

    Undocumented

    ","parent_name":"UIViewController"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroID":{"name":"heroID","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabled":{"name":"isHeroEnabled","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)isHeroEnabledForSubviews":{"name":"isHeroEnabledForSubviews","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/s:So6UIViewC4HeroE13heroModifiersSayAC0B8ModifierCGSgvp":{"name":"heroModifiers","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/UIView.html#/c:@CM@Hero@@objc(cs)UIView(py)heroModifierString":{"name":"heroModifierString","abstract":"

    Undocumented

    ","parent_name":"UIView"},"Extensions/CATransform3D.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CATransform3D"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6linearABvpZ":{"name":"linear","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE6easeInABvpZ":{"name":"easeIn","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE7easeOutABvpZ":{"name":"easeOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE9easeInOutABvpZ":{"name":"easeInOut","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE8standardABvpZ":{"name":"standard","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12decelerationABvpZ":{"name":"deceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE12accelerationABvpZ":{"name":"acceleration","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE5sharpABvpZ":{"name":"sharp","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE11easeOutBackABvpZ":{"name":"easeOutBack","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html#/s:So21CAMediaTimingFunctionC4HeroE4from4nameABSgSS_tFZ":{"name":"from(name:)","abstract":"

    Undocumented

    ","parent_name":"CAMediaTimingFunction"},"Extensions/CAMediaTimingFunction.html":{"name":"CAMediaTimingFunction"},"Extensions/CATransform3D.html":{"name":"CATransform3D"},"Extensions/UIView.html":{"name":"UIView"},"Extensions/UIViewController.html":{"name":"UIViewController"},"Extensions/UINavigationController.html":{"name":"UINavigationController"},"Extensions/UITabBarController.html":{"name":"UITabBarController"},"Extensions/String.html":{"name":"String"},"Extensions/HeroDebugView.html":{"name":"HeroDebugView"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8possibleyA2CmF":{"name":"possible","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8notifiedyA2CmF":{"name":"notified","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO8startingyA2CmF":{"name":"starting","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO9animatingyA2CmF":{"name":"animating","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroTransitionState.html#/s:4Hero0A15TransitionStateO10completingyA2CmF":{"name":"completing","abstract":"

    Undocumented

    ","parent_name":"HeroTransitionState"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceLeftToRightyA2EmF":{"name":"forceLeftToRight","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO16forceRightToLeftyA2EmF":{"name":"forceRightToLeft","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Strategy.html#/s:4Hero0A20DefaultAnimationTypeO8StrategyO13userInterfaceyA2EmF":{"name":"userInterface","abstract":"

    Undocumented

    ","parent_name":"Strategy"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO2upyA2EmF":{"name":"up","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4downyA2EmF":{"name":"down","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO4from4nodeAESgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO17leadingToTrailingAA07CascadeE0OvpZ":{"name":"leadingToTrailing","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO17trailingToLeadingAA07CascadeE0OvpZ":{"name":"trailingToLeading","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO7leadingAEvpZ":{"name":"leading","abstract":"

    Undocumented

    ","parent_name":"Direction"},"Enums/HeroDefaultAnimationType/Direction.html#/s:4Hero0A20DefaultAnimationTypeO9DirectionO8trailingAEvpZ":{"name":"trailing","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pushyA2C9DirectionO_tcACmF":{"name":"push(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4pullyA2C9DirectionO_tcACmF":{"name":"pull(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5coveryA2C9DirectionO_tcACmF":{"name":"cover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7uncoveryA2C9DirectionO_tcACmF":{"name":"uncover(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5slideyA2C9DirectionO_tcACmF":{"name":"slide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO9zoomSlideyA2C9DirectionO_tcACmF":{"name":"zoomSlide(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO6pageInyA2C9DirectionO_tcACmF":{"name":"pageIn(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7pageOutyA2C9DirectionO_tcACmF":{"name":"pageOut(direction:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4fadeyA2CmF":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4zoomyA2CmF":{"name":"zoom","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO7zoomOutyA2CmF":{"name":"zoomOut","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO8selectByyA2C_ACtcACmF":{"name":"selectBy(presenting:dismissing:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO11autoReverse10presentingA2C_tFZ":{"name":"autoReverse(presenting:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO5labelSSSgvp":{"name":"label","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/HeroDefaultAnimationType.html#/s:4Hero0A20DefaultAnimationTypeO4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroDefaultAnimationType"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11topToBottomyA2CmF":{"name":"topToBottom","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11bottomToTopyA2CmF":{"name":"bottomToTop","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11leftToRightyA2CmF":{"name":"leftToRight","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO11rightToLeftyA2CmF":{"name":"rightToLeft","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO6radialyACSo7CGPointV_tcACmF":{"name":"radial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO13inverseRadialyACSo7CGPointV_tcACmF":{"name":"inverseRadial(center:)","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17leadingToTrailingACvpZ":{"name":"leadingToTrailing","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/CascadeDirection.html#/s:4Hero16CascadeDirectionO17trailingToLeadingACvpZ":{"name":"trailingToLeading","abstract":"

    Undocumented

    ","parent_name":"CascadeDirection"},"Enums/ParseError.html#/s:4Hero10ParseErrorO13unexpectTokenyA2CmF":{"name":"unexpectToken","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO17undefinedOperatoryACSScACmF":{"name":"undefinedOperator(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO15expectCharacteryACSJcACmF":{"name":"expectCharacter(_:)","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO16expectExpressionyA2CmF":{"name":"expectExpression","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectArgumentListyA2CmF":{"name":"expectArgumentList","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/ParseError.html#/s:4Hero10ParseErrorO18expectFunctionNameyA2CmF":{"name":"expectFunctionName","abstract":"

    Undocumented

    ","parent_name":"ParseError"},"Enums/Token.html#/s:4Hero5TokenO10identifieryACSS_SnySiGtcACmF":{"name":"identifier(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO6numberyACSf_SnySiGtcACmF":{"name":"number(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO10parensOpenyACSnySiGcACmF":{"name":"parensOpen(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO11parensCloseyACSnySiGcACmF":{"name":"parensClose(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5commayACSnySiGcACmF":{"name":"comma(_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/Token.html#/s:4Hero5TokenO5otheryACSS_SnySiGtcACmF":{"name":"other(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Token"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO4autoyA2CmF":{"name":"auto","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO06sourceB5OnTopyA2CmF":{"name":"sourceViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroViewOrderingStrategy.html#/s:4Hero0A20ViewOrderingStrategyO011destinationB5OnTopyA2CmF":{"name":"destinationViewOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroViewOrderingStrategy"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO6globalyA2CmF":{"name":"global","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroCoordinateSpace.html#/s:4Hero0A15CoordinateSpaceO5localyA2CmF":{"name":"local","abstract":"

    Undocumented

    ","parent_name":"HeroCoordinateSpace"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO9optimizedyA2CmF":{"name":"optimized","abstract":"

    Will optimize for different type of views","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO6normalyA2CmF":{"name":"normal","abstract":"

    snapshotView(afterScreenUpdates:)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO11layerRenderyA2CmF":{"name":"layerRender","abstract":"

    layer.render(in: currentContext)

    ","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html#/s:4Hero0A12SnapshotTypeO02noB0yA2CmF":{"name":"noSnapshot","abstract":"

    will not create snapshot. animate the view directly.","parent_name":"HeroSnapshotType"},"Enums/HeroSnapshotType.html":{"name":"HeroSnapshotType","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/HeroDebugPlugin.html#/showOnTop":{"name":"showOnTop","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/animate(fromViews:toViews:)":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/resume(timePassed:reverse:)":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/clean()":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onDone()":{"name":"onDone()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/onProcessSliderChanged(progress:)":{"name":"onProcessSliderChanged(progress:)","parent_name":"HeroDebugPlugin"},"Classes/Hero.html#/s:4HeroAAC6sharedAA0A10TransitionCvpZ":{"name":"shared","abstract":"

    Shared singleton object for controlling the transition

    ","parent_name":"Hero"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16defaultAnimationAA0a7DefaultD4TypeOvp":{"name":"defaultAnimation","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC14containerColorSo7UIColorCvp":{"name":"containerColor","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24isUserInteractionEnabledSbvp":{"name":"isUserInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC20viewOrderingStrategyAA0a4ViewdE0Ovp":{"name":"viewOrderingStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC33defaultAnimationDirectionStrategyAA0a7DefaultD4TypeO0F0Ovp":{"name":"defaultAnimationDirectionStrategy","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5stateAA0aB5StateOvp":{"name":"state","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC15isTransitioningSbvp":{"name":"isTransitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12isPresentingSbvp":{"name":"isPresenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13transitioningSbvp":{"name":"transitioning","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10presentingSbvp":{"name":"presenting","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC9containerSo6UIViewCSgvp":{"name":"container","abstract":"

    container we created to hold all animating views, will be a subview of the","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC16toViewControllerSo06UIViewE0CSgvp":{"name":"toViewController","abstract":"

    destination view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC18fromViewControllerSo06UIViewE0CSgvp":{"name":"fromViewController","abstract":"

    source view controller

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    context object holding transition informations

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC11interactiveSbvp":{"name":"interactive","abstract":"

    whether or not we are handling transition interactively

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC13totalDurationSdvp":{"name":"totalDuration","abstract":"

    max duration needed by the animators

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8progressSdvp":{"name":"progress","abstract":"

    progress of the current transition. 0 if no transition is happening

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@M@Hero@objc(cs)HeroTransition(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC24observeForProgressUpdate8observeryAA0aeF8Observer_p_tF":{"name":"observeForProgressUpdate(observer:)","abstract":"

    Receive callbacks on each animation frame.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC7animateyyF":{"name":"animate()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC8complete8finishedySb_tF":{"name":"complete(finished:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC10transition4from2to2in10completionySo16UIViewControllerC_AJSo0H0CySbcSgtF":{"name":"transition(from:to:in:completion:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6updateyy12CoreGraphics7CGFloatVF":{"name":"update(_:)","abstract":"

    Update the progress for the interactive transition.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6finish7animateySb_tF":{"name":"finish(animate:)","abstract":"

    Finish the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC6cancel7animateySb_tF":{"name":"cancel(animate:)","abstract":"

    Cancel the interactive transition.","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5apply9modifiers2toySayAA0A8ModifierCG_So6UIViewCtF":{"name":"apply(modifiers:to:)","abstract":"

    Override modifiers during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC12changeTarget9modifiers13isDestination2toySayAA0A8ModifierCG_SbSo6UIViewCtF":{"name":"changeTarget(modifiers:isDestination:to:)","abstract":"

    Override target state during an interactive animation.

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/s:4Hero0A10TransitionC5startyyF":{"name":"start()","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:willShowViewController:animated:":{"name":"navigationController(_:willShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:didShowViewController:animated:":{"name":"navigationController(_:didShow:animated:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:animationControllerForOperation:fromViewController:toViewController:":{"name":"navigationController(_:animationControllerFor:from:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)navigationController:interactionControllerForAnimationController:":{"name":"navigationController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:shouldSelectViewController:":{"name":"tabBarController(_:shouldSelect:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:interactionControllerForAnimationController:":{"name":"tabBarController(_:interactionControllerFor:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)tabBarController:animationControllerForTransitionFromViewController:toViewController:":{"name":"tabBarController(_:animationControllerForTransitionFrom:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForPresentedController:presentingController:sourceController:":{"name":"animationController(forPresented:presenting:source:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationControllerForDismissedController:":{"name":"animationController(forDismissed:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForDismissal:":{"name":"interactionControllerForDismissal(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)interactionControllerForPresentation:":{"name":"interactionControllerForPresentation(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animateTransition:":{"name":"animateTransition(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)transitionDuration:":{"name":"transitionDuration(using:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)animationEnded:":{"name":"animationEnded(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(py)wantsInteractiveStart":{"name":"wantsInteractiveStart","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/HeroTransition.html#/c:@CM@Hero@objc(cs)HeroTransition(im)startInteractiveTransition:":{"name":"startInteractiveTransition(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroTransition"},"Classes/Parser.html#/s:4Hero6ParserC6tokensACSayAA5TokenOG_tcfc":{"name":"init(tokens:)","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/Parser.html#/s:4Hero6ParserC5parseSayAA8ExprNodeCGyKF":{"name":"parse()","abstract":"

    Undocumented

    ","parent_name":"Parser"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototypeAA09PrototypeC0Cvp":{"name":"prototype","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC4bodyAA04ExprC0Cvp":{"name":"body","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/FunctionNode.html#/s:4Hero12FunctionNodeC9prototype4bodyAcA09PrototypeC0C_AA04ExprC0Ctcfc":{"name":"init(prototype:body:)","abstract":"

    Undocumented

    ","parent_name":"FunctionNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC13argumentNamesSaySSGvp":{"name":"argumentNames","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/PrototypeNode.html#/s:4Hero13PrototypeNodeC4name13argumentNamesACSS_SaySSGtcfc":{"name":"init(name:argumentNames:)","abstract":"

    Undocumented

    ","parent_name":"PrototypeNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC9argumentsSayAA04ExprC0CGvp":{"name":"arguments","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/CallNode.html#/s:4Hero8CallNodeC4name9argumentsACSS_SayAA04ExprC0CGtcfc":{"name":"init(name:arguments:)","abstract":"

    Undocumented

    ","parent_name":"CallNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3lhsAA04ExprD0Cvp":{"name":"lhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC3rhsAA04ExprD0Cvp":{"name":"rhs","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/BinaryOpNode.html#/s:4Hero12BinaryOpNodeC4name3lhs3rhsACSS_AA04ExprD0CAHtcfc":{"name":"init(name:lhs:rhs:)","abstract":"

    Undocumented

    ","parent_name":"BinaryOpNode"},"Classes/VariableNode.html#/s:4Hero12VariableNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"VariableNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueSfvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC11descriptionSSvp":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/NumberNode.html#/s:4Hero10NumberNodeC5valueACSf_tcfc":{"name":"init(value:)","abstract":"

    Undocumented

    ","parent_name":"NumberNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC5rangeSnySiGvp":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"ExprNode"},"Classes/ExprNode.html#/s:4Hero8ExprNodeC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Undocumented

    ","parent_name":"ExprNode"},"Classes/Lexer.html#/s:4Hero5LexerC5inputACSS_tcfc":{"name":"init(input:)","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/Lexer.html#/s:4Hero5LexerC8tokenizeSayAA5TokenOGyF":{"name":"tokenize()","abstract":"

    Undocumented

    ","parent_name":"Lexer"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC4heroAA0A10TransitionCSgvp":{"name":"hero","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7contextAA0A7ContextCSgvp":{"name":"context","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC23requirePerFrameCallbackSbvp":{"name":"requirePerFrameCallback","abstract":"

    Determines whether or not to receive seekTo callback on every frame.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/c:@M@Hero@objc(cs)HeroPlugin(im)init":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7process9fromViews02toE0ySaySo6UIViewCG_AItF":{"name":"process(fromViews:toViews:)","abstract":"

    Called before any animation.","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC10canAnimate4view9appearingSbSo6UIViewC_SbtF":{"name":"canAnimate(view:appearing:)","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7animate9fromViews02toE0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","abstract":"

    Perform the animation.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5cleanyyF":{"name":"clean()","abstract":"

    Called when all animations are completed.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6seekTo10timePassedySd_tF":{"name":"seekTo(timePassed:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC5apply5state2toyAA0A11TargetStateV_So6UIViewCtF":{"name":"apply(state:to:)","abstract":"

    For supporting interactive animation only.

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC12changeTarget5state13isDestination2toyAA0aD5StateV_SbSo6UIViewCtF":{"name":"changeTarget(state:isDestination:to:)","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC9isEnabledSbvpZ":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC6enableyyFZ":{"name":"enable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroPlugin.html#/s:4Hero0A6PluginC7disableyyFZ":{"name":"disable()","abstract":"

    Undocumented

    ","parent_name":"HeroPlugin"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13applyFunctionACyAA0A11TargetStateVzc_tcfc":{"name":"init(applyFunction:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyACSayACGFZ":{"name":"beginWith(_:)","abstract":"

    Apply modifiers directly to the view at the start of the transition.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWith9modifiersACSayACG_tFZ":{"name":"beginWith(modifiers:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9beginWithyA2Cd_tFZ":{"name":"beginWith(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC24useGlobalCoordinateSpaceACvpZ":{"name":"useGlobalCoordinateSpace","abstract":"

    Use global coordinate space.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiersACvpZ":{"name":"ignoreSubviewModifiers","abstract":"

    ignore all heroModifiers attributes for a view’s direct subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22ignoreSubviewModifiers9recursiveACSb_tFZ":{"name":"ignoreSubviewModifiers(recursive:)","abstract":"

    ignore all heroModifiers attributes for a view’s subviews.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20useOptimizedSnapshotACvpZ":{"name":"useOptimizedSnapshot","abstract":"

    Will create snapshot optimized for different view type.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC17useNormalSnapshotACvpZ":{"name":"useNormalSnapshot","abstract":"

    Create snapshot using snapshotView(afterScreenUpdates:).

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC22useLayerRenderSnapshotACvpZ":{"name":"useLayerRenderSnapshot","abstract":"

    Create snapshot using layer.render(in: currentContext).","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13useNoSnapshotACvpZ":{"name":"useNoSnapshot","abstract":"

    Force Hero to not create any snapshot when animating this view.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceAnimateACvpZ":{"name":"forceAnimate","abstract":"

    Force the view to animate.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC23useScaleBasedSizeChangeACvpZ":{"name":"useScaleBasedSizeChange","abstract":"

    Force Hero use scale based size animation. This will convert all .size modifier into .scale modifier.","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4from4nodeACSgAA8ExprNodeC_tFZ":{"name":"from(node:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4fadeACvpZ":{"name":"fade","abstract":"

    Fade the view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12forceNonFadeACvpZ":{"name":"forceNonFade","abstract":"

    Force don’t fade view during transition

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8positionyACSo7CGPointVFZ":{"name":"position(_:)","abstract":"

    Set the position for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4sizeyACSo6CGSizeVFZ":{"name":"size(_:)","abstract":"

    Set the size for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9transformyACSo13CATransform3DVFZ":{"name":"transform(_:)","abstract":"

    Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11perspectiveyAC12CoreGraphics7CGFloatVFZ":{"name":"perspective(_:)","abstract":"

    Set the perspective on the transform. use in combination with the rotate modifier.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scale1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"scale(x:y:z:)","abstract":"

    Scale 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5scaleyAC12CoreGraphics7CGFloatVFZ":{"name":"scale(_:)","abstract":"

    Scale in x & y axis

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"translate(x:y:z:)","abstract":"

    Translate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9translate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"translate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate1x1y1zAC12CoreGraphics7CGFloatV_A2JtFZ":{"name":"rotate(x:y:z:)","abstract":"

    Rotate 3d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotate_1zACSo7CGPointV_12CoreGraphics7CGFloatVtFZ":{"name":"rotate(_:z:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6rotateyAC12CoreGraphics7CGFloatVFZ":{"name":"rotate(_:)","abstract":"

    Rotate 2d

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC15backgroundColoryACSo7UIColorCFZ":{"name":"backgroundColor(_:)","abstract":"

    Set the backgroundColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderColoryACSo7UIColorCFZ":{"name":"borderColor(_:)","abstract":"

    Set the borderColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11shadowColoryACSo7UIColorCFZ":{"name":"shadowColor(_:)","abstract":"

    Set the shadowColor for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7overlay5color7opacityACSo7UIColorC_12CoreGraphics7CGFloatVtFZ":{"name":"overlay(color:opacity:)","abstract":"

    Create an overlay on the animating view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7opacityyAC12CoreGraphics7CGFloatVFZ":{"name":"opacity(_:)","abstract":"

    Set the opacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12cornerRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"cornerRadius(_:)","abstract":"

    Set the cornerRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC9zPositionyAC12CoreGraphics7CGFloatVFZ":{"name":"zPosition(_:)","abstract":"

    Set the zPosition for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12contentsRectyACSo6CGRectVFZ":{"name":"contentsRect(_:)","abstract":"

    Set the contentsRect for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13contentsScaleyAC12CoreGraphics7CGFloatVFZ":{"name":"contentsScale(_:)","abstract":"

    Set the contentsScale for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11borderWidthyAC12CoreGraphics7CGFloatVFZ":{"name":"borderWidth(_:)","abstract":"

    Set the borderWidth for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13shadowOpacityyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowOpacity(_:)","abstract":"

    Set the shadowOpacity for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowOffsetyACSo6CGSizeVFZ":{"name":"shadowOffset(_:)","abstract":"

    Set the shadowOffset for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC12shadowRadiusyAC12CoreGraphics7CGFloatVFZ":{"name":"shadowRadius(_:)","abstract":"

    Set the shadowRadius for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC10shadowPathyACSo9CGPathRefaFZ":{"name":"shadowPath(_:)","abstract":"

    Set the shadowPath for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13masksToBoundsyACSbFZ":{"name":"masksToBounds(_:)","abstract":"

    Set the masksToBounds for the view to animate from/to.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC8durationyACSdFZ":{"name":"duration(_:)","abstract":"

    Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC20durationMatchLongestACvpZ":{"name":"durationMatchLongest","abstract":"

    Sets the duration of the animation for a given view to match the longest animation of the transition.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC5delayyACSdFZ":{"name":"delay(_:)","abstract":"

    Sets the delay of the animation for a given view.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14timingFunctionyACSo013CAMediaTimingD0CFZ":{"name":"timingFunction(_:)","abstract":"

    Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6spring9stiffness7dampingAC12CoreGraphics7CGFloatV_AItFZ":{"name":"spring(stiffness:damping:)","abstract":"

    (iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC6source6heroIDACSS_tFZ":{"name":"source(heroID:)","abstract":"

    Transition from/to the state of the view with matching heroID","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arcACvpZ":{"name":"arc","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC3arc9intensityAC12CoreGraphics7CGFloatV_tFZ":{"name":"arc(intensity:)","abstract":"

    Works in combination with position modifier to apply a natural curve when moving to the destination.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascadeACvpZ":{"name":"cascade","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC7cascade5delta9direction17delayMatchedViewsACSd_AA16CascadeDirectionOSbtFZ":{"name":"cascade(delta:direction:delayMatchedViews:)","abstract":"

    Cascade applys increasing delay modifiers to subviews

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_SayACGtFZ":{"name":"when(_:_:)","abstract":"

    Apply modifiers only if the condition return true.

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC4whenyACSbAA0A18ConditionalContextVc_ACdtFZ":{"name":"when(_:_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC11whenMatchedyA2Cd_tFZ":{"name":"whenMatched(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenPresentingyA2Cd_tFZ":{"name":"whenPresenting(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC14whenDismissingyA2Cd_tFZ":{"name":"whenDismissing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC13whenAppearingyA2Cd_tFZ":{"name":"whenAppearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroModifier.html#/s:4Hero0A8ModifierC16whenDisappearingyA2Cd_tFZ":{"name":"whenDisappearing(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroModifier"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9containerSo6UIViewCvp":{"name":"container","abstract":"

    The container holding all of the animating views

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC9fromViewsSaySo6UIViewCGvp":{"name":"fromViews","abstract":"

    A flattened list of all views from source ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC7toViewsSaySo6UIViewCGvp":{"name":"toViews","abstract":"

    A flattened list of all views from destination ViewController

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10sourceView3forSo6UIViewCSgSS_tF":{"name":"sourceView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC15destinationView3forSo6UIViewCSgSS_tF":{"name":"destinationView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC10pairedView3forSo6UIViewCSgAG_tF":{"name":"pairedView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC12snapshotView3forSo6UIViewCAG_tF":{"name":"snapshotView(for:)","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextCyAA0A11TargetStateVSgSo6UIViewCcip":{"name":"subscript(_:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC5cleanyyF":{"name":"clean()","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC4hide4viewySo6UIViewC_tF":{"name":"hide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroContext.html#/s:4Hero0A7ContextC6unhide4viewySo6UIViewC_tF":{"name":"unhide(view:)","abstract":"

    Undocumented

    ","parent_name":"HeroContext"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionC4basexvp":{"name":"base","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE2idSSSgvp":{"name":"id","abstract":"

    ID is the identifier for the view. When doing a transition between two view controllers,","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    isEnabled allows to specify whether a view and its subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE20isEnabledForSubviewsSbvp":{"name":"isEnabledForSubviews","abstract":"

    isEnabledForSubviews allows to specify whether a view’s subviews should be consider for animations.","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE9modifiersSayAA0A8ModifierCGSgvp":{"name":"modifiers","abstract":"

    Use modifiers to specify animations alongside the main transition. Checkout HeroModifier.swift for available modifiers.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo6UIViewCRbzlE14modifierStringSSSgvp":{"name":"modifierString","abstract":"

    modifierString** provides another way to set modifiers. It can be assigned through storyboard.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE18modalAnimationTypeAA0a7DefaultfG0Ovp":{"name":"modalAnimationType","abstract":"

    default hero animation type for presenting & dismissing modally

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE24modalAnimationTypeStringSSSgvp":{"name":"modalAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE9isEnabledSbvp":{"name":"isEnabled","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE23navigationAnimationTypeAA0a7DefaultfG0Ovp":{"name":"navigationAnimationType","abstract":"

    default hero animation type for push and pop within the navigation controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo22UINavigationControllerCRbzlE29navigationAnimationTypeStringSSSgvp":{"name":"navigationAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD13AnimationTypeAA0a7DefaultgH0Ovp":{"name":"tabBarAnimationType","abstract":"

    default hero animation type for switching tabs within the tab bar controller

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo18UITabBarControllerCRbzlE03tabD19AnimationTypeStringSSSgvp":{"name":"tabBarAnimationTypeString","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011dismissViewD010completionyyycSg_tF":{"name":"dismissViewController(completion:)","abstract":"

    Dismiss the current view controller with animation. Will perform a navigationController.popViewController","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE016unwindToRootViewD0yyF":{"name":"unwindToRootViewController()","abstract":"

    Unwind to the root view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD0yyAEF":{"name":"unwindToViewController(_:)","abstract":"

    Unwind to a specific view controller using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD012withSelectory10ObjectiveC0I0V_tF":{"name":"unwindToViewController(withSelector:)","abstract":"

    Undocumented

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD09withClassyyXlXp_tF":{"name":"unwindToViewController(withClass:)","abstract":"

    Unwind to a view controller with given class using Hero

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE012unwindToViewD014withMatchBlockySbAEXE_tF":{"name":"unwindToViewController(withMatchBlock:)","abstract":"

    Unwind to a view controller that the matchBlock returns true on.

    ","parent_name":"HeroExtension"},"Classes/HeroExtension.html#/s:4Hero0A9ExtensionCAASo16UIViewControllerCRbzlE011replaceViewD04with10completionyAE_yycSgtF":{"name":"replaceViewController(with:completion:)","abstract":"

    Replace the current view controller with another VC on the navigation/modal stack.

    ","parent_name":"HeroExtension"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC9showOnTopSbvpZ":{"name":"showOnTop","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC7animate9fromViews02toF0SdSaySo6UIViewCG_AItF":{"name":"animate(fromViews:toViews:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6resume10timePassed7reverseS2d_SbtF":{"name":"resume(timePassed:reverse:)","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC5cleanyyF":{"name":"clean()","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC6onDoneyyF":{"name":"onDone()","abstract":"

    Undocumented

    ","parent_name":"HeroDebugPlugin"},"Classes/HeroDebugPlugin.html#/s:4Hero0A11DebugPluginC22onProcessSliderChanged8progressySf_tF":{"name":"onProcessSliderChanged(progress:)","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    The singleton class/object for controlling interactive transitions.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following functions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 641ff0d8..fba1b9e7 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -1,4464 +1,4499 @@ { "warnings": [ { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", + "line": 27, "symbol": "HeroDebugPlugin", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", + "line": 28, "symbol": "HeroDebugPlugin.showOnTop", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", - "line": 75, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", + "line": 76, "symbol": "HeroDebugPlugin", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", - "line": 76, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", + "line": 77, "symbol": "HeroDebugPlugin.onDone()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", - "line": 86, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Debug Plugin/HeroDebugPlugin.swift", + "line": 87, "symbol": "HeroDebugPlugin.onProcessSliderChanged(progress:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Debug Plugin/HeroDebugView.swift", - "line": 193, - "symbol": "HeroDebugView", - "symbol_kind": "source.lang.swift.decl.extension", - "warning": "undocumented" - }, - { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Debug Plugin/HeroDebugView.swift", - "line": 194, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Debug Plugin/HeroDebugView.swift", + "line": 195, "symbol": "HeroDebugView.gestureRecognizerShouldBegin(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 28, "symbol": "CAMediaTimingFunction.linear", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 28, "symbol": "CAMediaTimingFunction.linear", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 29, "symbol": "CAMediaTimingFunction.easeIn", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 29, "symbol": "CAMediaTimingFunction.easeIn", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 30, "symbol": "CAMediaTimingFunction.easeOut", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 30, "symbol": "CAMediaTimingFunction.easeOut", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 31, "symbol": "CAMediaTimingFunction.easeInOut", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 31, "symbol": "CAMediaTimingFunction.easeInOut", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 34, "symbol": "CAMediaTimingFunction.standard", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 34, "symbol": "CAMediaTimingFunction.standard", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 35, "symbol": "CAMediaTimingFunction.deceleration", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 35, "symbol": "CAMediaTimingFunction.deceleration", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 36, "symbol": "CAMediaTimingFunction.acceleration", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 36, "symbol": "CAMediaTimingFunction.acceleration", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 37, "symbol": "CAMediaTimingFunction.sharp", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 37, "symbol": "CAMediaTimingFunction.sharp", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 40, "symbol": "CAMediaTimingFunction.easeOutBack", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 40, "symbol": "CAMediaTimingFunction.easeOutBack", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 42, "symbol": "CAMediaTimingFunction.from(name:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/CAMediaTimingFunction+Hero.swift", "line": 42, "symbol": "CAMediaTimingFunction.from(name:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 120, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 122, "symbol": "UIView.heroID", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 120, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 122, "symbol": "UIView.heroID", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 127, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 129, "symbol": "UIView.isHeroEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 127, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 129, "symbol": "UIView.isHeroEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 134, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 136, "symbol": "UIView.isHeroEnabledForSubviews", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 134, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 136, "symbol": "UIView.isHeroEnabledForSubviews", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 140, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 142, "symbol": "UIView.heroModifiers", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 140, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 142, "symbol": "UIView.heroModifiers", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 147, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 149, "symbol": "UIView.heroModifierString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIView+Hero.swift", - "line": 147, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIView+Hero.swift", + "line": 149, "symbol": "UIView.heroModifierString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 63, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 65, "symbol": "HeroExtension.modalAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 63, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 65, "symbol": "HeroExtension.modalAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 69, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 71, "symbol": "HeroExtension.isEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 69, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 71, "symbol": "HeroExtension.isEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 126, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 128, "symbol": "UIViewController.heroModalAnimationType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 126, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 128, "symbol": "UIViewController.heroModalAnimationType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 132, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 134, "symbol": "UIViewController.heroModalAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 132, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 134, "symbol": "UIViewController.heroModalAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 138, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 140, "symbol": "UIViewController.isHeroEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 138, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 140, "symbol": "UIViewController.isHeroEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 152, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 154, "symbol": "HeroExtension.navigationAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 152, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 154, "symbol": "HeroExtension.navigationAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 160, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 162, "symbol": "UINavigationController.heroNavigationAnimationType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 160, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 162, "symbol": "UINavigationController.heroNavigationAnimationType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 167, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 169, "symbol": "UINavigationController.heroNavigationAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 167, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 169, "symbol": "UINavigationController.heroNavigationAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 181, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 193, "symbol": "HeroExtension.tabBarAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 181, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 193, "symbol": "HeroExtension.tabBarAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 189, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 201, "symbol": "UITabBarController.heroTabBarAnimationType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 189, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 201, "symbol": "UITabBarController.heroTabBarAnimationType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 196, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 208, "symbol": "UITabBarController.heroTabBarAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 196, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 208, "symbol": "UITabBarController.heroTabBarAnimationTypeString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 230, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 242, "symbol": "HeroExtension.unwindToViewController(withSelector:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 230, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 242, "symbol": "HeroExtension.unwindToViewController(withSelector:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 336, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 350, "symbol": "UIViewController.ht_dismiss(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 336, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 350, "symbol": "UIViewController.ht_dismiss(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 341, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 355, "symbol": "UIViewController.heroReplaceViewController(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 341, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 355, "symbol": "UIViewController.heroReplaceViewController(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 347, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 361, "symbol": "UIViewController.hero_dismissViewController()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 347, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 361, "symbol": "UIViewController.hero_dismissViewController()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 353, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 367, "symbol": "UIViewController.hero_unwindToRootViewController()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 353, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 367, "symbol": "UIViewController.hero_unwindToRootViewController()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 358, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 372, "symbol": "UIViewController.hero_unwindToViewController(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 358, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 372, "symbol": "UIViewController.hero_unwindToViewController(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 363, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 377, "symbol": "UIViewController.hero_unwindToViewController(withSelector:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 363, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 377, "symbol": "UIViewController.hero_unwindToViewController(withSelector:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 368, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 382, "symbol": "UIViewController.hero_unwindToViewController(withClass:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 368, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 382, "symbol": "UIViewController.hero_unwindToViewController(withClass:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 373, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 387, "symbol": "UIViewController.hero_unwindToViewController(withMatchBlock:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 373, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 387, "symbol": "UIViewController.hero_unwindToViewController(withMatchBlock:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 378, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 392, "symbol": "UIViewController.hero_replaceViewController(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Extensions/UIViewController+Hero.swift", - "line": 378, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Extensions/UIViewController+Hero.swift", + "line": 392, "symbol": "UIViewController.hero_replaceViewController(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 25, "symbol": "HeroCompatible", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 25, "symbol": "HeroCompatible", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 26, "symbol": "HeroCompatible.CompatibleType", "symbol_kind": "source.lang.swift.decl.associatedtype", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 26, "symbol": "HeroCompatible.CompatibleType", "symbol_kind": "source.lang.swift.decl.associatedtype", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 28, "symbol": "HeroCompatible.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 28, "symbol": "HeroCompatible.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 31, "symbol": "HeroCompatible", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 31, "symbol": "HeroCompatible", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 32, "symbol": "HeroCompatible.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 32, "symbol": "HeroCompatible.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 38, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 38, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 39, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 39, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 40, "symbol": "HeroExtension.base", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", "line": 40, "symbol": "HeroExtension.base", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 43, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 45, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 43, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 45, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 144, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 146, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 144, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 146, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 173, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 185, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 173, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 185, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 202, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 214, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroCompatible.swift", - "line": 202, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroCompatible.swift", + "line": 214, "symbol": "HeroExtension", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 27, "symbol": "HeroContext", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 27, "symbol": "HeroContext", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 82, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 84, "symbol": "HeroContext", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 82, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 84, "symbol": "HeroContext", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 293, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 318, "symbol": "HeroContext.subscript(_:)", "symbol_kind": "source.lang.swift.decl.function.subscript", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 293, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 318, "symbol": "HeroContext.subscript(_:)", "symbol_kind": "source.lang.swift.decl.function.subscript", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 302, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 327, "symbol": "HeroContext.clean()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 302, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 327, "symbol": "HeroContext.clean()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 312, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 337, "symbol": "HeroContext", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 312, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 337, "symbol": "HeroContext", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 313, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 338, "symbol": "HeroContext.hide(view:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 313, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 338, "symbol": "HeroContext.hide(view:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 324, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 349, "symbol": "HeroContext.unhide(view:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 324, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 349, "symbol": "HeroContext.unhide(view:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 396, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 421, "symbol": "HeroCustomSnapshotView.heroSnapshot", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroContext.swift", - "line": 396, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroContext.swift", + "line": 421, "symbol": "HeroCustomSnapshotView.heroSnapshot", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier+Advanced.swift", - "line": 41, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier+Advanced.swift", + "line": 43, "symbol": "HeroModifier.beginWith(modifiers:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier+Advanced.swift", - "line": 41, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier+Advanced.swift", + "line": 43, "symbol": "HeroModifier.beginWith(modifiers:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier+Advanced.swift", - "line": 45, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier+Advanced.swift", + "line": 47, "symbol": "HeroModifier.beginWith(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier+Advanced.swift", - "line": 45, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier+Advanced.swift", + "line": 47, "symbol": "HeroModifier.beginWith(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier+HeroStringConvertible.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier+HeroStringConvertible.swift", + "line": 29, "symbol": "HeroModifier.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier+HeroStringConvertible.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier+HeroStringConvertible.swift", + "line": 29, "symbol": "HeroModifier.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 27, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 27, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 27, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 27, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 28, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 28, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 29, "symbol": "HeroModifier.init(applyFunction:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 29, "symbol": "HeroModifier.init(applyFunction:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 33, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 35, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 33, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 35, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 72, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 74, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 72, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 74, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 132, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 134, "symbol": "HeroModifier.translate(_:z:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 132, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 134, "symbol": "HeroModifier.translate(_:z:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 151, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 153, "symbol": "HeroModifier.rotate(_:z:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 151, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 153, "symbol": "HeroModifier.rotate(_:z:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 165, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 168, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 165, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 168, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 334, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 215, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 334, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 215, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 392, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 339, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 392, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 339, + "symbol": "HeroModifier", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 397, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 463, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 397, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 463, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 468, "symbol": "HeroModifier", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 476, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 468, + "symbol": "HeroModifier", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 481, "symbol": "HeroModifier.when(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 476, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 481, "symbol": "HeroModifier.when(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 480, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 485, "symbol": "HeroModifier.whenMatched(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 480, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 485, "symbol": "HeroModifier.whenMatched(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 484, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 489, "symbol": "HeroModifier.whenPresenting(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 484, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 489, "symbol": "HeroModifier.whenPresenting(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 488, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 493, "symbol": "HeroModifier.whenDismissing(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 488, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 493, "symbol": "HeroModifier.whenDismissing(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 492, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 497, "symbol": "HeroModifier.whenAppearing(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 492, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 497, "symbol": "HeroModifier.whenAppearing(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 496, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 501, "symbol": "HeroModifier.whenDisappearing(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroModifier.swift", - "line": 496, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroModifier.swift", + "line": 501, "symbol": "HeroModifier.whenDisappearing(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 27, "symbol": "HeroPlugin", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 27, "symbol": "HeroPlugin", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 29, "symbol": "HeroPlugin.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 29, "symbol": "HeroPlugin.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 29, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 31, "symbol": "HeroPlugin.context", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 29, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 31, "symbol": "HeroPlugin.context", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 45, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 47, "symbol": "HeroPlugin.init()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 45, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 47, "symbol": "HeroPlugin.init()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 130, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 132, "symbol": "HeroPlugin.changeTarget(state:isDestination:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 130, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 132, "symbol": "HeroPlugin.changeTarget(state:isDestination:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 134, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 136, "symbol": "HeroPlugin", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 134, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 136, "symbol": "HeroPlugin", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 135, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 137, "symbol": "HeroPlugin.isEnabled", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 135, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 137, "symbol": "HeroPlugin.isEnabled", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 147, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 149, "symbol": "HeroPlugin.enable()", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 147, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 149, "symbol": "HeroPlugin.enable()", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 150, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 152, "symbol": "HeroPlugin.disable()", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroPlugin.swift", - "line": 150, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroPlugin.swift", + "line": 152, "symbol": "HeroPlugin.disable()", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 26, "symbol": "HeroSnapshotType", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 26, "symbol": "HeroSnapshotType", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 44, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 45, "symbol": "HeroCoordinateSpace", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 44, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 45, "symbol": "HeroCoordinateSpace", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 45, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 46, "symbol": "HeroCoordinateSpace.global", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 45, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 46, "symbol": "HeroCoordinateSpace.global", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 46, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 47, "symbol": "HeroCoordinateSpace.local", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 46, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 47, "symbol": "HeroCoordinateSpace.local", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 49, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 50, "symbol": "HeroTargetState", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 49, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 50, "symbol": "HeroTargetState", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 51, "symbol": "HeroTargetState.beginState", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 51, "symbol": "HeroTargetState.beginState", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 51, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 52, "symbol": "HeroTargetState.conditionalModifiers", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 51, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 52, "symbol": "HeroTargetState.conditionalModifiers", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 53, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 54, "symbol": "HeroTargetState.position", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 53, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 54, "symbol": "HeroTargetState.position", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 54, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 55, "symbol": "HeroTargetState.size", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 54, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 55, "symbol": "HeroTargetState.size", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 55, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 56, "symbol": "HeroTargetState.transform", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 55, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 56, "symbol": "HeroTargetState.transform", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 56, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 57, "symbol": "HeroTargetState.opacity", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 56, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 57, "symbol": "HeroTargetState.opacity", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 57, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 58, "symbol": "HeroTargetState.cornerRadius", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 57, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 58, "symbol": "HeroTargetState.cornerRadius", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 58, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 59, "symbol": "HeroTargetState.backgroundColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 58, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 59, "symbol": "HeroTargetState.backgroundColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 59, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 60, "symbol": "HeroTargetState.zPosition", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 59, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 60, "symbol": "HeroTargetState.zPosition", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 61, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 62, "symbol": "HeroTargetState.contentsRect", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 61, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 62, "symbol": "HeroTargetState.contentsRect", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 62, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 63, "symbol": "HeroTargetState.contentsScale", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 62, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 63, "symbol": "HeroTargetState.contentsScale", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 65, "symbol": "HeroTargetState.borderWidth", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 65, "symbol": "HeroTargetState.borderWidth", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 65, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 66, "symbol": "HeroTargetState.borderColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 65, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 66, "symbol": "HeroTargetState.borderColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 67, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 68, "symbol": "HeroTargetState.shadowColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 67, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 68, "symbol": "HeroTargetState.shadowColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 68, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 69, "symbol": "HeroTargetState.shadowOpacity", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 68, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 69, "symbol": "HeroTargetState.shadowOpacity", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 69, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 70, "symbol": "HeroTargetState.shadowOffset", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 69, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 70, "symbol": "HeroTargetState.shadowOffset", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 71, "symbol": "HeroTargetState.shadowRadius", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 71, "symbol": "HeroTargetState.shadowRadius", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 71, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 72, "symbol": "HeroTargetState.shadowPath", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 71, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 72, "symbol": "HeroTargetState.shadowPath", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 72, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 73, "symbol": "HeroTargetState.masksToBounds", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 72, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 73, "symbol": "HeroTargetState.masksToBounds", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 73, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 74, "symbol": "HeroTargetState.displayShadow", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 73, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 74, "symbol": "HeroTargetState.displayShadow", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 75, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 76, "symbol": "HeroTargetState.overlay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 75, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 76, "symbol": "HeroTargetState.overlay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 77, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 78, "symbol": "HeroTargetState.spring", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 77, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 78, "symbol": "HeroTargetState.spring", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 79, "symbol": "HeroTargetState.delay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 79, "symbol": "HeroTargetState.delay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 79, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 80, "symbol": "HeroTargetState.duration", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 79, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 80, "symbol": "HeroTargetState.duration", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 80, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 81, "symbol": "HeroTargetState.timingFunction", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 80, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 81, "symbol": "HeroTargetState.timingFunction", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 82, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 83, "symbol": "HeroTargetState.arc", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 82, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 83, "symbol": "HeroTargetState.arc", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 83, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 84, "symbol": "HeroTargetState.source", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 83, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 84, "symbol": "HeroTargetState.source", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 84, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 85, "symbol": "HeroTargetState.cascade", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 84, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 85, "symbol": "HeroTargetState.cascade", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 86, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 87, "symbol": "HeroTargetState.ignoreSubviewModifiers", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 86, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 87, "symbol": "HeroTargetState.ignoreSubviewModifiers", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 87, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 88, "symbol": "HeroTargetState.coordinateSpace", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 87, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 88, "symbol": "HeroTargetState.coordinateSpace", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 88, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 89, "symbol": "HeroTargetState.useScaleBasedSizeChange", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 88, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 89, "symbol": "HeroTargetState.useScaleBasedSizeChange", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 89, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 90, "symbol": "HeroTargetState.snapshotType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 89, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 90, "symbol": "HeroTargetState.snapshotType", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 91, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 92, "symbol": "HeroTargetState.nonFade", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 91, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 92, "symbol": "HeroTargetState.nonFade", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 92, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 93, "symbol": "HeroTargetState.forceAnimate", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 92, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 93, "symbol": "HeroTargetState.forceAnimate", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 93, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 94, "symbol": "HeroTargetState.custom", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 93, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 94, "symbol": "HeroTargetState.custom", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 99, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 100, "symbol": "HeroTargetState.append(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 99, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 100, "symbol": "HeroTargetState.append(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 103, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 104, "symbol": "HeroTargetState.append(contentsOf:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 103, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 104, "symbol": "HeroTargetState.append(contentsOf:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 125, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 126, "symbol": "HeroTargetState", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTargetState.swift", - "line": 125, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTargetState.swift", + "line": 126, "symbol": "HeroTargetState", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 27, "symbol": "HeroPreprocessor", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 27, "symbol": "HeroPreprocessor", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 28, "symbol": "HeroPreprocessor.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 28, "symbol": "HeroPreprocessor.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 29, "symbol": "HeroPreprocessor.process(fromViews:toViews:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 29, "symbol": "HeroPreprocessor.process(fromViews:toViews:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 32, "symbol": "HeroAnimator", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 32, "symbol": "HeroAnimator", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 33, "symbol": "HeroAnimator.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 33, "symbol": "HeroAnimator.hero", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 34, "symbol": "HeroAnimator.canAnimate(view:appearing:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 34, "symbol": "HeroAnimator.canAnimate(view:appearing:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 33, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 35, "symbol": "HeroAnimator.animate(fromViews:toViews:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 33, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 35, "symbol": "HeroAnimator.animate(fromViews:toViews:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 34, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 36, "symbol": "HeroAnimator.clean()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 34, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 36, "symbol": "HeroAnimator.clean()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 38, "symbol": "HeroAnimator.seekTo(timePassed:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 38, "symbol": "HeroAnimator.seekTo(timePassed:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 37, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 39, "symbol": "HeroAnimator.resume(timePassed:reverse:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 37, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 39, "symbol": "HeroAnimator.resume(timePassed:reverse:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 38, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 40, "symbol": "HeroAnimator.apply(state:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 38, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 40, "symbol": "HeroAnimator.apply(state:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 39, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 41, "symbol": "HeroAnimator.changeTarget(state:isDestination:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 39, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 41, "symbol": "HeroAnimator.changeTarget(state:isDestination:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 42, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 44, "symbol": "HeroProgressUpdateObserver", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 42, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 44, "symbol": "HeroProgressUpdateObserver", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 43, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 45, "symbol": "HeroProgressUpdateObserver.heroDidUpdateProgress(progress:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 43, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 45, "symbol": "HeroProgressUpdateObserver.heroDidUpdateProgress(progress:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 46, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 48, "symbol": "HeroViewOrderingStrategy", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 46, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 48, "symbol": "HeroViewOrderingStrategy", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 49, "symbol": "HeroViewOrderingStrategy.auto", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 49, "symbol": "HeroViewOrderingStrategy.auto", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 49, "symbol": "HeroViewOrderingStrategy.destinationViewOnTop", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 49, "symbol": "HeroViewOrderingStrategy.destinationViewOnTop", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 49, "symbol": "HeroViewOrderingStrategy.sourceViewOnTop", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroTypes.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroTypes.swift", + "line": 49, "symbol": "HeroViewOrderingStrategy.sourceViewOnTop", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 27, "symbol": "HeroViewControllerDelegate", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 27, "symbol": "HeroViewControllerDelegate", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 28, "symbol": "HeroViewControllerDelegate.heroWillStartAnimatingFrom(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 28, "symbol": "HeroViewControllerDelegate.heroWillStartAnimatingFrom(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 29, "symbol": "HeroViewControllerDelegate.heroDidEndAnimatingFrom(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 29, "symbol": "HeroViewControllerDelegate.heroDidEndAnimatingFrom(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 28, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 30, "symbol": "HeroViewControllerDelegate.heroDidCancelAnimatingFrom(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 28, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 30, "symbol": "HeroViewControllerDelegate.heroDidCancelAnimatingFrom(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 32, "symbol": "HeroViewControllerDelegate.heroWillStartTransition()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 32, "symbol": "HeroViewControllerDelegate.heroWillStartTransition()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 33, "symbol": "HeroViewControllerDelegate.heroDidEndTransition()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 33, "symbol": "HeroViewControllerDelegate.heroDidEndTransition()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 34, "symbol": "HeroViewControllerDelegate.heroDidCancelTransition()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 34, "symbol": "HeroViewControllerDelegate.heroDidCancelTransition()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 34, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 36, "symbol": "HeroViewControllerDelegate.heroWillStartAnimatingTo(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 34, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 36, "symbol": "HeroViewControllerDelegate.heroWillStartAnimatingTo(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 35, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 37, "symbol": "HeroViewControllerDelegate.heroDidEndAnimatingTo(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 35, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 37, "symbol": "HeroViewControllerDelegate.heroDidEndAnimatingTo(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 38, "symbol": "HeroViewControllerDelegate.heroDidCancelAnimatingTo(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/HeroViewControllerDelegate.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/HeroViewControllerDelegate.swift", + "line": 38, "symbol": "HeroViewControllerDelegate.heroDidCancelAnimatingTo(viewController:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/HeroStringConvertible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/HeroStringConvertible.swift", "line": 25, "symbol": "HeroStringConvertible", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/HeroStringConvertible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/HeroStringConvertible.swift", "line": 25, "symbol": "HeroStringConvertible", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/HeroStringConvertible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/HeroStringConvertible.swift", "line": 26, "symbol": "HeroStringConvertible.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/HeroStringConvertible.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/HeroStringConvertible.swift", "line": 26, "symbol": "HeroStringConvertible.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 11, "symbol": "Token", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 11, "symbol": "Token", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 12, "symbol": "Token.identifier(_:_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 12, "symbol": "Token.identifier(_:_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 13, "symbol": "Token.number(_:_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 13, "symbol": "Token.number(_:_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 14, "symbol": "Token.parensOpen(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 14, "symbol": "Token.parensOpen(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 15, "symbol": "Token.parensClose(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 15, "symbol": "Token.parensClose(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 16, "symbol": "Token.comma(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 16, "symbol": "Token.comma(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 17, "symbol": "Token.other(_:_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 17, "symbol": "Token.other(_:_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 30, "symbol": "Lexer", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 30, "symbol": "Lexer", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 32, "symbol": "Lexer.init(input:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 32, "symbol": "Lexer.init(input:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 35, "symbol": "Lexer.tokenize()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Lexer.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Lexer.swift", "line": 35, "symbol": "Lexer.tokenize()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 11, "symbol": "ExprNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 11, "symbol": "ExprNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 12, "symbol": "ExprNode.range", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 12, "symbol": "ExprNode.range", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 13, "symbol": "ExprNode.name", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 13, "symbol": "ExprNode.name", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 17, "symbol": "ExprNode.init(name:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 17, "symbol": "ExprNode.init(name:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 22, "symbol": "==(_:_:)", "symbol_kind": "source.lang.swift.decl.function.free", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 22, "symbol": "==(_:_:)", "symbol_kind": "source.lang.swift.decl.function.free", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 26, "symbol": "NumberNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 26, "symbol": "NumberNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 27, "symbol": "NumberNode.value", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 27, "symbol": "NumberNode.value", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 28, "symbol": "NumberNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 28, "symbol": "NumberNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 31, "symbol": "NumberNode.init(value:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 31, "symbol": "NumberNode.init(value:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 37, "symbol": "VariableNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 37, "symbol": "VariableNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 38, "symbol": "VariableNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 38, "symbol": "VariableNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 43, "symbol": "BinaryOpNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 43, "symbol": "BinaryOpNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 44, "symbol": "BinaryOpNode.lhs", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 44, "symbol": "BinaryOpNode.lhs", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 45, "symbol": "BinaryOpNode.rhs", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 45, "symbol": "BinaryOpNode.rhs", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 46, "symbol": "BinaryOpNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 46, "symbol": "BinaryOpNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 49, "symbol": "BinaryOpNode.init(name:lhs:rhs:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 49, "symbol": "BinaryOpNode.init(name:lhs:rhs:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 56, "symbol": "CallNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 56, "symbol": "CallNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 57, "symbol": "CallNode.arguments", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 57, "symbol": "CallNode.arguments", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 58, "symbol": "CallNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 58, "symbol": "CallNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 61, "symbol": "CallNode.init(name:arguments:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 61, "symbol": "CallNode.init(name:arguments:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 67, "symbol": "PrototypeNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 67, "symbol": "PrototypeNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 68, "symbol": "PrototypeNode.argumentNames", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 68, "symbol": "PrototypeNode.argumentNames", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 69, "symbol": "PrototypeNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 69, "symbol": "PrototypeNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 72, "symbol": "PrototypeNode.init(name:argumentNames:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 72, "symbol": "PrototypeNode.init(name:argumentNames:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 78, "symbol": "FunctionNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 78, "symbol": "FunctionNode", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 79, "symbol": "FunctionNode.prototype", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 79, "symbol": "FunctionNode.prototype", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 80, "symbol": "FunctionNode.body", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 80, "symbol": "FunctionNode.body", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 81, "symbol": "FunctionNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 81, "symbol": "FunctionNode.description", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 84, "symbol": "FunctionNode.init(prototype:body:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Nodes.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Nodes.swift", "line": 84, "symbol": "FunctionNode.init(prototype:body:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 11, "symbol": "ParseError", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 11, "symbol": "ParseError", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 12, "symbol": "ParseError.unexpectToken", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 12, "symbol": "ParseError.unexpectToken", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 13, "symbol": "ParseError.undefinedOperator(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 13, "symbol": "ParseError.undefinedOperator(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 15, "symbol": "ParseError.expectCharacter(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 15, "symbol": "ParseError.expectCharacter(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 16, "symbol": "ParseError.expectExpression", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 16, "symbol": "ParseError.expectExpression", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 17, "symbol": "ParseError.expectArgumentList", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 17, "symbol": "ParseError.expectArgumentList", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 18, "symbol": "ParseError.expectFunctionName", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 18, "symbol": "ParseError.expectFunctionName", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 21, "symbol": "Parser", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 21, "symbol": "Parser", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 25, "symbol": "Parser.init(tokens:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 25, "symbol": "Parser.init(tokens:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 156, "symbol": "Parser.parse()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Parser.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Parser.swift", "line": 156, "symbol": "Parser.parse()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Regex.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Regex.swift", "line": 13, "symbol": "String.match(regex:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Parser/Regex.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Parser/Regex.swift", "line": 13, "symbol": "String.match(regex:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 29, "symbol": "CascadeDirection", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 29, "symbol": "CascadeDirection", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 28, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 30, "symbol": "CascadeDirection.topToBottom", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 28, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 30, "symbol": "CascadeDirection.topToBottom", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 29, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 31, "symbol": "CascadeDirection.bottomToTop", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 29, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 31, "symbol": "CascadeDirection.bottomToTop", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 32, "symbol": "CascadeDirection.leftToRight", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 32, "symbol": "CascadeDirection.leftToRight", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 33, "symbol": "CascadeDirection.rightToLeft", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 33, "symbol": "CascadeDirection.rightToLeft", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 34, "symbol": "CascadeDirection.radial(center:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 34, "symbol": "CascadeDirection.radial(center:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 33, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 35, "symbol": "CascadeDirection.inverseRadial(center:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 33, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 35, "symbol": "CascadeDirection.inverseRadial(center:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 76, "symbol": "CascadeDirection.leadingToTrailing", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 76, "symbol": "CascadeDirection.leadingToTrailing", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 80, "symbol": "CascadeDirection.trailingToLeading", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/CascadePreprocessor.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/CascadePreprocessor.swift", + "line": 80, "symbol": "CascadeDirection.trailingToLeading", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 27, "symbol": "HeroConditionalContext", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 27, "symbol": "HeroConditionalContext", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 29, "symbol": "HeroConditionalContext.view", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 29, "symbol": "HeroConditionalContext.view", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 29, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 31, "symbol": "HeroConditionalContext.isAppearing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 29, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 31, "symbol": "HeroConditionalContext.isAppearing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 33, "symbol": "HeroConditionalContext.isPresenting", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 31, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 33, "symbol": "HeroConditionalContext.isPresenting", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 34, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 36, "symbol": "HeroConditionalContext.isInTabbarController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 34, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 36, "symbol": "HeroConditionalContext.isInTabbarController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 37, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 39, "symbol": "HeroConditionalContext.isInNavbarController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 37, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 39, "symbol": "HeroConditionalContext.isInNavbarController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 40, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 42, "symbol": "HeroConditionalContext.isMatched", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 40, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 42, "symbol": "HeroConditionalContext.isMatched", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 43, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 45, "symbol": "HeroConditionalContext.isAncestorViewMatched", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 43, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 45, "symbol": "HeroConditionalContext.isAncestorViewMatched", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 49, "symbol": "HeroConditionalContext.matchedView", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 49, "symbol": "HeroConditionalContext.matchedView", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 52, "symbol": "HeroConditionalContext.matchedAncestorView", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 52, "symbol": "HeroConditionalContext.matchedAncestorView", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 61, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 63, "symbol": "HeroConditionalContext.fromViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 61, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 63, "symbol": "HeroConditionalContext.fromViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 66, "symbol": "HeroConditionalContext.toViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 66, "symbol": "HeroConditionalContext.toViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 67, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 69, "symbol": "HeroConditionalContext.currentViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 67, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 69, "symbol": "HeroConditionalContext.currentViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 72, "symbol": "HeroConditionalContext.otherViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/ConditionalPreprocessor.swift", + "line": 72, "symbol": "HeroConditionalContext.otherViewController", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 27, "symbol": "HeroDefaultAnimationType", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 27, "symbol": "HeroDefaultAnimationType", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 28, "symbol": "HeroDefaultAnimationType.Direction", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 28, "symbol": "HeroDefaultAnimationType.Direction", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.down", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.down", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.left", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.left", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.right", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.right", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.up", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 29, "symbol": "HeroDefaultAnimationType.Direction.up", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 28, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 30, "symbol": "HeroDefaultAnimationType.Direction.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 28, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 30, "symbol": "HeroDefaultAnimationType.Direction.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 40, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 42, + "symbol": "HeroDefaultAnimationType.Direction.leadingToTrailing", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 42, + "symbol": "HeroDefaultAnimationType.Direction.leadingToTrailing", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 46, + "symbol": "HeroDefaultAnimationType.Direction.trailingToLeading", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 46, + "symbol": "HeroDefaultAnimationType.Direction.trailingToLeading", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 50, "symbol": "HeroDefaultAnimationType.Direction.leading", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 40, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 50, "symbol": "HeroDefaultAnimationType.Direction.leading", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 44, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 54, "symbol": "HeroDefaultAnimationType.Direction.trailing", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 44, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 54, "symbol": "HeroDefaultAnimationType.Direction.trailing", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 49, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 59, "symbol": "HeroDefaultAnimationType.Strategy", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 49, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 59, "symbol": "HeroDefaultAnimationType.Strategy", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 60, "symbol": "HeroDefaultAnimationType.Strategy.forceLeftToRight", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 60, "symbol": "HeroDefaultAnimationType.Strategy.forceLeftToRight", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 60, "symbol": "HeroDefaultAnimationType.Strategy.forceRightToLeft", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 60, "symbol": "HeroDefaultAnimationType.Strategy.forceRightToLeft", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 60, "symbol": "HeroDefaultAnimationType.Strategy.userInterface", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 50, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 60, "symbol": "HeroDefaultAnimationType.Strategy.userInterface", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 63, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 73, "symbol": "HeroDefaultAnimationType.auto", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 63, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 73, "symbol": "HeroDefaultAnimationType.auto", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 74, "symbol": "HeroDefaultAnimationType.push(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 74, "symbol": "HeroDefaultAnimationType.push(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 65, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 75, "symbol": "HeroDefaultAnimationType.pull(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 65, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 75, "symbol": "HeroDefaultAnimationType.pull(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 66, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 76, "symbol": "HeroDefaultAnimationType.cover(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 66, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 76, "symbol": "HeroDefaultAnimationType.cover(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 67, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 77, "symbol": "HeroDefaultAnimationType.uncover(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 67, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 77, "symbol": "HeroDefaultAnimationType.uncover(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 68, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 78, "symbol": "HeroDefaultAnimationType.slide(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 68, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 78, "symbol": "HeroDefaultAnimationType.slide(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 69, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 79, "symbol": "HeroDefaultAnimationType.zoomSlide(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 69, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 79, "symbol": "HeroDefaultAnimationType.zoomSlide(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 80, "symbol": "HeroDefaultAnimationType.pageIn(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 80, "symbol": "HeroDefaultAnimationType.pageIn(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 71, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 81, "symbol": "HeroDefaultAnimationType.pageOut(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 71, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 81, "symbol": "HeroDefaultAnimationType.pageOut(direction:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 72, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 82, "symbol": "HeroDefaultAnimationType.fade", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 72, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 82, "symbol": "HeroDefaultAnimationType.fade", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 73, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 83, "symbol": "HeroDefaultAnimationType.zoom", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 73, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 83, "symbol": "HeroDefaultAnimationType.zoom", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 84, "symbol": "HeroDefaultAnimationType.zoomOut", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 84, "symbol": "HeroDefaultAnimationType.zoomOut", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 76, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 86, "symbol": "HeroDefaultAnimationType.selectBy(presenting:dismissing:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 76, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 86, "symbol": "HeroDefaultAnimationType.selectBy(presenting:dismissing:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 88, "symbol": "HeroDefaultAnimationType.autoReverse(presenting:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 88, "symbol": "HeroDefaultAnimationType.autoReverse(presenting:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 82, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 92, "symbol": "HeroDefaultAnimationType.none", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 82, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 92, "symbol": "HeroDefaultAnimationType.none", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 160, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 170, "symbol": "HeroDefaultAnimationType.label", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 160, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 170, "symbol": "HeroDefaultAnimationType.label", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 174, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 184, "symbol": "HeroDefaultAnimationType", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 174, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 184, "symbol": "HeroDefaultAnimationType", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 175, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 185, "symbol": "HeroDefaultAnimationType.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", - "line": 175, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Preprocessors/DefaultAnimationPreprocessor.swift", + "line": 185, "symbol": "HeroDefaultAnimationType.from(node:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+Animate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+Animate.swift", + "line": 27, "symbol": "HeroTransition.animate()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+Animate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+Animate.swift", + "line": 27, "symbol": "HeroTransition.animate()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+Complete.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+Complete.swift", + "line": 28, "symbol": "HeroTransition.complete(finished:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+Complete.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+Complete.swift", + "line": 28, "symbol": "HeroTransition.complete(finished:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+CustomTransition.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+CustomTransition.swift", + "line": 29, "symbol": "HeroTransition.transition(from:to:in:completion:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+CustomTransition.swift", - "line": 27, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+CustomTransition.swift", + "line": 29, "symbol": "HeroTransition.transition(from:to:in:completion:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+Start.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+Start.swift", + "line": 28, "symbol": "HeroTransition.start()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+Start.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+Start.swift", + "line": 28, "symbol": "HeroTransition.start()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 28, "symbol": "HeroTransition.navigationController(_:willShow:animated:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 28, "symbol": "HeroTransition.navigationController(_:willShow:animated:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 34, "symbol": "HeroTransition.navigationController(_:didShow:animated:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 32, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 34, "symbol": "HeroTransition.navigationController(_:didShow:animated:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 38, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 40, "symbol": "HeroTransition.navigationController(_:animationControllerFor:from:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 38, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 40, "symbol": "HeroTransition.navigationController(_:animationControllerFor:from:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 48, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 50, "symbol": "HeroTransition.navigationController(_:interactionControllerFor:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", - "line": 48, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UINavigationControllerDelegate.swift", + "line": 50, "symbol": "HeroTransition.navigationController(_:interactionControllerFor:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", + "line": 28, "symbol": "HeroTransition.tabBarController(_:shouldSelect:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", + "line": 28, "symbol": "HeroTransition.tabBarController(_:shouldSelect:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", + "line": 38, "symbol": "HeroTransition.tabBarController(_:interactionControllerFor:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", - "line": 36, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", + "line": 38, "symbol": "HeroTransition.tabBarController(_:interactionControllerFor:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", - "line": 40, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", + "line": 42, "symbol": "HeroTransition.tabBarController(_:animationControllerForTransitionFrom:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", - "line": 40, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UITabBarControllerDelegate.swift", + "line": 42, "symbol": "HeroTransition.tabBarController(_:animationControllerForTransitionFrom:to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 32, "symbol": "HeroTransition.animationController(forPresented:presenting:source:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 30, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 32, "symbol": "HeroTransition.animationController(forPresented:presenting:source:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 39, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 41, "symbol": "HeroTransition.animationController(forDismissed:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 39, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 41, "symbol": "HeroTransition.animationController(forDismissed:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 49, "symbol": "HeroTransition.interactionControllerForDismissal(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 49, "symbol": "HeroTransition.interactionControllerForDismissal(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 51, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 53, "symbol": "HeroTransition.interactionControllerForPresentation(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 51, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 53, "symbol": "HeroTransition.interactionControllerForPresentation(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 57, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 59, "symbol": "HeroTransition.animateTransition(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 57, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 59, "symbol": "HeroTransition.animateTransition(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 66, "symbol": "HeroTransition.transitionDuration(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 64, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 66, "symbol": "HeroTransition.transitionDuration(using:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 68, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 70, "symbol": "HeroTransition.animationEnded(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 68, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 70, "symbol": "HeroTransition.animationEnded(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 76, "symbol": "HeroTransition.wantsInteractiveStart", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 76, "symbol": "HeroTransition.wantsInteractiveStart", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 77, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 79, "symbol": "HeroTransition.startInteractiveTransition(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", - "line": 77, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition+UIViewControllerTransitioningDelegate.swift", + "line": 79, "symbol": "HeroTransition.startInteractiveTransition(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 26, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 26, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 25, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 27, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 28, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 26, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 28, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 46, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 48, "symbol": "HeroTransitionDelegate", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 46, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 48, "symbol": "HeroTransitionDelegate", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 49, "symbol": "HeroTransitionDelegate.heroTransition(_:didUpdate:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 47, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 49, "symbol": "HeroTransitionDelegate.heroTransition(_:didUpdate:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 48, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 50, "symbol": "HeroTransitionDelegate.heroTransition(_:didUpdate:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 48, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 50, "symbol": "HeroTransitionDelegate.heroTransition(_:didUpdate:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 51, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 53, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 51, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 53, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 52, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 54, "symbol": "HeroTransition.delegate", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 52, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 54, "symbol": "HeroTransition.delegate", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 54, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 56, "symbol": "HeroTransition.defaultAnimation", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 54, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 56, "symbol": "HeroTransition.defaultAnimation", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 55, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 57, "symbol": "HeroTransition.containerColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 55, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 57, "symbol": "HeroTransition.containerColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 56, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 58, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 56, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 58, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 56, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 58, "symbol": "HeroTransition.isUserInteractionEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 56, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 58, "symbol": "HeroTransition.isUserInteractionEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 57, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 59, "symbol": "HeroTransition.viewOrderingStrategy", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 57, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 59, "symbol": "HeroTransition.viewOrderingStrategy", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 58, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 60, "symbol": "HeroTransition.defaultAnimationDirectionStrategy", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 58, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 60, "symbol": "HeroTransition.defaultAnimationDirectionStrategy", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 60, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 62, "symbol": "HeroTransition.state", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 60, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 62, "symbol": "HeroTransition.state", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 72, "symbol": "HeroTransition.isTransitioning", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 70, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 72, "symbol": "HeroTransition.isTransitioning", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 71, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 73, "symbol": "HeroTransition.isPresenting", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 71, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 73, "symbol": "HeroTransition.isPresenting", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 73, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 75, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 73, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 75, "symbol": "HeroTransition", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 76, "symbol": "HeroTransition.transitioning", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 74, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 76, "symbol": "HeroTransition.transitioning", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 80, "symbol": "HeroTransition.presenting", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 78, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 80, "symbol": "HeroTransition.presenting", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 177, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 179, "symbol": "HeroTransition.init()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransition.swift", - "line": 177, + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransition.swift", + "line": 179, "symbol": "HeroTransition.init()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 25, "symbol": "HeroTransitionState", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 25, "symbol": "HeroTransitionState", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 27, "symbol": "HeroTransitionState.possible", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 27, "symbol": "HeroTransitionState.possible", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 31, "symbol": "HeroTransitionState.notified", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 31, "symbol": "HeroTransitionState.notified", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 34, "symbol": "HeroTransitionState.starting", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 34, "symbol": "HeroTransitionState.starting", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 37, "symbol": "HeroTransitionState.animating", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 37, "symbol": "HeroTransitionState.animating", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 40, "symbol": "HeroTransitionState.completing", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/mattielloj/Workspace/Git/Hero/Sources/Transition/HeroTransitionState.swift", + "file": "/Users/jmattiello/Workspace/GitHub/Hero/Sources/Transition/HeroTransitionState.swift", "line": 40, "symbol": "HeroTransitionState.completing", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" } ], - "source_directory": "/Users/mattielloj/Workspace/Git/Hero" + "source_directory": "/Users/jmattiello/Workspace/GitHub/Hero" } \ No newline at end of file