diff --git a/.jazzy.yaml b/.jazzy.yaml index 68fb8f97..e7fb9af6 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -1,6 +1,15 @@ +readme: README.md +author: Vinh Nguyen +author_url: https://github.com/ninjaprox +github_url: https://github.com/ninjaprox/NVActivityIndicatorView + +theme: fullwidth +disable_search: true + +module: NVActivityIndicatorView source_directory: Source xcodebuild_arguments: - -scheme -- NVActivityIndicatorView +- NVActivityIndicatorView-iOS - -project - NVActivityIndicatorView.xcodeproj diff --git a/.swift-version b/.swift-version deleted file mode 100644 index 9f55b2cc..00000000 --- a/.swift-version +++ /dev/null @@ -1 +0,0 @@ -3.0 diff --git a/.travis.yml b/.travis.yml index 1201a4ca..50e37b11 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ env: - SCHEME=NVActivityIndicatorViewTests matrix: include: - - osx_image: xcode10 - env: SDK="iphonesimulator12.0" DESTINATION="name=iPhone 6s,OS=12.0" + - osx_image: xcode10.2 + env: SDK="iphonesimulator12.2" DESTINATION="name=iPhone 6s,OS=12.2" script: - set -o pipefail - pod install --project-directory=Example diff --git a/CHANGELOG.md b/CHANGELOG.md index dc9de0d3..e793f106 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Change log +## [4.8.0](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.8.0) +* Add Swift Package Manager support (#290) + +## [4.7.0](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.7.0) +* Default nil fadeInAnimation and fadeOutAnimation (#264) +* Swift 5 migration (#274) + +## [4.6.1](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.6.1) +* Fix #261 + +## [4.6.0](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.6.0) +* New NVActivityIndicatorAnimationBallDoubleBounce animation (#258) +* Unify product name (#260) + +## [4.5.1](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.5.1) +* Fix #251 + +## [4.5.0](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.5.0) +* Add tvOS target (#248) + +## [4.4.1](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.4.1) +* Don’t start/stop animating if unnecessary (#239) +* Specify Swift version in Podspec (#245) + ## [4.4.0](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/4.4.0) * Fix #211 * Swift 4.2 migration diff --git a/Example/NVActivityIndicatorViewExample.xcodeproj/project.pbxproj b/Example/NVActivityIndicatorViewExample.xcodeproj/project.pbxproj index 3f85ae18..6dac66a2 100644 --- a/Example/NVActivityIndicatorViewExample.xcodeproj/project.pbxproj +++ b/Example/NVActivityIndicatorViewExample.xcodeproj/project.pbxproj @@ -193,12 +193,12 @@ TargetAttributes = { 1F0326F81F0D28CC00BF3358 = { CreatedOnToolsVersion = 8.3; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; ProvisioningStyle = Manual; }; 1F0327281F0D399E00BF3358 = { CreatedOnToolsVersion = 8.3; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; ProvisioningStyle = Manual; TestTargetID = 1F0326F81F0D28CC00BF3358; }; @@ -209,6 +209,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -250,7 +251,7 @@ files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-NVActivityIndicatorViewExample/Pods-NVActivityIndicatorViewExample-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-NVActivityIndicatorViewExample/Pods-NVActivityIndicatorViewExample-frameworks.sh", "${BUILT_PRODUCTS_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.framework", ); name = "[CP] Embed Pods Frameworks"; @@ -259,7 +260,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-NVActivityIndicatorViewExample/Pods-NVActivityIndicatorViewExample-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NVActivityIndicatorViewExample/Pods-NVActivityIndicatorViewExample-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; C3A662686B21AB8B414FCDA2 /* [CP] Check Pods Manifest.lock */ = { @@ -286,7 +287,7 @@ files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests-frameworks.sh", "${BUILT_PRODUCTS_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.framework", ); name = "[CP] Embed Pods Frameworks"; @@ -295,7 +296,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests/Pods-NVActivityIndicatorViewExample-NVActivityIndicatorViewTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; FC7EC3A272EE15625D0A4145 /* [CP] Check Pods Manifest.lock */ = { @@ -424,7 +425,7 @@ SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -475,7 +476,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -491,8 +492,7 @@ PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorViewExample; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -507,8 +507,7 @@ PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorViewExample; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -526,8 +525,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NVActivityIndicatorViewExample.app/NVActivityIndicatorViewExample"; }; name = Debug; @@ -545,8 +543,7 @@ PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorViewTests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NVActivityIndicatorViewExample.app/NVActivityIndicatorViewExample"; }; name = Release; diff --git a/Example/NVActivityIndicatorViewExample.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewExample.xcscheme b/Example/NVActivityIndicatorViewExample.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewExample.xcscheme new file mode 100644 index 00000000..b9d713ef --- /dev/null +++ b/Example/NVActivityIndicatorViewExample.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewExample.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/NVActivityIndicatorViewExample.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewTests.xcscheme b/Example/NVActivityIndicatorViewExample.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewTests.xcscheme index 0db44822..1244a07f 100644 --- a/Example/NVActivityIndicatorViewExample.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewTests.xcscheme +++ b/Example/NVActivityIndicatorViewExample.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewTests.xcscheme @@ -1,6 +1,6 @@ =4.2) button.addTarget(self, action: #selector(buttonTapped(_:)), @@ -79,26 +83,11 @@ class ViewController: UIViewController, NVActivityIndicatorViewable { } @objc func buttonTapped(_ sender: UIButton) { - NVActivityIndicatorView.DEFAULT_TYPE = .ballPulseSync - NVActivityIndicatorView.DEFAULT_BLOCKER_SIZE = CGSize(width: 40, height: 40) - NVActivityIndicatorView.DEFAULT_BLOCKER_MINIMUM_DISPLAY_TIME = 0 - NVActivityIndicatorView.DEFAULT_BLOCKER_DISPLAY_TIME_THRESHOLD = 0 - NVActivityIndicatorView.DEFAULT_BLOCKER_MESSAGE_FONT = UIFont.systemFont(ofSize: 12) - NVActivityIndicatorView.DEFAULT_IS_BLOCKING_SCREEN = true - NVActivityIndicatorView.DEFAULT_CLOSEABLE = true - NVActivityIndicatorView.DEFAULT_ONCLOSEBLOCK = nil - - let activityData = ActivityData(size: CGSize(width: 96, height: 92), - message: "Harap Tunggu", - messageFont: nil, - type: .blAnimation, - color: .black, - padding: nil, - displayTimeThreshold: 0, - minimumDisplayTime: nil, - isCloseable: false) - - NVActivityIndicatorPresenter.sharedInstance.startAnimating(activityData, nil) + let size = CGSize(width: 30, height: 30) + let selectedIndicatorIndex = sender.tag + let indicatorType = presentingIndicatorTypes[selectedIndicatorIndex] + + startAnimating(size, message: "Loading...", type: indicatorType, fadeInAnimation: nil) DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.5) { NVActivityIndicatorPresenter.sharedInstance.setMessage("Authenticating...") diff --git a/Example/NVActivityIndicatorViewTests/NVActivityIndicatorTypeTests.swift b/Example/NVActivityIndicatorViewTests/NVActivityIndicatorTypeTests.swift index 97ae7976..ffee8940 100644 --- a/Example/NVActivityIndicatorViewTests/NVActivityIndicatorTypeTests.swift +++ b/Example/NVActivityIndicatorViewTests/NVActivityIndicatorTypeTests.swift @@ -75,7 +75,7 @@ class NVActivityIndicatorTypeTests: XCTestCase { } } - func testAllTypes() { - XCTAssertEqual(NVActivityIndicatorType.allTypes.last, NVActivityIndicatorType.circleStrokeSpin) + func testAllCases() { + XCTAssertEqual(NVActivityIndicatorType.allCases.last, NVActivityIndicatorType.circleStrokeSpin) } } diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 6b608629..a217e837 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,7 +1,7 @@ PODS: - - NVActivityIndicatorView (4.4.0): - - NVActivityIndicatorView/Presenter (= 4.4.0) - - NVActivityIndicatorView/Presenter (4.4.0) + - NVActivityIndicatorView (4.8.0): + - NVActivityIndicatorView/Presenter (= 4.8.0) + - NVActivityIndicatorView/Presenter (4.8.0) DEPENDENCIES: - NVActivityIndicatorView (from `../`) @@ -11,8 +11,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - NVActivityIndicatorView: 187d2298793f550c2d36b4b405f7b8da0a462ee6 + NVActivityIndicatorView: 24b713d5140767dc43097cd9d5ff719ff0660bdc PODFILE CHECKSUM: e5d164996aa6d71a0eda53503111c16d861ecbc6 -COCOAPODS: 1.5.3 +COCOAPODS: 1.7.5 diff --git a/NVActivityIndicatorView.podspec b/NVActivityIndicatorView.podspec index 593986ae..41cb4097 100644 --- a/NVActivityIndicatorView.podspec +++ b/NVActivityIndicatorView.podspec @@ -1,26 +1,29 @@ Pod::Spec.new do |s| - s.name = "NVActivityIndicatorView" - s.version = "4.4.0" - s.summary = "A collection of awesome loading animations" - s.homepage = "https://github.com/ninjaprox/NVActivityIndicatorView" - s.screenshot = "https://raw.githubusercontent.com/ninjaprox/NVActivityIndicatorView/master/Demo.gif" - s.license = { :type => "MIT", :file => "LICENSE" } - s.author = { "Vinh Nguyen" => "ninjaprox@gmail.com" } - s.social_media_url = "http://twitter.com/ninjaprox" + s.name = 'NVActivityIndicatorView' + s.version = '4.8.0' + s.summary = 'A collection of awesome loading animations' + s.homepage = 'https://github.com/ninjaprox/NVActivityIndicatorView' + s.screenshot = 'https://raw.githubusercontent.com/ninjaprox/NVActivityIndicatorView/master/Demo.gif' + s.license = { type: 'MIT', file: 'LICENSE' } + s.author = { 'Vinh Nguyen' => 'ninjaprox@gmail.com' } + s.social_media_url = 'http://twitter.com/ninjaprox' + s.documentation_url = 'https://nvactivityindicatorview.vinhis.me' - s.ios.deployment_target = "8.0" - s.tvos.deployment_target = "9.0" + s.ios.deployment_target = '8.0' + s.tvos.deployment_target = '9.0' + s.swift_version = '5.0' - s.source = { :git => "https://github.com/ninjaprox/NVActivityIndicatorView.git", :tag => s.version } - s.resources = "NVActivityIndicatorView/NVActivityIndicatorView/Images.xcassets" - s.subspec "Presenter" do |ps| - ps.source_files = "Source/NVActivityIndicatorView/**/*.swift" + s.source = { git: 'https://github.com/ninjaprox/NVActivityIndicatorView.git', + tag: s.version } + + s.subspec 'Presenter' do |ps| + ps.source_files = 'Source/NVActivityIndicatorView/**/*.swift' end - s.subspec "AppExtension" do |aes| - aes.source_files = "Source/NVActivityIndicatorView/**/*.swift" - aes.exclude_files = "Source/NVActivityIndicatorView/Presenter/*.swift" + s.subspec 'AppExtension' do |aes| + aes.source_files = 'Source/NVActivityIndicatorView/**/*.swift' + aes.exclude_files = 'Source/NVActivityIndicatorView/Presenter/*.swift' end - s.default_subspec = "Presenter" + s.default_subspec = 'Presenter' - s.frameworks = "UIKit", "QuartzCore" + s.frameworks = 'UIKit', 'QuartzCore' end diff --git a/Package.swift b/Package.swift new file mode 100644 index 00000000..dd28795c --- /dev/null +++ b/Package.swift @@ -0,0 +1,15 @@ +// swift-tools-version:4.0 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "NVActivityIndicatorView", + products: [ + .library(name: "NVActivityIndicatorView", targets: ["NVActivityIndicatorView"]) + ], + dependencies: [], + targets: [ + .target(name: "NVActivityIndicatorView", path: "Source/NVActivityIndicatorView") + ] +) diff --git a/README.md b/README.md index 5c1dd6ce..cc2d5102 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ For first-hand experience, just open the project and run it. ### Cocoapods -Install Cocoapods if need be. +Install [Cocoapods](https://cocoapods.org/#install) if need be. ```bash $ gem install cocoapods @@ -49,14 +49,25 @@ use_frameworks! pod 'NVActivityIndicatorView' ``` +If you're using `NVActivityIndicatorView` in an app extension, use `NVActivityIndicatorView/AppExtension` instead. + +```ruby +use_frameworks! + +pod 'NVActivityIndicatorView/AppExtension' +``` + Then, run the following command. ```bash $ pod install ``` + +_**Note:** Please refer to the migration note for version [`3.7.0`](#version-370) below._ + ### Carthage -Install Carthage if need be. +Install [Carthage](https://github.com/Carthage/Carthage#installing-carthage) if need be. ```bash $ brew update @@ -69,7 +80,7 @@ Add `NVActivityIndicatorView` in your `Cartfile`. github "ninjaprox/NVActivityIndicatorView" ``` -Run `carthage` to build the framework and drag the built `NVActivityIndicatorView.framework` into your Xcode project. +Run `carthage` to build the framework and drag the built `NVActivityIndicatorView.framework` in the folder appropriateto the platform, e.g. iOS, tvOS, into your Xcode project. _**Note:** You might encounter compile issue, if so please use `carthage` branch instead. Check issue [#101](https://github.com/ninjaprox/NVActivityIndicatorView/issues/101) for more information._ @@ -83,6 +94,10 @@ _**Note:** If you encounter issues while uploading the app to iTunes Connect, re ## Migration +### Version 4.4.0 + +This version requires Xcode 10.1 and Swift 4.2. + ### Version 4.0.0 This version requires Xcode 9.0 and Swift 4. @@ -91,30 +106,10 @@ This version requires Xcode 9.0 and Swift 4. This version splits `NVActivityIndicatorView` pod to 2 subpods `NVActivityIndicatorView/Presenter` and `NVActivityIndicatorView/AppExtension`. There is no need to change `pod NVActivityIndicatorView` to `pod NVActivityIndicatorView/Presenter` since it will be installed by default if you use the main pod name. -However, if you want to use `NVActivityIndicatorView` in app extension, use `pod NVActivityIndicatorView/AppExtension` instead. +However, if you want to use `NVActivityIndicatorView` in an app extension, use `pod NVActivityIndicatorView/AppExtension` instead. _**Note:** Related issue [#119](https://github.com/ninjaprox/NVActivityIndicatorView/issues/119)._ -### Version 3.6.0 - -This version requires Xcode 8.3 and Swift 3.1. - -### Version 3.0 - -This version requires Xcode 8.0 and Swift 3. - -- `NVActivityIndicatorView.startAnimation()` and `NVActivityIndicatorView.stopAnimation()` are deleted. Use `NVActivityIndicatorView.startAnimating()` and `NVActivityIndicatorView.stopAnimating()` instead. -- `UIViewController.startActivityAnimating()` and `UIViewController.stopActivityAnimating()` are deleted. Use `UIViewController.startAnimating()` and `UIViewController.stopAnimating()` instead. - -### Version 2.0 - -This version continues to spport Xcode 7.0 and Swift 2.2 and earlier. -For Swift 2.3 support, use `swift2.3` branch instead. - -```ruby -pod 'NVActivityIndicatorView', :git => 'https://github.com/ninjaprox/NVActivityIndicatorView.git', :branch => 'swift2.3' -``` - ## Usage Firstly, import `NVActivityIndicatorView`. @@ -125,7 +120,7 @@ import NVActivityIndicatorView ### Initialization -Then, there are two ways you can create NVActivityIndicatorView: +Then, there are two ways you can create `NVActivityIndicatorView`: - By storyboard, changing class of any `UIView` to `NVActivityIndicatorView`. @@ -203,7 +198,7 @@ let activityData = ActivityData() NVActivityIndicatorPresenter.sharedInstance.startAnimating(activityData) ``` -_**Note:** Check [documentation](http://cocoadocs.org/docsets/NVActivityIndicatorView) for detail of `ActivityData`._ +_**Note:** Check [documentation](https://nvactivityindicatorview.vinhis.me) for detail of `ActivityData`._ Stop animating. diff --git a/Source/NVActivityIndicatorView.xcodeproj/project.pbxproj b/Source/NVActivityIndicatorView.xcodeproj/project.pbxproj index 6f585a71..d448bdd3 100644 --- a/Source/NVActivityIndicatorView.xcodeproj/project.pbxproj +++ b/Source/NVActivityIndicatorView.xcodeproj/project.pbxproj @@ -7,10 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 106B7FA9200DB1DD00BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 106B7FA8200DB1DD00BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift */; }; - 106B7FAA200DBAC700BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 106B7FA8200DB1DD00BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift */; }; - 106B802C200DCA6800BF5D9C /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 106B802B200DCA6800BF5D9C /* Images.xcassets */; }; - 106B802D200DCA6800BF5D9C /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 106B802B200DCA6800BF5D9C /* Images.xcassets */; }; 1F0326C51F0D257700BF3358 /* NVActivityIndicatorAnimationAudioEqualizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A01F0D257600BF3358 /* NVActivityIndicatorAnimationAudioEqualizer.swift */; }; 1F0326C61F0D257700BF3358 /* NVActivityIndicatorAnimationBallBeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A11F0D257600BF3358 /* NVActivityIndicatorAnimationBallBeat.swift */; }; 1F0326C71F0D257700BF3358 /* NVActivityIndicatorAnimationBallClipRotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A21F0D257600BF3358 /* NVActivityIndicatorAnimationBallClipRotate.swift */; }; @@ -83,15 +79,55 @@ 1F88CA011F10D0DB00869231 /* NVActivityIndicatorAnimationSemiCircleSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BD1F0D257700BF3358 /* NVActivityIndicatorAnimationSemiCircleSpin.swift */; }; 1F88CA021F10D0DB00869231 /* NVActivityIndicatorAnimationSquareSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BE1F0D257700BF3358 /* NVActivityIndicatorAnimationSquareSpin.swift */; }; 1F88CA031F10D0DB00869231 /* NVActivityIndicatorAnimationTriangleSkewSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BF1F0D257700BF3358 /* NVActivityIndicatorAnimationTriangleSkewSpin.swift */; }; + 1F8F3CC321ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F8F3CC221ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift */; }; + 1F8F3CC421ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F8F3CC221ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift */; }; + 1F8F3CC521ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F8F3CC221ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift */; }; + 1FFEE02B21D10087000A3D14 /* NVActivityIndicatorAnimationAudioEqualizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A01F0D257600BF3358 /* NVActivityIndicatorAnimationAudioEqualizer.swift */; }; + 1FFEE02C21D10087000A3D14 /* NVActivityIndicatorAnimationBallBeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A11F0D257600BF3358 /* NVActivityIndicatorAnimationBallBeat.swift */; }; + 1FFEE02D21D10087000A3D14 /* NVActivityIndicatorAnimationBallClipRotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A21F0D257600BF3358 /* NVActivityIndicatorAnimationBallClipRotate.swift */; }; + 1FFEE02E21D10087000A3D14 /* NVActivityIndicatorAnimationBallClipRotateMultiple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A31F0D257600BF3358 /* NVActivityIndicatorAnimationBallClipRotateMultiple.swift */; }; + 1FFEE02F21D10087000A3D14 /* NVActivityIndicatorAnimationBallClipRotatePulse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A41F0D257600BF3358 /* NVActivityIndicatorAnimationBallClipRotatePulse.swift */; }; + 1FFEE03021D10087000A3D14 /* NVActivityIndicatorAnimationBallGridBeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A51F0D257600BF3358 /* NVActivityIndicatorAnimationBallGridBeat.swift */; }; + 1FFEE03121D10087000A3D14 /* NVActivityIndicatorAnimationBallGridPulse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A61F0D257600BF3358 /* NVActivityIndicatorAnimationBallGridPulse.swift */; }; + 1FFEE03221D10087000A3D14 /* NVActivityIndicatorAnimationBallPulse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A71F0D257600BF3358 /* NVActivityIndicatorAnimationBallPulse.swift */; }; + 1FFEE03321D10087000A3D14 /* NVActivityIndicatorAnimationBallPulseRise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A81F0D257600BF3358 /* NVActivityIndicatorAnimationBallPulseRise.swift */; }; + 1FFEE03421D10087000A3D14 /* NVActivityIndicatorAnimationBallPulseSync.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326A91F0D257600BF3358 /* NVActivityIndicatorAnimationBallPulseSync.swift */; }; + 1FFEE03521D10087000A3D14 /* NVActivityIndicatorAnimationBallRotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326AA1F0D257600BF3358 /* NVActivityIndicatorAnimationBallRotate.swift */; }; + 1FFEE03621D10087000A3D14 /* NVActivityIndicatorAnimationBallRotateChase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326AB1F0D257600BF3358 /* NVActivityIndicatorAnimationBallRotateChase.swift */; }; + 1FFEE03721D10087000A3D14 /* NVActivityIndicatorAnimationBallScale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326AC1F0D257600BF3358 /* NVActivityIndicatorAnimationBallScale.swift */; }; + 1FFEE03821D10087000A3D14 /* NVActivityIndicatorAnimationBallScaleMultiple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326AD1F0D257600BF3358 /* NVActivityIndicatorAnimationBallScaleMultiple.swift */; }; + 1FFEE03921D10087000A3D14 /* NVActivityIndicatorAnimationBallScaleRipple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326AE1F0D257600BF3358 /* NVActivityIndicatorAnimationBallScaleRipple.swift */; }; + 1FFEE03A21D10087000A3D14 /* NVActivityIndicatorAnimationBallScaleRippleMultiple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326AF1F0D257600BF3358 /* NVActivityIndicatorAnimationBallScaleRippleMultiple.swift */; }; + 1FFEE03B21D10087000A3D14 /* NVActivityIndicatorAnimationBallSpinFadeLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B01F0D257600BF3358 /* NVActivityIndicatorAnimationBallSpinFadeLoader.swift */; }; + 1FFEE03C21D10087000A3D14 /* NVActivityIndicatorAnimationBallTrianglePath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B11F0D257600BF3358 /* NVActivityIndicatorAnimationBallTrianglePath.swift */; }; + 1FFEE03D21D10087000A3D14 /* NVActivityIndicatorAnimationBallZigZag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B21F0D257600BF3358 /* NVActivityIndicatorAnimationBallZigZag.swift */; }; + 1FFEE03E21D10087000A3D14 /* NVActivityIndicatorAnimationBallZigZagDeflect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B31F0D257600BF3358 /* NVActivityIndicatorAnimationBallZigZagDeflect.swift */; }; + 1FFEE03F21D10087000A3D14 /* NVActivityIndicatorAnimationBlank.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B41F0D257600BF3358 /* NVActivityIndicatorAnimationBlank.swift */; }; + 1FFEE04021D10087000A3D14 /* NVActivityIndicatorAnimationCubeTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B51F0D257600BF3358 /* NVActivityIndicatorAnimationCubeTransition.swift */; }; + 1FFEE04121D10087000A3D14 /* NVActivityIndicatorAnimationLineScale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B61F0D257700BF3358 /* NVActivityIndicatorAnimationLineScale.swift */; }; + 1FFEE04221D10087000A3D14 /* NVActivityIndicatorAnimationLineScaleParty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B71F0D257700BF3358 /* NVActivityIndicatorAnimationLineScaleParty.swift */; }; + 1FFEE04321D10087000A3D14 /* NVActivityIndicatorAnimationLineScalePulseOut.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B81F0D257700BF3358 /* NVActivityIndicatorAnimationLineScalePulseOut.swift */; }; + 1FFEE04421D10087000A3D14 /* NVActivityIndicatorAnimationLineScalePulseOutRapid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326B91F0D257700BF3358 /* NVActivityIndicatorAnimationLineScalePulseOutRapid.swift */; }; + 1FFEE04521D10087000A3D14 /* NVActivityIndicatorAnimationLineSpinFadeLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BA1F0D257700BF3358 /* NVActivityIndicatorAnimationLineSpinFadeLoader.swift */; }; + 1FFEE04621D10087000A3D14 /* NVActivityIndicatorAnimationOrbit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BB1F0D257700BF3358 /* NVActivityIndicatorAnimationOrbit.swift */; }; + 1FFEE04721D10087000A3D14 /* NVActivityIndicatorAnimationPacman.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BC1F0D257700BF3358 /* NVActivityIndicatorAnimationPacman.swift */; }; + 1FFEE04821D10087000A3D14 /* NVActivityIndicatorAnimationSemiCircleSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BD1F0D257700BF3358 /* NVActivityIndicatorAnimationSemiCircleSpin.swift */; }; + 1FFEE04921D10087000A3D14 /* NVActivityIndicatorAnimationSquareSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BE1F0D257700BF3358 /* NVActivityIndicatorAnimationSquareSpin.swift */; }; + 1FFEE04A21D10087000A3D14 /* NVActivityIndicatorAnimationTriangleSkewSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326BF1F0D257700BF3358 /* NVActivityIndicatorAnimationTriangleSkewSpin.swift */; }; + 1FFEE04B21D10087000A3D14 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A52F0DE1FCDBB8C009377B1 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift */; }; + 1FFEE04C21D10087000A3D14 /* NVActivityIndicatorAnimationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326C01F0D257700BF3358 /* NVActivityIndicatorAnimationDelegate.swift */; }; + 1FFEE04D21D10087000A3D14 /* NVActivityIndicatorShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326C21F0D257700BF3358 /* NVActivityIndicatorShape.swift */; }; + 1FFEE04E21D10087000A3D14 /* NVActivityIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0326C31F0D257700BF3358 /* NVActivityIndicatorView.swift */; }; + 1FFEE04F21D10087000A3D14 /* NVActivityIndicatorPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F88C9D01F10D03E00869231 /* NVActivityIndicatorPresenter.swift */; }; + 1FFEE05021D10087000A3D14 /* NVActivityIndicatorViewable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F88C9D11F10D03E00869231 /* NVActivityIndicatorViewable.swift */; }; + 1FFEE05121D10225000A3D14 /* NVActivityIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = A367103220A1EEEC00081069 /* NVActivityIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FFEE05221D10260000A3D14 /* NVActivityIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = A367103220A1EEEC00081069 /* NVActivityIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4A52F0DF1FCDBB8C009377B1 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A52F0DE1FCDBB8C009377B1 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift */; }; - A367103020A1EE7500081069 /* NVActivityIndicatorViewAppExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F88C9DB1F10D0B200869231 /* NVActivityIndicatorViewAppExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; A367103820A1EF6A00081069 /* NVActivityIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = A367103220A1EEEC00081069 /* NVActivityIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; CE1A6B661FDE9609008059F3 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A52F0DE1FCDBB8C009377B1 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 106B7FA8200DB1DD00BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NVActivityIndicatorAnimationBLAnimation.swift; sourceTree = ""; }; - 106B802B200DCA6800BF5D9C /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 1F0326941F0D24BE00BF3358 /* NVActivityIndicatorView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NVActivityIndicatorView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1F0326A01F0D257600BF3358 /* NVActivityIndicatorAnimationAudioEqualizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NVActivityIndicatorAnimationAudioEqualizer.swift; sourceTree = ""; }; 1F0326A11F0D257600BF3358 /* NVActivityIndicatorAnimationBallBeat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NVActivityIndicatorAnimationBallBeat.swift; sourceTree = ""; }; @@ -131,19 +167,28 @@ 1F88C9D01F10D03E00869231 /* NVActivityIndicatorPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NVActivityIndicatorPresenter.swift; sourceTree = ""; }; 1F88C9D11F10D03E00869231 /* NVActivityIndicatorViewable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NVActivityIndicatorViewable.swift; sourceTree = ""; }; 1F88C9D91F10D0B200869231 /* NVActivityIndicatorViewAppExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NVActivityIndicatorViewAppExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F88C9DB1F10D0B200869231 /* NVActivityIndicatorViewAppExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NVActivityIndicatorViewAppExtension.h; sourceTree = ""; }; - 1F88C9DC1F10D0B200869231 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 1F8F3CC221ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NVActivityIndicatorAnimationBallDoubleBounce.swift; sourceTree = ""; }; + 1FFEE02321D10063000A3D14 /* NVActivityIndicatorView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NVActivityIndicatorView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4A52F0DE1FCDBB8C009377B1 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NVActivityIndicatorAnimationCircleStrokeSpin.swift; sourceTree = ""; }; A367103220A1EEEC00081069 /* NVActivityIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NVActivityIndicatorView.h; sourceTree = ""; }; A367103320A1EEED00081069 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + 1FFEE02021D10063000A3D14 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ 1F03268A1F0D24BE00BF3358 = { isa = PBXGroup; children = ( 1F0326961F0D24BE00BF3358 /* NVActivityIndicatorView */, - 1F88C9DA1F10D0B200869231 /* NVActivityIndicatorViewAppExtension */, 1F0326951F0D24BE00BF3358 /* Products */, ); sourceTree = ""; @@ -153,6 +198,7 @@ children = ( 1F0326941F0D24BE00BF3358 /* NVActivityIndicatorView.framework */, 1F88C9D91F10D0B200869231 /* NVActivityIndicatorViewAppExtension.framework */, + 1FFEE02321D10063000A3D14 /* NVActivityIndicatorView.framework */, ); name = Products; sourceTree = ""; @@ -160,7 +206,6 @@ 1F0326961F0D24BE00BF3358 /* NVActivityIndicatorView */ = { isa = PBXGroup; children = ( - 106B802B200DCA6800BF5D9C /* Images.xcassets */, 1F03269F1F0D257600BF3358 /* Animations */, 1F0326C01F0D257700BF3358 /* NVActivityIndicatorAnimationDelegate.swift */, 1F0326C21F0D257700BF3358 /* NVActivityIndicatorShape.swift */, @@ -179,6 +224,7 @@ 1F0326A21F0D257600BF3358 /* NVActivityIndicatorAnimationBallClipRotate.swift */, 1F0326A31F0D257600BF3358 /* NVActivityIndicatorAnimationBallClipRotateMultiple.swift */, 1F0326A41F0D257600BF3358 /* NVActivityIndicatorAnimationBallClipRotatePulse.swift */, + 1F8F3CC221ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift */, 1F0326A51F0D257600BF3358 /* NVActivityIndicatorAnimationBallGridBeat.swift */, 1F0326A61F0D257600BF3358 /* NVActivityIndicatorAnimationBallGridPulse.swift */, 1F0326A71F0D257600BF3358 /* NVActivityIndicatorAnimationBallPulse.swift */, @@ -195,6 +241,7 @@ 1F0326B21F0D257600BF3358 /* NVActivityIndicatorAnimationBallZigZag.swift */, 1F0326B31F0D257600BF3358 /* NVActivityIndicatorAnimationBallZigZagDeflect.swift */, 1F0326B41F0D257600BF3358 /* NVActivityIndicatorAnimationBlank.swift */, + 4A52F0DE1FCDBB8C009377B1 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift */, 1F0326B51F0D257600BF3358 /* NVActivityIndicatorAnimationCubeTransition.swift */, 1F0326B61F0D257700BF3358 /* NVActivityIndicatorAnimationLineScale.swift */, 1F0326B71F0D257700BF3358 /* NVActivityIndicatorAnimationLineScaleParty.swift */, @@ -206,8 +253,6 @@ 1F0326BD1F0D257700BF3358 /* NVActivityIndicatorAnimationSemiCircleSpin.swift */, 1F0326BE1F0D257700BF3358 /* NVActivityIndicatorAnimationSquareSpin.swift */, 1F0326BF1F0D257700BF3358 /* NVActivityIndicatorAnimationTriangleSkewSpin.swift */, - 4A52F0DE1FCDBB8C009377B1 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift */, - 106B7FA8200DB1DD00BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift */, ); path = Animations; sourceTree = ""; @@ -221,15 +266,6 @@ path = Presenter; sourceTree = ""; }; - 1F88C9DA1F10D0B200869231 /* NVActivityIndicatorViewAppExtension */ = { - isa = PBXGroup; - children = ( - 1F88C9DB1F10D0B200869231 /* NVActivityIndicatorViewAppExtension.h */, - 1F88C9DC1F10D0B200869231 /* Info.plist */, - ); - path = NVActivityIndicatorViewAppExtension; - sourceTree = ""; - }; A367103620A1EEF900081069 /* Supporting Files */ = { isa = PBXGroup; children = ( @@ -254,16 +290,24 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A367103020A1EE7500081069 /* NVActivityIndicatorViewAppExtension.h in Headers */, + 1FFEE05121D10225000A3D14 /* NVActivityIndicatorView.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1FFEE01E21D10063000A3D14 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 1FFEE05221D10260000A3D14 /* NVActivityIndicatorView.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 1F0326931F0D24BE00BF3358 /* NVActivityIndicatorView */ = { + 1F0326931F0D24BE00BF3358 /* NVActivityIndicatorView-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 1F03269C1F0D24BE00BF3358 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorView" */; + buildConfigurationList = 1F03269C1F0D24BE00BF3358 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorView-iOS" */; buildPhases = ( 1F03268F1F0D24BE00BF3358 /* Sources */, 1F0326911F0D24BE00BF3358 /* Headers */, @@ -273,14 +317,14 @@ ); dependencies = ( ); - name = NVActivityIndicatorView; + name = "NVActivityIndicatorView-iOS"; productName = NVActivityIndicatorView; productReference = 1F0326941F0D24BE00BF3358 /* NVActivityIndicatorView.framework */; productType = "com.apple.product-type.framework"; }; - 1F88C9D81F10D0B200869231 /* NVActivityIndicatorViewAppExtension */ = { + 1F88C9D81F10D0B200869231 /* NVActivityIndicatorViewAppExtension-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 1F88C9DE1F10D0B200869231 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorViewAppExtension" */; + buildConfigurationList = 1F88C9DE1F10D0B200869231 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorViewAppExtension-iOS" */; buildPhases = ( 1F88C9D41F10D0B200869231 /* Sources */, 1F88C9D61F10D0B200869231 /* Headers */, @@ -289,11 +333,29 @@ ); dependencies = ( ); - name = NVActivityIndicatorViewAppExtension; + name = "NVActivityIndicatorViewAppExtension-iOS"; productName = NVActivityIndicatorViewAppExtension; productReference = 1F88C9D91F10D0B200869231 /* NVActivityIndicatorViewAppExtension.framework */; productType = "com.apple.product-type.framework"; }; + 1FFEE02221D10063000A3D14 /* NVActivityIndicatorView-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1FFEE02821D10063000A3D14 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorView-tvOS" */; + buildPhases = ( + 1FFEE01E21D10063000A3D14 /* Headers */, + 1FFEE01F21D10063000A3D14 /* Sources */, + 1FFEE02021D10063000A3D14 /* Frameworks */, + 1FFEE02121D10063000A3D14 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "NVActivityIndicatorView-tvOS"; + productName = "NVActivityIndicatorView-tvOS"; + productReference = 1FFEE02321D10063000A3D14 /* NVActivityIndicatorView.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -301,12 +363,12 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1020; ORGANIZATIONNAME = "Vinh Nguyen"; TargetAttributes = { 1F0326931F0D24BE00BF3358 = { CreatedOnToolsVersion = 8.3; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; ProvisioningStyle = Manual; }; 1F88C9D81F10D0B200869231 = { @@ -314,44 +376,42 @@ LastSwiftMigration = 0900; ProvisioningStyle = Manual; }; + 1FFEE02221D10063000A3D14 = { + CreatedOnToolsVersion = 10.1; + ProvisioningStyle = Manual; + }; }; }; buildConfigurationList = 1F03268E1F0D24BE00BF3358 /* Build configuration list for PBXProject "NVActivityIndicatorView" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 1F03268A1F0D24BE00BF3358; productRefGroup = 1F0326951F0D24BE00BF3358 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 1F0326931F0D24BE00BF3358 /* NVActivityIndicatorView */, - 1F88C9D81F10D0B200869231 /* NVActivityIndicatorViewAppExtension */, + 1F0326931F0D24BE00BF3358 /* NVActivityIndicatorView-iOS */, + 1F88C9D81F10D0B200869231 /* NVActivityIndicatorViewAppExtension-iOS */, + 1FFEE02221D10063000A3D14 /* NVActivityIndicatorView-tvOS */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 1F0326921F0D24BE00BF3358 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 106B802C200DCA6800BF5D9C /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F88C9D71F10D0B200869231 /* Resources */ = { + 1FFEE02121D10063000A3D14 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 106B802D200DCA6800BF5D9C /* Images.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ + /* Begin PBXShellScriptBuildPhase section */ A3BEA4B12075175400F1AF75 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -388,6 +448,7 @@ 1F0326D21F0D257700BF3358 /* NVActivityIndicatorAnimationBallScaleMultiple.swift in Sources */, 1F0326D81F0D257700BF3358 /* NVActivityIndicatorAnimationBallZigZagDeflect.swift in Sources */, 1F0326D11F0D257700BF3358 /* NVActivityIndicatorAnimationBallScale.swift in Sources */, + 1F8F3CC321ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift in Sources */, 1F0326E81F0D257700BF3358 /* NVActivityIndicatorView.swift in Sources */, 1F0326C91F0D257700BF3358 /* NVActivityIndicatorAnimationBallClipRotatePulse.swift in Sources */, 1F0326D71F0D257700BF3358 /* NVActivityIndicatorAnimationBallZigZag.swift in Sources */, @@ -409,7 +470,6 @@ 1F0326DD1F0D257700BF3358 /* NVActivityIndicatorAnimationLineScalePulseOut.swift in Sources */, 1F0326E31F0D257700BF3358 /* NVActivityIndicatorAnimationSquareSpin.swift in Sources */, 1F0326D31F0D257700BF3358 /* NVActivityIndicatorAnimationBallScaleRipple.swift in Sources */, - 106B7FA9200DB1DD00BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift in Sources */, 1F0326E51F0D257700BF3358 /* NVActivityIndicatorAnimationDelegate.swift in Sources */, 1F0326D61F0D257700BF3358 /* NVActivityIndicatorAnimationBallTrianglePath.swift in Sources */, ); @@ -419,7 +479,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 106B7FAA200DBAC700BF5D9C /* NVActivityIndicatorAnimationBLAnimation.swift in Sources */, 1F88C9EA1F10D0DB00869231 /* NVActivityIndicatorAnimationBallGridPulse.swift in Sources */, 1F88CA001F10D0DB00869231 /* NVActivityIndicatorAnimationPacman.swift in Sources */, 1F88C9EB1F10D0DB00869231 /* NVActivityIndicatorAnimationBallPulse.swift in Sources */, @@ -446,6 +505,7 @@ CE1A6B661FDE9609008059F3 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift in Sources */, 1F88C9FD1F10D0DB00869231 /* NVActivityIndicatorAnimationLineScalePulseOutRapid.swift in Sources */, 1F88CA011F10D0DB00869231 /* NVActivityIndicatorAnimationSemiCircleSpin.swift in Sources */, + 1F8F3CC421ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift in Sources */, 1F88C9FE1F10D0DB00869231 /* NVActivityIndicatorAnimationLineSpinFadeLoader.swift in Sources */, 1F88C9F41F10D0DB00869231 /* NVActivityIndicatorAnimationBallSpinFadeLoader.swift in Sources */, 1F88C9F71F10D0DB00869231 /* NVActivityIndicatorAnimationBallZigZagDeflect.swift in Sources */, @@ -459,6 +519,52 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1FFEE01F21D10063000A3D14 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1FFEE02B21D10087000A3D14 /* NVActivityIndicatorAnimationAudioEqualizer.swift in Sources */, + 1FFEE02C21D10087000A3D14 /* NVActivityIndicatorAnimationBallBeat.swift in Sources */, + 1FFEE02D21D10087000A3D14 /* NVActivityIndicatorAnimationBallClipRotate.swift in Sources */, + 1FFEE02E21D10087000A3D14 /* NVActivityIndicatorAnimationBallClipRotateMultiple.swift in Sources */, + 1FFEE02F21D10087000A3D14 /* NVActivityIndicatorAnimationBallClipRotatePulse.swift in Sources */, + 1FFEE03021D10087000A3D14 /* NVActivityIndicatorAnimationBallGridBeat.swift in Sources */, + 1FFEE03121D10087000A3D14 /* NVActivityIndicatorAnimationBallGridPulse.swift in Sources */, + 1FFEE03221D10087000A3D14 /* NVActivityIndicatorAnimationBallPulse.swift in Sources */, + 1FFEE03321D10087000A3D14 /* NVActivityIndicatorAnimationBallPulseRise.swift in Sources */, + 1FFEE03421D10087000A3D14 /* NVActivityIndicatorAnimationBallPulseSync.swift in Sources */, + 1FFEE03521D10087000A3D14 /* NVActivityIndicatorAnimationBallRotate.swift in Sources */, + 1FFEE03621D10087000A3D14 /* NVActivityIndicatorAnimationBallRotateChase.swift in Sources */, + 1FFEE03721D10087000A3D14 /* NVActivityIndicatorAnimationBallScale.swift in Sources */, + 1FFEE03821D10087000A3D14 /* NVActivityIndicatorAnimationBallScaleMultiple.swift in Sources */, + 1FFEE03921D10087000A3D14 /* NVActivityIndicatorAnimationBallScaleRipple.swift in Sources */, + 1F8F3CC521ECDBEB004E5B86 /* NVActivityIndicatorAnimationBallDoubleBounce.swift in Sources */, + 1FFEE03A21D10087000A3D14 /* NVActivityIndicatorAnimationBallScaleRippleMultiple.swift in Sources */, + 1FFEE03B21D10087000A3D14 /* NVActivityIndicatorAnimationBallSpinFadeLoader.swift in Sources */, + 1FFEE03C21D10087000A3D14 /* NVActivityIndicatorAnimationBallTrianglePath.swift in Sources */, + 1FFEE03D21D10087000A3D14 /* NVActivityIndicatorAnimationBallZigZag.swift in Sources */, + 1FFEE03E21D10087000A3D14 /* NVActivityIndicatorAnimationBallZigZagDeflect.swift in Sources */, + 1FFEE03F21D10087000A3D14 /* NVActivityIndicatorAnimationBlank.swift in Sources */, + 1FFEE04021D10087000A3D14 /* NVActivityIndicatorAnimationCubeTransition.swift in Sources */, + 1FFEE04121D10087000A3D14 /* NVActivityIndicatorAnimationLineScale.swift in Sources */, + 1FFEE04221D10087000A3D14 /* NVActivityIndicatorAnimationLineScaleParty.swift in Sources */, + 1FFEE04321D10087000A3D14 /* NVActivityIndicatorAnimationLineScalePulseOut.swift in Sources */, + 1FFEE04421D10087000A3D14 /* NVActivityIndicatorAnimationLineScalePulseOutRapid.swift in Sources */, + 1FFEE04521D10087000A3D14 /* NVActivityIndicatorAnimationLineSpinFadeLoader.swift in Sources */, + 1FFEE04621D10087000A3D14 /* NVActivityIndicatorAnimationOrbit.swift in Sources */, + 1FFEE04721D10087000A3D14 /* NVActivityIndicatorAnimationPacman.swift in Sources */, + 1FFEE04821D10087000A3D14 /* NVActivityIndicatorAnimationSemiCircleSpin.swift in Sources */, + 1FFEE04921D10087000A3D14 /* NVActivityIndicatorAnimationSquareSpin.swift in Sources */, + 1FFEE04A21D10087000A3D14 /* NVActivityIndicatorAnimationTriangleSkewSpin.swift in Sources */, + 1FFEE04B21D10087000A3D14 /* NVActivityIndicatorAnimationCircleStrokeSpin.swift in Sources */, + 1FFEE04C21D10087000A3D14 /* NVActivityIndicatorAnimationDelegate.swift in Sources */, + 1FFEE04D21D10087000A3D14 /* NVActivityIndicatorShape.swift in Sources */, + 1FFEE04E21D10087000A3D14 /* NVActivityIndicatorView.swift in Sources */, + 1FFEE04F21D10087000A3D14 /* NVActivityIndicatorPresenter.swift in Sources */, + 1FFEE05021D10087000A3D14 /* NVActivityIndicatorViewable.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ @@ -466,6 +572,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -519,7 +626,7 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -530,6 +637,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -575,7 +683,7 @@ SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -599,12 +707,11 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorView; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = NVActivityIndicatorView; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -624,11 +731,10 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorView; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = NVActivityIndicatorView; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -642,16 +748,16 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = NVActivityIndicatorViewAppExtension/Info.plist; + INFOPLIST_FILE = NVActivityIndicatorView/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorViewAppExtension; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorView; + PRODUCT_NAME = NVActivityIndicatorViewAppExtension; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -665,16 +771,75 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = NVActivityIndicatorViewAppExtension/Info.plist; + INFOPLIST_FILE = NVActivityIndicatorView/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorViewAppExtension; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorView; + PRODUCT_NAME = NVActivityIndicatorViewAppExtension; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 1FFEE02921D10063000A3D14 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = NVActivityIndicatorView/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorView; + PRODUCT_NAME = NVActivityIndicatorView; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + 1FFEE02A21D10063000A3D14 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = NVActivityIndicatorView/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = me.vinhis.NVActivityIndicatorView; + PRODUCT_NAME = NVActivityIndicatorView; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; }; name = Release; }; @@ -690,7 +855,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1F03269C1F0D24BE00BF3358 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorView" */ = { + 1F03269C1F0D24BE00BF3358 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorView-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 1F03269D1F0D24BE00BF3358 /* Debug */, @@ -699,7 +864,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1F88C9DE1F10D0B200869231 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorViewAppExtension" */ = { + 1F88C9DE1F10D0B200869231 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorViewAppExtension-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 1F88C9DF1F10D0B200869231 /* Debug */, @@ -708,6 +873,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 1FFEE02821D10063000A3D14 /* Build configuration list for PBXNativeTarget "NVActivityIndicatorView-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1FFEE02921D10063000A3D14 /* Debug */, + 1FFEE02A21D10063000A3D14 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 1F03268B1F0D24BE00BF3358 /* Project object */; diff --git a/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-iOS.xcscheme b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-iOS.xcscheme new file mode 100644 index 00000000..3c23d0a6 --- /dev/null +++ b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-iOS.xcscheme @@ -0,0 +1,84 @@ + +>>>>>> upstream/master:Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-iOS.xcscheme + version = "1.3"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-tvOS.xcscheme b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-tvOS.xcscheme new file mode 100644 index 00000000..a0edaabc --- /dev/null +++ b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-tvOS.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView.xcscheme b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView.xcscheme index 1bd1fbc0..3c23d0a6 100644 --- a/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView.xcscheme +++ b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView.xcscheme @@ -1,6 +1,10 @@ >>>>>> upstream/master:Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorView-iOS.xcscheme version = "1.3"> @@ -47,7 +51,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "1F0326931F0D24BE00BF3358" BuildableName = "NVActivityIndicatorView.framework" - BlueprintName = "NVActivityIndicatorView" + BlueprintName = "NVActivityIndicatorView-iOS" ReferencedContainer = "container:NVActivityIndicatorView.xcodeproj"> @@ -65,7 +69,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "1F0326931F0D24BE00BF3358" BuildableName = "NVActivityIndicatorView.framework" - BlueprintName = "NVActivityIndicatorView" + BlueprintName = "NVActivityIndicatorView-iOS" ReferencedContainer = "container:NVActivityIndicatorView.xcodeproj"> diff --git a/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension-iOS.xcscheme b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension-iOS.xcscheme new file mode 100644 index 00000000..fe8753c9 --- /dev/null +++ b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension-iOS.xcscheme @@ -0,0 +1,84 @@ + +>>>>>> upstream/master:Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension-iOS.xcscheme + version = "1.3"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension.xcscheme b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension.xcscheme index 9e3d5a7b..fe8753c9 100644 --- a/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension.xcscheme +++ b/Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension.xcscheme @@ -1,6 +1,10 @@ >>>>>> upstream/master:Source/NVActivityIndicatorView.xcodeproj/xcshareddata/xcschemes/NVActivityIndicatorViewAppExtension-iOS.xcscheme version = "1.3"> @@ -47,7 +51,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "1F88C9D81F10D0B200869231" BuildableName = "NVActivityIndicatorViewAppExtension.framework" - BlueprintName = "NVActivityIndicatorViewAppExtension" + BlueprintName = "NVActivityIndicatorViewAppExtension-iOS" ReferencedContainer = "container:NVActivityIndicatorView.xcodeproj"> @@ -65,7 +69,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "1F88C9D81F10D0B200869231" BuildableName = "NVActivityIndicatorViewAppExtension.framework" - BlueprintName = "NVActivityIndicatorViewAppExtension" + BlueprintName = "NVActivityIndicatorViewAppExtension-iOS" ReferencedContainer = "container:NVActivityIndicatorView.xcodeproj"> diff --git a/Source/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallDoubleBounce.swift b/Source/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallDoubleBounce.swift new file mode 100644 index 00000000..02454bb9 --- /dev/null +++ b/Source/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallDoubleBounce.swift @@ -0,0 +1,65 @@ +// +// NVActivityIndicatorAnimationBallsBounce.swift +// NVActivityIndicatorView +// +// The MIT License (MIT) + +// Copyright (c) 2016 Vinh Nguyen + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +import UIKit + +class NVActivityIndicatorAnimationBallDoubleBounce: NVActivityIndicatorAnimationDelegate { + + func setUpAnimation(in layer: CALayer, size: CGSize, color: UIColor) { + for index in (0...1) { + bouncingBall(in: layer, size: size, color: color, startingAt: CACurrentMediaTime() + Double(index)) + } + } + + fileprivate func bouncingBall(in layer: CALayer, size: CGSize, color: UIColor, startingAt: CFTimeInterval) { + // Scale animation + let scaleAnimation = CAKeyframeAnimation(keyPath: "transform.scale") + scaleAnimation.duration = 2 + scaleAnimation.keyTimes = [0, 0.5, 1] + scaleAnimation.values = [-1, 0, -1] + + #if swift(>=4.2) + scaleAnimation.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut) + #else + scaleAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) + #endif + scaleAnimation.repeatCount = HUGE + scaleAnimation.isRemovedOnCompletion = false + + let circle = NVActivityIndicatorShape.circle.layerWith(size: size, color: color) + let frame = CGRect(x: (layer.bounds.size.width - size.width) / 2, + y: (layer.bounds.size.height - size.height) / 2, + width: size.width, + height: size.height) + + scaleAnimation.beginTime = startingAt + circle.frame = frame + circle.opacity = 0.6 + circle.add(scaleAnimation, forKey: "animation") + layer.addSublayer(circle) + } +} diff --git a/Source/NVActivityIndicatorView/Info.plist b/Source/NVActivityIndicatorView/Info.plist index 1bc624a2..4c0c8f8a 100644 --- a/Source/NVActivityIndicatorView/Info.plist +++ b/Source/NVActivityIndicatorView/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.4.0 + 4.8.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/Source/NVActivityIndicatorView/NVActivityIndicatorView.swift b/Source/NVActivityIndicatorView/NVActivityIndicatorView.swift index 9f4dd2e9..229374df 100644 --- a/Source/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/Source/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -49,6 +49,7 @@ import UIKit - BallScaleMultiple: BallScaleMultiple animation. - BallPulseSync: BallPulseSync animation. - BallBeat: BallBeat animation. + - BallDoubleBounce: BallDoubleBounce animation. - LineScalePulseOut: LineScalePulseOut animation. - LineScalePulseOutRapid: LineScalePulseOutRapid animation. - BallScaleRipple: BallScaleRipple animation. @@ -64,7 +65,7 @@ import UIKit - AudioEqualizer: AudioEqualizer animation. - CircleStrokeSpin: CircleStrokeSpin animation. */ -public enum NVActivityIndicatorType: Int { +public enum NVActivityIndicatorType: CaseIterable { /** Blank. @@ -179,6 +180,12 @@ public enum NVActivityIndicatorType: Int { - returns: Instance of NVActivityIndicatorAnimationBallBeat. */ case ballBeat + /** + BallDoubleBounce. + + - returns: Instance of NVActivityIndicatorAnimationBallDoubleBounce. + */ + case ballDoubleBounce /** LineScalePulseOut. @@ -263,14 +270,6 @@ public enum NVActivityIndicatorType: Int { - returns: Instance of NVActivityIndicatorAnimationCircleStrokeSpin. */ case circleStrokeSpin - /** - BLAnimation. - - - returns: Instance of NVActivityIndicatorAnimationBLAnimation. - */ - case blAnimation - - static let allTypes = (blank.rawValue ... circleStrokeSpin.rawValue).map { NVActivityIndicatorType(rawValue: $0)! } // swiftlint:disable:next cyclomatic_complexity function_body_length func animation() -> NVActivityIndicatorAnimationDelegate { @@ -313,6 +312,8 @@ public enum NVActivityIndicatorType: Int { return NVActivityIndicatorAnimationBallPulseSync() case .ballBeat: return NVActivityIndicatorAnimationBallBeat() + case .ballDoubleBounce: + return NVActivityIndicatorAnimationBallDoubleBounce() case .lineScalePulseOut: return NVActivityIndicatorAnimationLineScalePulseOut() case .lineScalePulseOutRapid: @@ -341,8 +342,6 @@ public enum NVActivityIndicatorType: Int { return NVActivityIndicatorAnimationAudioEqualizer() case .circleStrokeSpin: return NVActivityIndicatorAnimationCircleStrokeSpin() - case .blAnimation: - return NVActivityIndicatorAnimationBLAnimation() } } } @@ -358,15 +357,7 @@ public typealias FadeOutAnimation = (UIView, @escaping () -> Void) -> Void // swiftlint:disable file_length /// Activity indicator view with nice animations public final class NVActivityIndicatorView: UIView { - /// Default is view blocking screen. Default value is true. - public static var DEFAULT_IS_BLOCKING_SCREEN: Bool = true - - /// Default is view closeable. Default value is false. - public static var DEFAULT_ONCLOSEBLOCK: (() -> Void)? = nil - - /// Default is view closeable. Default value is false. - public static var DEFAULT_CLOSEABLE: Bool = false - + // swiftlint:disable identifier_name /// Default type. Default value is .BallSpinFadeLoader. public static var DEFAULT_TYPE: NVActivityIndicatorType = .ballSpinFadeLoader @@ -448,7 +439,7 @@ public final class NVActivityIndicatorView: UIView { @IBInspectable public var padding: CGFloat = NVActivityIndicatorView.DEFAULT_PADDING /// Current status of animation, read-only. - @available(*, deprecated: 3.1) + @available(*, deprecated) public var animating: Bool { return isAnimating } /// Current status of animation, read-only. @@ -515,6 +506,9 @@ public final class NVActivityIndicatorView: UIView { Start animating. */ public final func startAnimating() { + guard !isAnimating else { + return + } isHidden = false isAnimating = true layer.speed = 1 @@ -525,6 +519,9 @@ public final class NVActivityIndicatorView: UIView { Stop animating. */ public final func stopAnimating() { + guard isAnimating else { + return + } isHidden = true isAnimating = false layer.sublayers?.removeAll() @@ -534,7 +531,7 @@ public final class NVActivityIndicatorView: UIView { // swiftlint:disable:next identifier_name func _setTypeName(_ typeName: String) { - for item in NVActivityIndicatorType.allTypes { + for item in NVActivityIndicatorType.allCases { if String(describing: item).caseInsensitiveCompare(typeName) == ComparisonResult.orderedSame { type = item break diff --git a/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorPresenter.swift b/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorPresenter.swift index 088b226e..0220d090 100644 --- a/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorPresenter.swift +++ b/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorPresenter.swift @@ -29,53 +29,44 @@ import UIKit /// Class packages information used to display UI blocker. public final class ActivityData { - /// Is container blocking screen - let isBlockingScreen: Bool - - /// OnClose block - let onCloseBlock: (() -> Void)? - - /// Is of container activity indicator view closeable by tap on it. - let isCloseable: Bool - /// Size of activity indicator view. let size: CGSize - + /// Message displayed under activity indicator view. let message: String? - + /// Font of message displayed under activity indicator view. let messageFont: UIFont - + /// Message spacing to activity indicator view. let messageSpacing: CGFloat - + /// Animation type. let type: NVActivityIndicatorType - + /// Color of activity indicator view. let color: UIColor - + /// Color of text. let textColor: UIColor - + /// Padding of activity indicator view. let padding: CGFloat - + /// Display time threshold to actually display UI blocker. let displayTimeThreshold: Int - + /// Minimum display time of UI blocker. let minimumDisplayTime: Int - + /// Background color of the UI blocker let backgroundColor: UIColor - + /** Create information package used to display UI blocker. - + Appropriate NVActivityIndicatorView.DEFAULT_* values are used for omitted params. - + - parameter size: size of activity indicator view. - parameter message: message displayed under activity indicator view. - parameter messageFont: font of message displayed under activity indicator view. @@ -86,7 +77,7 @@ public final class ActivityData { - parameter displayTimeThreshold: display time threshold to actually display UI blocker. - parameter minimumDisplayTime: minimum display time of UI blocker. - parameter textColor: color of the text below the activity indicator view. Will match color parameter if not set, otherwise DEFAULT_TEXT_COLOR if color is not set. - + - returns: The information package used to display UI blocker. */ public init(size: CGSize? = nil, @@ -98,11 +89,8 @@ public final class ActivityData { padding: CGFloat? = nil, displayTimeThreshold: Int? = nil, minimumDisplayTime: Int? = nil, - isCloseable: Bool? = nil, - isBlockingScreen: Bool? = nil, backgroundColor: UIColor? = nil, - textColor: UIColor? = nil, - onCloseBlock: (() -> Void)? = nil) { + textColor: UIColor? = nil) { self.size = size ?? NVActivityIndicatorView.DEFAULT_BLOCKER_SIZE self.message = message ?? NVActivityIndicatorView.DEFAULT_BLOCKER_MESSAGE self.messageFont = messageFont ?? NVActivityIndicatorView.DEFAULT_BLOCKER_MESSAGE_FONT @@ -112,11 +100,8 @@ public final class ActivityData { self.padding = padding ?? NVActivityIndicatorView.DEFAULT_PADDING self.displayTimeThreshold = displayTimeThreshold ?? NVActivityIndicatorView.DEFAULT_BLOCKER_DISPLAY_TIME_THRESHOLD self.minimumDisplayTime = minimumDisplayTime ?? NVActivityIndicatorView.DEFAULT_BLOCKER_MINIMUM_DISPLAY_TIME - self.isCloseable = isCloseable ?? NVActivityIndicatorView.DEFAULT_CLOSEABLE - self.isBlockingScreen = isBlockingScreen ?? NVActivityIndicatorView.DEFAULT_IS_BLOCKING_SCREEN self.backgroundColor = backgroundColor ?? NVActivityIndicatorView.DEFAULT_BLOCKER_BACKGROUND_COLOR self.textColor = textColor ?? color ?? NVActivityIndicatorView.DEFAULT_TEXT_COLOR - self.onCloseBlock = onCloseBlock ?? NVActivityIndicatorView.DEFAULT_ONCLOSEBLOCK } } @@ -214,19 +199,15 @@ public final class NVActivityIndicatorPresenter { performer.stopAnimating(presenter: presenter, fadeOutAnimation) } } - + private let restorationIdentifier = "NVActivityIndicatorViewContainer" - private lazy var messageLabel: UILabel = { + private let messageLabel: UILabel = { let label = UILabel() - + label.textAlignment = .center - label.numberOfLines = 1 - label.text = data?.message - label.font = data?.messageFont - label.textColor = data?.color + label.numberOfLines = 0 label.translatesAutoresizingMaskIntoConstraints = false - //label.sizeToFit() - + return label }() @@ -243,33 +224,29 @@ public final class NVActivityIndicatorPresenter { public var isAnimating: Bool { return state == .animating || state == .waitingToStop } private init() {} - + // MARK: - Public interface - + /** Display UI blocker. - + - parameter data: Information package used to display UI blocker. - parameter fadeInAnimation: Fade in animation. */ - public final func startAnimating(_ data: ActivityData, _ fadeInAnimation: FadeInAnimation?) { + public final func startAnimating(_ data: ActivityData, _ fadeInAnimation: FadeInAnimation? = nil) { self.data = data state.startAnimating(presenter: self, fadeInAnimation) } - + /** Remove UI blocker. - parameter fadeOutAnimation: Fade out animation. */ - public final func stopAnimating(_ fadeOutAnimation: FadeOutAnimation?) { + public final func stopAnimating(_ fadeOutAnimation: FadeOutAnimation? = nil) { state.stopAnimating(presenter: self, fadeOutAnimation) } - - @objc public final func forceStopAnimating() { - hide(nil) - } - + /// Set message displayed under activity indicator view. /// /// - Parameter message: message displayed under activity indicator view. @@ -278,12 +255,12 @@ public final class NVActivityIndicatorPresenter { self.messageLabel.text = message } } - + // MARK: - Helpers fileprivate func show(with activityData: ActivityData, _ fadeInAnimation: FadeInAnimation?) { let containerView = UIView(frame: UIScreen.main.bounds) - + containerView.backgroundColor = activityData.backgroundColor containerView.restorationIdentifier = restorationIdentifier containerView.translatesAutoresizingMaskIntoConstraints = false @@ -294,22 +271,16 @@ public final class NVActivityIndicatorPresenter { type: activityData.type, color: activityData.color, padding: activityData.padding) - + activityIndicatorView.startAnimating() - if (activityData.isCloseable) { - containerView.addGestureRecognizer( - UITapGestureRecognizer(target: self, action: #selector(forceStopAnimating)) - ) - } - activityIndicatorView.translatesAutoresizingMaskIntoConstraints = false containerView.addSubview(activityIndicatorView) - + // Add constraints for `activityIndicatorView`. ({ let xConstraint = NSLayoutConstraint(item: containerView, attribute: .centerX, relatedBy: .equal, toItem: activityIndicatorView, attribute: .centerX, multiplier: 1, constant: 0) let yConstraint = NSLayoutConstraint(item: containerView, attribute: .centerY, relatedBy: .equal, toItem: activityIndicatorView, attribute: .centerY, multiplier: 1, constant: 0) - + containerView.addConstraints([xConstraint, yConstraint]) }()) @@ -317,7 +288,7 @@ public final class NVActivityIndicatorPresenter { messageLabel.textColor = activityData.textColor messageLabel.text = activityData.message containerView.addSubview(messageLabel) - + // Add constraints for `messageLabel`. ({ let leadingConstraint = NSLayoutConstraint(item: containerView, attribute: .leading, relatedBy: .equal, toItem: messageLabel, attribute: .leading, multiplier: 1, constant: -8) @@ -332,7 +303,7 @@ public final class NVActivityIndicatorPresenter { }()) guard let keyWindow = UIApplication.shared.keyWindow else { return } - + keyWindow.addSubview(containerView) // Add constraints for `containerView`. @@ -341,7 +312,7 @@ public final class NVActivityIndicatorPresenter { let trailingConstraint = NSLayoutConstraint(item: keyWindow, attribute: .trailing, relatedBy: .equal, toItem: containerView, attribute: .trailing, multiplier: 1, constant: 0) let topConstraint = NSLayoutConstraint(item: keyWindow, attribute: .top, relatedBy: .equal, toItem: containerView, attribute: .top, multiplier: 1, constant: 0) let bottomConstraint = NSLayoutConstraint(item: keyWindow, attribute: .bottom, relatedBy: .equal, toItem: containerView, attribute: .bottom, multiplier: 1, constant: 0) - + keyWindow.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint]) }()) } @@ -361,4 +332,3 @@ public final class NVActivityIndicatorPresenter { } } } - diff --git a/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorViewable.swift b/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorViewable.swift index 172146c5..d133cbf4 100644 --- a/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorViewable.swift +++ b/Source/NVActivityIndicatorView/Presenter/NVActivityIndicatorViewable.swift @@ -54,7 +54,7 @@ public extension NVActivityIndicatorViewable where Self: UIViewController { - parameter minimumDisplayTime: minimum display time of UI blocker. - parameter fadeInAnimation: fade in animation. */ - public func startAnimating( + func startAnimating( _ size: CGSize? = nil, message: String? = nil, messageFont: UIFont? = nil, @@ -85,7 +85,7 @@ public extension NVActivityIndicatorViewable where Self: UIViewController { - parameter fadeOutAnimation: fade out animation. */ - public func stopAnimating(_ fadeOutAnimation: FadeOutAnimation? = NVActivityIndicatorView.DEFAULT_FADE_OUT_ANIMATION) { + func stopAnimating(_ fadeOutAnimation: FadeOutAnimation? = NVActivityIndicatorView.DEFAULT_FADE_OUT_ANIMATION) { NVActivityIndicatorPresenter.sharedInstance.stopAnimating(fadeOutAnimation) } } diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 00000000..11a23aa5 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +nvactivityindicatorview.vinhis.me \ No newline at end of file diff --git a/docs/Classes.html b/docs/Classes.html new file mode 100644 index 00000000..654aa5fb --- /dev/null +++ b/docs/Classes.html @@ -0,0 +1,203 @@ + + + + Classes Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

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

    Activity indicator view with nice animations

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class NVActivityIndicatorView : UIView
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + ActivityData + +
    +
    +
    +
    +
    +
    +

    Class packages information used to display UI blocker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class ActivityData
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Presenter that displays NVActivityIndicatorView as UI blocker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class NVActivityIndicatorPresenter
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Classes/ActivityData.html b/docs/Classes/ActivityData.html new file mode 100644 index 00000000..e3f0aa3a --- /dev/null +++ b/docs/Classes/ActivityData.html @@ -0,0 +1,291 @@ + + + + ActivityData Class Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

ActivityData

+
+
+
public final class ActivityData
+ +
+
+

Class packages information used to display UI blocker.

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

    Create information package used to display UI blocker.

    + +

    Appropriate NVActivityIndicatorView.DEFAULT_* values are used for omitted params.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(size: CGSize? = nil,
    +            message: String? = nil,
    +            messageFont: UIFont? = nil,
    +            messageSpacing: CGFloat? = nil,
    +            type: NVActivityIndicatorType? = nil,
    +            color: UIColor? = nil,
    +            padding: CGFloat? = nil,
    +            displayTimeThreshold: Int? = nil,
    +            minimumDisplayTime: Int? = nil,
    +            backgroundColor: UIColor? = nil,
    +            textColor: UIColor? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + size + + +
    +

    size of activity indicator view.

    +
    +
    + + message + + +
    +

    message displayed under activity indicator view.

    +
    +
    + + messageFont + + +
    +

    font of message displayed under activity indicator view.

    +
    +
    + + messageSpacing + + +
    +

    message spacing to activity indicator view.

    +
    +
    + + type + + +
    +

    animation type.

    +
    +
    + + color + + +
    +

    color of activity indicator view.

    +
    +
    + + padding + + +
    +

    padding of activity indicator view.

    +
    +
    + + displayTimeThreshold + + +
    +

    display time threshold to actually display UI blocker.

    +
    +
    + + minimumDisplayTime + + +
    +

    minimum display time of UI blocker.

    +
    +
    + + textColor + + +
    +

    color of the text below the activity indicator view. Will match color parameter if not set, otherwise DEFAULT_TEXT_COLOR if color is not set.

    +
    +
    +
    +
    +

    Return Value

    +

    The information package used to display UI blocker.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Classes/NVActivityIndicatorPresenter.html b/docs/Classes/NVActivityIndicatorPresenter.html new file mode 100644 index 00000000..9df08e4b --- /dev/null +++ b/docs/Classes/NVActivityIndicatorPresenter.html @@ -0,0 +1,336 @@ + + + + NVActivityIndicatorPresenter Class Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorPresenter

+
+
+
public final class NVActivityIndicatorPresenter
+ +
+
+

Presenter that displays NVActivityIndicatorView as UI blocker.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + sharedInstance + +
    +
    +
    +
    +
    +
    +

    Shared instance of NVActivityIndicatorPresenter.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let sharedInstance: NVActivityIndicatorPresenter
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isAnimating + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isAnimating: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + startAnimating(_:_:) + +
    +
    +
    +
    +
    +
    +

    Display UI blocker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func startAnimating(_ data: ActivityData, _ fadeInAnimation: FadeInAnimation?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + data + + +
    +

    Information package used to display UI blocker.

    +
    +
    + + fadeInAnimation + + +
    +

    Fade in animation.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + stopAnimating(_:) + +
    +
    +
    +
    +
    +
    +

    Remove UI blocker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func stopAnimating(_ fadeOutAnimation: FadeOutAnimation?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + fadeOutAnimation + + +
    +

    Fade out animation.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + setMessage(_:) + +
    +
    +
    +
    +
    +
    +

    Set message displayed under activity indicator view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func setMessage(_ message: String?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + message + + +
    +

    message displayed under activity indicator view.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Classes/NVActivityIndicatorView.html b/docs/Classes/NVActivityIndicatorView.html new file mode 100644 index 00000000..54a2cef1 --- /dev/null +++ b/docs/Classes/NVActivityIndicatorView.html @@ -0,0 +1,873 @@ + + + + NVActivityIndicatorView Class Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorView

+
+
+
public final class NVActivityIndicatorView : UIView
+ +
+
+

Activity indicator view with nice animations

+ +
+
+ +
+
+
+
    +
  • +
    + + + + DEFAULT_TYPE + +
    +
    +
    +
    +
    +
    +

    Default type. Default value is .BallSpinFadeLoader.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_TYPE: NVActivityIndicatorType
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_COLOR + +
    +
    +
    +
    +
    +
    +

    Default color of activity indicator. Default value is UIColor.white.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_COLOR: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_TEXT_COLOR + +
    +
    +
    +
    +
    +
    +

    Default color of text. Default value is UIColor.white.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_TEXT_COLOR: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_PADDING + +
    +
    +
    +
    +
    +
    +

    Default padding. Default value is 0.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_PADDING: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_BLOCKER_SIZE + +
    +
    +
    +
    +
    +
    +

    Default size of activity indicator view in UI blocker. Default value is 60x60.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_SIZE: CGSize
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default display time threshold to actually display UI blocker. Default value is 0 ms.

    +
    +

    Note

    + Default time that has to be elapsed (between calls of startAnimating() and stopAnimating()) in order to actually display UI blocker. It should be set thinking about what the minimum duration of an activity is to be worth showing it to the user. If the activity ends before this time threshold, then it will not be displayed at all. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_DISPLAY_TIME_THRESHOLD: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default minimum display time of UI blocker. Default value is 0 ms.

    +
    +

    Note

    + Default minimum display time of UI blocker. Its main purpose is to avoid flashes showing and hiding it so fast. For instance, setting it to 200ms will force UI blocker to be shown for at least this time (regardless of calling stopAnimating() ealier). + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MINIMUM_DISPLAY_TIME: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default message displayed in UI blocker. Default value is nil.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MESSAGE: String?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default message spacing to activity indicator view in UI blocker. Default value is 8.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MESSAGE_SPACING: CGFloat
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default font of message displayed in UI blocker. Default value is bold system font, size 20.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MESSAGE_FONT: UIFont
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default background color of UI blocker. Default value is UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_BACKGROUND_COLOR: UIColor
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default fade in animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_FADE_IN_ANIMATION: FadeInAnimation
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default fade out animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_FADE_OUT_ANIMATION: FadeOutAnimation
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + type + +
    +
    +
    +
    +
    +
    +

    Animation type.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var type: NVActivityIndicatorType
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + color + +
    +
    +
    +
    +
    +
    +

    Color of activity indicator view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @IBInspectable
    +public var color: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + padding + +
    +
    +
    +
    +
    +
    +

    Padding of activity indicator view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @IBInspectable
    +public var padding: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + animating + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @available(*, deprecated: 3.1)
    +public var animating: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isAnimating + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    private(set) public var isAnimating: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Returns an object initialized from data in a given unarchiver. +self, initialized using the data in decoder.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder aDecoder: NSCoder)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + decoder + + +
    +

    an unarchiver object.

    +
    +
    +
    +
    +

    Return Value

    +

    self, initialized using the data in decoder.

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

    Create a activity indicator view.

    + +

    Appropriate NVActivityIndicatorView.DEFAULT_* values are used for omitted params.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(frame: CGRect, type: NVActivityIndicatorType? = nil, color: UIColor? = nil, padding: CGFloat? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + frame + + +
    +

    view’s frame.

    +
    +
    + + type + + +
    +

    animation type.

    +
    +
    + + color + + +
    +

    color of activity indicator view.

    +
    +
    + + padding + + +
    +

    padding of activity indicator view.

    +
    +
    +
    +
    +

    Return Value

    +

    The activity indicator view.

    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Returns the natural size for the receiving view, considering only properties of the view itself.

    + +

    A size indicating the natural size for the receiving view based on its intrinsic properties.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public override var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +

    Return Value

    +

    A size indicating the natural size for the receiving view based on its intrinsic properties.

    +
    +
    +
    +
  • +
  • +
    + + + + bounds + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public override var bounds: CGRect { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + startAnimating() + +
    +
    +
    +
    +
    +
    +

    Start animating.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func startAnimating()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stopAnimating() + +
    +
    +
    +
    +
    +
    +

    Stop animating.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func stopAnimating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Enums.html b/docs/Enums.html new file mode 100644 index 00000000..29409112 --- /dev/null +++ b/docs/Enums.html @@ -0,0 +1,180 @@ + + + + Enumerations Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

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

    Enum of animation types used for activity indicator view.

    + +
      +
    • Blank: Blank animation.
    • +
    • BallPulse: BallPulse animation.
    • +
    • BallGridPulse: BallGridPulse animation.
    • +
    • BallClipRotate: BallClipRotate animation.
    • +
    • SquareSpin: SquareSpin animation.
    • +
    • BallClipRotatePulse: BallClipRotatePulse animation.
    • +
    • BallClipRotateMultiple: BallClipRotateMultiple animation.
    • +
    • BallPulseRise: BallPulseRise animation.
    • +
    • BallRotate: BallRotate animation.
    • +
    • CubeTransition: CubeTransition animation.
    • +
    • BallZigZag: BallZigZag animation.
    • +
    • BallZigZagDeflect: BallZigZagDeflect animation.
    • +
    • BallTrianglePath: BallTrianglePath animation.
    • +
    • BallScale: BallScale animation.
    • +
    • LineScale: LineScale animation.
    • +
    • LineScaleParty: LineScaleParty animation.
    • +
    • BallScaleMultiple: BallScaleMultiple animation.
    • +
    • BallPulseSync: BallPulseSync animation.
    • +
    • BallBeat: BallBeat animation.
    • +
    • BallDoubleBounce: BallDoubleBounce animation.
    • +
    • LineScalePulseOut: LineScalePulseOut animation.
    • +
    • LineScalePulseOutRapid: LineScalePulseOutRapid animation.
    • +
    • BallScaleRipple: BallScaleRipple animation.
    • +
    • BallScaleRippleMultiple: BallScaleRippleMultiple animation.
    • +
    • BallSpinFadeLoader: BallSpinFadeLoader animation.
    • +
    • LineSpinFadeLoader: LineSpinFadeLoader animation.
    • +
    • TriangleSkewSpin: TriangleSkewSpin animation.
    • +
    • Pacman: Pacman animation.
    • +
    • BallGridBeat: BallGridBeat animation.
    • +
    • SemiCircleSpin: SemiCircleSpin animation.
    • +
    • BallRotateChase: BallRotateChase animation.
    • +
    • Orbit: Orbit animation.
    • +
    • AudioEqualizer: AudioEqualizer animation.
    • +
    • CircleStrokeSpin: CircleStrokeSpin animation.
    • +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum NVActivityIndicatorType : CaseIterable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Enums/NVActivityIndicatorType.html b/docs/Enums/NVActivityIndicatorType.html new file mode 100644 index 00000000..eed835af --- /dev/null +++ b/docs/Enums/NVActivityIndicatorType.html @@ -0,0 +1,1212 @@ + + + + NVActivityIndicatorType Enumeration Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorType

+
+
+
public enum NVActivityIndicatorType : CaseIterable
+ +
+
+

Enum of animation types used for activity indicator view.

+ +
    +
  • Blank: Blank animation.
  • +
  • BallPulse: BallPulse animation.
  • +
  • BallGridPulse: BallGridPulse animation.
  • +
  • BallClipRotate: BallClipRotate animation.
  • +
  • SquareSpin: SquareSpin animation.
  • +
  • BallClipRotatePulse: BallClipRotatePulse animation.
  • +
  • BallClipRotateMultiple: BallClipRotateMultiple animation.
  • +
  • BallPulseRise: BallPulseRise animation.
  • +
  • BallRotate: BallRotate animation.
  • +
  • CubeTransition: CubeTransition animation.
  • +
  • BallZigZag: BallZigZag animation.
  • +
  • BallZigZagDeflect: BallZigZagDeflect animation.
  • +
  • BallTrianglePath: BallTrianglePath animation.
  • +
  • BallScale: BallScale animation.
  • +
  • LineScale: LineScale animation.
  • +
  • LineScaleParty: LineScaleParty animation.
  • +
  • BallScaleMultiple: BallScaleMultiple animation.
  • +
  • BallPulseSync: BallPulseSync animation.
  • +
  • BallBeat: BallBeat animation.
  • +
  • BallDoubleBounce: BallDoubleBounce animation.
  • +
  • LineScalePulseOut: LineScalePulseOut animation.
  • +
  • LineScalePulseOutRapid: LineScalePulseOutRapid animation.
  • +
  • BallScaleRipple: BallScaleRipple animation.
  • +
  • BallScaleRippleMultiple: BallScaleRippleMultiple animation.
  • +
  • BallSpinFadeLoader: BallSpinFadeLoader animation.
  • +
  • LineSpinFadeLoader: LineSpinFadeLoader animation.
  • +
  • TriangleSkewSpin: TriangleSkewSpin animation.
  • +
  • Pacman: Pacman animation.
  • +
  • BallGridBeat: BallGridBeat animation.
  • +
  • SemiCircleSpin: SemiCircleSpin animation.
  • +
  • BallRotateChase: BallRotateChase animation.
  • +
  • Orbit: Orbit animation.
  • +
  • AudioEqualizer: AudioEqualizer animation.
  • +
  • CircleStrokeSpin: CircleStrokeSpin animation.
  • +
+ +
+
+ +
+
+
+
    +
  • +
    + + + + blank + +
    +
    +
    +
    +
    +
    +

    Blank.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case blank
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBlank.

    +
    +
    +
    +
  • +
  • +
    + + + + ballPulse + +
    +
    +
    +
    +
    +
    +

    BallPulse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballPulse
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallPulse.

    +
    +
    +
    +
  • +
  • +
    + + + + ballGridPulse + +
    +
    +
    +
    +
    +
    +

    BallGridPulse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballGridPulse
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallGridPulse.

    +
    +
    +
    +
  • +
  • +
    + + + + ballClipRotate + +
    +
    +
    +
    +
    +
    +

    BallClipRotate.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballClipRotate
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallClipRotate.

    +
    +
    +
    +
  • +
  • +
    + + + + squareSpin + +
    +
    +
    +
    +
    +
    +

    SquareSpin.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case squareSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationSquareSpin.

    +
    +
    +
    +
  • +
  • +
    + + + + ballClipRotatePulse + +
    +
    +
    +
    +
    +
    +

    BallClipRotatePulse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballClipRotatePulse
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallClipRotatePulse.

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

    BallClipRotateMultiple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballClipRotateMultiple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallClipRotateMultiple.

    +
    +
    +
    +
  • +
  • +
    + + + + ballPulseRise + +
    +
    +
    +
    +
    +
    +

    BallPulseRise.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballPulseRise
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallPulseRise.

    +
    +
    +
    +
  • +
  • +
    + + + + ballRotate + +
    +
    +
    +
    +
    +
    +

    BallRotate.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballRotate
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallRotate.

    +
    +
    +
    +
  • +
  • +
    + + + + cubeTransition + +
    +
    +
    +
    +
    +
    +

    CubeTransition.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case cubeTransition
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationCubeTransition.

    +
    +
    +
    +
  • +
  • +
    + + + + ballZigZag + +
    +
    +
    +
    +
    +
    +

    BallZigZag.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballZigZag
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallZigZag.

    +
    +
    +
    +
  • +
  • +
    + + + + ballZigZagDeflect + +
    +
    +
    +
    +
    +
    +

    BallZigZagDeflect

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballZigZagDeflect
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallZigZagDeflect

    +
    +
    +
    +
  • +
  • +
    + + + + ballTrianglePath + +
    +
    +
    +
    +
    +
    +

    BallTrianglePath.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballTrianglePath
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallTrianglePath.

    +
    +
    +
    +
  • +
  • +
    + + + + ballScale + +
    +
    +
    +
    +
    +
    +

    BallScale.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScale
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScale.

    +
    +
    +
    +
  • +
  • +
    + + + + lineScale + +
    +
    +
    +
    +
    +
    +

    LineScale.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScale
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScale.

    +
    +
    +
    +
  • +
  • +
    + + + + lineScaleParty + +
    +
    +
    +
    +
    +
    +

    LineScaleParty.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScaleParty
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScaleParty.

    +
    +
    +
    +
  • +
  • +
    + + + + ballScaleMultiple + +
    +
    +
    +
    +
    +
    +

    BallScaleMultiple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScaleMultiple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScaleMultiple.

    +
    +
    +
    +
  • +
  • +
    + + + + ballPulseSync + +
    +
    +
    +
    +
    +
    +

    BallPulseSync.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballPulseSync
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallPulseSync.

    +
    +
    +
    +
  • +
  • +
    + + + + ballBeat + +
    +
    +
    +
    +
    +
    +

    BallBeat.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballBeat
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallBeat.

    +
    +
    +
    +
  • +
  • +
    + + + + ballDoubleBounce + +
    +
    +
    +
    +
    +
    +

    BallDoubleBounce.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballDoubleBounce
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallDoubleBounce.

    +
    +
    +
    +
  • +
  • +
    + + + + lineScalePulseOut + +
    +
    +
    +
    +
    +
    +

    LineScalePulseOut.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScalePulseOut
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScalePulseOut.

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

    LineScalePulseOutRapid.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScalePulseOutRapid
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScalePulseOutRapid.

    +
    +
    +
    +
  • +
  • +
    + + + + ballScaleRipple + +
    +
    +
    +
    +
    +
    +

    BallScaleRipple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScaleRipple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScaleRipple.

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

    BallScaleRippleMultiple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScaleRippleMultiple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScaleRippleMultiple.

    +
    +
    +
    +
  • +
  • +
    + + + + ballSpinFadeLoader + +
    +
    +
    +
    +
    +
    +

    BallSpinFadeLoader.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballSpinFadeLoader
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallSpinFadeLoader.

    +
    +
    +
    +
  • +
  • +
    + + + + lineSpinFadeLoader + +
    +
    +
    +
    +
    +
    +

    LineSpinFadeLoader.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineSpinFadeLoader
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineSpinFadeLoader.

    +
    +
    +
    +
  • +
  • +
    + + + + triangleSkewSpin + +
    +
    +
    +
    +
    +
    +

    TriangleSkewSpin.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case triangleSkewSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationTriangleSkewSpin.

    +
    +
    +
    +
  • +
  • +
    + + + + pacman + +
    +
    +
    +
    +
    +
    +

    Pacman.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pacman
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationPacman.

    +
    +
    +
    +
  • +
  • +
    + + + + ballGridBeat + +
    +
    +
    +
    +
    +
    +

    BallGridBeat.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballGridBeat
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallGridBeat.

    +
    +
    +
    +
  • +
  • +
    + + + + semiCircleSpin + +
    +
    +
    +
    +
    +
    +

    SemiCircleSpin.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case semiCircleSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationSemiCircleSpin.

    +
    +
    +
    +
  • +
  • +
    + + + + ballRotateChase + +
    +
    +
    +
    +
    +
    +

    BallRotateChase.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballRotateChase
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallRotateChase.

    +
    +
    +
    +
  • +
  • +
    + + + + orbit + +
    +
    +
    +
    +
    +
    +

    Orbit.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case orbit
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationOrbit.

    +
    +
    +
    +
  • +
  • +
    + + + + audioEqualizer + +
    +
    +
    +
    +
    +
    +

    AudioEqualizer.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case audioEqualizer
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationAudioEqualizer.

    +
    +
    +
    +
  • +
  • +
    + + + + circleStrokeSpin + +
    +
    +
    +
    +
    +
    +

    Stroke.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case circleStrokeSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationCircleStrokeSpin.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Guides.html b/docs/Guides.html new file mode 100644 index 00000000..6ed9675b --- /dev/null +++ b/docs/Guides.html @@ -0,0 +1,99 @@ + + + + Guides Reference + + + + + + + + + + +
+
+

NVActivityIndicatorView Docs (98% documented)

+
+
+
+ +
+
+ +
+
+
+

Guides

+

The following guides are available globally.

+ +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols.html b/docs/Protocols.html new file mode 100644 index 00000000..b0634860 --- /dev/null +++ b/docs/Protocols.html @@ -0,0 +1,145 @@ + + + + Protocols Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

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

    UIViewController conforms this protocol to be able to display NVActivityIndicatorView as UI blocker.

    + +

    This extends abilities of UIViewController to display and remove UI blocker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol NVActivityIndicatorViewable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Protocols/NVActivityIndicatorViewable.html b/docs/Protocols/NVActivityIndicatorViewable.html new file mode 100644 index 00000000..d97391d9 --- /dev/null +++ b/docs/Protocols/NVActivityIndicatorViewable.html @@ -0,0 +1,360 @@ + + + + NVActivityIndicatorViewable Protocol Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorViewable

+
+
+
public protocol NVActivityIndicatorViewable
+ +
+
+

UIViewController conforms this protocol to be able to display NVActivityIndicatorView as UI blocker.

+ +

This extends abilities of UIViewController to display and remove UI blocker.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + isAnimating + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var isAnimating: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Display UI blocker.

    + +

    Appropriate NVActivityIndicatorView.DEFAULT_* values are used for omitted params.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startAnimating(
    +    _ size: CGSize? = nil,
    +    message: String? = nil,
    +    messageFont: UIFont? = nil,
    +    type: NVActivityIndicatorType? = nil,
    +    color: UIColor? = nil,
    +    padding: CGFloat? = nil,
    +    displayTimeThreshold: Int? = nil,
    +    minimumDisplayTime: Int? = nil,
    +    backgroundColor: UIColor? = nil,
    +    textColor: UIColor? = nil,
    +    fadeInAnimation: FadeInAnimation? = NVActivityIndicatorView.DEFAULT_FADE_IN_ANIMATION)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + size + + +
    +

    size of activity indicator view.

    +
    +
    + + message + + +
    +

    message displayed under activity indicator view.

    +
    +
    + + messageFont + + +
    +

    font of message displayed under activity indicator view.

    +
    +
    + + type + + +
    +

    animation type.

    +
    +
    + + color + + +
    +

    color of activity indicator view.

    +
    +
    + + padding + + +
    +

    padding of activity indicator view.

    +
    +
    + + displayTimeThreshold + + +
    +

    display time threshold to actually display UI blocker.

    +
    +
    + + minimumDisplayTime + + +
    +

    minimum display time of UI blocker.

    +
    +
    + + fadeInAnimation + + +
    +

    fade in animation.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + stopAnimating(_:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Remove UI blocker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stopAnimating(_ fadeOutAnimation: FadeOutAnimation? = NVActivityIndicatorView.DEFAULT_FADE_OUT_ANIMATION)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + fadeOutAnimation + + +
    +

    fade out animation.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/Typealiases.html b/docs/Typealiases.html new file mode 100644 index 00000000..5448d186 --- /dev/null +++ b/docs/Typealiases.html @@ -0,0 +1,174 @@ + + + + Type Aliases Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Type Aliases

+

The following type aliases are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + FadeInAnimation + +
    +
    +
    +
    +
    +
    +

    Function that performs fade in/out animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias FadeInAnimation = (UIView) -> Void
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FadeOutAnimation + +
    +
    +
    +
    +
    +
    +

    Function that performs fade out animation.

    +
    +

    Note

    + Must call the second parameter on the animation completion. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias FadeOutAnimation = (UIView, @escaping () -> Void) -> Void
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/badge.svg b/docs/badge.svg new file mode 100644 index 00000000..f47d948f --- /dev/null +++ b/docs/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 98% + + + 98% + + + diff --git a/docs/css/highlight.css b/docs/css/highlight.css new file mode 100644 index 00000000..d0db0e13 --- /dev/null +++ b/docs/css/highlight.css @@ -0,0 +1,200 @@ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Deleted.Specific */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Inserted.Specific */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .c { + color: #999988; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + color: #000000; + font-weight: bold; } + .highlight .o { + color: #000000; + font-weight: bold; } + .highlight .cm { + color: #999988; + font-style: italic; } + .highlight .cp { + color: #999999; + font-weight: bold; } + .highlight .c1 { + color: #999988; + font-style: italic; } + .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000000; + background-color: #ffdddd; } + .highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + .highlight .ge { + color: #000000; + font-style: italic; } + .highlight .gr { + color: #aa0000; } + .highlight .gh { + color: #999999; } + .highlight .gi { + color: #000000; + background-color: #ddffdd; } + .highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + .highlight .go { + color: #888888; } + .highlight .gp { + color: #555555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaaaaa; } + .highlight .gt { + color: #aa0000; } + .highlight .kc { + color: #000000; + font-weight: bold; } + .highlight .kd { + color: #000000; + font-weight: bold; } + .highlight .kp { + color: #000000; + font-weight: bold; } + .highlight .kr { + color: #000000; + font-weight: bold; } + .highlight .kt { + color: #445588; } + .highlight .m { + color: #009999; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #445588; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #990000; + font-weight: bold; } + .highlight .nf { + color: #990000; } + .highlight .nn { + color: #555555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + color: #000000; + font-weight: bold; } + .highlight .w { + color: #bbbbbb; } + .highlight .mf { + color: #009999; } + .highlight .mh { + color: #009999; } + .highlight .mi { + color: #009999; } + .highlight .mo { + color: #009999; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #009999; } diff --git a/docs/css/jazzy.css b/docs/css/jazzy.css new file mode 100644 index 00000000..c83db5bf --- /dev/null +++ b/docs/css/jazzy.css @@ -0,0 +1,368 @@ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +p > code, li > code { + background: #f7f7f7; + padding: .2em; } + p > code:before, p > code:after, li > code:before, li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } + +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } + +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } + +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token { + padding-left: 3px; + margin-left: 0px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } +form[role=search] .tt-highlight { + font-weight: bold; } +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Info.plist b/docs/docsets/NVActivityIndicatorView.docset/Contents/Info.plist new file mode 100644 index 00000000..85cc3faf --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.nvactivityindicatorview + CFBundleName + NVActivityIndicatorView + DocSetPlatformFamily + nvactivityindicatorview + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/CNAME b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/CNAME new file mode 100644 index 00000000..11a23aa5 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/CNAME @@ -0,0 +1 @@ +nvactivityindicatorview.vinhis.me \ No newline at end of file diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 00000000..654aa5fb --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,203 @@ + + + + Classes Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

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

    Activity indicator view with nice animations

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class NVActivityIndicatorView : UIView
    + +
    +
    +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + ActivityData + +
    +
    +
    +
    +
    +
    +

    Class packages information used to display UI blocker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class ActivityData
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Presenter that displays NVActivityIndicatorView as UI blocker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class NVActivityIndicatorPresenter
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/ActivityData.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/ActivityData.html new file mode 100644 index 00000000..e3f0aa3a --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/ActivityData.html @@ -0,0 +1,291 @@ + + + + ActivityData Class Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

ActivityData

+
+
+
public final class ActivityData
+ +
+
+

Class packages information used to display UI blocker.

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

    Create information package used to display UI blocker.

    + +

    Appropriate NVActivityIndicatorView.DEFAULT_* values are used for omitted params.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(size: CGSize? = nil,
    +            message: String? = nil,
    +            messageFont: UIFont? = nil,
    +            messageSpacing: CGFloat? = nil,
    +            type: NVActivityIndicatorType? = nil,
    +            color: UIColor? = nil,
    +            padding: CGFloat? = nil,
    +            displayTimeThreshold: Int? = nil,
    +            minimumDisplayTime: Int? = nil,
    +            backgroundColor: UIColor? = nil,
    +            textColor: UIColor? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + size + + +
    +

    size of activity indicator view.

    +
    +
    + + message + + +
    +

    message displayed under activity indicator view.

    +
    +
    + + messageFont + + +
    +

    font of message displayed under activity indicator view.

    +
    +
    + + messageSpacing + + +
    +

    message spacing to activity indicator view.

    +
    +
    + + type + + +
    +

    animation type.

    +
    +
    + + color + + +
    +

    color of activity indicator view.

    +
    +
    + + padding + + +
    +

    padding of activity indicator view.

    +
    +
    + + displayTimeThreshold + + +
    +

    display time threshold to actually display UI blocker.

    +
    +
    + + minimumDisplayTime + + +
    +

    minimum display time of UI blocker.

    +
    +
    + + textColor + + +
    +

    color of the text below the activity indicator view. Will match color parameter if not set, otherwise DEFAULT_TEXT_COLOR if color is not set.

    +
    +
    +
    +
    +

    Return Value

    +

    The information package used to display UI blocker.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/NVActivityIndicatorPresenter.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/NVActivityIndicatorPresenter.html new file mode 100644 index 00000000..9df08e4b --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/NVActivityIndicatorPresenter.html @@ -0,0 +1,336 @@ + + + + NVActivityIndicatorPresenter Class Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorPresenter

+
+
+
public final class NVActivityIndicatorPresenter
+ +
+
+

Presenter that displays NVActivityIndicatorView as UI blocker.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + sharedInstance + +
    +
    +
    +
    +
    +
    +

    Shared instance of NVActivityIndicatorPresenter.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let sharedInstance: NVActivityIndicatorPresenter
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isAnimating + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isAnimating: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + startAnimating(_:_:) + +
    +
    +
    +
    +
    +
    +

    Display UI blocker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func startAnimating(_ data: ActivityData, _ fadeInAnimation: FadeInAnimation?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + data + + +
    +

    Information package used to display UI blocker.

    +
    +
    + + fadeInAnimation + + +
    +

    Fade in animation.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + stopAnimating(_:) + +
    +
    +
    +
    +
    +
    +

    Remove UI blocker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func stopAnimating(_ fadeOutAnimation: FadeOutAnimation?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + fadeOutAnimation + + +
    +

    Fade out animation.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + setMessage(_:) + +
    +
    +
    +
    +
    +
    +

    Set message displayed under activity indicator view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func setMessage(_ message: String?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + message + + +
    +

    message displayed under activity indicator view.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/NVActivityIndicatorView.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/NVActivityIndicatorView.html new file mode 100644 index 00000000..54a2cef1 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Classes/NVActivityIndicatorView.html @@ -0,0 +1,873 @@ + + + + NVActivityIndicatorView Class Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorView

+
+
+
public final class NVActivityIndicatorView : UIView
+ +
+
+

Activity indicator view with nice animations

+ +
+
+ +
+
+
+
    +
  • +
    + + + + DEFAULT_TYPE + +
    +
    +
    +
    +
    +
    +

    Default type. Default value is .BallSpinFadeLoader.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_TYPE: NVActivityIndicatorType
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_COLOR + +
    +
    +
    +
    +
    +
    +

    Default color of activity indicator. Default value is UIColor.white.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_COLOR: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_TEXT_COLOR + +
    +
    +
    +
    +
    +
    +

    Default color of text. Default value is UIColor.white.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_TEXT_COLOR: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_PADDING + +
    +
    +
    +
    +
    +
    +

    Default padding. Default value is 0.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_PADDING: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + DEFAULT_BLOCKER_SIZE + +
    +
    +
    +
    +
    +
    +

    Default size of activity indicator view in UI blocker. Default value is 60x60.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_SIZE: CGSize
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default display time threshold to actually display UI blocker. Default value is 0 ms.

    +
    +

    Note

    + Default time that has to be elapsed (between calls of startAnimating() and stopAnimating()) in order to actually display UI blocker. It should be set thinking about what the minimum duration of an activity is to be worth showing it to the user. If the activity ends before this time threshold, then it will not be displayed at all. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_DISPLAY_TIME_THRESHOLD: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default minimum display time of UI blocker. Default value is 0 ms.

    +
    +

    Note

    + Default minimum display time of UI blocker. Its main purpose is to avoid flashes showing and hiding it so fast. For instance, setting it to 200ms will force UI blocker to be shown for at least this time (regardless of calling stopAnimating() ealier). + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MINIMUM_DISPLAY_TIME: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default message displayed in UI blocker. Default value is nil.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MESSAGE: String?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default message spacing to activity indicator view in UI blocker. Default value is 8.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MESSAGE_SPACING: CGFloat
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default font of message displayed in UI blocker. Default value is bold system font, size 20.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_MESSAGE_FONT: UIFont
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default background color of UI blocker. Default value is UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_BLOCKER_BACKGROUND_COLOR: UIColor
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default fade in animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_FADE_IN_ANIMATION: FadeInAnimation
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default fade out animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var DEFAULT_FADE_OUT_ANIMATION: FadeOutAnimation
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + type + +
    +
    +
    +
    +
    +
    +

    Animation type.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var type: NVActivityIndicatorType
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + color + +
    +
    +
    +
    +
    +
    +

    Color of activity indicator view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @IBInspectable
    +public var color: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + padding + +
    +
    +
    +
    +
    +
    +

    Padding of activity indicator view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @IBInspectable
    +public var padding: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + animating + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @available(*, deprecated: 3.1)
    +public var animating: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isAnimating + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    private(set) public var isAnimating: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Returns an object initialized from data in a given unarchiver. +self, initialized using the data in decoder.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder aDecoder: NSCoder)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + decoder + + +
    +

    an unarchiver object.

    +
    +
    +
    +
    +

    Return Value

    +

    self, initialized using the data in decoder.

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

    Create a activity indicator view.

    + +

    Appropriate NVActivityIndicatorView.DEFAULT_* values are used for omitted params.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(frame: CGRect, type: NVActivityIndicatorType? = nil, color: UIColor? = nil, padding: CGFloat? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + frame + + +
    +

    view’s frame.

    +
    +
    + + type + + +
    +

    animation type.

    +
    +
    + + color + + +
    +

    color of activity indicator view.

    +
    +
    + + padding + + +
    +

    padding of activity indicator view.

    +
    +
    +
    +
    +

    Return Value

    +

    The activity indicator view.

    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Returns the natural size for the receiving view, considering only properties of the view itself.

    + +

    A size indicating the natural size for the receiving view based on its intrinsic properties.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public override var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +

    Return Value

    +

    A size indicating the natural size for the receiving view based on its intrinsic properties.

    +
    +
    +
    +
  • +
  • +
    + + + + bounds + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public override var bounds: CGRect { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + startAnimating() + +
    +
    +
    +
    +
    +
    +

    Start animating.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func startAnimating()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stopAnimating() + +
    +
    +
    +
    +
    +
    +

    Stop animating.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final func stopAnimating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 00000000..29409112 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,180 @@ + + + + Enumerations Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

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

    Enum of animation types used for activity indicator view.

    + +
      +
    • Blank: Blank animation.
    • +
    • BallPulse: BallPulse animation.
    • +
    • BallGridPulse: BallGridPulse animation.
    • +
    • BallClipRotate: BallClipRotate animation.
    • +
    • SquareSpin: SquareSpin animation.
    • +
    • BallClipRotatePulse: BallClipRotatePulse animation.
    • +
    • BallClipRotateMultiple: BallClipRotateMultiple animation.
    • +
    • BallPulseRise: BallPulseRise animation.
    • +
    • BallRotate: BallRotate animation.
    • +
    • CubeTransition: CubeTransition animation.
    • +
    • BallZigZag: BallZigZag animation.
    • +
    • BallZigZagDeflect: BallZigZagDeflect animation.
    • +
    • BallTrianglePath: BallTrianglePath animation.
    • +
    • BallScale: BallScale animation.
    • +
    • LineScale: LineScale animation.
    • +
    • LineScaleParty: LineScaleParty animation.
    • +
    • BallScaleMultiple: BallScaleMultiple animation.
    • +
    • BallPulseSync: BallPulseSync animation.
    • +
    • BallBeat: BallBeat animation.
    • +
    • BallDoubleBounce: BallDoubleBounce animation.
    • +
    • LineScalePulseOut: LineScalePulseOut animation.
    • +
    • LineScalePulseOutRapid: LineScalePulseOutRapid animation.
    • +
    • BallScaleRipple: BallScaleRipple animation.
    • +
    • BallScaleRippleMultiple: BallScaleRippleMultiple animation.
    • +
    • BallSpinFadeLoader: BallSpinFadeLoader animation.
    • +
    • LineSpinFadeLoader: LineSpinFadeLoader animation.
    • +
    • TriangleSkewSpin: TriangleSkewSpin animation.
    • +
    • Pacman: Pacman animation.
    • +
    • BallGridBeat: BallGridBeat animation.
    • +
    • SemiCircleSpin: SemiCircleSpin animation.
    • +
    • BallRotateChase: BallRotateChase animation.
    • +
    • Orbit: Orbit animation.
    • +
    • AudioEqualizer: AudioEqualizer animation.
    • +
    • CircleStrokeSpin: CircleStrokeSpin animation.
    • +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum NVActivityIndicatorType : CaseIterable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Enums/NVActivityIndicatorType.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Enums/NVActivityIndicatorType.html new file mode 100644 index 00000000..eed835af --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Enums/NVActivityIndicatorType.html @@ -0,0 +1,1212 @@ + + + + NVActivityIndicatorType Enumeration Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorType

+
+
+
public enum NVActivityIndicatorType : CaseIterable
+ +
+
+

Enum of animation types used for activity indicator view.

+ +
    +
  • Blank: Blank animation.
  • +
  • BallPulse: BallPulse animation.
  • +
  • BallGridPulse: BallGridPulse animation.
  • +
  • BallClipRotate: BallClipRotate animation.
  • +
  • SquareSpin: SquareSpin animation.
  • +
  • BallClipRotatePulse: BallClipRotatePulse animation.
  • +
  • BallClipRotateMultiple: BallClipRotateMultiple animation.
  • +
  • BallPulseRise: BallPulseRise animation.
  • +
  • BallRotate: BallRotate animation.
  • +
  • CubeTransition: CubeTransition animation.
  • +
  • BallZigZag: BallZigZag animation.
  • +
  • BallZigZagDeflect: BallZigZagDeflect animation.
  • +
  • BallTrianglePath: BallTrianglePath animation.
  • +
  • BallScale: BallScale animation.
  • +
  • LineScale: LineScale animation.
  • +
  • LineScaleParty: LineScaleParty animation.
  • +
  • BallScaleMultiple: BallScaleMultiple animation.
  • +
  • BallPulseSync: BallPulseSync animation.
  • +
  • BallBeat: BallBeat animation.
  • +
  • BallDoubleBounce: BallDoubleBounce animation.
  • +
  • LineScalePulseOut: LineScalePulseOut animation.
  • +
  • LineScalePulseOutRapid: LineScalePulseOutRapid animation.
  • +
  • BallScaleRipple: BallScaleRipple animation.
  • +
  • BallScaleRippleMultiple: BallScaleRippleMultiple animation.
  • +
  • BallSpinFadeLoader: BallSpinFadeLoader animation.
  • +
  • LineSpinFadeLoader: LineSpinFadeLoader animation.
  • +
  • TriangleSkewSpin: TriangleSkewSpin animation.
  • +
  • Pacman: Pacman animation.
  • +
  • BallGridBeat: BallGridBeat animation.
  • +
  • SemiCircleSpin: SemiCircleSpin animation.
  • +
  • BallRotateChase: BallRotateChase animation.
  • +
  • Orbit: Orbit animation.
  • +
  • AudioEqualizer: AudioEqualizer animation.
  • +
  • CircleStrokeSpin: CircleStrokeSpin animation.
  • +
+ +
+
+ +
+
+
+
    +
  • +
    + + + + blank + +
    +
    +
    +
    +
    +
    +

    Blank.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case blank
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBlank.

    +
    +
    +
    +
  • +
  • +
    + + + + ballPulse + +
    +
    +
    +
    +
    +
    +

    BallPulse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballPulse
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallPulse.

    +
    +
    +
    +
  • +
  • +
    + + + + ballGridPulse + +
    +
    +
    +
    +
    +
    +

    BallGridPulse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballGridPulse
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallGridPulse.

    +
    +
    +
    +
  • +
  • +
    + + + + ballClipRotate + +
    +
    +
    +
    +
    +
    +

    BallClipRotate.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballClipRotate
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallClipRotate.

    +
    +
    +
    +
  • +
  • +
    + + + + squareSpin + +
    +
    +
    +
    +
    +
    +

    SquareSpin.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case squareSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationSquareSpin.

    +
    +
    +
    +
  • +
  • +
    + + + + ballClipRotatePulse + +
    +
    +
    +
    +
    +
    +

    BallClipRotatePulse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballClipRotatePulse
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallClipRotatePulse.

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

    BallClipRotateMultiple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballClipRotateMultiple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallClipRotateMultiple.

    +
    +
    +
    +
  • +
  • +
    + + + + ballPulseRise + +
    +
    +
    +
    +
    +
    +

    BallPulseRise.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballPulseRise
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallPulseRise.

    +
    +
    +
    +
  • +
  • +
    + + + + ballRotate + +
    +
    +
    +
    +
    +
    +

    BallRotate.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballRotate
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallRotate.

    +
    +
    +
    +
  • +
  • +
    + + + + cubeTransition + +
    +
    +
    +
    +
    +
    +

    CubeTransition.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case cubeTransition
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationCubeTransition.

    +
    +
    +
    +
  • +
  • +
    + + + + ballZigZag + +
    +
    +
    +
    +
    +
    +

    BallZigZag.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballZigZag
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallZigZag.

    +
    +
    +
    +
  • +
  • +
    + + + + ballZigZagDeflect + +
    +
    +
    +
    +
    +
    +

    BallZigZagDeflect

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballZigZagDeflect
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallZigZagDeflect

    +
    +
    +
    +
  • +
  • +
    + + + + ballTrianglePath + +
    +
    +
    +
    +
    +
    +

    BallTrianglePath.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballTrianglePath
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallTrianglePath.

    +
    +
    +
    +
  • +
  • +
    + + + + ballScale + +
    +
    +
    +
    +
    +
    +

    BallScale.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScale
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScale.

    +
    +
    +
    +
  • +
  • +
    + + + + lineScale + +
    +
    +
    +
    +
    +
    +

    LineScale.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScale
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScale.

    +
    +
    +
    +
  • +
  • +
    + + + + lineScaleParty + +
    +
    +
    +
    +
    +
    +

    LineScaleParty.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScaleParty
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScaleParty.

    +
    +
    +
    +
  • +
  • +
    + + + + ballScaleMultiple + +
    +
    +
    +
    +
    +
    +

    BallScaleMultiple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScaleMultiple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScaleMultiple.

    +
    +
    +
    +
  • +
  • +
    + + + + ballPulseSync + +
    +
    +
    +
    +
    +
    +

    BallPulseSync.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballPulseSync
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallPulseSync.

    +
    +
    +
    +
  • +
  • +
    + + + + ballBeat + +
    +
    +
    +
    +
    +
    +

    BallBeat.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballBeat
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallBeat.

    +
    +
    +
    +
  • +
  • +
    + + + + ballDoubleBounce + +
    +
    +
    +
    +
    +
    +

    BallDoubleBounce.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballDoubleBounce
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallDoubleBounce.

    +
    +
    +
    +
  • +
  • +
    + + + + lineScalePulseOut + +
    +
    +
    +
    +
    +
    +

    LineScalePulseOut.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScalePulseOut
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScalePulseOut.

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

    LineScalePulseOutRapid.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineScalePulseOutRapid
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineScalePulseOutRapid.

    +
    +
    +
    +
  • +
  • +
    + + + + ballScaleRipple + +
    +
    +
    +
    +
    +
    +

    BallScaleRipple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScaleRipple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScaleRipple.

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

    BallScaleRippleMultiple.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballScaleRippleMultiple
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallScaleRippleMultiple.

    +
    +
    +
    +
  • +
  • +
    + + + + ballSpinFadeLoader + +
    +
    +
    +
    +
    +
    +

    BallSpinFadeLoader.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballSpinFadeLoader
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallSpinFadeLoader.

    +
    +
    +
    +
  • +
  • +
    + + + + lineSpinFadeLoader + +
    +
    +
    +
    +
    +
    +

    LineSpinFadeLoader.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lineSpinFadeLoader
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationLineSpinFadeLoader.

    +
    +
    +
    +
  • +
  • +
    + + + + triangleSkewSpin + +
    +
    +
    +
    +
    +
    +

    TriangleSkewSpin.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case triangleSkewSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationTriangleSkewSpin.

    +
    +
    +
    +
  • +
  • +
    + + + + pacman + +
    +
    +
    +
    +
    +
    +

    Pacman.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pacman
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationPacman.

    +
    +
    +
    +
  • +
  • +
    + + + + ballGridBeat + +
    +
    +
    +
    +
    +
    +

    BallGridBeat.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballGridBeat
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallGridBeat.

    +
    +
    +
    +
  • +
  • +
    + + + + semiCircleSpin + +
    +
    +
    +
    +
    +
    +

    SemiCircleSpin.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case semiCircleSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationSemiCircleSpin.

    +
    +
    +
    +
  • +
  • +
    + + + + ballRotateChase + +
    +
    +
    +
    +
    +
    +

    BallRotateChase.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ballRotateChase
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationBallRotateChase.

    +
    +
    +
    +
  • +
  • +
    + + + + orbit + +
    +
    +
    +
    +
    +
    +

    Orbit.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case orbit
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationOrbit.

    +
    +
    +
    +
  • +
  • +
    + + + + audioEqualizer + +
    +
    +
    +
    +
    +
    +

    AudioEqualizer.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case audioEqualizer
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationAudioEqualizer.

    +
    +
    +
    +
  • +
  • +
    + + + + circleStrokeSpin + +
    +
    +
    +
    +
    +
    +

    Stroke.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case circleStrokeSpin
    + +
    +
    +
    +

    Return Value

    +

    Instance of NVActivityIndicatorAnimationCircleStrokeSpin.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Guides.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Guides.html new file mode 100644 index 00000000..6ed9675b --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Guides.html @@ -0,0 +1,99 @@ + + + + Guides Reference + + + + + + + + + + +
+
+

NVActivityIndicatorView Docs (98% documented)

+
+
+
+ +
+
+ +
+
+
+

Guides

+

The following guides are available globally.

+ +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 00000000..b0634860 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,145 @@ + + + + Protocols Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

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

    UIViewController conforms this protocol to be able to display NVActivityIndicatorView as UI blocker.

    + +

    This extends abilities of UIViewController to display and remove UI blocker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol NVActivityIndicatorViewable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Protocols/NVActivityIndicatorViewable.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Protocols/NVActivityIndicatorViewable.html new file mode 100644 index 00000000..d97391d9 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Protocols/NVActivityIndicatorViewable.html @@ -0,0 +1,360 @@ + + + + NVActivityIndicatorViewable Protocol Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

NVActivityIndicatorViewable

+
+
+
public protocol NVActivityIndicatorViewable
+ +
+
+

UIViewController conforms this protocol to be able to display NVActivityIndicatorView as UI blocker.

+ +

This extends abilities of UIViewController to display and remove UI blocker.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + isAnimating + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Current status of animation, read-only.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var isAnimating: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Display UI blocker.

    + +

    Appropriate NVActivityIndicatorView.DEFAULT_* values are used for omitted params.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startAnimating(
    +    _ size: CGSize? = nil,
    +    message: String? = nil,
    +    messageFont: UIFont? = nil,
    +    type: NVActivityIndicatorType? = nil,
    +    color: UIColor? = nil,
    +    padding: CGFloat? = nil,
    +    displayTimeThreshold: Int? = nil,
    +    minimumDisplayTime: Int? = nil,
    +    backgroundColor: UIColor? = nil,
    +    textColor: UIColor? = nil,
    +    fadeInAnimation: FadeInAnimation? = NVActivityIndicatorView.DEFAULT_FADE_IN_ANIMATION)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + size + + +
    +

    size of activity indicator view.

    +
    +
    + + message + + +
    +

    message displayed under activity indicator view.

    +
    +
    + + messageFont + + +
    +

    font of message displayed under activity indicator view.

    +
    +
    + + type + + +
    +

    animation type.

    +
    +
    + + color + + +
    +

    color of activity indicator view.

    +
    +
    + + padding + + +
    +

    padding of activity indicator view.

    +
    +
    + + displayTimeThreshold + + +
    +

    display time threshold to actually display UI blocker.

    +
    +
    + + minimumDisplayTime + + +
    +

    minimum display time of UI blocker.

    +
    +
    + + fadeInAnimation + + +
    +

    fade in animation.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + stopAnimating(_:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Remove UI blocker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stopAnimating(_ fadeOutAnimation: FadeOutAnimation? = NVActivityIndicatorView.DEFAULT_FADE_OUT_ANIMATION)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + fadeOutAnimation + + +
    +

    fade out animation.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Typealiases.html new file mode 100644 index 00000000..5448d186 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/Typealiases.html @@ -0,0 +1,174 @@ + + + + Type Aliases Reference + + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+

Type Aliases

+

The following type aliases are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + FadeInAnimation + +
    +
    +
    +
    +
    +
    +

    Function that performs fade in/out animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias FadeInAnimation = (UIView) -> Void
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FadeOutAnimation + +
    +
    +
    +
    +
    +
    +

    Function that performs fade out animation.

    +
    +

    Note

    + Must call the second parameter on the animation completion. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias FadeOutAnimation = (UIView, @escaping () -> Void) -> Void
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/badge.svg b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/badge.svg new file mode 100644 index 00000000..f47d948f --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 98% + + + 98% + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/css/highlight.css b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 00000000..d0db0e13 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,200 @@ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Deleted.Specific */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Inserted.Specific */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .c { + color: #999988; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + color: #000000; + font-weight: bold; } + .highlight .o { + color: #000000; + font-weight: bold; } + .highlight .cm { + color: #999988; + font-style: italic; } + .highlight .cp { + color: #999999; + font-weight: bold; } + .highlight .c1 { + color: #999988; + font-style: italic; } + .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000000; + background-color: #ffdddd; } + .highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + .highlight .ge { + color: #000000; + font-style: italic; } + .highlight .gr { + color: #aa0000; } + .highlight .gh { + color: #999999; } + .highlight .gi { + color: #000000; + background-color: #ddffdd; } + .highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + .highlight .go { + color: #888888; } + .highlight .gp { + color: #555555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaaaaa; } + .highlight .gt { + color: #aa0000; } + .highlight .kc { + color: #000000; + font-weight: bold; } + .highlight .kd { + color: #000000; + font-weight: bold; } + .highlight .kp { + color: #000000; + font-weight: bold; } + .highlight .kr { + color: #000000; + font-weight: bold; } + .highlight .kt { + color: #445588; } + .highlight .m { + color: #009999; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #445588; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #990000; + font-weight: bold; } + .highlight .nf { + color: #990000; } + .highlight .nn { + color: #555555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + color: #000000; + font-weight: bold; } + .highlight .w { + color: #bbbbbb; } + .highlight .mf { + color: #009999; } + .highlight .mh { + color: #009999; } + .highlight .mi { + color: #009999; } + .highlight .mo { + color: #009999; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #009999; } diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 00000000..c83db5bf --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,368 @@ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +p > code, li > code { + background: #f7f7f7; + padding: .2em; } + p > code:before, p > code:after, li > code:before, li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } + +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } + +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } + +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token { + padding-left: 3px; + margin-left: 0px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } +form[role=search] .tt-highlight { + font-weight: bold; } +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/carat.png b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 00000000..29d2f7fd Binary files /dev/null and b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/carat.png differ diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/dash.png b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 00000000..6f694c7a Binary files /dev/null and b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/dash.png differ diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/gh.png b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/gh.png new file mode 100755 index 00000000..628da97c Binary files /dev/null and b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/gh.png differ diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/spinner.gif b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/spinner.gif new file mode 100644 index 00000000..e3038d0a Binary files /dev/null and b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/img/spinner.gif differ diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/index.html b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/index.html new file mode 100644 index 00000000..dde1ff15 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,338 @@ + + + + NVActivityIndicatorView Reference + + + + + + + + + + + + +
+

+ + NVActivityIndicatorView Docs + + (98% documented) +

+ + +

+ + + View on GitHub + +

+ +
+ + + +
+ +
+ +
+
+ +

NVActivityIndicatorView

+ +

Build Status +Cocoapods Compatible +Carthage Compatible +Reviewed by Hound

+

Introduction

+ +

NVActivityIndicatorView is a collection of awesome loading animations.

+ +

This is original a fork from DGActivityIndicatorView, inspired by Loaders.css, written in Swift with full implementation of animations, plus more.

+ +

You can also find Objective-C version of this here.

+

Demo

+ +

alt tag

+ +

For first-hand experience, just open the project and run it.

+

Animation types

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeTypeTypeType
1. ballPulse2. ballGridPulse3. ballClipRotate4. squareSpin
5. ballClipRotatePulse6. ballClipRotateMultiple7. ballPulseRise8. ballRotate
9. cubeTransition10. ballZigZag11. ballZigZagDeflect12. ballTrianglePath
13. ballScale14. lineScale15. lineScaleParty16. ballScaleMultiple
17. ballPulseSync18. ballBeat19. lineScalePulseOut20. lineScalePulseOutRapid
21. ballScaleRipple22. ballScaleRippleMultiple23. ballSpinFadeLoader24. lineSpinFadeLoader
25. triangleSkewSpin26. pacman27. ballGridBeat28. semiCircleSpin
29. ballRotateChase30. orbit31. audioEqualizer32. circleStrokeSpin
+

Installation

+

Cocoapods

+ +

Install Cocoapods if need be.

+
$ gem install cocoapods
+
+ +

Add NVActivityIndicatorView in your Podfile.

+
use_frameworks!
+
+pod 'NVActivityIndicatorView'
+
+ +

If you’re using NVActivityIndicatorView in an app extension, use NVActivityIndicatorView/AppExtension instead.

+
use_frameworks!
+
+pod 'NVActivityIndicatorView/AppExtension'
+
+ +

Then, run the following command.

+
$ pod install
+
+ +

Note: Please refer to the migration note for version 3.7.0 below.

+

Carthage

+ +

Install Carthage if need be.

+
$ brew update
+$ brew install carthage
+
+ +

Add NVActivityIndicatorView in your Cartfile.

+
github "ninjaprox/NVActivityIndicatorView"
+
+ +

Run carthage to build the framework and drag the built NVActivityIndicatorView.framework in the folder appropriateto the platform, e.g. iOS, tvOS, into your Xcode project.

+ +

Note: You might encounter compile issue, if so please use carthage branch instead. Check issue #101 for more information.

+

Manual

+ +

Copy NVActivityIndicatorView folder to your project. That’s it.

+ +

Note: Make sure that all files in NVActivityIndicatorView included in Compile Sources in Build Phases.

+ +

Note: If you encounter issues while uploading the app to iTunes Connect, remove the Info.plist file in NVActivityIndicatorView. Check issue #129 for more information.

+

Migration

+

Version 4.4.0

+ +

This version requires Xcode 10.1 and Swift 4.2.

+

Version 4.0.0

+ +

This version requires Xcode 9.0 and Swift 4.

+

Version 3.7.0

+ +

This version splits NVActivityIndicatorView pod to 2 subpods NVActivityIndicatorView/Presenter and NVActivityIndicatorView/AppExtension. There is no need to change pod NVActivityIndicatorView to pod NVActivityIndicatorView/Presenter since it will be installed by default if you use the main pod name.

+ +

However, if you want to use NVActivityIndicatorView in an app extension, use pod NVActivityIndicatorView/AppExtension instead.

+ +

Note: Related issue #119.

+

Usage

+ +

Firstly, import NVActivityIndicatorView.

+
import NVActivityIndicatorView
+
+

Initialization

+ +

Then, there are two ways you can create NVActivityIndicatorView:

+ + + +

Note: Set Module to NVActivityIndicatorView.

+ +
    +
  • By code, using initializer. All parameters other than frame are optional and NVActivityIndicatorView.DEFAULT_* are used as default values.
  • +
+
NVActivityIndicatorView(frame: frame, type: type, color: color, padding: padding)
+
+

Control

+ +

Start animating.

+
activityIndicatorView.startAnimating()
+
+ +

Stop animating.

+
activityIndicatorView.stopAnimating()
+
+ +

Determine if it is animating.

+
animating = activityIndicatorView.isAnimating
+
+

Change properties

+ +

In storyboard, you can change all properties in Attributes inspector tab of Utilities panel.

+ +

Note: Use one of values (case-insensitive) in Animation types for Type Name.

+ +

All properties are public so you can change them after initializing.

+ +

Note: All changes must be made before calling startAnimating().

+

UI blocker

+ +

By conforming NVActivityIndicatorViewable protocol, you can use NVActivityIndicatorView as UI blocker for UIViewController.

+
class ViewController: UIViewController, NVActivityIndicatorViewable { }
+
+ +

Start animating.

+
startAnimating(size, message) // plus other parameters as in initializer.
+
+ +

Stop animating.

+
stopAnimating()
+
+ +

Check if it is animating.

+
animating = isAnimating
+
+ +

Or you can use NVActivityIndicatorPresenter to display UI blocker anywhere.

+ +

Start animating.

+
let activityData = ActivityData()
+
+NVActivityIndicatorPresenter.sharedInstance.startAnimating(activityData)
+
+ +

Note: Check documentation for detail of ActivityData.

+ +

Stop animating.

+
NVActivityIndicatorPresenter.sharedInstance.stopAnimating()
+
+ +

Change message.

+
NVActivityIndicatorPresenter.sharedInstance.setMessage("Done")
+
+ +

Check if it is animating.

+
animating = NVActivityIndicatorPresenter.sharedInstance.isAnimating
+
+

Fade in/out animation

+ +

You have control over showing and hiding UI blocker animation.

+
startAnimating(fadeInAnimation: fadeInAnimation)
+stopAnimating(fadeOutAnimation)
+
+ +

Check DEFAULT_FADE_IN_ANIMATION and DEFAULT_FADE_OUT_ANIMATION for examples of how to implement animation.

+

Acknowledgment

+ +

Thanks Connor Atherton for great loaders and Danil Gontovnik for kick-start.

+

License

+ +

The MIT License (MIT)

+ +

Copyright © 2016 Vinh Nguyen @ninjaprox

+ +
+
+ + +
+
+ + + + diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jazzy.js b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 00000000..009c80d3 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,43 @@ +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +// On doc load, toggle the URL hash discussion if present +$(document).ready(function() { + if (!window.jazzy.docset) { + var linkToHash = $('a[href="' + window.location.hash +'"]'); + linkToHash.trigger("click"); + } +}); + +// On token click, toggle its discussion and animate token.marginLeft +$(".token").click(function(event) { + if (window.jazzy.docset) { + return; + } + var link = $(this); + var animationDuration = 300; + $content = link.parent().parent().next(); + $content.slideToggle(animationDuration); + + // Keeps the document from jumping to the hash. + var href = $(this).attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Dumb down quotes within code blocks that delimit strings instead of quotations +// https://github.com/realm/jazzy/issues/714 +$("code q").replaceWith(function () { + return ["\"", $(this).contents(), "\""]; +}); diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 00000000..54be83cf --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,62 @@ +$(function(){ + var searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + }); + + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + $.each(searchData, function (url, doc) { + searchIndex.add({url: url, name: doc.name}); + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3 + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + var results = searchIndex.search(query).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100755 index 00000000..ab28a247 --- /dev/null +++ b/docs/docsets/NVActivityIndicatorView.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),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("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("