diff --git a/.github/workflows/ContinuousIntegration.yml b/.github/workflows/ContinuousIntegration.yml
index 8771829..01fc5af 100644
--- a/.github/workflows/ContinuousIntegration.yml
+++ b/.github/workflows/ContinuousIntegration.yml
@@ -14,13 +14,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
- - name: Install pod dependencies
+ - name: Build
run: |
- pod install
- shell: bash
- - name: Test
- run: |
- xcodebuild test -workspace SlidableImage.xcworkspace -scheme SlidableImage -destination "platform=iOS Simulator,name=iPhone 13 Pro" -enableCodeCoverage YES
- - name: Upload to codecov.io
- run: |
- bash <(curl -s https://codecov.io/bash)
\ No newline at end of file
+ swift build --verbose
+ shell: bash
\ No newline at end of file
diff --git a/.github/workflows/PublishDocumentation.yml b/.github/workflows/PublishDocumentation.yml
index 86587e7..bd8b4e0 100644
--- a/.github/workflows/PublishDocumentation.yml
+++ b/.github/workflows/PublishDocumentation.yml
@@ -10,6 +10,6 @@ jobs:
steps:
- uses: actions/checkout@v1
- name: Publish Jazzy Docs
- uses: steven0351/publish-jazzy-docs@v1
+ uses: steven0351/publish-jazzy-docs@v1.1.2
with:
personal_access_token: ${{ secrets.ACCESS_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/swiftlint.yml b/.github/workflows/swiftlint.yml
index 2a01fa0..45d00ba 100644
--- a/.github/workflows/swiftlint.yml
+++ b/.github/workflows/swiftlint.yml
@@ -13,12 +13,4 @@ jobs:
steps:
- uses: actions/checkout@v1
- name: GitHub Action for SwiftLint
- uses: norio-nomura/action-swiftlint@3.1.0
- - name: GitHub Action for SwiftLint with --strict
- uses: norio-nomura/action-swiftlint@3.1.0
- with:
- args: --strict
- - name: GitHub Action for SwiftLint (Only files changed in the PR)
- uses: norio-nomura/action-swiftlint@3.1.0
- env:
- DIFF_BASE: ${{ github.base_ref }}
+ uses: norio-nomura/action-swiftlint@3.2.1
diff --git a/Assets/code.png b/Assets/code.png
new file mode 100644
index 0000000..92f51ee
Binary files /dev/null and b/Assets/code.png differ
diff --git a/Assets/demo.gif b/Assets/demo.gif
deleted file mode 100644
index 6806d56..0000000
Binary files a/Assets/demo.gif and /dev/null differ
diff --git a/Assets/demo.mov b/Assets/demo.mov
deleted file mode 100644
index c75c6a6..0000000
Binary files a/Assets/demo.mov and /dev/null differ
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index c4e5c3b..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,4 +0,0 @@
-# frozen_string_literal: true
-source "https://rubygems.org"
-
-gem "cocoapods"
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index bde1cf1..0000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,95 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- CFPropertyList (3.0.6)
- rexml
- activesupport (7.0.6)
- concurrent-ruby (~> 1.0, >= 1.0.2)
- i18n (>= 1.6, < 2)
- minitest (>= 5.1)
- tzinfo (~> 2.0)
- addressable (2.8.4)
- public_suffix (>= 2.0.2, < 6.0)
- algoliasearch (1.27.5)
- httpclient (~> 2.8, >= 2.8.3)
- json (>= 1.5.1)
- atomos (0.1.3)
- claide (1.1.0)
- cocoapods (1.12.1)
- addressable (~> 2.8)
- claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.12.1)
- cocoapods-deintegrate (>= 1.0.3, < 2.0)
- cocoapods-downloader (>= 1.6.0, < 2.0)
- cocoapods-plugins (>= 1.0.0, < 2.0)
- cocoapods-search (>= 1.0.0, < 2.0)
- cocoapods-trunk (>= 1.6.0, < 2.0)
- cocoapods-try (>= 1.1.0, < 2.0)
- colored2 (~> 3.1)
- escape (~> 0.0.4)
- fourflusher (>= 2.3.0, < 3.0)
- gh_inspector (~> 1.0)
- molinillo (~> 0.8.0)
- nap (~> 1.0)
- ruby-macho (>= 2.3.0, < 3.0)
- xcodeproj (>= 1.21.0, < 2.0)
- cocoapods-core (1.12.1)
- activesupport (>= 5.0, < 8)
- addressable (~> 2.8)
- algoliasearch (~> 1.0)
- concurrent-ruby (~> 1.1)
- fuzzy_match (~> 2.0.4)
- nap (~> 1.0)
- netrc (~> 0.11)
- public_suffix (~> 4.0)
- typhoeus (~> 1.0)
- cocoapods-deintegrate (1.0.5)
- cocoapods-downloader (1.6.3)
- cocoapods-plugins (1.0.0)
- nap
- cocoapods-search (1.0.1)
- cocoapods-trunk (1.6.0)
- nap (>= 0.8, < 2.0)
- netrc (~> 0.11)
- cocoapods-try (1.2.0)
- colored2 (3.1.2)
- concurrent-ruby (1.2.2)
- escape (0.0.4)
- ethon (0.16.0)
- ffi (>= 1.15.0)
- ffi (1.15.5)
- fourflusher (2.3.1)
- fuzzy_match (2.0.4)
- gh_inspector (1.1.3)
- httpclient (2.8.3)
- i18n (1.14.1)
- concurrent-ruby (~> 1.0)
- json (2.6.3)
- minitest (5.18.1)
- molinillo (0.8.0)
- nanaimo (0.3.0)
- nap (1.1.0)
- netrc (0.11.0)
- public_suffix (4.0.7)
- rexml (3.2.5)
- ruby-macho (2.5.1)
- typhoeus (1.4.0)
- ethon (>= 0.9.0)
- tzinfo (2.0.6)
- concurrent-ruby (~> 1.0)
- xcodeproj (1.22.0)
- CFPropertyList (>= 2.3.3, < 4.0)
- atomos (~> 0.1.3)
- claide (>= 1.0.2, < 2.0)
- colored2 (~> 3.1)
- nanaimo (~> 0.3.0)
- rexml (~> 3.2.4)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- cocoapods
-
-BUNDLED WITH
- 2.2.33
diff --git a/Package.swift b/Package.swift
index f5b5761..f0617ec 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,22 +1,21 @@
-// swift-tools-version:5.5
+// swift-tools-version:5.10.0
import PackageDescription
let package = Package(
name: "SlidableImage",
platforms: [
- .iOS(.v12)
+ .iOS(.v15),
+ .macOS(.v12)
],
products: [
.library(
name: "SlidableImage",
- targets: ["SlidableImage"])
- ],
- dependencies: [
+ targets: ["SlidableImage"]
+ )
],
targets: [
- .target(
- name: "SlidableImage",
- dependencies: [])
+ .target(name: "SlidableImage"),
+
]
)
diff --git a/Podfile b/Podfile
deleted file mode 100644
index c9125cf..0000000
--- a/Podfile
+++ /dev/null
@@ -1,11 +0,0 @@
-platform :ios, '12.0'
-
-target 'SlidableImage' do
- use_frameworks!
-
- target 'SlidableImageTests' do
- inherit! :search_paths
- pod 'iOSSnapshotTestCase'
- end
-
-end
diff --git a/Podfile.lock b/Podfile.lock
deleted file mode 100644
index 0416b09..0000000
--- a/Podfile.lock
+++ /dev/null
@@ -1,20 +0,0 @@
-PODS:
- - iOSSnapshotTestCase (8.0.0):
- - iOSSnapshotTestCase/SwiftSupport (= 8.0.0)
- - iOSSnapshotTestCase/Core (8.0.0)
- - iOSSnapshotTestCase/SwiftSupport (8.0.0):
- - iOSSnapshotTestCase/Core
-
-DEPENDENCIES:
- - iOSSnapshotTestCase
-
-SPEC REPOS:
- trunk:
- - iOSSnapshotTestCase
-
-SPEC CHECKSUMS:
- iOSSnapshotTestCase: a670511f9ee3829c2b9c23e6e68f315fd7b6790f
-
-PODFILE CHECKSUM: 39060b2e95f1eea64de6a38392fa633e3fa4b2db
-
-COCOAPODS: 1.11.3
diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock
deleted file mode 100644
index 0416b09..0000000
--- a/Pods/Manifest.lock
+++ /dev/null
@@ -1,20 +0,0 @@
-PODS:
- - iOSSnapshotTestCase (8.0.0):
- - iOSSnapshotTestCase/SwiftSupport (= 8.0.0)
- - iOSSnapshotTestCase/Core (8.0.0)
- - iOSSnapshotTestCase/SwiftSupport (8.0.0):
- - iOSSnapshotTestCase/Core
-
-DEPENDENCIES:
- - iOSSnapshotTestCase
-
-SPEC REPOS:
- trunk:
- - iOSSnapshotTestCase
-
-SPEC CHECKSUMS:
- iOSSnapshotTestCase: a670511f9ee3829c2b9c23e6e68f315fd7b6790f
-
-PODFILE CHECKSUM: 39060b2e95f1eea64de6a38392fa633e3fa4b2db
-
-COCOAPODS: 1.11.3
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-Info.plist b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-Info.plist
deleted file mode 100644
index 2243fe6..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-Info.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- ${PRODUCT_BUNDLE_IDENTIFIER}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0.0
- CFBundleSignature
- ????
- CFBundleVersion
- ${CURRENT_PROJECT_VERSION}
- NSPrincipalClass
-
-
-
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-acknowledgements.markdown b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-acknowledgements.markdown
deleted file mode 100644
index 102af75..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-acknowledgements.markdown
+++ /dev/null
@@ -1,3 +0,0 @@
-# Acknowledgements
-This application makes use of the following third party libraries:
-Generated by CocoaPods - https://cocoapods.org
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-acknowledgements.plist b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-acknowledgements.plist
deleted file mode 100644
index 7acbad1..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-acknowledgements.plist
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- PreferenceSpecifiers
-
-
- FooterText
- This application makes use of the following third party libraries:
- Title
- Acknowledgements
- Type
- PSGroupSpecifier
-
-
- FooterText
- Generated by CocoaPods - https://cocoapods.org
- Title
-
- Type
- PSGroupSpecifier
-
-
- StringsTable
- Acknowledgements
- Title
- Acknowledgements
-
-
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-dummy.m b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-dummy.m
deleted file mode 100644
index c622421..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-dummy.m
+++ /dev/null
@@ -1,5 +0,0 @@
-#import
-@interface PodsDummy_Pods_SlidableImage : NSObject
-@end
-@implementation PodsDummy_Pods_SlidableImage
-@end
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-umbrella.h b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-umbrella.h
deleted file mode 100644
index 2c67e70..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage-umbrella.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifdef __OBJC__
-#import
-#else
-#ifndef FOUNDATION_EXPORT
-#if defined(__cplusplus)
-#define FOUNDATION_EXPORT extern "C"
-#else
-#define FOUNDATION_EXPORT extern
-#endif
-#endif
-#endif
-
-
-FOUNDATION_EXPORT double Pods_SlidableImageVersionNumber;
-FOUNDATION_EXPORT const unsigned char Pods_SlidableImageVersionString[];
-
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.debug.xcconfig b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.debug.xcconfig
deleted file mode 100644
index 26f2c77..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.debug.xcconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-PODS_BUILD_DIR = ${BUILD_DIR}
-PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
-PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
-PODS_ROOT = ${SRCROOT}/Pods
-PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
-USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.modulemap b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.modulemap
deleted file mode 100644
index bf3a6b8..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.modulemap
+++ /dev/null
@@ -1,6 +0,0 @@
-framework module Pods_SlidableImage {
- umbrella header "Pods-SlidableImage-umbrella.h"
-
- export *
- module * { export * }
-}
diff --git a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.release.xcconfig b/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.release.xcconfig
deleted file mode 100644
index 26f2c77..0000000
--- a/Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.release.xcconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-PODS_BUILD_DIR = ${BUILD_DIR}
-PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
-PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
-PODS_ROOT = ${SRCROOT}/Pods
-PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
-USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-Info.plist b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-Info.plist
deleted file mode 100644
index 2243fe6..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-Info.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- ${PRODUCT_BUNDLE_IDENTIFIER}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0.0
- CFBundleSignature
- ????
- CFBundleVersion
- ${CURRENT_PROJECT_VERSION}
- NSPrincipalClass
-
-
-
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-acknowledgements.markdown
deleted file mode 100644
index 86eb1f4..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-acknowledgements.markdown
+++ /dev/null
@@ -1,29 +0,0 @@
-# Acknowledgements
-This application makes use of the following third party libraries:
-
-## iOSSnapshotTestCase
-
-MIT License
-
-Copyright (c) 2017-2018, Uber Technologies, Inc.
-Copyright (c) 2013-2018, Facebook, Inc.
-
-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.
-
-Generated by CocoaPods - https://cocoapods.org
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-acknowledgements.plist b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-acknowledgements.plist
deleted file mode 100644
index f24c9fd..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-acknowledgements.plist
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
- PreferenceSpecifiers
-
-
- FooterText
- This application makes use of the following third party libraries:
- Title
- Acknowledgements
- Type
- PSGroupSpecifier
-
-
- FooterText
- MIT License
-
-Copyright (c) 2017-2018, Uber Technologies, Inc.
-Copyright (c) 2013-2018, Facebook, Inc.
-
-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.
-
- License
- MIT
- Title
- iOSSnapshotTestCase
- Type
- PSGroupSpecifier
-
-
- FooterText
- Generated by CocoaPods - https://cocoapods.org
- Title
-
- Type
- PSGroupSpecifier
-
-
- StringsTable
- Acknowledgements
- Title
- Acknowledgements
-
-
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-dummy.m b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-dummy.m
deleted file mode 100644
index 83dc5ba..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-dummy.m
+++ /dev/null
@@ -1,5 +0,0 @@
-#import
-@interface PodsDummy_Pods_SlidableImageTests : NSObject
-@end
-@implementation PodsDummy_Pods_SlidableImageTests
-@end
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Debug-input-files.xcfilelist
deleted file mode 100644
index 3b1a1f7..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Debug-input-files.xcfilelist
+++ /dev/null
@@ -1,2 +0,0 @@
-${PODS_ROOT}/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks.sh
-${BUILT_PRODUCTS_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework
\ No newline at end of file
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Debug-output-files.xcfilelist
deleted file mode 100644
index 239f592..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Debug-output-files.xcfilelist
+++ /dev/null
@@ -1 +0,0 @@
-${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSnapshotTestCase.framework
\ No newline at end of file
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Release-input-files.xcfilelist
deleted file mode 100644
index 3b1a1f7..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Release-input-files.xcfilelist
+++ /dev/null
@@ -1,2 +0,0 @@
-${PODS_ROOT}/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks.sh
-${BUILT_PRODUCTS_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework
\ No newline at end of file
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Release-output-files.xcfilelist
deleted file mode 100644
index 239f592..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-Release-output-files.xcfilelist
+++ /dev/null
@@ -1 +0,0 @@
-${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSnapshotTestCase.framework
\ No newline at end of file
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks.sh b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks.sh
deleted file mode 100755
index 740a030..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks.sh
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/bin/sh
-set -e
-set -u
-set -o pipefail
-
-function on_error {
- echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
-}
-trap 'on_error $LINENO' ERR
-
-if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
- # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
- # frameworks to, so exit 0 (signalling the script phase was successful).
- exit 0
-fi
-
-echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
-mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
-
-COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
-SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
-BCSYMBOLMAP_DIR="BCSymbolMaps"
-
-
-# This protects against multiple targets copying the same framework dependency at the same time. The solution
-# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
-RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
-
-# Copies and strips a vendored framework
-install_framework()
-{
- if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
- local source="${BUILT_PRODUCTS_DIR}/$1"
- elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
- local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
- elif [ -r "$1" ]; then
- local source="$1"
- fi
-
- local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
-
- if [ -L "${source}" ]; then
- echo "Symlinked..."
- source="$(readlink "${source}")"
- fi
-
- if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
- # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied
- find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do
- echo "Installing $f"
- install_bcsymbolmap "$f" "$destination"
- rm "$f"
- done
- rmdir "${source}/${BCSYMBOLMAP_DIR}"
- fi
-
- # Use filter instead of exclude so missing patterns don't throw errors.
- echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
- rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
-
- local basename
- basename="$(basename -s .framework "$1")"
- binary="${destination}/${basename}.framework/${basename}"
-
- if ! [ -r "$binary" ]; then
- binary="${destination}/${basename}"
- elif [ -L "${binary}" ]; then
- echo "Destination binary is symlinked..."
- dirname="$(dirname "${binary}")"
- binary="${dirname}/$(readlink "${binary}")"
- fi
-
- # Strip invalid architectures so "fat" simulator / device frameworks work on device
- if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
- strip_invalid_archs "$binary"
- fi
-
- # Resign the code if required by the build settings to avoid unstable apps
- code_sign_if_enabled "${destination}/$(basename "$1")"
-
- # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
- if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
- local swift_runtime_libs
- swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
- for lib in $swift_runtime_libs; do
- echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
- rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
- code_sign_if_enabled "${destination}/${lib}"
- done
- fi
-}
-# Copies and strips a vendored dSYM
-install_dsym() {
- local source="$1"
- warn_missing_arch=${2:-true}
- if [ -r "$source" ]; then
- # Copy the dSYM into the targets temp dir.
- echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
- rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
-
- local basename
- basename="$(basename -s .dSYM "$source")"
- binary_name="$(ls "$source/Contents/Resources/DWARF")"
- binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
-
- # Strip invalid architectures from the dSYM.
- if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
- strip_invalid_archs "$binary" "$warn_missing_arch"
- fi
- if [[ $STRIP_BINARY_RETVAL == 0 ]]; then
- # Move the stripped file into its final destination.
- echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
- rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
- else
- # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
- mkdir -p "${DWARF_DSYM_FOLDER_PATH}"
- touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
- fi
- fi
-}
-
-# Used as a return value for each invocation of `strip_invalid_archs` function.
-STRIP_BINARY_RETVAL=0
-
-# Strip invalid architectures
-strip_invalid_archs() {
- binary="$1"
- warn_missing_arch=${2:-true}
- # Get architectures for current target binary
- binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
- # Intersect them with the architectures we are building for
- intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
- # If there are no archs supported by this binary then warn the user
- if [[ -z "$intersected_archs" ]]; then
- if [[ "$warn_missing_arch" == "true" ]]; then
- echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
- fi
- STRIP_BINARY_RETVAL=1
- return
- fi
- stripped=""
- for arch in $binary_archs; do
- if ! [[ "${ARCHS}" == *"$arch"* ]]; then
- # Strip non-valid architectures in-place
- lipo -remove "$arch" -output "$binary" "$binary"
- stripped="$stripped $arch"
- fi
- done
- if [[ "$stripped" ]]; then
- echo "Stripped $binary of architectures:$stripped"
- fi
- STRIP_BINARY_RETVAL=0
-}
-
-# Copies the bcsymbolmap files of a vendored framework
-install_bcsymbolmap() {
- local bcsymbolmap_path="$1"
- local destination="${BUILT_PRODUCTS_DIR}"
- echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
- rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
-}
-
-# Signs a framework with the provided identity
-code_sign_if_enabled() {
- if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
- # Use the current code_sign_identity
- echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
- local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
-
- if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
- code_sign_cmd="$code_sign_cmd &"
- fi
- echo "$code_sign_cmd"
- eval "$code_sign_cmd"
- fi
-}
-
-if [[ "$CONFIGURATION" == "Debug" ]]; then
- install_framework "${BUILT_PRODUCTS_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework"
-fi
-if [[ "$CONFIGURATION" == "Release" ]]; then
- install_framework "${BUILT_PRODUCTS_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework"
-fi
-if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
- wait
-fi
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-umbrella.h b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-umbrella.h
deleted file mode 100644
index 244a7a2..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-umbrella.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifdef __OBJC__
-#import
-#else
-#ifndef FOUNDATION_EXPORT
-#if defined(__cplusplus)
-#define FOUNDATION_EXPORT extern "C"
-#else
-#define FOUNDATION_EXPORT extern
-#endif
-#endif
-#endif
-
-
-FOUNDATION_EXPORT double Pods_SlidableImageTestsVersionNumber;
-FOUNDATION_EXPORT const unsigned char Pods_SlidableImageTestsVersionString[];
-
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.debug.xcconfig b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.debug.xcconfig
deleted file mode 100644
index 3bcc288..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.debug.xcconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
-CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase"
-GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework/Headers"
-LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks'
-LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
-OTHER_LDFLAGS = $(inherited) -framework "FBSnapshotTestCase" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest"
-OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
-PODS_BUILD_DIR = ${BUILD_DIR}
-PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
-PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
-PODS_ROOT = ${SRCROOT}/Pods
-PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
-USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.modulemap b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.modulemap
deleted file mode 100644
index 3778673..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.modulemap
+++ /dev/null
@@ -1,6 +0,0 @@
-framework module Pods_SlidableImageTests {
- umbrella header "Pods-SlidableImageTests-umbrella.h"
-
- export *
- module * { export * }
-}
diff --git a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.release.xcconfig b/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.release.xcconfig
deleted file mode 100644
index 3bcc288..0000000
--- a/Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.release.xcconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
-CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase"
-GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework/Headers"
-LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks'
-LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
-OTHER_LDFLAGS = $(inherited) -framework "FBSnapshotTestCase" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest"
-OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
-PODS_BUILD_DIR = ${BUILD_DIR}
-PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
-PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
-PODS_ROOT = ${SRCROOT}/Pods
-PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
-USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-Info.plist b/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-Info.plist
deleted file mode 100644
index 5c493de..0000000
--- a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-Info.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- ${PRODUCT_BUNDLE_IDENTIFIER}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 8.0.0
- CFBundleSignature
- ????
- CFBundleVersion
- ${CURRENT_PROJECT_VERSION}
- NSPrincipalClass
-
-
-
diff --git a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-dummy.m b/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-dummy.m
deleted file mode 100644
index 9967d3e..0000000
--- a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-dummy.m
+++ /dev/null
@@ -1,5 +0,0 @@
-#import
-@interface PodsDummy_iOSSnapshotTestCase : NSObject
-@end
-@implementation PodsDummy_iOSSnapshotTestCase
-@end
diff --git a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-prefix.pch b/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-prefix.pch
deleted file mode 100644
index beb2a24..0000000
--- a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-prefix.pch
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifdef __OBJC__
-#import
-#else
-#ifndef FOUNDATION_EXPORT
-#if defined(__cplusplus)
-#define FOUNDATION_EXPORT extern "C"
-#else
-#define FOUNDATION_EXPORT extern
-#endif
-#endif
-#endif
-
diff --git a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-umbrella.h b/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-umbrella.h
deleted file mode 100644
index 1734e02..0000000
--- a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-umbrella.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifdef __OBJC__
-#import
-#else
-#ifndef FOUNDATION_EXPORT
-#if defined(__cplusplus)
-#define FOUNDATION_EXPORT extern "C"
-#else
-#define FOUNDATION_EXPORT extern
-#endif
-#endif
-#endif
-
-#import "FBSnapshotTestCase.h"
-#import "FBSnapshotTestCasePlatform.h"
-#import "FBSnapshotTestController.h"
-
-FOUNDATION_EXPORT double FBSnapshotTestCaseVersionNumber;
-FOUNDATION_EXPORT const unsigned char FBSnapshotTestCaseVersionString[];
-
diff --git a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.debug.xcconfig b/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.debug.xcconfig
deleted file mode 100644
index d95e520..0000000
--- a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.debug.xcconfig
+++ /dev/null
@@ -1,18 +0,0 @@
-CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase
-ENABLE_BITCODE = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
-GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
-OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest"
-OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
-PODS_BUILD_DIR = ${BUILD_DIR}
-PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
-PODS_ROOT = ${SRCROOT}
-PODS_TARGET_SRCROOT = ${PODS_ROOT}/iOSSnapshotTestCase
-PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
-PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
-SKIP_INSTALL = YES
-SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib"
-SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
-USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.modulemap b/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.modulemap
deleted file mode 100644
index d2c2777..0000000
--- a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.modulemap
+++ /dev/null
@@ -1,6 +0,0 @@
-framework module FBSnapshotTestCase {
- umbrella header "iOSSnapshotTestCase-umbrella.h"
-
- export *
- module * { export * }
-}
diff --git a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.release.xcconfig b/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.release.xcconfig
deleted file mode 100644
index d95e520..0000000
--- a/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.release.xcconfig
+++ /dev/null
@@ -1,18 +0,0 @@
-CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase
-ENABLE_BITCODE = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
-GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
-OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest"
-OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
-PODS_BUILD_DIR = ${BUILD_DIR}
-PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
-PODS_ROOT = ${SRCROOT}
-PODS_TARGET_SRCROOT = ${PODS_ROOT}/iOSSnapshotTestCase
-PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
-PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
-SKIP_INSTALL = YES
-SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib"
-SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
-USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/iOSSnapshotTestCase/LICENSE b/Pods/iOSSnapshotTestCase/LICENSE
deleted file mode 100644
index 1b3cb06..0000000
--- a/Pods/iOSSnapshotTestCase/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-MIT License
-
-Copyright (c) 2017-2018, Uber Technologies, Inc.
-Copyright (c) 2013-2018, Facebook, Inc.
-
-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.
diff --git a/Pods/iOSSnapshotTestCase/README.md b/Pods/iOSSnapshotTestCase/README.md
deleted file mode 100644
index ace11ed..0000000
--- a/Pods/iOSSnapshotTestCase/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# iOSSnapshotTestCase (previously [FBSnapshotTestCase](https://github.com/facebookarchive/ios-snapshot-test-case))
-
-[](https://github.com/uber/ios-snapshot-test-case/actions)
-[](https://img.shields.io/cocoapods/v/iOSSnapshotTestCase.svg)
-[](https://github.com/Carthage/Carthage)
-[](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square)
-
-## What it does
-
-A "snapshot test case" takes a configured `UIView` or `CALayer` and uses the necessary UIKit or Core Animation methods to generate an image snapshot of its contents. It
-compares this snapshot to a "reference image" stored in your source code
-repository and fails the test if the two images don't match.
-
-## Why?
-
-We write a lot of UI code. There are a lot of edge
-cases that we want to handle correctly when you are creating `UIView` instances:
-
-- What if there is more text than can fit in the space available?
-- What if an image doesn't match the size of an image view?
-- What should the highlighted state look like?
-
-It's straightforward to test logic code, but less obvious how you should test
-views. You can do a lot of rectangle asserts, but these are hard to understand
-or visualize. Looking at an image diff shows you exactly what changed and how
-it will look to users.
-
-`iOSSnapshotTestCase` was developed to make snapshot tests easy.
-
-## Installation
-
-### Step 1: Add iOSSnapshotTestCase to your project
-
-#### CocoaPods
-
-Add the following lines to your Podfile:
-
-```ruby
-target "Tests" do
- use_frameworks!
- pod 'iOSSnapshotTestCase'
-end
-```
-
-If your test target is Objective-C only use `iOSSnapshotTestCase/Core` instead, which doesn't contain Swift support.
-
-#### Carthage
-
-Add the following line to your Cartfile:
-
-```carthage
-github "uber/ios-snapshot-test-case" ~> 6.1.0
-```
-
-#### Swift Package Manager
-
-Add the following line to your `Package.swift`:
-
-```spm
-dependencies: [
- .package(url: "https://github.com/uber/ios-snapshot-test-case.git", from: "7.0.0"),
-],
-```
-
-...or integrate with Xcode via `File -> Swift Packages -> Add Package Dependency...` using the URL of the repository. We recommend using "Up to Next Major" with the Version field, as we use Semantic Versioning and only put breaking changes in major versions.
-
-### Step 2: Setup Test Scheme
-Replace "Tests" with the name of your test project.
-
-1. There are [three ways](https://github.com/uber/ios-snapshot-test-case/blob/master/FBSnapshotTestCase/FBSnapshotTestCase.h#L19-L29) of setting reference image directories, the recommended one is to define `FB_REFERENCE_IMAGE_DIR` in your scheme. This should point to the directory where you want reference images to be stored. We normally use this:
-
-|Name|Value|
-|:---|:----|
-|`FB_REFERENCE_IMAGE_DIR`|`$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/ReferenceImages`|
-|`IMAGE_DIFF_DIR`|`$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/FailureDiffs`|
-
-Define the `IMAGE_DIFF_DIR` to the directory where you want to store diffs of failed snapshots. There are also [three ways](https://github.com/uber/ios-snapshot-test-case/blob/master/FBSnapshotTestCase/FBSnapshotTestCase.h#L34-L43) to set failed image diff directories.
-
-
-
-## Creating a snapshot test
-
-1. Subclass `FBSnapshotTestCase` instead of `XCTestCase`.
-2. From within your test, use `FBSnapshotVerifyView`.
-3. Run the test once with `self.recordMode = YES;` in the test's `-setUp`
- method. (This creates the reference images on disk.)
-4. Remove the line enabling record mode and run the test.
-
-## Features
-
-- Automatically names reference images on disk according to test class and
- selector.
-- Prints a descriptive error message to the console on failure. (Bonus:
- failure message includes a one-line command to see an image diff if
- you have [Kaleidoscope](http://www.kaleidoscopeapp.com) installed.)
-- Supply an optional "identifier" if you want to perform multiple snapshots
- in a single test method.
-- Support for `CALayer` via `FBSnapshotVerifyLayer`.
-- `usesDrawViewHierarchyInRect` to handle cases like `UIVisualEffect`, `UIAppearance` and Size Classes.
-- `fileNameOptions` to control appending the device model (`iPhone`, `iPad`, `iPod Touch`, etc), OS version, screen size and screen scale to the images (allowing to have multiple tests for the same «snapshot» for different `OS`s and devices).
-
-## Notes
-
-Your unit tests _should_ be inside an "application" bundle, not a "logic/library" test bundle. (That is, it
-should be run within the Simulator so that it has access to UIKit.)
-
-*However*, if you are writing snapshot tests inside a library/framework, you might want to keep your test bundle as a library test bundle without a Test Host.
-
-Read more on this [here](docs/LibraryVsApplicationTestBundles.md).
-
-## Authors
-
-`iOSSnapshotTestCase` was written at Facebook by
-Jonathan Dann with significant contributions by
-Todd Krabach.
-
-Today it is maintained by [Uber](https://github.com/uber).
-
-## License
-
-`iOSSnapshotTestCase` is MIT–licensed. See [`LICENSE`](https://github.com/uber/ios-snapshot-test-case/blob/master/LICENSE).
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCase/SwiftSupport.swift b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCase/SwiftSupport.swift
deleted file mode 100644
index 5186d32..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCase/SwiftSupport.swift
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-import UIKit
-import XCTest
-
-#if SWIFT_PACKAGE
- @_exported import iOSSnapshotTestCaseCore
-#endif
-
-public extension FBSnapshotTestCase {
- func FBSnapshotVerifyView(_ view: UIView, identifier: String? = nil, suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), perPixelTolerance: CGFloat = 0, overallTolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) {
- FBSnapshotVerifyViewOrLayer(view, identifier: identifier, suffixes: suffixes, perPixelTolerance: perPixelTolerance, overallTolerance: overallTolerance, file: file, line: line)
- }
-
- func FBSnapshotVerifyViewController(_ viewController: UIViewController, identifier: String? = nil, suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), perPixelTolerance: CGFloat = 0, overallTolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) {
- viewController.view.bounds = UIScreen.main.bounds
- viewController.viewWillAppear(false)
- viewController.viewDidAppear(false)
-
- FBSnapshotVerifyView(viewController.view, identifier: identifier, suffixes: suffixes, perPixelTolerance: perPixelTolerance, overallTolerance: overallTolerance, file: file, line: line)
- }
-
- func FBSnapshotVerifyLayer(_ layer: CALayer, identifier: String? = nil, suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), perPixelTolerance: CGFloat = 0, overallTolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) {
- FBSnapshotVerifyViewOrLayer(layer, identifier: identifier, suffixes: suffixes, perPixelTolerance: perPixelTolerance, overallTolerance: overallTolerance, file: file, line: line)
- }
-
- private func FBSnapshotVerifyViewOrLayer(_ viewOrLayer: AnyObject, identifier: String? = nil, suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), perPixelTolerance: CGFloat = 0, overallTolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) {
- let envReferenceImageDirectory = getReferenceImageDirectory(withDefault: nil)
- let envImageDiffDirectory = getImageDiffDirectory(withDefault: nil)
- var error: NSError?
- var comparisonSuccess = false
-
- for suffix in suffixes {
- let referenceImagesDirectory = "\(envReferenceImageDirectory)\(suffix)"
- let imageDiffDirectory = envImageDiffDirectory
- if viewOrLayer.isKind(of: UIView.self) {
- do {
- try compareSnapshot(of: viewOrLayer as! UIView, referenceImagesDirectory: referenceImagesDirectory, imageDiffDirectory: imageDiffDirectory, identifier: identifier, perPixelTolerance: perPixelTolerance, overallTolerance: overallTolerance)
- comparisonSuccess = true
- } catch let error1 as NSError {
- error = error1
- comparisonSuccess = false
- }
- } else if viewOrLayer.isKind(of: CALayer.self) {
- do {
- try compareSnapshot(of: viewOrLayer as! CALayer, referenceImagesDirectory: referenceImagesDirectory, imageDiffDirectory: imageDiffDirectory, identifier: identifier, perPixelTolerance: perPixelTolerance, overallTolerance: overallTolerance)
- comparisonSuccess = true
- } catch let error1 as NSError {
- error = error1
- comparisonSuccess = false
- }
- } else {
- assertionFailure("Only UIView and CALayer classes can be snapshotted")
- }
-
- assert(recordMode == false, message: "Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!", file: file, line: line)
-
- if comparisonSuccess || recordMode {
- break
- }
-
- assert(comparisonSuccess, message: "Snapshot comparison failed: \(String(describing: error))", file: file, line: line)
- }
- }
-
- func assert(_ assertion: Bool, message: String, file: StaticString, line: UInt) {
- if !assertion {
- XCTFail(message, file: file, line: line)
- }
- }
-}
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.h b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.h
deleted file mode 100644
index 0a2788c..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface UIApplication (KeyWindow)
-
-- (nullable UIWindow *)ub_keyWindow;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.m b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.m
deleted file mode 100644
index ff7ac44..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.m
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#if SWIFT_PACKAGE
-#import "UIApplication+KeyWindow.h"
-#else
-#import
-#endif
-
-@implementation UIApplication (KeyWindow)
-
-- (nullable UIWindow *)ub_keyWindow
-{
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- return UIApplication.sharedApplication.keyWindow;
-#pragma GCC diagnostic pop
-}
-
-@end
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Compare.h b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Compare.h
deleted file mode 100644
index fb7d7b0..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Compare.h
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Created by Gabriel Handford on 3/1/09.
-// Copyright 2009-2013. All rights reserved.
-// Created by John Boiles on 10/20/11.
-// Copyright (c) 2011. All rights reserved
-// Modified by Felix Schulze on 2/11/13.
-// Copyright 2013. All rights reserved.
-//
-// 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
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface UIImage (Compare)
-
-/**
- Compares the image against another given image.
-
- @param image The other image to compare against.
- @param perPixelTolerance How much (in percentage) any given pixel's colors are allowed to change from the pixel in the reference image.
- @param overallTolerance The overall percentage of pixels that are allowed to change from the pixels in the reference image.
- @return A BOOL which represents if the image is the same or not.
- */
-- (BOOL)fb_compareWithImage:(UIImage *)image perPixelTolerance:(CGFloat)perPixelTolerance overallTolerance:(CGFloat)overallTolerance;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Compare.m b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Compare.m
deleted file mode 100644
index cdd97da..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Compare.m
+++ /dev/null
@@ -1,183 +0,0 @@
-//
-// Created by Gabriel Handford on 3/1/09.
-// Copyright 2009-2013. All rights reserved.
-// Created by John Boiles on 10/20/11.
-// Copyright (c) 2011. All rights reserved
-// Modified by Felix Schulze on 2/11/13.
-// Copyright 2013. All rights reserved.
-//
-// 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.
-//
-
-#if SWIFT_PACKAGE
-#import "UIImage+Compare.h"
-#else
-#import
-#endif
-
-// This makes debugging much more fun
-typedef union {
- uint32_t raw;
- unsigned char bytes[4];
- struct {
- char red;
- char green;
- char blue;
- char alpha;
- } __attribute__((packed)) pixels;
-} FBComparePixel;
-
-@implementation UIImage (Compare)
-
-- (BOOL)fb_compareWithImage:(UIImage *)image perPixelTolerance:(CGFloat)perPixelTolerance overallTolerance:(CGFloat)overallTolerance
-{
- CGSize referenceImageSize = CGSizeMake(CGImageGetWidth(self.CGImage), CGImageGetHeight(self.CGImage));
- CGSize imageSize = CGSizeMake(CGImageGetWidth(image.CGImage), CGImageGetHeight(image.CGImage));
- NSAssert(CGSizeEqualToSize(referenceImageSize, imageSize), @"Images must be same size.");
-
- // The images have the equal size, so we could use the smallest amount of bytes because of byte padding
- size_t minBytesPerRow = MIN(CGImageGetBytesPerRow(self.CGImage), CGImageGetBytesPerRow(image.CGImage));
- size_t referenceImageSizeBytes = referenceImageSize.height * minBytesPerRow;
- void *referenceImagePixels = calloc(1, referenceImageSizeBytes);
- void *imagePixels = calloc(1, referenceImageSizeBytes);
-
- if (!referenceImagePixels || !imagePixels) {
- free(referenceImagePixels);
- free(imagePixels);
- return NO;
- }
-
- CGContextRef referenceImageContext = CGBitmapContextCreate(referenceImagePixels,
- referenceImageSize.width,
- referenceImageSize.height,
- CGImageGetBitsPerComponent(self.CGImage),
- minBytesPerRow,
- CGImageGetColorSpace(self.CGImage),
- (CGBitmapInfo)kCGImageAlphaPremultipliedLast);
- CGContextRef imageContext = CGBitmapContextCreate(imagePixels,
- imageSize.width,
- imageSize.height,
- CGImageGetBitsPerComponent(image.CGImage),
- minBytesPerRow,
- CGImageGetColorSpace(image.CGImage),
- (CGBitmapInfo)kCGImageAlphaPremultipliedLast);
-
- if (!referenceImageContext || !imageContext) {
- CGContextRelease(referenceImageContext);
- CGContextRelease(imageContext);
- free(referenceImagePixels);
- free(imagePixels);
- return NO;
- }
-
- CGContextDrawImage(referenceImageContext, CGRectMake(0, 0, referenceImageSize.width, referenceImageSize.height), self.CGImage);
- CGContextDrawImage(imageContext, CGRectMake(0, 0, imageSize.width, imageSize.height), image.CGImage);
-
- CGContextRelease(referenceImageContext);
- CGContextRelease(imageContext);
-
- BOOL imageEqual = YES;
- FBComparePixel *p1 = referenceImagePixels;
- FBComparePixel *p2 = imagePixels;
-
- // Do a fast compare if we can
- if (overallTolerance == 0 && perPixelTolerance == 0) {
- imageEqual = (memcmp(referenceImagePixels, imagePixels, referenceImageSizeBytes) == 0);
- } else {
- const NSUInteger pixelCount = referenceImageSize.width * referenceImageSize.height;
- // Go through each pixel in turn and see if it is different
- imageEqual = [self _compareAllPixelsWithPerPixelTolerance:perPixelTolerance
- overallTolerance:overallTolerance
- pixelCount:pixelCount
- referencePixels:p1
- imagePixels:p2];
- }
-
- free(referenceImagePixels);
- free(imagePixels);
-
- return imageEqual;
-}
-
-- (BOOL)_comparePixelWithPerPixelTolerance:(CGFloat)perPixelTolerance
- referencePixel:(FBComparePixel *)referencePixel
- imagePixel:(FBComparePixel *)imagePixel
-{
- if (referencePixel->raw == imagePixel->raw) {
- return YES;
- } else if (perPixelTolerance == 0) {
- return NO;
- }
-
- CGFloat redPercentDiff = [self _calculatePercentDifferenceForReferencePixelComponent:referencePixel->pixels.red
- imagePixelComponent:imagePixel->pixels.red];
- CGFloat greenPercentDiff = [self _calculatePercentDifferenceForReferencePixelComponent:referencePixel->pixels.green
- imagePixelComponent:imagePixel->pixels.green];
- CGFloat bluePercentDiff = [self _calculatePercentDifferenceForReferencePixelComponent:referencePixel->pixels.blue
- imagePixelComponent:imagePixel->pixels.blue];
- CGFloat alphaPercentDiff = [self _calculatePercentDifferenceForReferencePixelComponent:referencePixel->pixels.alpha
- imagePixelComponent:imagePixel->pixels.alpha];
-
- BOOL anyDifferencesFound = (redPercentDiff > perPixelTolerance ||
- greenPercentDiff > perPixelTolerance ||
- bluePercentDiff > perPixelTolerance ||
- alphaPercentDiff > perPixelTolerance);
-
- return !anyDifferencesFound;
-}
-
-- (CGFloat)_calculatePercentDifferenceForReferencePixelComponent:(char)p1
- imagePixelComponent:(char)p2
-{
- NSInteger referencePixelComponent = (unsigned char)p1;
- NSInteger imagePixelComponent = (unsigned char)p2;
- NSUInteger componentDifference = ABS(referencePixelComponent - imagePixelComponent);
- return (CGFloat)componentDifference / 256;
-}
-
-- (BOOL)_compareAllPixelsWithPerPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- pixelCount:(NSUInteger)pixelCount
- referencePixels:(FBComparePixel *)referencePixel
- imagePixels:(FBComparePixel *)imagePixel
-{
- NSUInteger numDiffPixels = 0;
- for (NSUInteger n = 0; n < pixelCount; ++n) {
- // If this pixel is different, increment the pixel diff count and see
- // if we have hit our limit.
- BOOL isIdenticalPixel = [self _comparePixelWithPerPixelTolerance:perPixelTolerance referencePixel:referencePixel imagePixel:imagePixel];
- if (!isIdenticalPixel) {
- numDiffPixels++;
-
- CGFloat percent = (CGFloat)numDiffPixels / (CGFloat)pixelCount;
- if (percent > overallTolerance) {
- return NO;
- }
- }
-
- referencePixel++;
- imagePixel++;
- }
- return YES;
-}
-
-@end
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Diff.h b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Diff.h
deleted file mode 100644
index 2a97e11..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Diff.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Created by Gabriel Handford on 3/1/09.
-// Copyright 2009-2013. All rights reserved.
-// Created by John Boiles on 10/20/11.
-// Copyright (c) 2011. All rights reserved
-// Modified by Felix Schulze on 2/11/13.
-// Copyright 2013. All rights reserved.
-//
-// 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
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface UIImage (Diff)
-
-- (UIImage *)fb_diffWithImage:(UIImage *)image;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Diff.m b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Diff.m
deleted file mode 100644
index eea9459..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Diff.m
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Created by Gabriel Handford on 3/1/09.
-// Copyright 2009-2013. All rights reserved.
-// Created by John Boiles on 10/20/11.
-// Copyright (c) 2011. All rights reserved
-// Modified by Felix Schulze on 2/11/13.
-// Copyright 2013. All rights reserved.
-//
-// 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.
-//
-
-#if SWIFT_PACKAGE
-#import "UIImage+Diff.h"
-#else
-#import
-#endif
-
-@implementation UIImage (Diff)
-
-- (UIImage *)fb_diffWithImage:(UIImage *)image
-{
- if (!image) {
- return nil;
- }
- CGSize imageSize = CGSizeMake(MAX(self.size.width, image.size.width), MAX(self.size.height, image.size.height));
- UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0);
- CGContextRef context = UIGraphicsGetCurrentContext();
- [self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
- CGContextSetAlpha(context, 0.5);
- CGContextBeginTransparencyLayer(context, NULL);
- [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
- CGContextSetBlendMode(context, kCGBlendModeDifference);
- CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
- CGContextFillRect(context, CGRectMake(0, 0, self.size.width, self.size.height));
- CGContextEndTransparencyLayer(context);
- UIImage *returnImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return returnImage;
-}
-
-@end
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Snapshot.h b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Snapshot.h
deleted file mode 100644
index 10c304f..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Snapshot.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface UIImage (Snapshot)
-
-/// Uses renderInContext: to get a snapshot of the layer.
-+ (nullable UIImage *)fb_imageForLayer:(CALayer *)layer;
-
-/// Uses renderInContext: to get a snapshot of the view layer.
-+ (nullable UIImage *)fb_imageForViewLayer:(UIView *)view;
-
-/// Uses drawViewHierarchyInRect: to get a snapshot of the view and adds the view into a window if needed.
-+ (nullable UIImage *)fb_imageForView:(UIView *)view;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Snapshot.m b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Snapshot.m
deleted file mode 100644
index 80c9aca..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Snapshot.m
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#if SWIFT_PACKAGE
-#import "UIImage+Snapshot.h"
-#import "UIApplication+KeyWindow.h"
-#else
-#import
-#import
-#endif
-
-@implementation UIImage (Snapshot)
-
-+ (UIImage *)fb_imageForLayer:(CALayer *)layer
-{
- CGRect bounds = layer.bounds;
- NSAssert1(CGRectGetWidth(bounds), @"Zero width for layer %@", layer);
- NSAssert1(CGRectGetHeight(bounds), @"Zero height for layer %@", layer);
-
- UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0);
- CGContextRef context = UIGraphicsGetCurrentContext();
- NSAssert1(context, @"Could not generate context for layer %@", layer);
- CGContextSaveGState(context);
- [layer layoutIfNeeded];
- [layer renderInContext:context];
- CGContextRestoreGState(context);
-
- UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return snapshot;
-}
-
-+ (UIImage *)fb_imageForViewLayer:(UIView *)view
-{
- [view layoutIfNeeded];
- return [self fb_imageForLayer:view.layer];
-}
-
-+ (UIImage *)fb_imageForView:(UIView *)view
-{
- // If the input view is already a UIWindow, then just use that. Otherwise wrap in a window.
- UIWindow *window = [view isKindOfClass:[UIWindow class]] ? (UIWindow *)view : view.window;
- BOOL removeFromSuperview = NO;
- if (!window) {
- window = [[UIApplication sharedApplication] ub_keyWindow];
- }
-
- if (!view.window && view != window) {
- [window addSubview:view];
- removeFromSuperview = YES;
- }
-
- [view layoutIfNeeded];
-
- CGRect bounds = view.bounds;
- NSAssert1(CGRectGetWidth(bounds), @"Zero width for view %@", view);
- NSAssert1(CGRectGetHeight(bounds), @"Zero height for view %@", view);
-
- UIGraphicsImageRenderer *graphicsImageRenderer = [[UIGraphicsImageRenderer alloc] initWithSize:bounds.size];
-
- UIImage *snapshot = [graphicsImageRenderer imageWithActions:^(UIGraphicsImageRendererContext * _Nonnull rendererContext) {
- [view drawViewHierarchyInRect:bounds afterScreenUpdates:YES];
- }];
-
- if (removeFromSuperview) {
- [view removeFromSuperview];
- }
-
- return snapshot;
-}
-
-@end
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestCase.m b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestCase.m
deleted file mode 100644
index 6e65372..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestCase.m
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import "Public/FBSnapshotTestCase.h"
-#import "Public/FBSnapshotTestController.h"
-
-@implementation FBSnapshotTestCase {
- FBSnapshotTestController *_snapshotController;
-}
-
-#pragma mark - Overrides
-
-- (void)setUp
-{
- [super setUp];
- _snapshotController = [[FBSnapshotTestController alloc] initWithTestClass:[self class]];
-}
-
-- (void)tearDown
-{
- _snapshotController = nil;
- [super tearDown];
-}
-
-- (BOOL)recordMode
-{
- return _snapshotController.recordMode;
-}
-
-- (void)setRecordMode:(BOOL)recordMode
-{
- NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
- _snapshotController.recordMode = recordMode;
-}
-
-- (NSString *)bundleResourcePath
-{
- return _snapshotController.bundleResourcePath;
-}
-
-- (void)setBundleResourcePath:(NSString *)bundleResourcePath
-{
- _snapshotController.bundleResourcePath = bundleResourcePath;
-}
-
-- (FBSnapshotTestCaseFileNameIncludeOption)fileNameOptions
-{
- return _snapshotController.fileNameOptions;
-}
-
-- (void)setFileNameOptions:(FBSnapshotTestCaseFileNameIncludeOption)fileNameOptions
-{
- NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
- _snapshotController.fileNameOptions = fileNameOptions;
-}
-
-- (BOOL)usesDrawViewHierarchyInRect
-{
- return _snapshotController.usesDrawViewHierarchyInRect;
-}
-
-- (void)setUsesDrawViewHierarchyInRect:(BOOL)usesDrawViewHierarchyInRect
-{
- NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
- _snapshotController.usesDrawViewHierarchyInRect = usesDrawViewHierarchyInRect;
-}
-
-- (NSString *)folderName
-{
- return _snapshotController.folderName;
-}
-
-- (void)setFolderName:(NSString *)folderName
-{
- _snapshotController.folderName = folderName;
-}
-
-#pragma mark - Public API
-
-- (NSString *)snapshotVerifyViewOrLayer:(id)viewOrLayer
- identifier:(NSString *)identifier
- suffixes:(NSOrderedSet *)suffixes
- overallTolerance:(CGFloat)overallTolerance
- defaultReferenceDirectory:(NSString *)defaultReferenceDirectory
- defaultImageDiffDirectory:(NSString *)defaultImageDiffDirectory
-{
- return [self snapshotVerifyViewOrLayer:viewOrLayer
- identifier:identifier
- suffixes:suffixes
- perPixelTolerance:0
- overallTolerance:overallTolerance
- defaultReferenceDirectory:defaultReferenceDirectory
- defaultImageDiffDirectory:defaultImageDiffDirectory];
-}
-
-- (NSString *)snapshotVerifyViewOrLayer:(id)viewOrLayer
- identifier:(NSString *)identifier
- suffixes:(NSOrderedSet *)suffixes
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- defaultReferenceDirectory:(NSString *)defaultReferenceDirectory
- defaultImageDiffDirectory:(NSString *)defaultImageDiffDirectory
-{
- if (viewOrLayer == nil) {
- return @"Object to be snapshotted must not be nil";
- }
-
- NSString *referenceImageDirectory = [self getReferenceImageDirectoryWithDefault:defaultReferenceDirectory];
- if (referenceImageDirectory == nil) {
- return @"Missing value for referenceImagesDirectory - Set FB_REFERENCE_IMAGE_DIR as an Environment variable in your scheme.";
- }
-
- NSString *imageDiffDirectory = [self getImageDiffDirectoryWithDefault:defaultImageDiffDirectory];
- if (imageDiffDirectory == nil) {
- return @"Missing value for imageDiffDirectory - Set IMAGE_DIFF_DIR as an Environment variable in your scheme.";
- }
-
- if (suffixes.count == 0) {
- return [NSString stringWithFormat:@"Suffixes set cannot be empty %@", suffixes];
- }
-
- NSError *error = nil;
- NSMutableArray *errors = [NSMutableArray array];
-
- if (self.recordMode) {
- NSString *referenceImagesDirectory = [NSString stringWithFormat:@"%@%@", referenceImageDirectory, suffixes.firstObject];
- BOOL referenceImageSaved = [self _compareSnapshotOfViewOrLayer:viewOrLayer referenceImagesDirectory:referenceImagesDirectory imageDiffDirectory:imageDiffDirectory identifier:(identifier) perPixelTolerance:perPixelTolerance overallTolerance:overallTolerance error:&error];
- if (!referenceImageSaved) {
- [errors addObject:error];
- }
-
- return @"Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!";
- } else {
- BOOL testSuccess = NO;
- for (NSString *suffix in suffixes) {
- NSString *referenceImagesDirectory = [NSString stringWithFormat:@"%@%@", referenceImageDirectory, suffix];
- BOOL referenceImageAvailable = [self referenceImageRecordedInDirectory:referenceImagesDirectory identifier:(identifier) error:&error];
-
- if (referenceImageAvailable) {
- BOOL comparisonSuccess = [self _compareSnapshotOfViewOrLayer:viewOrLayer referenceImagesDirectory:referenceImagesDirectory imageDiffDirectory:imageDiffDirectory identifier:identifier perPixelTolerance:perPixelTolerance overallTolerance:overallTolerance error:&error];
- [errors removeAllObjects];
- if (comparisonSuccess) {
- testSuccess = YES;
- break;
- } else {
- [errors addObject:error];
- }
- } else {
- [errors addObject:error];
- }
- }
-
- if (!testSuccess) {
- return [NSString stringWithFormat:@"Snapshot comparison failed: %@", errors.firstObject];
- } else {
- return nil;
- }
- }
-}
-
-- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(NSString *)identifier
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- return [self _compareSnapshotOfViewOrLayer:layer
- referenceImagesDirectory:referenceImagesDirectory
- imageDiffDirectory:imageDiffDirectory
- identifier:identifier
- perPixelTolerance:0
- overallTolerance:overallTolerance
- error:errorPtr];
-}
-
-- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- return [self _compareSnapshotOfViewOrLayer:layer
- referenceImagesDirectory:referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:identifier
- perPixelTolerance:perPixelTolerance
- overallTolerance:overallTolerance
- error:errorPtr];
-}
-
-- (BOOL)compareSnapshotOfView:(UIView *)view
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(NSString *)identifier
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- return [self _compareSnapshotOfViewOrLayer:view
- referenceImagesDirectory:referenceImagesDirectory
- imageDiffDirectory:imageDiffDirectory
- identifier:identifier
- perPixelTolerance:0
- overallTolerance:overallTolerance
- error:errorPtr];
-}
-
-- (BOOL)compareSnapshotOfView:(UIView *)view
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- return [self _compareSnapshotOfViewOrLayer:view
- referenceImagesDirectory:referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:identifier
- perPixelTolerance:perPixelTolerance
- overallTolerance:overallTolerance
- error:errorPtr];
-}
-
-- (BOOL)referenceImageRecordedInDirectory:(NSString *)referenceImagesDirectory
- identifier:(NSString *)identifier
- error:(NSError **)errorPtr
-{
- NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__);
- _snapshotController.referenceImagesDirectory = referenceImagesDirectory;
- UIImage *referenceImage = [_snapshotController referenceImageForSelector:self.invocation.selector
- identifier:identifier
- error:errorPtr];
-
- return (referenceImage != nil);
-}
-
-- (NSString *)getReferenceImageDirectoryWithDefault:(NSString *)dir
-{
- NSString *envReferenceImageDirectory = [NSProcessInfo processInfo].environment[@"FB_REFERENCE_IMAGE_DIR"];
- if (envReferenceImageDirectory) {
- return envReferenceImageDirectory;
- }
- if (dir && dir.length > 0) {
- return dir;
- }
- NSString* _Nonnull bundleResourcePath;
- if (_snapshotController.bundleResourcePath == nil) {
- bundleResourcePath = [NSBundle bundleForClass:self.class].resourcePath;
- } else {
- bundleResourcePath = _snapshotController.bundleResourcePath;
- }
- return [bundleResourcePath stringByAppendingPathComponent:@"ReferenceImages"];
-}
-
-- (NSString *)getImageDiffDirectoryWithDefault:(NSString *)dir
-{
- NSString *envImageDiffDirectory = [NSProcessInfo processInfo].environment[@"IMAGE_DIFF_DIR"];
- if (envImageDiffDirectory) {
- return envImageDiffDirectory;
- }
- if (dir && dir.length > 0) {
- return dir;
- }
- return NSTemporaryDirectory();
-}
-
-#pragma mark - Private API
-
-- (BOOL)_compareSnapshotOfViewOrLayer:(id)viewOrLayer
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- _snapshotController.referenceImagesDirectory = referenceImagesDirectory;
- _snapshotController.imageDiffDirectory = imageDiffDirectory;
- return [_snapshotController compareSnapshotOfViewOrLayer:viewOrLayer
- selector:self.invocation.selector
- identifier:identifier
- perPixelTolerance:perPixelTolerance
- overallTolerance:overallTolerance
- error:errorPtr];
-}
-
-@end
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestCasePlatform.m b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestCasePlatform.m
deleted file mode 100644
index 09bace2..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestCasePlatform.m
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import
-#import "Public/FBSnapshotTestCasePlatform.h"
-
-BOOL FBSnapshotTestCaseIs64Bit(void)
-{
-#if __LP64__
- return YES;
-#else
- return NO;
-#endif
-}
-
-NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void)
-{
- if (FBSnapshotTestCaseIs64Bit()) {
- return [NSOrderedSet orderedSetWithObject:@"_64"];
- } else {
- return [NSOrderedSet orderedSetWithObject:@"_32"];
- }
-}
-
-NSString *FBFileNameIncludeNormalizedFileNameFromOption(NSString *fileName, FBSnapshotTestCaseFileNameIncludeOption option)
-{
- if ((option & FBSnapshotTestCaseFileNameIncludeOptionDevice) == FBSnapshotTestCaseFileNameIncludeOptionDevice) {
- UIDevice *device = [UIDevice currentDevice];
- fileName = [fileName stringByAppendingFormat:@"_%@", device.model];
- }
-
- if ((option & FBSnapshotTestCaseFileNameIncludeOptionOS) == FBSnapshotTestCaseFileNameIncludeOptionOS) {
- UIDevice *device = [UIDevice currentDevice];
- NSString *os = device.systemVersion;
- fileName = [fileName stringByAppendingFormat:@"_%@", os];
- }
-
- if ((option & FBSnapshotTestCaseFileNameIncludeOptionScreenSize) == FBSnapshotTestCaseFileNameIncludeOptionScreenSize) {
- CGSize screenSize = [UIScreen mainScreen].bounds.size;
- fileName = [fileName stringByAppendingFormat:@"_%.0fx%.0f", screenSize.width, screenSize.height];
- }
-
- NSMutableCharacterSet *invalidCharacters = [NSMutableCharacterSet new];
- [invalidCharacters formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
- [invalidCharacters formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];
- NSArray *validComponents = [fileName componentsSeparatedByCharactersInSet:invalidCharacters];
- fileName = [validComponents componentsJoinedByString:@"_"];
-
- if ((option & FBSnapshotTestCaseFileNameIncludeOptionScreenScale) == FBSnapshotTestCaseFileNameIncludeOptionScreenScale) {
- CGFloat screenScale = [[UIScreen mainScreen] scale];
- fileName = [fileName stringByAppendingFormat:@"@%.fx", screenScale];
- }
-
- return fileName;
-}
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestController.m b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestController.m
deleted file mode 100644
index 1c518c5..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/FBSnapshotTestController.m
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import
-#import
-
-#import "Public/FBSnapshotTestCasePlatform.h"
-#import "Public/FBSnapshotTestController.h"
-#import "Categories/UIImage+Compare.h"
-#import "Categories/UIImage+Diff.h"
-#import "Categories/UIImage+Snapshot.h"
-
-NSString *const FBSnapshotTestControllerErrorDomain = @"FBSnapshotTestControllerErrorDomain";
-NSString *const FBReferenceImageFilePathKey = @"FBReferenceImageFilePathKey";
-NSString *const FBReferenceImageKey = @"FBReferenceImageKey";
-NSString *const FBCapturedImageKey = @"FBCapturedImageKey";
-NSString *const FBDiffedImageKey = @"FBDiffedImageKey";
-
-typedef NS_ENUM(NSUInteger, FBTestSnapshotFileNameType) {
- FBTestSnapshotFileNameTypeReference,
- FBTestSnapshotFileNameTypeFailedReference,
- FBTestSnapshotFileNameTypeFailedTest,
- FBTestSnapshotFileNameTypeFailedTestDiff,
-};
-
-@implementation FBSnapshotTestController {
- NSFileManager *_fileManager;
-}
-
-#pragma mark - Initializers
-
-- (instancetype)initWithTestClass:(Class)testClass;
-{
- if (self = [super init]) {
- _folderName = NSStringFromClass(testClass);
- _fileNameOptions = FBSnapshotTestCaseFileNameIncludeOptionScreenScale;
-
- _fileManager = [[NSFileManager alloc] init];
- }
- return self;
-}
-
-#pragma mark - Overrides
-
-- (NSString *)description
-{
- return [NSString stringWithFormat:@"%@ %@", [super description], _referenceImagesDirectory];
-}
-
-#pragma mark - Public API
-
-- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
- selector:(SEL)selector
- identifier:(NSString *)identifier
- error:(NSError **)errorPtr
-{
- return [self compareSnapshotOfViewOrLayer:layer
- selector:selector
- identifier:identifier
- perPixelTolerance:0
- overallTolerance:0
- error:errorPtr];
-}
-
-- (BOOL)compareSnapshotOfView:(UIView *)view
- selector:(SEL)selector
- identifier:(NSString *)identifier
- error:(NSError **)errorPtr
-{
- return [self compareSnapshotOfViewOrLayer:view
- selector:selector
- identifier:identifier
- perPixelTolerance:0
- overallTolerance:0
- error:errorPtr];
-}
-
-- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer
- selector:(SEL)selector
- identifier:(NSString *)identifier
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- return [self compareSnapshotOfViewOrLayer:viewOrLayer
- selector:selector
- identifier:identifier
- perPixelTolerance:0
- overallTolerance:overallTolerance
- error:errorPtr];
-}
-
-
-- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer
- selector:(SEL)selector
- identifier:(NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- if (self.recordMode) {
- return [self _recordSnapshotOfViewOrLayer:viewOrLayer selector:selector identifier:identifier error:errorPtr];
- } else {
- return [self _performPixelComparisonWithViewOrLayer:viewOrLayer selector:selector identifier:identifier perPixelTolerance:perPixelTolerance overallTolerance:overallTolerance error:errorPtr];
- }
-}
-
-- (UIImage *)referenceImageForSelector:(SEL)selector
- identifier:(NSString *)identifier
- error:(NSError **)errorPtr
-{
- NSString *filePath = [self _referenceFilePathForSelector:selector identifier:identifier];
- UIImage *image = [UIImage imageWithContentsOfFile:filePath];
- if (image == nil && errorPtr != NULL) {
- BOOL exists = [_fileManager fileExistsAtPath:filePath];
- if (!exists) {
- *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain
- code:FBSnapshotTestControllerErrorCodeNeedsRecord
- userInfo:@{
- FBReferenceImageFilePathKey : filePath,
- NSLocalizedDescriptionKey : @"Unable to load reference image.",
- NSLocalizedFailureReasonErrorKey : @"Reference image not found. You need to run the test in record mode",
- }];
- } else {
- *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain
- code:FBSnapshotTestControllerErrorCodeUnknown
- userInfo:nil];
- }
- }
- return image;
-}
-
-- (BOOL)compareReferenceImage:(UIImage *)referenceImage
- toImage:(UIImage *)image
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- return [self compareReferenceImage:referenceImage
- toImage:image
- perPixelTolerance:0
- overallTolerance:overallTolerance
- error:errorPtr];
-}
-
-- (BOOL)compareReferenceImage:(UIImage *)referenceImage
- toImage:(UIImage *)image
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- CGSize referenceImageSize = CGSizeMake(CGImageGetWidth(referenceImage.CGImage), CGImageGetHeight(referenceImage.CGImage));
- CGSize imageSize = CGSizeMake(CGImageGetWidth(image.CGImage), CGImageGetHeight(image.CGImage));
-
- BOOL sameImageDimensions = CGSizeEqualToSize(referenceImageSize, imageSize);
- if (sameImageDimensions && [referenceImage fb_compareWithImage:image perPixelTolerance:perPixelTolerance overallTolerance:overallTolerance]) {
- return YES;
- }
-
- if (errorPtr != NULL) {
- NSString *errorDescription = sameImageDimensions ? @"Images different" : @"Images different sizes";
- NSString *errorReason = sameImageDimensions ? [NSString stringWithFormat:@"image pixels differed by more than %.2f%% from the reference image", overallTolerance * 100] : [NSString stringWithFormat:@"referenceImage:%@, image:%@", NSStringFromCGSize(referenceImageSize), NSStringFromCGSize(imageSize)];
- FBSnapshotTestControllerErrorCode errorCode = sameImageDimensions ? FBSnapshotTestControllerErrorCodeImagesDifferent : FBSnapshotTestControllerErrorCodeImagesDifferentSizes;
-
- *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain
- code:errorCode
- userInfo:@{
- NSLocalizedDescriptionKey : errorDescription,
- NSLocalizedFailureReasonErrorKey : errorReason,
- FBReferenceImageKey : referenceImage,
- FBCapturedImageKey : image,
- FBDiffedImageKey : [referenceImage fb_diffWithImage:image],
- }];
- }
- return NO;
-}
-
-- (BOOL)saveFailedReferenceImage:(UIImage *)referenceImage
- testImage:(UIImage *)testImage
- selector:(SEL)selector
- identifier:(NSString *)identifier
- error:(NSError **)errorPtr
-{
- UIImage *diffImage = [referenceImage fb_diffWithImage:testImage];
-
- [XCTContext runActivityNamed:identifier ?: NSStringFromSelector(selector) block:^(id _Nonnull activity) {
- XCTAttachment *referenceAttachment = [XCTAttachment attachmentWithImage:referenceImage];
- referenceAttachment.name = @"Reference Image";
-
- XCTAttachment *failedAttachment = [XCTAttachment attachmentWithImage:testImage];
- failedAttachment.name = @"Failed Image";
-
- XCTAttachment *diffAttachment = [XCTAttachment attachmentWithImage:diffImage];
- diffAttachment.name = @"Diffed Image";
-
- [activity addAttachment:referenceAttachment];
- [activity addAttachment:failedAttachment];
- [activity addAttachment:diffAttachment];
- }];
-
- NSData *referencePNGData = UIImagePNGRepresentation(referenceImage);
- NSData *testPNGData = UIImagePNGRepresentation(testImage);
-
- NSString *referencePath = [self _failedFilePathForSelector:selector
- identifier:identifier
- fileNameType:FBTestSnapshotFileNameTypeFailedReference];
-
- NSError *creationError = nil;
- BOOL didCreateDir = [_fileManager createDirectoryAtPath:[referencePath stringByDeletingLastPathComponent]
- withIntermediateDirectories:YES
- attributes:nil
- error:&creationError];
- if (!didCreateDir) {
- if (errorPtr != NULL) {
- *errorPtr = creationError;
- }
- return NO;
- }
-
- if (![referencePNGData writeToFile:referencePath options:NSDataWritingAtomic error:errorPtr]) {
- return NO;
- }
-
- NSString *testPath = [self _failedFilePathForSelector:selector
- identifier:identifier
- fileNameType:FBTestSnapshotFileNameTypeFailedTest];
-
- if (![testPNGData writeToFile:testPath options:NSDataWritingAtomic error:errorPtr]) {
- return NO;
- }
-
- NSString *diffPath = [self _failedFilePathForSelector:selector
- identifier:identifier
- fileNameType:FBTestSnapshotFileNameTypeFailedTestDiff];
-
- NSData *diffImageData = UIImagePNGRepresentation(diffImage);
-
- if (![diffImageData writeToFile:diffPath options:NSDataWritingAtomic error:errorPtr]) {
- return NO;
- }
-
- NSLog(@"If you have Kaleidoscope installed you can run this command to see an image diff:\n"
- @"ksdiff \"%@\" \"%@\"",
- referencePath, testPath);
-
- return YES;
-}
-
-#pragma mark - Private API
-
-- (NSString *)_fileNameForSelector:(SEL)selector
- identifier:(NSString *)identifier
- fileNameType:(FBTestSnapshotFileNameType)fileNameType
-{
- NSString *fileName = nil;
- switch (fileNameType) {
- case FBTestSnapshotFileNameTypeFailedReference:
- fileName = @"reference_";
- break;
- case FBTestSnapshotFileNameTypeFailedTest:
- fileName = @"failed_";
- break;
- case FBTestSnapshotFileNameTypeFailedTestDiff:
- fileName = @"diff_";
- break;
- default:
- fileName = @"";
- break;
- }
- fileName = [fileName stringByAppendingString:NSStringFromSelector(selector)];
- if (0 < identifier.length) {
- fileName = [fileName stringByAppendingFormat:@"_%@", identifier];
- }
-
- BOOL noFileNameOption = (self.fileNameOptions & FBSnapshotTestCaseFileNameIncludeOptionNone) == FBSnapshotTestCaseFileNameIncludeOptionNone;
- if (!noFileNameOption) {
- fileName = FBFileNameIncludeNormalizedFileNameFromOption(fileName, self.fileNameOptions);
- }
-
- fileName = [fileName stringByAppendingPathExtension:@"png"];
- return fileName;
-}
-
-- (NSString *)_referenceFilePathForSelector:(SEL)selector
- identifier:(NSString *)identifier
-{
- NSString *fileName = [self _fileNameForSelector:selector
- identifier:identifier
- fileNameType:FBTestSnapshotFileNameTypeReference];
- NSString *filePath = [_referenceImagesDirectory stringByAppendingPathComponent:self.folderName];
- filePath = [filePath stringByAppendingPathComponent:fileName];
- return filePath;
-}
-
-- (NSString *)_failedFilePathForSelector:(SEL)selector
- identifier:(NSString *)identifier
- fileNameType:(FBTestSnapshotFileNameType)fileNameType
-{
- NSString *fileName = [self _fileNameForSelector:selector
- identifier:identifier
- fileNameType:fileNameType];
-
- NSString *filePath = [_imageDiffDirectory stringByAppendingPathComponent:self.folderName];
- filePath = [filePath stringByAppendingPathComponent:fileName];
- return filePath;
-}
-
-- (BOOL)_performPixelComparisonWithViewOrLayer:(id)viewOrLayer
- selector:(SEL)selector
- identifier:(NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr
-{
- UIImage *referenceImage = [self referenceImageForSelector:selector identifier:identifier error:errorPtr];
- if (referenceImage != nil) {
- UIImage *snapshot = [self _imageForViewOrLayer:viewOrLayer];
- BOOL imagesSame = [self compareReferenceImage:referenceImage toImage:snapshot perPixelTolerance:perPixelTolerance overallTolerance:overallTolerance error:errorPtr];
- if (!imagesSame) {
- NSError *saveError = nil;
- if ([self saveFailedReferenceImage:referenceImage testImage:snapshot selector:selector identifier:identifier error:&saveError] == NO) {
- NSLog(@"Error saving test images: %@", saveError);
- }
- }
- return imagesSame;
- }
- return NO;
-}
-
-- (BOOL)_recordSnapshotOfViewOrLayer:(id)viewOrLayer
- selector:(SEL)selector
- identifier:(NSString *)identifier
- error:(NSError **)errorPtr
-{
- UIImage *snapshot = [self _imageForViewOrLayer:viewOrLayer];
-
- [XCTContext runActivityNamed:identifier ?: NSStringFromSelector(selector) block:^(id _Nonnull activity) {
- XCTAttachment *recordedAttachment = [XCTAttachment attachmentWithImage:snapshot];
- recordedAttachment.name = @"Recorded Image";
- [activity addAttachment:recordedAttachment];
- }];
-
- return [self _saveReferenceImage:snapshot selector:selector identifier:identifier error:errorPtr];
-}
-
-- (BOOL)_saveReferenceImage:(UIImage *)image
- selector:(SEL)selector
- identifier:(NSString *)identifier
- error:(NSError **)errorPtr
-{
- BOOL didWrite = NO;
- if (image != nil) {
- NSString *filePath = [self _referenceFilePathForSelector:selector identifier:identifier];
- NSData *pngData = UIImagePNGRepresentation(image);
- if (pngData != nil) {
- NSError *creationError = nil;
- BOOL didCreateDir = [_fileManager createDirectoryAtPath:[filePath stringByDeletingLastPathComponent]
- withIntermediateDirectories:YES
- attributes:nil
- error:&creationError];
- if (!didCreateDir) {
- if (errorPtr != NULL) {
- *errorPtr = creationError;
- }
- return NO;
- }
- didWrite = [pngData writeToFile:filePath options:NSDataWritingAtomic error:errorPtr];
- if (didWrite) {
- NSLog(@"Reference image save at: %@", filePath);
- }
- } else {
- if (errorPtr != nil) {
- *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain
- code:FBSnapshotTestControllerErrorCodePNGCreationFailed
- userInfo:@{
- FBReferenceImageFilePathKey : filePath,
- }];
- }
- }
- }
- return didWrite;
-}
-
-- (UIImage *)_imageForViewOrLayer:(id)viewOrLayer
-{
- if ([viewOrLayer isKindOfClass:[UIView class]]) {
- if (_usesDrawViewHierarchyInRect) {
- return [UIImage fb_imageForView:viewOrLayer];
- } else {
- return [UIImage fb_imageForViewLayer:viewOrLayer];
- }
- } else if ([viewOrLayer isKindOfClass:[CALayer class]]) {
- return [UIImage fb_imageForLayer:viewOrLayer];
- } else {
- [NSException raise:@"Only UIView and CALayer classes can be snapshotted" format:@"%@", viewOrLayer];
- }
- return nil;
-}
-
-@end
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestCase.h b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestCase.h
deleted file mode 100644
index 13c26d2..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestCase.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import
-#import
-#import
-
-#import "FBSnapshotTestCasePlatform.h"
-#import "FBSnapshotTestController.h"
-
-/*
- There are three ways of setting reference image directories.
-
- 1. Set the preprocessor macro FB_REFERENCE_IMAGE_DIR to a double quoted
- c-string with the path. This only works for Objective-C tests.
- 2. Set an environment variable named FB_REFERENCE_IMAGE_DIR with the path. This
- takes precedence over the preprocessor macro to allow for run-time override.
- 3. Set `FBSnapshotTestCase.bundleResourcePath` as the root folder where reference images are stored.
- 4. Keep everything unset, which will cause the reference images to be looked up
- inside the bundle holding the current test, in the
- Resources/ReferenceImages_* directories.
- */
-#ifndef FB_REFERENCE_IMAGE_DIR
-#define FB_REFERENCE_IMAGE_DIR ""
-#endif
-
-/*
- There are three ways of setting failed image diff directories.
-
- 1. Set the preprocessor macro IMAGE_DIFF_DIR to a double quoted
- c-string with the path.
- 2. Set an environment variable named IMAGE_DIFF_DIR with the path. This
- takes precedence over the preprocessor macro to allow for run-time override.
- 3. Keep everything unset, which will cause the failed image diff images to be saved
- inside a temporary directory.
- */
-#ifndef IMAGE_DIFF_DIR
-#define IMAGE_DIFF_DIR ""
-#endif
-
-/**
- Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though.
- @param view The view to snapshot.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param suffixes An NSOrderedSet of strings for the different suffixes.
- @param tolerance The overall percentage of pixels that can differ and still count as an 'identical' view.
- */
-#define FBSnapshotVerifyViewWithOptions(view__, identifier__, suffixes__, tolerance__) \
- FBSnapshotVerifyViewOrLayerWithOptions(View, view__, identifier__, suffixes__, tolerance__)
-
-/**
- Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though.
- @param view The view to snapshot.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param suffixes An NSOrderedSet of strings for the different suffixes.
- @param pixelTolerance The percentage a given pixel's R,G,B and A components can differ and still be considered 'identical'.
- @param tolerance The overall percentage of pixels that can differ and still count as an 'identical' layer.
- */
-#define FBSnapshotVerifyViewWithPixelOptions(view__, identifier__, suffixes__, pixelTolerance__, tolerance__) \
- FBSnapshotVerifyViewOrLayerWithPixelOptions(View, view__, identifier__, suffixes__, pixelTolerance__, tolerance__)
-
-#define FBSnapshotVerifyView(view__, identifier__) \
- FBSnapshotVerifyViewWithOptions(view__, identifier__, FBSnapshotTestCaseDefaultSuffixes(), 0)
-
-
-/**
- Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though.
- @param layer The layer to snapshot.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param suffixes An NSOrderedSet of strings for the different suffixes.
- @param pixelTolerance The percentage a given pixel's R,G,B and A components can differ and still be considered 'identical'.
- @param tolerance The overall percentage of pixels that can differ and still count as an 'identical' layer.
- */
-#define FBSnapshotVerifyLayerWithPixelOptions(layer__, identifier__, suffixes__, pixelTolerance__, tolerance__) \
- FBSnapshotVerifyViewOrLayerWithPixelOptions(Layer, layer__, identifier__, suffixes__, pixelTolerance__, tolerance__)
-
-/**
- Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though.
- @param layer The layer to snapshot.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param suffixes An NSOrderedSet of strings for the different suffixes.
- @param tolerance The overall percentage of pixels that can differ and still count as an 'identical' layer.
- */
-#define FBSnapshotVerifyLayerWithOptions(layer__, identifier__, suffixes__, tolerance__) \
- FBSnapshotVerifyViewOrLayerWithOptions(Layer, layer__, identifier__, suffixes__, tolerance__)
-
-#define FBSnapshotVerifyLayer(layer__, identifier__) \
- FBSnapshotVerifyLayerWithOptions(layer__, identifier__, FBSnapshotTestCaseDefaultSuffixes(), 0)
-
-#define FBSnapshotVerifyViewOrLayerWithOptions(what__, viewOrLayer__, identifier__, suffixes__, tolerance__) \
- { \
- NSString *errorDescription = [self snapshotVerifyViewOrLayer:viewOrLayer__ identifier:identifier__ suffixes:suffixes__ overallTolerance:tolerance__ defaultReferenceDirectory:(@FB_REFERENCE_IMAGE_DIR) defaultImageDiffDirectory:(@IMAGE_DIFF_DIR)]; \
- BOOL noErrors = (errorDescription == nil); \
- XCTAssertTrue(noErrors, @"%@", errorDescription); \
- }
-
-#define FBSnapshotVerifyViewOrLayerWithPixelOptions(what__, viewOrLayer__, identifier__, suffixes__, pixelTolerance__, tolerance__) \
- { \
- NSString *errorDescription = [self snapshotVerifyViewOrLayer:viewOrLayer__ identifier:identifier__ suffixes:suffixes__ perPixelTolerance:pixelTolerance__ overallTolerance:tolerance__ defaultReferenceDirectory:(@FB_REFERENCE_IMAGE_DIR) defaultImageDiffDirectory:(@IMAGE_DIFF_DIR)]; \
- BOOL noErrors = (errorDescription == nil); \
- XCTAssertTrue(noErrors, @"%@", errorDescription); \
- }
-
-NS_ASSUME_NONNULL_BEGIN
-
-/**
- The base class of view snapshotting tests. If you have small UI component, it's often easier to configure it in a test
- and compare an image of the view to a reference image than write lots of complex layout-code tests.
-
- In order to flip the tests in your subclass to record the reference images set @c recordMode to @c YES.
-
- @attention When recording, the reference image directory should be explicitly
- set, otherwise the images may be written to somewhere inside the
- simulator directory.
-
- For example:
- @code
- - (void)setUp
- {
- [super setUp];
- self.recordMode = YES;
- }
- @endcode
- */
-@interface FBSnapshotTestCase : XCTestCase
-
-/**
- When YES, the test macros will save reference images, rather than performing an actual test.
- */
-@property (readwrite, nonatomic, assign) BOOL recordMode;
-
-
-/**
- The bundleResourcePath can be manually set to the root folder where reference images are stored.
- If the bundle is not set via FB_REFERENCE_IMAGE_DIR (Steps 1, 2 stated above) then it checks if bundleResourcePath is set. This is useful for testing with SPM
- */
-@property (readwrite, nonatomic, copy, nullable) NSString *bundleResourcePath;
-
-/**
- When set, allows fine-grained control over what you want the file names to include.
-
- Allows you to combine which device or simulator specific details you want in your snapshot file names.
-
- The default value is FBSnapshotTestCaseFileNameIncludeOptionScreenScale.
-
- @discussion If you are migrating from the now deleted FBSnapshotTestCaseAgnosticOption to FBSnapshotTestCaseFileNameIncludeOption, we default to using FBSnapshotTestCaseFileNameIncludeOptionScreenScale for fileNameOptions to make the transition easy. If you don't want to have the screen scale included in your file name, you need to set fileNameOptions to a mask that doesn't include FBSnapshotTestCaseFileNameIncludeOptionScreenScale:
-
- self.fileNameOptions = (FBSnapshotTestCaseFileNameIncludeOptionDevice | FBSnapshotTestCaseFileNameIncludeOptionOS);
- */
-
-@property (readwrite, nonatomic, assign) FBSnapshotTestCaseFileNameIncludeOption fileNameOptions;
-
-/**
- Overrides the folder name in which the snapshot is going to be saved.
-
- @attention This property *must* be called *AFTER* [super setUp].
- */
-@property (readwrite, nonatomic, copy, nullable) NSString *folderName;
-
-/**
- When YES, renders a snapshot of the complete view hierarchy as visible onscreen.
- There are several things that do not work if renderInContext: is used.
- - UIVisualEffect #70
- - UIAppearance #91
- - Size Classes #92
-
- @attention If the view does't belong to a UIWindow, it will create one and add the view as a subview.
- */
-@property (readwrite, nonatomic, assign) BOOL usesDrawViewHierarchyInRect;
-
-- (void)setUp NS_REQUIRES_SUPER;
-- (void)tearDown NS_REQUIRES_SUPER;
-
-/**
- Performs the comparison or records a snapshot of the layer if recordMode is YES.
- @param viewOrLayer The UIView or CALayer to snapshot.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param suffixes An NSOrderedSet of strings for the different suffixes.
- @param overallTolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care.
- @param defaultReferenceDirectory The directory to default to for reference images.
- @param defaultImageDiffDirectory The directory to default to for failed image diffs.
- @returns nil if the comparison (or saving of the reference image) succeeded. Otherwise it contains an error description.
- */
-- (NSString *)snapshotVerifyViewOrLayer:(id)viewOrLayer
- identifier:(nullable NSString *)identifier
- suffixes:(NSOrderedSet *)suffixes
- overallTolerance:(CGFloat)overallTolerance
- defaultReferenceDirectory:(nullable NSString *)defaultReferenceDirectory
- defaultImageDiffDirectory:(nullable NSString *)defaultImageDiffDirectory;
-
-/**
- Performs the comparison or records a snapshot of the layer if recordMode is YES.
- @param viewOrLayer The UIView or CALayer to snapshot.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param suffixes An NSOrderedSet of strings for the different suffixes.
- @param perPixelTolerance The percentage a given pixel's R,G,B and A components can differ and still be considered 'identical'. Each color shade difference represents a 0.390625% change.
- @param overallTolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care.
- @param defaultReferenceDirectory The directory to default to for reference images.
- @param defaultImageDiffDirectory The directory to default to for failed image diffs.
- @returns nil if the comparison (or saving of the reference image) succeeded. Otherwise it contains an error description.
- */
-- (nullable NSString *)snapshotVerifyViewOrLayer:(id)viewOrLayer
- identifier:(nullable NSString *)identifier
- suffixes:(NSOrderedSet *)suffixes
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- defaultReferenceDirectory:(nullable NSString *)defaultReferenceDirectory
- defaultImageDiffDirectory:(nullable NSString *)defaultImageDiffDirectory;
-
-/**
- Performs the comparison or records a snapshot of the layer if recordMode is YES.
- @param layer The Layer to snapshot.
- @param referenceImagesDirectory The directory in which reference images are stored.
- @param imageDiffDirectory The directory in which failed image diffs are stored.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param overallTolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(nullable NSString *)identifier
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Performs the comparison or records a snapshot of the layer if recordMode is YES.
- @param layer The Layer to snapshot.
- @param referenceImagesDirectory The directory in which reference images are stored.
- @param imageDiffDirectory The directory in which failed image diffs are stored.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param perPixelTolerance The percentage a given pixel's R,G,B and A components can differ and still be considered 'identical'. Each color shade difference represents a 0.390625% change.
- @param overallTolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(nullable NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Performs the comparison or records a snapshot of the view if recordMode is YES.
- @param view The view to snapshot.
- @param referenceImagesDirectory The directory in which reference images are stored.
- @param imageDiffDirectory The directory in which failed image diffs are stored.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param overallTolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfView:(UIView *)view
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(nullable NSString *)identifier
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Performs the comparison or records a snapshot of the view if recordMode is YES.
- @param view The view to snapshot.
- @param referenceImagesDirectory The directory in which reference images are stored.
- @param imageDiffDirectory The directory in which failed image diffs are stored.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param perPixelTolerance The percentage a given pixel's R,G,B and A components can differ and still be considered 'identical'. Each color shade difference represents a 0.390625% change.
- @param overallTolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfView:(UIView *)view
- referenceImagesDirectory:(NSString *)referenceImagesDirectory
- imageDiffDirectory:(NSString *)imageDiffDirectory
- identifier:(nullable NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Checks if reference image with identifier based name exists in the reference images directory.
- @param referenceImagesDirectory The directory in which reference images are stored.
- @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if reference image exists.
- */
-- (BOOL)referenceImageRecordedInDirectory:(NSString *)referenceImagesDirectory
- identifier:(nullable NSString *)identifier
- error:(NSError **)errorPtr;
-
-/**
- Returns the reference image directory.
-
- Helper function used to implement the assert macros.
-
- @param dir Directory to use if environment variable not specified. Ignored if null or empty.
- */
-- (NSString *)getReferenceImageDirectoryWithDefault:(nullable NSString *)dir;
-
-/**
- Returns the failed image diff directory.
-
- Helper function used to implement the assert macros.
-
- @param dir Directory to use if environment variable not specified. Ignored if null or empty.
- */
-- (NSString *)getImageDiffDirectoryWithDefault:(nullable NSString *)dir;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestCasePlatform.h b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestCasePlatform.h
deleted file mode 100644
index 03f6d28..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestCasePlatform.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-NS_ASSUME_NONNULL_BEGIN
-
-/**
- An option mask that allows you to cherry pick which parts you want to include in the snapshot file name.
-
- - FBSnapshotTestCaseFileNameIncludeOptionNone: Don't include any of these options at all.
- - FBSnapshotTestCaseFileNameIncludeOptionDevice: The file name should include the device name, as returned by UIDevice.currentDevice.model.
- - FBSnapshotTestCaseFileNameIncludeOptionOS: The file name should include the OS version, as returned by UIDevice.currentDevice.systemVersion.
- - FBSnapshotTestCaseFileNameIncludeOptionScreenSize: The file name should include the screen size of the current device, as returned by UIScreen.mainScreen.bounds.size.
- - FBSnapshotTestCaseFileNameIncludeOptionScreenScale: The file name should include the scale of the current device, as returned by UIScreen.mainScreen.scale.
- */
-typedef NS_OPTIONS(NSUInteger, FBSnapshotTestCaseFileNameIncludeOption) {
- FBSnapshotTestCaseFileNameIncludeOptionNone = 1 << 0,
- FBSnapshotTestCaseFileNameIncludeOptionDevice = 1 << 1,
- FBSnapshotTestCaseFileNameIncludeOptionOS = 1 << 2,
- FBSnapshotTestCaseFileNameIncludeOptionScreenSize = 1 << 3,
- FBSnapshotTestCaseFileNameIncludeOptionScreenScale = 1 << 4
-};
-
-/**
- Returns a Boolean value that indicates whether the snapshot test is running in 64Bit.
- This method is a convenience for creating the suffixes set based on the architecture
- that the test is running.
-
- @returns @c YES if the test is running in 64bit, otherwise @c NO.
- */
-BOOL FBSnapshotTestCaseIs64Bit(void);
-
-/**
- Returns a default set of strings that is used to append a suffix based on the architectures.
- @warning Do not modify this function, you can create your own and use it with @c FBSnapshotVerifyViewWithOptions()
-
- @returns An @c NSOrderedSet object containing strings that are appended to the reference images directory.
- */
-NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void);
-
-/**
- Returns a fully normalized file name as per the provided option mask. Strips punctuation and spaces and replaces them with @c _.
-
- @param fileName The file name to normalize.
- @param option File Name Include options to use before normalization.
- @return An @c NSString object containing the passed @c fileName and optionally, with the device model and/or OS and/or screen size and/or screen scale appended at the end.
- */
-NSString *FBFileNameIncludeNormalizedFileNameFromOption(NSString *fileName, FBSnapshotTestCaseFileNameIncludeOption option);
-
-NS_ASSUME_NONNULL_END
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestController.h b/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestController.h
deleted file mode 100644
index e76d844..0000000
--- a/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Public/FBSnapshotTestController.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright (c) 2017-2018, Uber Technologies, Inc.
- * Copyright (c) 2015-2018, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-
-#import
-#import "FBSnapshotTestCasePlatform.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-typedef NS_ENUM(NSInteger, FBSnapshotTestControllerErrorCode) {
- FBSnapshotTestControllerErrorCodeUnknown,
- FBSnapshotTestControllerErrorCodeNeedsRecord,
- FBSnapshotTestControllerErrorCodePNGCreationFailed,
- FBSnapshotTestControllerErrorCodeImagesDifferentSizes,
- FBSnapshotTestControllerErrorCodeImagesDifferent,
-};
-
-/**
- Errors returned by the methods of FBSnapshotTestController use this domain.
- */
-extern NSString *const FBSnapshotTestControllerErrorDomain;
-
-/**
- Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary.
- */
-extern NSString *const FBReferenceImageFilePathKey;
-
-/**
- Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary.
- */
-extern NSString *const FBReferenceImageKey;
-
-/**
- Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary.
- */
-extern NSString *const FBCapturedImageKey;
-
-/**
- Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary.
- */
-extern NSString *const FBDiffedImageKey;
-
-/**
- Provides the heavy-lifting for FBSnapshotTestCase. It loads and saves images, along with performing the actual pixel-
- by-pixel comparison of images.
- Instances are initialized with the test class, and directories to read and write to.
- */
-@interface FBSnapshotTestController : NSObject
-
-/**
- Record snapshots.
- */
-@property (readwrite, nonatomic, assign) BOOL recordMode;
-
-/**
- The bundleResourcePath can be manually set to the root folder where reference images are stored.
- */
-@property (readwrite, nonatomic, copy, nullable) NSString *bundleResourcePath;
-
-/**
- When set, allows fine-grained control over what you want the file names to include.
-
- Allows you to combine which device or simulator specific details you want in your snapshot file names.
-
- The default value is FBSnapshotTestCaseFileNameIncludeOptionScreenScale.
-
- @discussion If you are migrating from the now deleted FBSnapshotTestCaseAgnosticOption to FBSnapshotTestCaseFileNameIncludeOption, we default to using FBSnapshotTestCaseFileNameIncludeOptionScreenScale for fileNameOptions to make the transition easier. If you don't want to have the screen scale included in your file name, you need to set fileNameOptions to a mask that doesn't include FBSnapshotTestCaseFileNameIncludeOptionScreenScale:
-
- self.fileNameOptions = (FBSnapshotTestCaseFileNameIncludeOptionDevice | FBSnapshotTestCaseFileNameIncludeOptionOS);
- */
-@property (readwrite, nonatomic, assign) FBSnapshotTestCaseFileNameIncludeOption fileNameOptions;
-
-/**
- Uses drawViewHierarchyInRect:afterScreenUpdates: to draw the image instead of renderInContext:
- */
-@property (readwrite, nonatomic, assign) BOOL usesDrawViewHierarchyInRect;
-
-/**
- The directory in which reference images are stored.
- */
-@property (readwrite, nonatomic, copy, nullable) NSString *referenceImagesDirectory;
-
-/**
- The directory in which failed snapshot images are stored.
- */
-@property (readwrite, nonatomic, copy) NSString *imageDiffDirectory;
-
-/**
- The name folder in which the snapshots will be saved for a given test case.
-*/
-@property (readwrite, nonatomic, copy) NSString *folderName;
-
-/**
- @param testClass The subclass of FBSnapshotTestCase that is using this controller.
- @returns An instance of FBSnapshotTestController.
- */
-- (instancetype)initWithTestClass:(Class)testClass;
-
-/**
- Performs the comparison of the layer.
- @param layer The Layer to snapshot.
- @param selector The test method being run.
- @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfLayer:(CALayer *)layer
- selector:(SEL)selector
- identifier:(nullable NSString *)identifier
- error:(NSError **)errorPtr;
-
-/**
- Performs the comparison of the view.
- @param view The view to snapshot.
- @param selector The test method being run.
- @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfView:(UIView *)view
- selector:(SEL)selector
- identifier:(nullable NSString *)identifier
- error:(NSError **)errorPtr;
-
-/**
- Performs the comparison of a view or layer.
- @param viewOrLayer The view or layer to snapshot.
- @param selector The test method being run.
- @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method.
- @param overallTolerance The percentage of pixels that can differ and still be considered 'identical'.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer
- selector:(SEL)selector
- identifier:(nullable NSString *)identifier
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Performs the comparison of a view or layer.
- @param viewOrLayer The view or layer to snapshot.
- @param selector The test method being run.
- @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method.
- @param perPixelTolerance The percentage a given pixel's R,G,B and A components can differ and still be considered 'identical'.
- @param overallTolerance The percentage of pixels that can differ and still be considered 'identical'.
- @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc).
- @returns YES if the comparison (or saving of the reference image) succeeded.
- */
-- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer
- selector:(SEL)selector
- identifier:(nullable NSString *)identifier
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Loads a reference image.
- @param selector The test method being run.
- @param identifier The optional identifier, used when multiple images are tested in a single -test method.
- @param errorPtr An error, if this methods returns nil, the error will be something useful.
- @returns An image.
- */
-- (nullable UIImage *)referenceImageForSelector:(SEL)selector
- identifier:(nullable NSString *)identifier
- error:(NSError **)errorPtr;
-
-/**
- Performs a pixel-by-pixel comparison of the two images with an allowable margin of error.
- @param referenceImage The reference (correct) image.
- @param image The image to test against the reference.
- @param overallTolerance The percentage of pixels that can differ and still be considered 'identical'.
- @param errorPtr An error that indicates why the comparison failed if it does.
- @returns YES if the comparison succeeded and the images are the same(ish).
- */
-- (BOOL)compareReferenceImage:(UIImage *)referenceImage
- toImage:(UIImage *)image
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Performs a pixel-by-pixel comparison of the two images with an allowable margin of error.
- @param referenceImage The reference (correct) image.
- @param image The image to test against the reference.
- @param perPixelTolerance The percentage a given pixel's R,G,B and A components can differ and still be considered 'identical'.
- @param overallTolerance The percentage of pixels that can differ and still be considered 'identical'.
- @param errorPtr An error that indicates why the comparison failed if it does.
- @returns YES if the comparison succeeded and the images are the same(ish).
- */
-- (BOOL)compareReferenceImage:(UIImage *)referenceImage
- toImage:(UIImage *)image
- perPixelTolerance:(CGFloat)perPixelTolerance
- overallTolerance:(CGFloat)overallTolerance
- error:(NSError **)errorPtr;
-
-/**
- Saves the reference image and the test image to `failedOutputDirectory`.
- @param referenceImage The reference (correct) image.
- @param testImage The image to test against the reference.
- @param selector The test method being run.
- @param identifier The optional identifier, used when multiple images are tested in a single -test method.
- @param errorPtr An error that indicates why the comparison failed if it does.
- @returns YES if the save succeeded.
- */
-- (BOOL)saveFailedReferenceImage:(UIImage *)referenceImage
- testImage:(UIImage *)testImage
- selector:(SEL)selector
- identifier:(nullable NSString *)identifier
- error:(NSError **)errorPtr;
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/README.md b/README.md
index a32fd7b..367b061 100644
--- a/README.md
+++ b/README.md
@@ -1,92 +1,39 @@
# SlidableImage

-[](https://codecov.io/gh/quver/SlidableImage)
-[](https://codebeat.co/projects/github-com-quver-slidableimage)
[]()
-[](http://cocoapods.org/pods/SlidableImage)
-[](http://cocoapods.org/pods/SlidableImage)
[](https://swift.org/package-manager)
-[](http://clayallsopp.github.io/readme-score?url=https://github.com/quver/slidableimage)
-
-
-Easy to use library for before & after images. One-line initialization and very customizable API.
+Easy to use library for before & after images. One-line initialization and SwiftUI.
## Requirements
-- iOS 12
+- iOS 15
- Swift 5
## Instalation
This library support
-- Cocoapods
- Swift Package Manager
-```ruby
-pod 'SlidableImage', '~>3.0'
-```
-
## Using
-### Constructor
-
-Common init with image
-
-```swift
-init(frame: CGRect, views: Views)
-```
-Gemeric init with views
-
-```swift
-init(frame: CGRect, images Images)
-```
-
-### Move slider
-```swift
-updateMask(location maskLocation: CGFloat)
-```
-
-### Variables
+
-Views tuple
+### Constructor
-```swift
-var views: Views
+```swfit
+init(@ViewBuilder arrows: @escaping () -> ArrowsIcon,
+ @ViewBuilder leftView: @escaping () -> LeftView,
+ @ViewBuilder rightView: @escaping () -> RightView)
```
-Circle view with icon for sliding images. You can override it with your custom view.
-
+### Arrows
```swift
-var sliderCircle: UIView
+init(arrowColor: Color = .white, backgroundColor: Color = .gray)
```
-Enum that describes which direction the slider will slide from.
-
-```swift
-var slideDirection: SlideDirection
-
-// Possible values
-.left, .right, .top, .bottom
-```
-
-Add border
-
-```swift
-addBorder(width: CGFloat, color: UIColor)
-```
-
-Remove border
-
-```swift
-removeBorder()
-```
-
-## TODO
-- Test with storyboards
-
## Author
Paweł Bednorz, Quver
@@ -95,5 +42,3 @@ Paweł Bednorz, Quver
SlidableImage Lib and Slider graphic are available under the MIT license.
Check the LICENSE file for more information.
-
-Images from [http://www.comicsbeat.com/awesome-infographic-on-the-avengers-then-and-now/](http://www.comicsbeat.com/awesome-infographic-on-the-avengers-then-and-now/)
diff --git a/SlidableImage.podspec b/SlidableImage.podspec
deleted file mode 100644
index e6c8368..0000000
--- a/SlidableImage.podspec
+++ /dev/null
@@ -1,15 +0,0 @@
-Pod::Spec.new do |s|
- s.name = "SlidableImage"
- s.version = "3.0.5"
- s.license = "MIT"
- s.summary = "Fancy slider for before&after images"
- s.homepage = "https://github.com/quver/SlidableImage"
- s.author = { "Pawel Bednorz" => "pawel@quver.pl" }
- s.social_media_url = "https://twitter.com/plquver"
- s.source = { :git => "https://github.com/quver/SlidableImage.git", :tag => s.version }
- s.source_files = "Sources/*.swift"
- s.ios.deployment_target = "12.0"
- s.swift_version = "5.5"
- s.resources = "SlidableImage/*.xcassets"
- s.requires_arc = true
-end
diff --git a/SlidableImage.xcodeproj/project.pbxproj b/SlidableImage.xcodeproj/project.pbxproj
deleted file mode 100644
index f00b7e3..0000000
--- a/SlidableImage.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,638 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 55;
- objects = {
-
-/* Begin PBXBuildFile section */
- 88EB8E5C05A4C79B80B5E119 /* Pods_SlidableImageTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39E1F6F28287193B6C1744F5 /* Pods_SlidableImageTests.framework */; };
- D55BB18B1CB97A10000B2875 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55BB18A1CB97A10000B2875 /* AppDelegate.swift */; };
- D55BB18D1CB97A10000B2875 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55BB18C1CB97A10000B2875 /* ViewController.swift */; };
- D55BB1901CB97A10000B2875 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D55BB18E1CB97A10000B2875 /* Main.storyboard */; };
- D55BB1921CB97A10000B2875 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D55BB1911CB97A10000B2875 /* Assets.xcassets */; };
- D55BB1951CB97A10000B2875 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D55BB1931CB97A10000B2875 /* LaunchScreen.storyboard */; };
- FA0236D02550E39700C79ED3 /* ArrowsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA0236CD2550E39700C79ED3 /* ArrowsView.swift */; };
- FA0236D12550E39700C79ED3 /* SlidableImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA0236CE2550E39700C79ED3 /* SlidableImage.swift */; };
- FA0236D22550E39700C79ED3 /* SlidableImageFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA0236CF2550E39700C79ED3 /* SlidableImageFactory.swift */; };
- FA02370E2550E79F00C79ED3 /* Pods_SlidableImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA02370D2550E79F00C79ED3 /* Pods_SlidableImage.framework */; };
- FA02370F2550E79F00C79ED3 /* Pods_SlidableImage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FA02370D2550E79F00C79ED3 /* Pods_SlidableImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- FA19E8D62552149B0049A6C5 /* ArrowViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA19E8D52552149B0049A6C5 /* ArrowViewTests.swift */; };
- FA19E8DB255217A80049A6C5 /* SlidableImageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA19E8DA255217A80049A6C5 /* SlidableImageTests.swift */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- D55BB19C1CB97A10000B2875 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D55BB17F1CB97A10000B2875 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = D55BB1861CB97A10000B2875;
- remoteInfo = SlidableImage;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- FA0237102550E79F00C79ED3 /* Embed Frameworks */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- FA02370F2550E79F00C79ED3 /* Pods_SlidableImage.framework in Embed Frameworks */,
- );
- name = "Embed Frameworks";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 08042B446B8A4C0C9AF8DE85 /* Pods-SlidableImageTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SlidableImageTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.release.xcconfig"; sourceTree = ""; };
- 2F6779F700CD766EAB96C2B7 /* Pods_SlidableImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SlidableImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 39E1F6F28287193B6C1744F5 /* Pods_SlidableImageTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SlidableImageTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 760B9F11A0F10D4B62905645 /* Pods-SlidableImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SlidableImage.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.debug.xcconfig"; sourceTree = ""; };
- A93EC5AEC1F2699D6E2453CA /* Pods-SlidableImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SlidableImage.release.xcconfig"; path = "Pods/Target Support Files/Pods-SlidableImage/Pods-SlidableImage.release.xcconfig"; sourceTree = ""; };
- B72B190FB92F165700183837 /* Pods-SlidableImageTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SlidableImageTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests.debug.xcconfig"; sourceTree = ""; };
- D55BB1871CB97A10000B2875 /* SlidableImage.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SlidableImage.app; sourceTree = BUILT_PRODUCTS_DIR; };
- D55BB18A1CB97A10000B2875 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
- D55BB18C1CB97A10000B2875 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
- D55BB18F1CB97A10000B2875 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
- D55BB1911CB97A10000B2875 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- D55BB1941CB97A10000B2875 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
- D55BB1961CB97A10000B2875 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- D55BB19B1CB97A10000B2875 /* SlidableImageTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SlidableImageTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- FA0236CD2550E39700C79ED3 /* ArrowsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrowsView.swift; sourceTree = ""; };
- FA0236CE2550E39700C79ED3 /* SlidableImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SlidableImage.swift; sourceTree = ""; };
- FA0236CF2550E39700C79ED3 /* SlidableImageFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SlidableImageFactory.swift; sourceTree = ""; };
- FA0236E32550E70400C79ED3 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- FA02370D2550E79F00C79ED3 /* Pods_SlidableImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Pods_SlidableImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- FA19E8D52552149B0049A6C5 /* ArrowViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArrowViewTests.swift; sourceTree = ""; };
- FA19E8DA255217A80049A6C5 /* SlidableImageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SlidableImageTests.swift; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- D55BB1841CB97A10000B2875 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- FA02370E2550E79F00C79ED3 /* Pods_SlidableImage.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D55BB1981CB97A10000B2875 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 88EB8E5C05A4C79B80B5E119 /* Pods_SlidableImageTests.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 1F97D3458E8BB0937FB02669 /* Pods */ = {
- isa = PBXGroup;
- children = (
- 760B9F11A0F10D4B62905645 /* Pods-SlidableImage.debug.xcconfig */,
- A93EC5AEC1F2699D6E2453CA /* Pods-SlidableImage.release.xcconfig */,
- B72B190FB92F165700183837 /* Pods-SlidableImageTests.debug.xcconfig */,
- 08042B446B8A4C0C9AF8DE85 /* Pods-SlidableImageTests.release.xcconfig */,
- );
- name = Pods;
- sourceTree = "";
- };
- 76B92AD24328E918A81FA6EF /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- FA02370D2550E79F00C79ED3 /* Pods_SlidableImage.framework */,
- 2F6779F700CD766EAB96C2B7 /* Pods_SlidableImage.framework */,
- 39E1F6F28287193B6C1744F5 /* Pods_SlidableImageTests.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- D55BB17E1CB97A10000B2875 = {
- isa = PBXGroup;
- children = (
- D55BB1891CB97A10000B2875 /* SlidableImage */,
- D55BB19E1CB97A10000B2875 /* SlidableImageTests */,
- D55BB1881CB97A10000B2875 /* Products */,
- 1F97D3458E8BB0937FB02669 /* Pods */,
- 76B92AD24328E918A81FA6EF /* Frameworks */,
- );
- sourceTree = "";
- };
- D55BB1881CB97A10000B2875 /* Products */ = {
- isa = PBXGroup;
- children = (
- D55BB1871CB97A10000B2875 /* SlidableImage.app */,
- D55BB19B1CB97A10000B2875 /* SlidableImageTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- D55BB1891CB97A10000B2875 /* SlidableImage */ = {
- isa = PBXGroup;
- children = (
- D55BB18A1CB97A10000B2875 /* AppDelegate.swift */,
- D55BB18C1CB97A10000B2875 /* ViewController.swift */,
- D55BB18E1CB97A10000B2875 /* Main.storyboard */,
- D55BB1911CB97A10000B2875 /* Assets.xcassets */,
- D55BB1931CB97A10000B2875 /* LaunchScreen.storyboard */,
- D55BB1961CB97A10000B2875 /* Info.plist */,
- D57E7AC01E6C242C00AACB33 /* Sources */,
- );
- path = SlidableImage;
- sourceTree = "";
- };
- D55BB19E1CB97A10000B2875 /* SlidableImageTests */ = {
- isa = PBXGroup;
- children = (
- FA0236E32550E70400C79ED3 /* Info.plist */,
- FA19E8DA255217A80049A6C5 /* SlidableImageTests.swift */,
- FA19E8D52552149B0049A6C5 /* ArrowViewTests.swift */,
- );
- path = SlidableImageTests;
- sourceTree = "";
- };
- D57E7AC01E6C242C00AACB33 /* Sources */ = {
- isa = PBXGroup;
- children = (
- FA0236CC2550E39700C79ED3 /* SlidableImage */,
- );
- path = Sources;
- sourceTree = SOURCE_ROOT;
- };
- FA0236CC2550E39700C79ED3 /* SlidableImage */ = {
- isa = PBXGroup;
- children = (
- FA0236CD2550E39700C79ED3 /* ArrowsView.swift */,
- FA0236CE2550E39700C79ED3 /* SlidableImage.swift */,
- FA0236CF2550E39700C79ED3 /* SlidableImageFactory.swift */,
- );
- path = SlidableImage;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- D55BB1861CB97A10000B2875 /* SlidableImage */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = D55BB1A41CB97A10000B2875 /* Build configuration list for PBXNativeTarget "SlidableImage" */;
- buildPhases = (
- 4ADCF7CAAEE976A13FFD9C0F /* [CP] Check Pods Manifest.lock */,
- D55BB1831CB97A10000B2875 /* Sources */,
- D55BB1841CB97A10000B2875 /* Frameworks */,
- D55BB1851CB97A10000B2875 /* Resources */,
- FA0237102550E79F00C79ED3 /* Embed Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = SlidableImage;
- productName = SlidableImage;
- productReference = D55BB1871CB97A10000B2875 /* SlidableImage.app */;
- productType = "com.apple.product-type.application";
- };
- D55BB19A1CB97A10000B2875 /* SlidableImageTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = D55BB1A71CB97A10000B2875 /* Build configuration list for PBXNativeTarget "SlidableImageTests" */;
- buildPhases = (
- 821791116B6AA4AB34C5396A /* [CP] Check Pods Manifest.lock */,
- D55BB1971CB97A10000B2875 /* Sources */,
- D55BB1981CB97A10000B2875 /* Frameworks */,
- D55BB1991CB97A10000B2875 /* Resources */,
- 51A16A06772F80A2AAC8E4A8 /* [CP] Embed Pods Frameworks */,
- FA19E8EF25522F550049A6C5 /* Swiftlint */,
- );
- buildRules = (
- );
- dependencies = (
- D55BB19D1CB97A10000B2875 /* PBXTargetDependency */,
- );
- name = SlidableImageTests;
- productName = SlidableImageTests;
- productReference = D55BB19B1CB97A10000B2875 /* SlidableImageTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- D55BB17F1CB97A10000B2875 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastSwiftUpdateCheck = 0730;
- LastUpgradeCheck = 1310;
- ORGANIZATIONNAME = Quver;
- TargetAttributes = {
- D55BB1861CB97A10000B2875 = {
- CreatedOnToolsVersion = 7.3;
- LastSwiftMigration = 0810;
- };
- D55BB19A1CB97A10000B2875 = {
- CreatedOnToolsVersion = 7.3;
- LastSwiftMigration = 1210;
- TestTargetID = D55BB1861CB97A10000B2875;
- };
- };
- };
- buildConfigurationList = D55BB1821CB97A10000B2875 /* Build configuration list for PBXProject "SlidableImage" */;
- compatibilityVersion = "Xcode 13.0";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = D55BB17E1CB97A10000B2875;
- productRefGroup = D55BB1881CB97A10000B2875 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- D55BB1861CB97A10000B2875 /* SlidableImage */,
- D55BB19A1CB97A10000B2875 /* SlidableImageTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- D55BB1851CB97A10000B2875 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D55BB1951CB97A10000B2875 /* LaunchScreen.storyboard in Resources */,
- D55BB1921CB97A10000B2875 /* Assets.xcassets in Resources */,
- D55BB1901CB97A10000B2875 /* Main.storyboard in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D55BB1991CB97A10000B2875 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 4ADCF7CAAEE976A13FFD9C0F /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-SlidableImage-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- 51A16A06772F80A2AAC8E4A8 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SlidableImageTests/Pods-SlidableImageTests-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 821791116B6AA4AB34C5396A /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-SlidableImageTests-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- FA19E8EF25522F550049A6C5 /* Swiftlint */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- );
- name = Swiftlint;
- outputFileListPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi\n";
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- D55BB1831CB97A10000B2875 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D55BB18D1CB97A10000B2875 /* ViewController.swift in Sources */,
- FA0236D12550E39700C79ED3 /* SlidableImage.swift in Sources */,
- FA0236D22550E39700C79ED3 /* SlidableImageFactory.swift in Sources */,
- FA0236D02550E39700C79ED3 /* ArrowsView.swift in Sources */,
- D55BB18B1CB97A10000B2875 /* AppDelegate.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D55BB1971CB97A10000B2875 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- FA19E8DB255217A80049A6C5 /* SlidableImageTests.swift in Sources */,
- FA19E8D62552149B0049A6C5 /* ArrowViewTests.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- D55BB19D1CB97A10000B2875 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = D55BB1861CB97A10000B2875 /* SlidableImage */;
- targetProxy = D55BB19C1CB97A10000B2875 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- D55BB18E1CB97A10000B2875 /* Main.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- D55BB18F1CB97A10000B2875 /* Base */,
- );
- name = Main.storyboard;
- sourceTree = "";
- };
- D55BB1931CB97A10000B2875 /* LaunchScreen.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- D55BB1941CB97A10000B2875 /* Base */,
- );
- name = LaunchScreen.storyboard;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- D55BB1A21CB97A10000B2875 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- };
- name = Debug;
- };
- D55BB1A31CB97A10000B2875 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- D55BB1A51CB97A10000B2875 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 760B9F11A0F10D4B62905645 /* Pods-SlidableImage.debug.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = SlidableImage/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- MARKETING_VERSION = 3.0.4;
- PRODUCT_BUNDLE_IDENTIFIER = net.quver.SlidableImage;
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- SWIFT_VERSION = 5.0;
- TARGETED_DEVICE_FAMILY = 1;
- };
- name = Debug;
- };
- D55BB1A61CB97A10000B2875 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = A93EC5AEC1F2699D6E2453CA /* Pods-SlidableImage.release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = SlidableImage/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- MARKETING_VERSION = 3.0.4;
- PRODUCT_BUNDLE_IDENTIFIER = net.quver.SlidableImage;
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- SWIFT_VERSION = 5.0;
- TARGETED_DEVICE_FAMILY = 1;
- };
- name = Release;
- };
- D55BB1A81CB97A10000B2875 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = B72B190FB92F165700183837 /* Pods-SlidableImageTests.debug.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CLANG_ENABLE_MODULES = YES;
- INFOPLIST_FILE = SlidableImageTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- "@loader_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = xyz.quver.SlidableImageTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 4.2;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlidableImage.app/SlidableImage";
- };
- name = Debug;
- };
- D55BB1A91CB97A10000B2875 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 08042B446B8A4C0C9AF8DE85 /* Pods-SlidableImageTests.release.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CLANG_ENABLE_MODULES = YES;
- INFOPLIST_FILE = SlidableImageTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- "@loader_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = xyz.quver.SlidableImageTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- SWIFT_VERSION = 4.2;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlidableImage.app/SlidableImage";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- D55BB1821CB97A10000B2875 /* Build configuration list for PBXProject "SlidableImage" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- D55BB1A21CB97A10000B2875 /* Debug */,
- D55BB1A31CB97A10000B2875 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- D55BB1A41CB97A10000B2875 /* Build configuration list for PBXNativeTarget "SlidableImage" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- D55BB1A51CB97A10000B2875 /* Debug */,
- D55BB1A61CB97A10000B2875 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- D55BB1A71CB97A10000B2875 /* Build configuration list for PBXNativeTarget "SlidableImageTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- D55BB1A81CB97A10000B2875 /* Debug */,
- D55BB1A91CB97A10000B2875 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = D55BB17F1CB97A10000B2875 /* Project object */;
-}
diff --git a/SlidableImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SlidableImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 73cfbeb..0000000
--- a/SlidableImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/SlidableImage.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SlidableImage.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/SlidableImage.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/SlidableImage.xcodeproj/xcshareddata/xcschemes/SlidableImage.xcscheme b/SlidableImage.xcodeproj/xcshareddata/xcschemes/SlidableImage.xcscheme
deleted file mode 100644
index cd767af..0000000
--- a/SlidableImage.xcodeproj/xcshareddata/xcschemes/SlidableImage.xcscheme
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SlidableImage.xcworkspace/contents.xcworkspacedata b/SlidableImage.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 7e0587e..0000000
--- a/SlidableImage.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/SlidableImage.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SlidableImage.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/SlidableImage.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/SlidableImage/AppDelegate.swift b/SlidableImage/AppDelegate.swift
deleted file mode 100644
index c65bf05..0000000
--- a/SlidableImage/AppDelegate.swift
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// AppDelegate.swift
-// SlidableImage
-//
-// Created by Pawel Bednorz on 09.04.2016.
-// Copyright © 2016 Quver. All rights reserved.
-//
-
-import UIKit
-
-@UIApplicationMain
-final class AppDelegate: UIResponder, UIApplicationDelegate {
-
- var window: UIWindow?
-
- func application(_ application: UIApplication,
- didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
- return true
- }
-
-}
diff --git a/SlidableImage/Assets.xcassets/AppIcon.appiconset/Contents.json b/SlidableImage/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 8121323..0000000
--- a/SlidableImage/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "20x20"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "20x20"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "29x29"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "29x29"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "40x40"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "40x40"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "60x60"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "60x60"
- },
- {
- "idiom" : "ios-marketing",
- "scale" : "1x",
- "size" : "1024x1024"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/SlidableImage/Assets.xcassets/Contents.json b/SlidableImage/Assets.xcassets/Contents.json
deleted file mode 100644
index da4a164..0000000
--- a/SlidableImage/Assets.xcassets/Contents.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/SlidableImage/Assets.xcassets/draw.imageset/Contents.json b/SlidableImage/Assets.xcassets/draw.imageset/Contents.json
deleted file mode 100644
index 6a8c3ba..0000000
--- a/SlidableImage/Assets.xcassets/draw.imageset/Contents.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "draw.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/SlidableImage/Assets.xcassets/draw.imageset/draw.png b/SlidableImage/Assets.xcassets/draw.imageset/draw.png
deleted file mode 100644
index 051f7ad..0000000
Binary files a/SlidableImage/Assets.xcassets/draw.imageset/draw.png and /dev/null differ
diff --git a/SlidableImage/Assets.xcassets/fake_arrow.imageset/Contents.json b/SlidableImage/Assets.xcassets/fake_arrow.imageset/Contents.json
deleted file mode 100644
index be33fc4..0000000
--- a/SlidableImage/Assets.xcassets/fake_arrow.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "fakeArrow.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "fakeArrow@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "fakeArrow@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow.png b/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow.png
deleted file mode 100644
index da1c7a1..0000000
Binary files a/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow.png and /dev/null differ
diff --git a/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow@2x.png b/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow@2x.png
deleted file mode 100644
index 572b829..0000000
Binary files a/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow@2x.png and /dev/null differ
diff --git a/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow@3x.png b/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow@3x.png
deleted file mode 100644
index 249fa42..0000000
Binary files a/SlidableImage/Assets.xcassets/fake_arrow.imageset/fakeArrow@3x.png and /dev/null differ
diff --git a/SlidableImage/Assets.xcassets/photo.imageset/Contents.json b/SlidableImage/Assets.xcassets/photo.imageset/Contents.json
deleted file mode 100644
index 1f3e2e7..0000000
--- a/SlidableImage/Assets.xcassets/photo.imageset/Contents.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "photo.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/SlidableImage/Assets.xcassets/photo.imageset/photo.png b/SlidableImage/Assets.xcassets/photo.imageset/photo.png
deleted file mode 100644
index 219e553..0000000
Binary files a/SlidableImage/Assets.xcassets/photo.imageset/photo.png and /dev/null differ
diff --git a/SlidableImage/Base.lproj/LaunchScreen.storyboard b/SlidableImage/Base.lproj/LaunchScreen.storyboard
deleted file mode 100644
index 2e721e1..0000000
--- a/SlidableImage/Base.lproj/LaunchScreen.storyboard
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SlidableImage/Base.lproj/Main.storyboard b/SlidableImage/Base.lproj/Main.storyboard
deleted file mode 100644
index a557321..0000000
--- a/SlidableImage/Base.lproj/Main.storyboard
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SlidableImage/Info.plist b/SlidableImage/Info.plist
deleted file mode 100644
index 20dca92..0000000
--- a/SlidableImage/Info.plist
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- $(MARKETING_VERSION)
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- LSRequiresIPhoneOS
-
- UILaunchStoryboardName
- LaunchScreen
- UIMainStoryboardFile
- Main
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/SlidableImage/ViewController.swift b/SlidableImage/ViewController.swift
deleted file mode 100644
index b3bdb77..0000000
--- a/SlidableImage/ViewController.swift
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// ViewController.swift
-// SlidableImage
-//
-// Created by Pawel Bednorz on 09.04.2016.
-// Copyright © 2016 Quver. All rights reserved.
-//
-
-import UIKit
-
-class ViewController: UIViewController {
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- let rect = CGRect(x: 0, y: 0, width: 300, height: 500)
- let firstImage = UIImage(named: "photo")!
- let secondImage = UIImage(named: "draw")!
-
- let slider = SlidableImage(frame: rect, images: (firstImage, secondImage))
-
- slider.center = view.center
- view.addSubview(slider)
- }
-
-}
diff --git a/SlidableImageTests/ArrowViewTests.swift b/SlidableImageTests/ArrowViewTests.swift
deleted file mode 100644
index fd485d4..0000000
--- a/SlidableImageTests/ArrowViewTests.swift
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// ArrowViewTests.swift
-// SlidableImageTests
-//
-// Created by Paweł Bednorz on 03/11/2020.
-// Copyright © 2020 Quver. All rights reserved.
-//
-
-import FBSnapshotTestCase
-@testable import SlidableImage
-
-final class ArrowViewTests: FBSnapshotTestCase {
- private var arrowsView: ArrowsView!
-
- override func setUp() {
- super.setUp()
- recordMode = false
-
- let rect = CGRect(x: 0, y: 0, width: 100, height: 100)
- arrowsView = ArrowsView(frame: rect)
- }
-
- func testView() {
- FBSnapshotVerifyView(arrowsView)
- }
-
- func testLayer() {
- FBSnapshotVerifyLayer(arrowsView.layer)
- }
-}
diff --git a/SlidableImageTests/Info.plist b/SlidableImageTests/Info.plist
deleted file mode 100644
index ba72822..0000000
--- a/SlidableImageTests/Info.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- BNDL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
-
-
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.ArrowViewTests/testLayer@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.ArrowViewTests/testLayer@3x.png
deleted file mode 100644
index 0ba0d1e..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.ArrowViewTests/testLayer@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.ArrowViewTests/testView@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.ArrowViewTests/testView@3x.png
deleted file mode 100644
index 0ba0d1e..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.ArrowViewTests/testView@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImages@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImages@3x.png
deleted file mode 100644
index c95c1f4..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImages@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndBottomSlideDirection@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndBottomSlideDirection@3x.png
deleted file mode 100644
index d9ca840..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndBottomSlideDirection@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndCustomArrow@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndCustomArrow@3x.png
deleted file mode 100644
index 16a13f4..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndCustomArrow@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndLeftSlideDirection@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndLeftSlideDirection@3x.png
deleted file mode 100644
index e80bac0..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndLeftSlideDirection@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndRightSlideDirection@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndRightSlideDirection@3x.png
deleted file mode 100644
index c95c1f4..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndRightSlideDirection@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndTopSlideDirection@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndTopSlideDirection@3x.png
deleted file mode 100644
index 08012f1..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithImagesAndTopSlideDirection@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithViews@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithViews@3x.png
deleted file mode 100644
index 1290418..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithViews@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithViewsAndCustomArrow@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithViewsAndCustomArrow@3x.png
deleted file mode 100644
index 1290418..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testInitializationWithViewsAndCustomArrow@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testSliderWithBorder@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testSliderWithBorder@3x.png
deleted file mode 100644
index 0e84a7d..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testSliderWithBorder@3x.png and /dev/null differ
diff --git a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testSliderWithoutBorder@3x.png b/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testSliderWithoutBorder@3x.png
deleted file mode 100644
index c95c1f4..0000000
Binary files a/SlidableImageTests/ReferenceImages_64/SlidableImageTests.SlidableImageTests/testSliderWithoutBorder@3x.png and /dev/null differ
diff --git a/SlidableImageTests/SlidableImageTests.swift b/SlidableImageTests/SlidableImageTests.swift
deleted file mode 100644
index 8e195f6..0000000
--- a/SlidableImageTests/SlidableImageTests.swift
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// SlidableImageTests.swift
-// SlidableImageTests
-//
-// Created by Paweł Bednorz on 03/11/2020.
-// Copyright © 2020 Quver. All rights reserved.
-//
-
-import FBSnapshotTestCase
-@testable import SlidableImage
-
-final class SlidableImageTests: FBSnapshotTestCase {
- let rect = CGRect(x: 0, y: 0, width: 300, height: 667)
- let firstImage = UIImage(named: "photo")!
- let secondImage = UIImage(named: "draw")!
-
- override func setUp() {
- super.setUp()
- recordMode = false
- }
-
- // MARK: - Initialization with images
-
- func testInitializationWithImages() {
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage))
-
- XCTAssertEqual(slider.frame, rect, "has wrong frame")
- XCTAssertEqual((slider.views.first as? UIImageView)?.image, firstImage, "has wrong first image")
- XCTAssertEqual((slider.views.second as? UIImageView)?.image, secondImage, "has wrong second image")
- FBSnapshotVerifyView(slider)
- }
-
- func testInitializationWithImagesAndCustomArrow() {
- let sliderImage = UIImage(named: "fake_arrow")!
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage),
- sliderImage: sliderImage)
-
- XCTAssertEqual(slider.frame, rect, "has wrong frame")
- XCTAssertEqual((slider.views.first as? UIImageView)?.image, firstImage, "has wrong first image")
- XCTAssertEqual((slider.views.second as? UIImageView)?.image, secondImage, "has wrong second image")
- FBSnapshotVerifyView(slider)
- }
-
- // MARK: - Initialization with views
-
- func testInitializationWithViews() {
- let firstView = UIView(frame: rect)
- firstView.backgroundColor = .red
- let secondView = UIView(frame: rect)
- secondView.backgroundColor = .green
- let slider = SlidableImage(frame: rect,
- views: (firstView, secondView))
-
- XCTAssertEqual(slider.frame, rect, "has wrong frame")
- XCTAssertEqual(slider.views.first, firstView, "has wrong first view")
- XCTAssertEqual(slider.views.second, secondView, "has wrong second view")
- FBSnapshotVerifyView(slider)
- }
-
- func testInitializationWithViewsAndCustomArrow() {
- let firstView = UIView(frame: rect)
- firstView.backgroundColor = .red
- let secondView = UIView(frame: rect)
- secondView.backgroundColor = .green
- let slider = SlidableImage(frame: rect,
- views: (firstView, secondView))
-
- XCTAssertEqual(slider.frame, rect, "has wrong frame")
- XCTAssertEqual(slider.views.first, firstView, "has wrong first view")
- XCTAssertEqual(slider.views.second, secondView, "has wrong second view")
- FBSnapshotVerifyView(slider)
- }
-
- // MARK: - Slide direction
-
- func testInitializationWithImagesAndRightSlideDirection() {
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage))
- slider.slideDirection = .right
-
- FBSnapshotVerifyView(slider)
- }
-
- func testInitializationWithImagesAndLeftSlideDirection() {
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage))
- slider.slideDirection = .left
-
- FBSnapshotVerifyView(slider)
- }
-
- func testInitializationWithImagesAndTopSlideDirection() {
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage))
- slider.slideDirection = .top
-
- FBSnapshotVerifyView(slider)
- }
-
- func testInitializationWithImagesAndBottomSlideDirection() {
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage))
- slider.slideDirection = .bottom
-
- FBSnapshotVerifyView(slider)
- }
-
- // MARK: - Border
-
- func testSliderWithBorder() {
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage))
- slider.addBorder(width: 20.0, color: .red)
-
- FBSnapshotVerifyView(slider)
- }
-
- func testSliderWithoutBorder() {
- let slider = SlidableImage(frame: rect,
- images: (firstImage, secondImage))
- slider.addBorder(width: 20.0, color: .red)
- slider.removeBorder()
-
- FBSnapshotVerifyView(slider)
- }
-}
diff --git a/Sources/SlidableImage/Arrows.swift b/Sources/SlidableImage/Arrows.swift
new file mode 100644
index 0000000..2df71b3
--- /dev/null
+++ b/Sources/SlidableImage/Arrows.swift
@@ -0,0 +1,40 @@
+//
+// Arrows.swift
+// SlidableImage
+//
+
+import SwiftUI
+
+public struct Arrows: View {
+ private let arrowColor: Color
+ private let backgroundColor: Color
+
+ public init(arrowColor: Color = .white, backgroundColor: Color = .gray) {
+ self.arrowColor = arrowColor
+ self.backgroundColor = backgroundColor
+ }
+
+ public var body: some View {
+ HStack(spacing: 5) {
+ Triangle()
+ .fill(arrowColor)
+ .frame(width: 20, height: Constants.arrowSize / 2)
+ .rotationEffect(.degrees(180))
+ Triangle()
+ .fill(arrowColor)
+ .frame(width: 20, height: Constants.arrowSize / 2)
+ }
+ .frame(width: Constants.arrowSize, height: Constants.arrowSize)
+ .background(backgroundColor)
+ .cornerRadius(Constants.arrowSize / 2)
+ }
+}
+
+struct ArrowsPreview: PreviewProvider {
+ static var previews: some View {
+ VStack {
+ Arrows()
+ Arrows(arrowColor: .green, backgroundColor: .orange)
+ }
+ }
+}
diff --git a/Sources/SlidableImage/ArrowsView.swift b/Sources/SlidableImage/ArrowsView.swift
deleted file mode 100644
index 298ee84..0000000
--- a/Sources/SlidableImage/ArrowsView.swift
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// ArrowsView.swift
-// SlidableImage
-//
-// Created by Pawel Bednorz on 18.12.2016.
-// Copyright © 2016 Quver. All rights reserved.
-//
-
-import UIKit
-
-final class ArrowsView: UIView {
- private typealias FactorTuple = (single: CGFloat, double: CGFloat)
- private typealias Side = SlidableImage.Direction
- private typealias SidesTuple = (vertical: Side, horizontal: Side)
-
- private let factorValue: CGFloat = 0.05
-
- override init(frame: CGRect) {
- super.init(frame: frame)
- backgroundColor = .clear
- }
-
- required init?(coder aDecoder: NSCoder) {
- super.init(coder: aDecoder)
- backgroundColor = .clear
- }
-
- override func draw(_ rect: CGRect) {
- drawCircle(rect)
- drawArrow(rect, side: .right)
- drawArrow(rect, side: .left)
- }
-
- private func drawCircle(_ rect: CGRect) {
- let circle = UIBezierPath(ovalIn: rect)
- let circleLayer = CAShapeLayer()
- circleLayer.path = circle.cgPath
- circleLayer.fillColor = UIColor.lightGray.cgColor
- circleLayer.shadowColor = UIColor.darkGray.cgColor
- circleLayer.shadowOpacity = 1
- circleLayer.shadowOffset = CGSize.zero
- circleLayer.shadowRadius = 10
- layer.addSublayer(circleLayer)
- }
-
- private func drawArrow(_ rect: CGRect, side: SlidableImage.Direction) {
- let arrow = makeArrow(rect, side: side)
-
- let arrowLayer = CAShapeLayer()
- arrowLayer.path = arrow.cgPath
- arrowLayer.fillColor = UIColor.white.cgColor
- layer.addSublayer(arrowLayer)
- }
-
- private func makeFactor(_ rect: CGRect) -> FactorTuple {
- let factor = rect.width * factorValue
-
- return (factor, 2 * factor)
- }
-
- private func makeStartPoint(_ rect: CGRect, side: SlidableImage.Direction, factor: FactorTuple) -> CGPoint {
- let startPointX: CGFloat = {
- switch side {
- case .left:
- return rect.minX + factor.double
- case .right:
- return rect.maxX - factor.double
- default:
- return 0
- }
- }()
-
- return CGPoint(x: startPointX, y: rect.midY)
- }
-
- private func makePoint(_ rect: CGRect, side: SidesTuple, factor: FactorTuple) -> CGPoint {
- return CGPoint(x: makeX(rect, side: side.horizontal, factor: factor),
- y: makeY(rect, side: side.vertical, factor: factor))
- }
-
- private func makeX(_ rect: CGRect, side: SlidableImage.Direction, factor: FactorTuple) -> CGFloat {
- switch side {
- case .left:
- return rect.midX - factor.single
- case .right:
- return rect.midX + factor.single
- default:
- return 0
- }
- }
-
- private func makeY(_ rect: CGRect, side: SlidableImage.Direction, factor: FactorTuple) -> CGFloat {
- switch side {
- case .top:
- return rect.minY + factor.double
- case .bottom:
- return rect.maxY - factor.double
- default:
- return 0
- }
- }
-
- private func makeArrow(_ rect: CGRect, side: SlidableImage.Direction) -> UIBezierPath {
- let factor = makeFactor(rect)
- let startPoint = makeStartPoint(rect, side: side, factor: factor)
-
- let arrow = UIBezierPath()
- arrow.move(to: startPoint)
- arrow.addLine(to: makePoint(rect, side: (.bottom, side), factor: factor))
- arrow.addLine(to: makePoint(rect, side: (.top, side), factor: factor))
- arrow.addLine(to: startPoint)
-
- return arrow
- }
-
-}
diff --git a/Sources/SlidableImage/Constants.swift b/Sources/SlidableImage/Constants.swift
new file mode 100644
index 0000000..8c8c3d1
--- /dev/null
+++ b/Sources/SlidableImage/Constants.swift
@@ -0,0 +1,12 @@
+//
+// Constants.swift
+// SlidableImage
+//
+// Created by Pawel Bednorz on 02/02/2025.
+//
+
+import SwiftUI
+
+enum Constants {
+ static let arrowSize: CGFloat = 64
+}
diff --git a/Sources/SlidableImage/SlidableImage.swift b/Sources/SlidableImage/SlidableImage.swift
index f17d3cc..f06637d 100644
--- a/Sources/SlidableImage/SlidableImage.swift
+++ b/Sources/SlidableImage/SlidableImage.swift
@@ -1,186 +1,64 @@
//
-// SlidableView.swift
+// SlidableImage.swift
// SlidableImage
//
-// Created by Pawel Bednorz on 09.04.2016.
-// Copyright © 2016 Quver. All rights reserved.
-//
-import UIKit
+import SwiftUI
-/// Super easy Slider for before&after images
-open class SlidableImage: UIView {
- public typealias Images = (first: UIImage, second: UIImage)
- public typealias Views = (first: UIView, second: UIView)
-
- /// Direction of sliding
- public enum Direction {
- case left
- case right
- case top
- case bottom
- }
-
- /// Views tuple
- open var views: Views
-
- /// Circle view with icon for sliding images.
- open var sliderCircle: UIView
-
- /// Direction of sliding
- open var slideDirection: Direction = .right {
- didSet {
- prepareForInitialize()
- initializeViews()
- }
- }
-
- /// Describes border with the specfied size and color
- private var sliderBorderView: UIView?
-
- /// Generic initializer with views
- ///
- /// - Parameters:
- /// - frame: Frame size
- /// - views: Views tuple - first view should have size equal to frame and second view
- /// - slideDirection: Optional - direction that the slider should slide. Default value .right.
- /// - sliderBorder: Optional - describes border with the specfied size and color
- public init(frame: CGRect,
- views: Views,
- sliderImage: UIImage? = nil) {
- self.views = views
- self.sliderCircle = SlidableImage.Factory.makeSliderCircle(sliderImage: sliderImage)
- super.init(frame: frame)
- initializeViews()
- initializeGestureRecognizer()
- }
-
- /// Short way to initialize SlidableView. You need target size and images.
- ///
- /// - Parameters:
- /// - frame: Frame size
- /// - images: Images tuple
- /// - slideDirection: Optional - direction that the slider should slide. Default value .right.
- /// - sliderBorder: Optional - describes border with the specfied size and color
- convenience public init(frame: CGRect,
- images: Images,
- sliderImage: UIImage? = nil) {
- let firstView = SlidableImage.Factory.makeContainer(image: images.first, frame: frame)
- let secondView = SlidableImage.Factory.makeContainer(image: images.second, frame: frame)
-
- self.init(frame: frame,
- views: (firstView, secondView),
- sliderImage: sliderImage)
- }
-
- @available(*, unavailable)
- required public init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- /// Typicaly this method is used by gesture recognizer, but you can use it for first state or animations
- ///
- /// - Parameter maskLocation: Position of slider
- open func updateMask(location maskLocation: CGFloat) {
- let mask = Factory.makeMaskRect(for: maskLocation,
- bounds: bounds,
- slideDirection: slideDirection)
- let path = UIBezierPath(rect: mask)
- let layer = CAShapeLayer()
- layer.path = path.cgPath
- views.second.layer.mask = layer
-
- switch slideDirection {
- case .left, .right:
- sliderCircle.center.x = maskLocation
- case .top, .bottom:
- sliderCircle.center.y = maskLocation
- }
+public struct SlidableImage: View {
+ @State private var location: CGPoint?
+ private let arrows: () -> ArrowsIcon
+ private let leftView: () -> LeftView
+ private let rightView: () -> RightView
+
+ public init(@ViewBuilder arrows: @escaping () -> ArrowsIcon,
+ @ViewBuilder leftView: @escaping () -> LeftView,
+ @ViewBuilder rightView: @escaping () -> RightView) {
+ self.arrows = arrows
+ self.leftView = leftView
+ self.rightView = rightView
}
- /// Add border for slider
- ///
- /// - Parameters:
- /// - width: border width
- /// - color: border color
- open func addBorder(width: CGFloat, color: UIColor) {
- let borderView = UIView()
- borderView.translatesAutoresizingMaskIntoConstraints = false
- borderView.backgroundColor = color
- addSubview(borderView)
- setupBorderConstraints(of: borderView, width: width)
- bringSubviewToFront(sliderCircle)
-
- sliderBorderView = borderView
- }
-
- /// Remove border from slider
- open func removeBorder() {
- sliderBorderView?.removeFromSuperview()
- }
-
- private func initializeViews() {
- clipsToBounds = true
- sliderCircle.center = center
- switch slideDirection {
- case .left, .right:
- updateMask(location: center.x)
- case .top, .bottom:
- updateMask(location: center.y)
+ public var body: some View {
+ GeometryReader { geometry in
+ ZStack(alignment: .leading) {
+ rightView()
+ leftView()
+ .mask {
+ HStack {
+ Color.black
+ Spacer(minLength: maskSize(width: geometry.size.width))
+ }
+ }
+
+ arrows()
+ .frame(width: Constants.arrowSize, height: Constants.arrowSize)
+ .padding(.leading, location?.x ?? geometry.size.width / 2 - Constants.arrowSize / 2)
+ .gesture(
+ DragGesture()
+ .onChanged { value in
+ guard value.location.x <= geometry.size.width - Constants.arrowSize else { return }
+
+ location = CGPoint(x: value.location.x, y: geometry.size.height / 2)
+ }
+ )
+ }
}
-
- addSubview(views.first)
- addSubview(views.second)
- addSubview(sliderCircle)
}
- private func initializeGestureRecognizer() {
- let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(gestureHandler))
- sliderCircle.addGestureRecognizer(panGestureRecognizer)
- }
-
- @objc private func gestureHandler(_ panGestureRecognizer: UIPanGestureRecognizer) {
- let location = panGestureRecognizer.location(in: views.first)
-
- switch slideDirection {
- case .left, .right:
- guard bounds.minX...bounds.maxX ~= location.x else { return }
-
- updateMask(location: location.x)
- case .top, .bottom:
- guard bounds.minY...bounds.maxY ~= location.y else { return }
-
- updateMask(location: location.y)
+ private func maskSize(width: CGFloat) -> CGFloat {
+ guard let location = location?.x else {
+ return width / 2
}
- }
-
- private func setupBorderConstraints(of view: UIView, width: CGFloat) {
- let constraintsDefinitions: [(UIView, NSLayoutConstraint.Attribute)] = [
- (sliderCircle, .centerX),
- (sliderCircle, .centerY),
- (self, .height)
- ]
- var constraints = constraintsDefinitions
- .map {
- NSLayoutConstraint(item: view, attribute: $1, relatedBy: .equal, toItem: $0, attribute: $1,
- multiplier: 1.0, constant: 0.0)
- }
- constraints.append(NSLayoutConstraint(item: view,
- attribute: .width,
- relatedBy: .equal,
- toItem: nil,
- attribute: .notAnAttribute,
- multiplier: 1.0,
- constant: width))
-
- addConstraints(constraints)
+ return width - location - Constants.arrowSize / 2
}
-
- private func prepareForInitialize() {
- [views.first, views.second].forEach {
- $0.removeFromSuperview()
- }
+}
+
+struct SlidableImagePreview: PreviewProvider {
+ static var previews: some View {
+ SlidableImage(arrows: { Arrows() },
+ leftView: { Color.red },
+ rightView: { Color.green })
}
-
}
diff --git a/Sources/SlidableImage/SlidableImageFactory.swift b/Sources/SlidableImage/SlidableImageFactory.swift
deleted file mode 100644
index 274ce61..0000000
--- a/Sources/SlidableImage/SlidableImageFactory.swift
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// SlidableImageFactory.swift
-// SlidableImage
-//
-// Created by Pawel Bednorz on 04.03.2017.
-// Copyright © 2017 Quver. All rights reserved.
-//
-
-import UIKit
-
-extension SlidableImage {
- struct Factory {
- static func makeSliderCircle(sliderImage: UIImage? = nil) -> UIView {
- let frame = CGRect(x: 0, y: 0, width: 50, height: 50)
- let circle = UIView(frame: frame)
-
- guard let sliderImage = sliderImage else {
- return ArrowsView(frame: frame)
- }
-
- circle.layer.cornerRadius = circle.bounds.width / 2
-
- let imageView = UIImageView(image: sliderImage)
- imageView.contentMode = .scaleAspectFill
- circle.addSubview(imageView)
- imageView.center = circle.center
-
- return circle
- }
-
- static func makeContainer(image: UIImage, frame: CGRect) -> UIImageView {
- let imageView = UIImageView(frame: frame)
- imageView.image = image
- imageView.contentMode = .scaleAspectFill
-
- return imageView
- }
-
- static func makeMaskRect(for maskLocation: CGFloat, bounds: CGRect, slideDirection: Direction) -> CGRect {
- switch slideDirection {
- case .left:
- return CGRect(x: maskLocation,
- y: bounds.minY,
- width: bounds.width,
- height: bounds.height)
- case .right:
- return CGRect(x: bounds.minX,
- y: bounds.minY,
- width: maskLocation,
- height: bounds.height)
- case .top:
- return CGRect(x: bounds.minX,
- y: maskLocation,
- width: bounds.width,
- height: bounds.height)
- case .bottom:
- return CGRect(x: bounds.minX,
- y: bounds.minY,
- width: bounds.width,
- height: maskLocation)
- }
- }
- }
-}
diff --git a/Sources/SlidableImage/Triangle.swift b/Sources/SlidableImage/Triangle.swift
new file mode 100644
index 0000000..74714ba
--- /dev/null
+++ b/Sources/SlidableImage/Triangle.swift
@@ -0,0 +1,24 @@
+//
+// Triangle.swift
+// SlidableImage
+//
+
+import SwiftUI
+
+struct Triangle: Shape {
+ func path(in rect: CGRect) -> Path {
+ Path { path in
+ path.move(to: CGPoint(x: rect.minX, y: rect.minY))
+ path.addLine(to: CGPoint(x: rect.minX, y: rect.maxY))
+ path.addLine(to: CGPoint(x: rect.maxX, y: rect.midY))
+ path.closeSubpath()
+ }
+ }
+}
+
+struct Triangle_Previews: PreviewProvider {
+ static var previews: some View {
+ Triangle()
+ .frame(width: 100, height: 100)
+ }
+}