├── .gitignore
├── .ruby-version
├── .swiftformat
├── .travis.yml
├── CONTRIBUTING.md
├── Example
├── .swiftlint.yml
├── IDETemplateMacros.plist
├── PBSPinnerTest.swift
├── PhobosSwiftExample.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── PhobosSwiftExample.xcscheme
├── PhobosSwiftExample.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDETemplateMacros.plist
│ │ └── IDEWorkspaceChecks.plist
├── PhobosSwiftExample
│ ├── AppDelegate.swift
│ ├── Article
│ │ └── Views
│ │ │ └── ViewControllers
│ │ │ └── GhostMasterViewController.swift
│ ├── Assets.xcassets
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── CapturePhoto.imageset
│ │ │ ├── CapturePhoto@2x.png
│ │ │ ├── CapturePhoto@3x.png
│ │ │ └── Contents.json
│ │ ├── Contents.json
│ │ ├── FlipCamera.imageset
│ │ │ ├── Contents.json
│ │ │ ├── FlipCamera@2x.png
│ │ │ └── FlipCamera@3x.png
│ │ └── launch.imageset
│ │ │ ├── Contents.json
│ │ │ ├── launch@2x.png
│ │ │ └── launch@3x.png
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Camera
│ │ └── Views
│ │ │ └── ViewControllers
│ │ │ ├── CameraGuidePreviewImageViewController.swift
│ │ │ └── CameraGuideViewController.swift
│ ├── Hades
│ │ ├── Models
│ │ │ └── BannerListModel.swift
│ │ ├── ViewModel
│ │ │ └── BannerViewModel.swift
│ │ └── Views
│ │ │ └── ViewControllers
│ │ │ ├── AdaptiveBannerViewController.swift
│ │ │ ├── BannerListViewController.swift
│ │ │ ├── BannerViewController.swift
│ │ │ ├── HadesMainViewController.swift
│ │ │ ├── IntersitialAdListViewController.swift
│ │ │ ├── InterstitialAdDemoViewController.swift
│ │ │ ├── NativeAdDemoViewController.swift
│ │ │ ├── NativeAdListViewController.swift
│ │ │ ├── NativeAdMediumTemplateViewController.swift
│ │ │ ├── NativeAdSmallTemplateViewController.swift
│ │ │ ├── NativeAdvancedVideoViewController.swift
│ │ │ ├── RewardedAdDemoViewController.swift
│ │ │ └── RewardedListViewController.swift
│ ├── Info.plist
│ ├── Kits
│ │ └── PhobosSwiftExample.swift
│ ├── MainViewController.swift
│ ├── Phobos-Service-Info.plist
│ ├── PhobosSwiftExample.entitlements
│ ├── SceneDelegate.swift
│ ├── Slideout
│ │ └── Views
│ │ │ └── ViewControllers
│ │ │ └── SlideoutDemoCenterViewController.swift
│ ├── Splash
│ │ └── View
│ │ │ └── Controllers
│ │ │ └── SplashDemoViewController.swift
│ └── ViewController.swift
├── Podfile
├── Podfile.local
├── Podfile.lock
└── fastlane
│ ├── .env.ci
│ ├── .env.template
│ ├── Appfile
│ └── Fastfile
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── PBSWechatRxTest.swift
├── PhobosSwift.podspec
├── PhobosSwift
├── Animation
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── Kits
│ │ │ └── UIImage+Ex.swift
│ │ ├── PBSDraggableInteractiveTransition.swift
│ │ └── PhobosSwiftAnimation.swift
│ ├── README.md
│ └── Tests
│ │ └── Test.swift
├── Auth
│ ├── Assets
│ │ └── .gitkeep
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── ASAuthorizationController+Rx.swift
│ │ ├── PhobosSwiftAuth.swift
│ │ ├── Privatized+third+party+code
│ │ │ └── BiometricAuthentication
│ │ │ │ ├── BioMetricAuthenticator.swift
│ │ │ │ ├── BiometricAuthenticationConstants.swift
│ │ │ │ └── BiometricAuthenticationError.swift
│ │ └── RxASAuthorizationControllerDelegateProxy.swift
│ ├── README.md
│ └── Tests
│ │ ├── ASAuthorizationControllerTest.swift
│ │ ├── BioMetricAuthenticatorTest.swift
│ │ ├── RxASAuthorizationControllerDelegateProxyTest.swift
│ │ └── Test.swift
├── Core
│ ├── Assets
│ │ ├── .gitkeep
│ │ └── Phobos-Service-Info.plist
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── Array.swift
│ │ ├── Bundle.swift
│ │ ├── CATransition.swift
│ │ ├── CGPoint.swift
│ │ ├── CTTelephonyNetworkInfo.swift
│ │ ├── Calendar.swift
│ │ ├── Codable.swift
│ │ ├── Date.swift
│ │ ├── Diffable.swift
│ │ ├── DispatchQueue.swift
│ │ ├── FileManager.swift
│ │ ├── Int.swift
│ │ ├── PBSAppDelegateSwizzler.swift
│ │ ├── PBSCore.swift
│ │ ├── PBSCoreAppDelegateSwizzler.swift
│ │ ├── PBSImageFilter.swift
│ │ ├── PBSInjection.swift
│ │ ├── PBSModule.swift
│ │ ├── PBSPromise.swift
│ │ ├── PBSResolver.swift
│ │ ├── PBSStretchableTableHeaderViewProtocol.swift
│ │ ├── PBSUIInterface.swift
│ │ ├── PBSVersion.swift
│ │ ├── PhobosServiceInfo.swift
│ │ ├── PhobosSwift.swift
│ │ ├── PhobosSwiftCore.swift
│ │ ├── Privatized+third+party+code
│ │ │ └── SwiftRSA
│ │ │ │ ├── Asn1Parser.swift
│ │ │ │ ├── ClearMessage.swift
│ │ │ │ ├── EncryptedMessage.swift
│ │ │ │ ├── Key.swift
│ │ │ │ ├── Message.swift
│ │ │ │ ├── NSData+SHA.h
│ │ │ │ ├── NSData+SHA.m
│ │ │ │ ├── PrivateKey.swift
│ │ │ │ ├── PublicKey.swift
│ │ │ │ ├── Signature.swift
│ │ │ │ ├── SwiftyRSA+ObjC.swift
│ │ │ │ ├── SwiftyRSA.swift
│ │ │ │ └── SwiftyRSAError.swift
│ │ ├── RxPropertyWrapper.swift
│ │ ├── String+Regex.swift
│ │ ├── String+UI.swift
│ │ ├── String.swift
│ │ ├── UIApplication.swift
│ │ ├── UIColor.swift
│ │ ├── UIImage.swift
│ │ ├── UINavigationBar.swift
│ │ ├── UITableView.swift
│ │ ├── UIView.swift
│ │ ├── UIViewController.swift
│ │ ├── UIWindow.swift
│ │ └── URL.swift
│ ├── README.md
│ ├── SwiftUI
│ │ └── Classes
│ │ │ ├── .gitkeep
│ │ │ └── ModalView.swift
│ └── Tests
│ │ ├── ArrayTest.swift
│ │ ├── BundleTest.swift
│ │ ├── CGPointTest.swift
│ │ ├── CalendarTest.swift
│ │ ├── CodableTest.swift
│ │ ├── DateTest.swift
│ │ ├── DispatchQueueTest.swift
│ │ ├── FileManagerTest.swift
│ │ ├── IntTest.swift
│ │ ├── PBSCoreTest.swift
│ │ ├── PBSImageFilterTest.swift
│ │ ├── PBSInjectionTest.swift
│ │ ├── RxPropertyWrapperTest.swift
│ │ ├── StringRegexTest.swift
│ │ ├── StringTest.swift
│ │ ├── StringUITest.swift
│ │ └── URLTest.swift
├── CoreSwiftUI
│ ├── Assets
│ │ ├── .gitkeep
│ │ └── Phobos-Service-Info.plist
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── .gitkeep
│ │ └── ModalView.swift
│ ├── README.md
│ └── Tests
│ │ └── .gitkeep
├── Growth
│ ├── Assets
│ │ ├── .gitkeep
│ │ ├── Growth.xcassets
│ │ │ ├── Contents.json
│ │ │ └── quote.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── quote@2x.png
│ │ │ │ └── quote@3x.png
│ │ └── Localization
│ │ │ ├── en.lproj
│ │ │ └── Localizable.strings
│ │ │ └── zh-Hans.lproj
│ │ │ └── Localizable.strings
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── Growth
│ │ │ ├── Model
│ │ │ │ └── PBSGrowthHomeModel.swift
│ │ │ ├── Util
│ │ │ │ └── PBSGrowthContainerProtocol.swift
│ │ │ ├── ViewModel
│ │ │ │ ├── PBSGrowthFeedbackViewModel.swift
│ │ │ │ └── PBSGrowthHomeViewModel.swift
│ │ │ └── Views
│ │ │ │ ├── Controller
│ │ │ │ ├── PBSGrowthChatViewController.swift
│ │ │ │ ├── PBSGrowthFeedbackViewController.swift
│ │ │ │ └── PBSGrowthHomeViewController.swift
│ │ │ │ └── View
│ │ │ │ ├── PBSGrowthFeedbackHeaderView.swift
│ │ │ │ ├── PBSGrowthFeedbackMediaView.swift
│ │ │ │ ├── PBSGrowthFeedbackTextView.swift
│ │ │ │ ├── PBSGrowthHomeContactCell.swift
│ │ │ │ ├── PBSGrowthHomeContainerView.swift
│ │ │ │ ├── PBSGrowthHomeHeaderCell.swift
│ │ │ │ ├── PBSGrowthHomeSectionView.swift
│ │ │ │ ├── PBSGrowthHomeSupportCell.swift
│ │ │ │ └── PBSGrowthHomeTopicsCell.swift
│ │ ├── Localization.swift
│ │ ├── PBSGrowth.swift
│ │ ├── PhobosSwiftGrowth.swift
│ │ └── Router.swift
│ ├── README.md
│ └── Tests
│ │ ├── .gitkeep
│ │ └── Test.swift
├── Hades
│ ├── Assets
│ │ └── .gitkeep
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── Banner
│ │ │ ├── PBSBannerAd+Rx.swift
│ │ │ ├── PBSBannerAd.swift
│ │ │ ├── PBSBannerAdDelegate.swift
│ │ │ └── RxPBSBannerAdDelegateProxy.swift
│ │ ├── FullScreenAd
│ │ │ ├── PBSFullScreenContentDelegate.swift
│ │ │ ├── PBSFullScreenPresentingAd+Rx.swift
│ │ │ ├── PBSFullScreenPresentingAd.swift
│ │ │ └── RxPBSFullScreenContentDelegateProxy.swift
│ │ ├── Interstitial
│ │ │ └── PBSInterstitialAd.swift
│ │ ├── NativeAd
│ │ │ ├── PBSNativeAd+Rx.swift
│ │ │ ├── PBSNativeAd.swift
│ │ │ ├── PBSNativeAdDelegate.swift
│ │ │ ├── PBSNativeAdView.swift
│ │ │ ├── RxPBSNativeAdDelegateProxy.swift
│ │ │ └── RxPBSNativeAdLoaderDelegateProxy.swift
│ │ ├── OpenAds
│ │ │ └── PBSAppOpenAd.swift
│ │ ├── PBSHades.swift
│ │ ├── PhobosSwiftHades.swift
│ │ └── Rewarded
│ │ │ └── PBSRewardedAd.swift
│ ├── README.md
│ └── Tests
│ │ └── Test.swift
├── Location
│ ├── Assets
│ │ ├── .gitkeep
│ │ ├── en.lproj
│ │ │ └── Localizable.strings
│ │ └── zh-Hans.lproj
│ │ │ └── Localizable.strings
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── AnnotationsContainerProtocol.swift
│ │ ├── CLGeocoder+Ex.swift
│ │ ├── CLLocationCoordinate2D+Ex.swift
│ │ ├── CLLocationManager+Ex.swift
│ │ ├── CLLocationManager+Rx.swift
│ │ ├── MKLocalSearch+Ex.swift
│ │ ├── MKMapItem+Ex.swift
│ │ ├── MKMapRect+Ex.swift
│ │ ├── Model
│ │ │ ├── PBSQuadTree.swift
│ │ │ └── PBSQuadTreeNode.swift
│ │ ├── PBSClusterManager.swift
│ │ ├── PBSClusterManagerDelegate.swift
│ │ ├── PBSLocation.swift
│ │ ├── PhobosSwiftLocation.swift
│ │ ├── RxCLLocationManagerDelegateProxy.swift
│ │ └── View
│ │ │ └── Annotation.swift
│ ├── README.md
│ └── Tests
│ │ ├── CLLocationCoordinate2DTest.swift
│ │ ├── CLLocationManagerRXTest.swift
│ │ ├── CLLocationManagerTest.swift
│ │ ├── MKLocalSearchTest.swift
│ │ ├── MKMapItemTest.swift
│ │ ├── MKMapRectTest.swift
│ │ ├── PBSClusterManagerTest.swift
│ │ ├── PBSLocationTest.swift
│ │ └── PhobosSwiftLocationTest.swift
├── Log
│ ├── Assets
│ │ └── .gitkeep
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── Configuration.swift
│ │ ├── PBSLogger.swift
│ │ ├── PBSLoggerRecord.swift
│ │ ├── PhobosSwiftLog.swift
│ │ └── Privatized+third+party+code
│ │ │ └── XCGLogger
│ │ │ ├── Destinations
│ │ │ ├── AppleSystemLogDestination.swift
│ │ │ ├── AutoRotatingFileDestination.swift
│ │ │ ├── BaseDestination.swift
│ │ │ ├── BaseQueuedDestination.swift
│ │ │ ├── CloudKitDestination.swift
│ │ │ ├── ConsoleDestination.swift
│ │ │ ├── DestinationProtocol.swift
│ │ │ ├── FileDestination.swift
│ │ │ └── TestDestination.swift
│ │ │ ├── Extensions
│ │ │ ├── DispatchQueue+XCGAdditions.swift
│ │ │ └── URL+XCGAdditions.swift
│ │ │ ├── Filters
│ │ │ ├── DevFilter.swift
│ │ │ ├── FileNameFilter.swift
│ │ │ ├── FilterProtocol.swift
│ │ │ ├── TagFilter.swift
│ │ │ └── UserInfoFilter.swift
│ │ │ ├── LogFormatters
│ │ │ ├── ANSIColorLogFormatter.swift
│ │ │ ├── Base64LogFormatter.swift
│ │ │ ├── LogFormatterProtocol.swift
│ │ │ ├── Optional
│ │ │ │ └── gitkeeper.txt
│ │ │ ├── PrePostFixLogFormatter.swift
│ │ │ └── XcodeColorsLogFormatter.swift
│ │ │ ├── Misc
│ │ │ ├── HelperFunctions.swift
│ │ │ ├── LogDetails.swift
│ │ │ └── Optional
│ │ │ │ └── UserInfoHelpers.swift
│ │ │ ├── ObjectiveC
│ │ │ └── gitkeeper.txt
│ │ │ ├── XCGLogger.swift
│ │ │ ├── iOS
│ │ │ └── Info-iOS.plist
│ │ │ ├── macOS
│ │ │ └── Info-macOS.plist
│ │ │ └── tvOS
│ │ │ └── Info-tvOS.plist
│ ├── README.md
│ └── Tests
│ │ └── PBSLog+Test.swift
├── Media
│ ├── Assets
│ │ ├── Media.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── btn_common_back_wh.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── btn_common_back_wh@2x.png
│ │ │ │ └── btn_common_back_wh@3x.png
│ │ │ ├── btn_common_close_wh.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── btn_common_close_wh@2x.png
│ │ │ │ └── btn_common_close_wh@3x.png
│ │ │ ├── btn_common_delete_wh.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── btn_common_delete_wh@2x.png
│ │ │ │ └── btn_common_delete_wh@3x.png
│ │ │ ├── btn_common_forward_wh.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── btn_common_forward_wh@2x.png
│ │ │ │ └── btn_common_forward_wh@3x.png
│ │ │ ├── colors
│ │ │ │ ├── Contents.json
│ │ │ │ ├── black_white.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── color_divider.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── color_search_bg.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── divider.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── error_red.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey1_black.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey1_grey6.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey1_grey7.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey216_grey6.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey242_black.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey2_grey6.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey4.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey5_b0.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey5_grey3.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── grey9_grey10.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── line.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── livechat_mes_bg.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── porsche_red.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── premium_gold.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── shadow.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── soulful_blue.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── success_green.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── vehicle_tint.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── warning_yellow.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── white_grey7.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── white_grey8.colorset
│ │ │ │ │ └── Contents.json
│ │ │ └── image-edit
│ │ │ │ ├── Contents.json
│ │ │ │ ├── delete_close.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── delete_close@2x.png
│ │ │ │ ├── delete_open.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── delete_open@2x.png
│ │ │ │ ├── editor_back.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_back@2x.png
│ │ │ │ ├── editor_cancel.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_cancel@2x.png
│ │ │ │ ├── editor_cj.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_cj@2x.png
│ │ │ │ ├── editor_dl.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_dl@2x.png
│ │ │ │ ├── editor_dl_s.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_dl_s@2x.png
│ │ │ │ ├── editor_fk.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_fk@2x.png
│ │ │ │ ├── editor_fk_s.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_fk_s@2x.png
│ │ │ │ ├── editor_masaike.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_masaike@2x.png
│ │ │ │ ├── editor_masaike_s.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_masaike_s@2x.png
│ │ │ │ ├── editor_mosaic_brush.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── EditMosaicBrush@2x.png
│ │ │ │ └── EditMosaicBrush@3x.png
│ │ │ │ ├── editor_rotate.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_rotate@2x.png
│ │ │ │ ├── editor_sure.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_sure@2x.png
│ │ │ │ ├── editor_wenzi.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_wenzi@2x.png
│ │ │ │ ├── editor_wenzi_s.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── editor_wenzi_s@2x.png
│ │ │ │ ├── mosaic_type_1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── mosaic_type_1@2x.png
│ │ │ │ └── mosaic_type_1_s.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── mosaic_type_1_s@2x.png
│ │ ├── en.lproj
│ │ │ └── Localizable.strings
│ │ └── zh-Hans.lproj
│ │ │ └── Localizable.strings
│ ├── Classes
│ │ ├── Camera
│ │ │ ├── PBSCameraPreviewView.swift
│ │ │ ├── PBSCameraSessionManager+AVCapturePhotoCaptureDelegate.swift
│ │ │ ├── PBSCameraSessionManager+Rx.swift
│ │ │ ├── PBSCameraSessionManager.swift
│ │ │ ├── PBSCameraSessionManagerDelegate.swift
│ │ │ ├── PBSCameraSessionManagerDelegateProxy+Rx.swift
│ │ │ └── PBSParams.swift
│ │ ├── ImageBrower
│ │ │ ├── ImageBrowerEditorAddTextVC.swift
│ │ │ ├── ImageBrowerEditorViewController.swift
│ │ │ ├── ImageBrowerLiveChatImagePreviewVC.swift
│ │ │ ├── Model
│ │ │ │ └── ImageBrowerPreviewModel.swift
│ │ │ ├── PBSImageBrowerPreviewViewController.swift
│ │ │ ├── PBSImageBrowerSelectViewController.swift
│ │ │ ├── PBSImageCroppingViewController.swift
│ │ │ ├── Utils
│ │ │ │ ├── PBSConfig.swift
│ │ │ │ ├── PBSImageBrower.swift
│ │ │ │ ├── UIImage+Extension.swift
│ │ │ │ └── UIView+Extension.swift
│ │ │ └── View
│ │ │ │ ├── Cell
│ │ │ │ ├── ImageBrowerGroupSelectCell.swift
│ │ │ │ └── ImageBrowerSelectCell.swift
│ │ │ │ ├── Customer
│ │ │ │ ├── ImageBrowerDrawView.swift
│ │ │ │ ├── ImageBrowerEditorColorSelectView.swift
│ │ │ │ ├── ImageBrowerEditorMenuView.swift
│ │ │ │ ├── ImageBrowerEditorTextView.swift
│ │ │ │ ├── ImageBrowerGridView.swift
│ │ │ │ ├── ImageBrowerImageZoomView.swift
│ │ │ │ ├── ImageBrowerMosaicStyleChangeVIew.swift
│ │ │ │ ├── ImageBrowerMosaicView.swift
│ │ │ │ ├── ImageBrowerTextLabelDeleteView.swift
│ │ │ │ └── PBSImageBrowerZoomView.swift
│ │ │ │ └── ViewController
│ │ │ │ └── PBSImageBrowerBaseViewController.swift
│ │ ├── PhobosSwiftMedia.swift
│ │ └── Privatized+third+party+code
│ │ │ └── SKPhotoBrowser
│ │ │ ├── SKActionView.swift
│ │ │ ├── SKAnimator.swift
│ │ │ ├── SKButtons.swift
│ │ │ ├── SKCache.swift
│ │ │ ├── SKCacheable.swift
│ │ │ ├── SKCaptionView.swift
│ │ │ ├── SKDetectingImageView.swift
│ │ │ ├── SKDetectingView.swift
│ │ │ ├── SKIndicatorView.swift
│ │ │ ├── SKLocalPhoto.swift
│ │ │ ├── SKMesurement.swift
│ │ │ ├── SKPaginationView.swift
│ │ │ ├── SKPagingScrollView.swift
│ │ │ ├── SKPhoto.swift
│ │ │ ├── SKPhotoBrowser.h
│ │ │ ├── SKPhotoBrowser.swift
│ │ │ ├── SKPhotoBrowserDelegate.swift
│ │ │ ├── SKPhotoBrowserOptions.swift
│ │ │ ├── SKToolbar.swift
│ │ │ ├── SKZoomingScrollView.swift
│ │ │ ├── UIApplication+UIWindow.swift
│ │ │ └── extensions
│ │ │ ├── UIImage+Rotation.swift
│ │ │ └── UIView+Radius.swift
│ ├── README.md
│ └── Tests
│ │ └── Test.swift
├── Network
│ ├── Assets
│ │ ├── .gitkeep
│ │ ├── en.lproj
│ │ │ └── Localizable.strings
│ │ └── zh-Hans.lproj
│ │ │ └── Localizable.strings
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── APIRequest.swift
│ │ ├── Authenticator.swift
│ │ ├── CocoaMQTT+Ex.swift
│ │ ├── CocoaMQTT+Rx.swift
│ │ ├── CocoaMQTTEvent.swift
│ │ ├── PBSCertificatePinner.swift
│ │ ├── PBSEndPoint.swift
│ │ ├── PBSNetwork.swift
│ │ ├── PBSNetworkInterceptor.swift
│ │ ├── PBSNetworkService.swift
│ │ ├── PBSPinner.swift
│ │ ├── PBSPublicKeyPinner.swift
│ │ ├── PBSRefreshTokenUtil.swift
│ │ ├── PhobosSwiftNetwork.swift
│ │ ├── Privatized+third+party+code
│ │ │ └── CocoaMQTT
│ │ │ │ ├── CocoaMQTT.swift
│ │ │ │ ├── CocoaMQTTDeliver.swift
│ │ │ │ ├── CocoaMQTTFrame.swift
│ │ │ │ ├── CocoaMQTTMessage.swift
│ │ │ │ └── CocoaMQTTTimer.swift
│ │ ├── Reachability.swift
│ │ ├── RxCocoaMQTTDelegateProxy.swift
│ │ └── Session.swift
│ ├── README.md
│ └── Tests
│ │ ├── APIRequestTest.swift
│ │ ├── AuthenticatorTest.swift
│ │ ├── CocoaMQTTExtensionTest.swift
│ │ ├── CocoaMQTTRXTest.swift
│ │ ├── PBSCertificatePinnerTest.swift
│ │ ├── PBSNetwork+Test.swift
│ │ ├── PBSNetworkServiceTest.swift
│ │ ├── PBSPublicKeyPinnerTest.swift
│ │ ├── PBSRefreshTokenTest.swift
│ │ ├── ReachabilityTest.swift
│ │ └── SessionTest.swift
├── Payment
│ ├── Alipay
│ │ └── Classes
│ │ │ ├── .gitkeep
│ │ │ └── Alipay.swift
│ ├── Assets
│ │ └── .gitkeep
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── IAP
│ │ │ ├── Errors
│ │ │ │ ├── IAPError.swift
│ │ │ │ └── ReceiptError.swift
│ │ │ ├── IAP+Receipt.swift
│ │ │ ├── IAP+Rx.swift
│ │ │ ├── IAP.swift
│ │ │ ├── Models
│ │ │ │ ├── PendingRenewalInfo.swift
│ │ │ │ ├── Receipt.swift
│ │ │ │ ├── ReceiptInApp.swift
│ │ │ │ └── ReceiptResult.swift
│ │ │ ├── SKProductsRequest+Rx.swift
│ │ │ ├── SKProductsRequestDelegateProxy.swift
│ │ │ ├── SKReceiptRefreshRequest+Rx.swift
│ │ │ ├── SKReceiptRefreshRequestDelegateProxy.swift
│ │ │ └── StoreObserver.swift
│ │ ├── PBSPayment.swift
│ │ ├── PaymentAppDelegateSwizzler.swift
│ │ └── PhobosSwiftPayment.swift
│ ├── README.md
│ ├── Tests
│ │ ├── COBAlipayUnitTest.swift
│ │ ├── Codebase-Service-Info.plist
│ │ └── Test.swift
│ └── Wechatpay
│ │ └── Classes
│ │ ├── .gitkeep
│ │ └── Wechatpay.swift
├── Persistence
│ ├── Assets
│ │ └── .gitkeep
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── .gitkeep
│ │ └── PhobosSwiftPersistence.swift
│ ├── README.md
│ ├── Realm
│ │ └── Classes
│ │ │ ├── Realm+Ex.swift
│ │ │ └── RxRealm
│ │ │ ├── RealmObserver.swift
│ │ │ └── RxRealm.swift
│ └── Tests
│ │ └── Test.swift
├── Push
│ ├── Assets
│ │ └── .gitkeep
│ ├── CHANGELOG.md
│ ├── Classes
│ │ ├── AppDelegateSwizzler.swift
│ │ ├── Data+Ex.swift
│ │ ├── PBSPush.swift
│ │ ├── PhobosSwiftPush.swift
│ │ ├── RxUNUserNotificationCenterDelegateProxy.swift
│ │ ├── UNUserNotificationCenter+PhobosSwift.swift
│ │ └── UNUserNotificationCenter+Rx.swift
│ ├── README.md
│ └── Tests
│ │ ├── .gitkeep
│ │ └── PBSPushTests.swift
├── Router
│ ├── Assets
│ │ └── .gitkeep
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── PBSRouter.swift
│ │ ├── PBSRouterAppDelegateSwizzler.swift
│ │ ├── PhobosSwiftRouter.swift
│ │ └── Privatized+third+party+code
│ │ │ └── URLNavigator
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── URLMatcher
│ │ │ ├── URLConvertible.swift
│ │ │ ├── URLMatchResult.swift
│ │ │ ├── URLMatcher.swift
│ │ │ ├── URLPatchComponentMatchResult.swift
│ │ │ └── URLPathComponent.swift
│ │ │ └── URLNavigator
│ │ │ ├── Navigator.swift
│ │ │ ├── NavigatorDelegate.swift
│ │ │ ├── NavigatorType.swift
│ │ │ ├── UIViewController+TopMostViewController.swift
│ │ │ └── UIViewControllerType.swift
│ ├── README.md
│ └── Tests
│ │ ├── PBSRouter+Test.swift
│ │ └── PBSRouterProtocolTest.swift
├── Slideout
│ ├── Assets
│ │ └── .gitkeep
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── PBSSlideViewController+Left.swift
│ │ ├── PBSSlideViewController+Right.swift
│ │ ├── PBSSlideViewController.swift
│ │ ├── PBSSlideViewDelegate.swift
│ │ └── PhobosSwiftSlideout.swift
│ ├── README.md
│ └── Tests
│ │ └── Test.swift
├── Splash
│ ├── Assets
│ │ ├── .gitkeep
│ │ └── Media.xcassets
│ │ │ └── Contents.json
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── PBSDefaultSplashViewController.swift
│ │ ├── PBSSplash.swift
│ │ └── PhobosSwiftSplash.swift
│ ├── README.md
│ └── Tests
│ │ └── Test.swift
├── TestKnight
│ ├── Assets
│ │ ├── .gitkeep
│ │ └── Media.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── debug.imageset
│ │ │ ├── Contents.json
│ │ │ ├── debug@2.png
│ │ │ └── debug@3.png
│ │ │ ├── preproduction.imageset
│ │ │ ├── Contents.json
│ │ │ ├── preproduction@2x.png
│ │ │ └── preproduction@3x.png
│ │ │ ├── release.imageset
│ │ │ ├── Contents.json
│ │ │ ├── release@2x.png
│ │ │ └── release@3x.png
│ │ │ └── staging.imageset
│ │ │ ├── Contents.json
│ │ │ ├── staging@2.png
│ │ │ └── staging@3.png
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── Models
│ │ │ └── PBSTestKnightViewModel.swift
│ │ ├── PBSTestKnight.swift
│ │ ├── PhobosSwiftTestKnight.swift
│ │ └── Views
│ │ │ ├── Cells
│ │ │ └── PBSTestKnightCell.swift
│ │ │ └── ViewControllers
│ │ │ └── PBSTestKnightViewController.swift
│ ├── README.md
│ └── Tests
│ │ ├── PBSTestKnightTests.swift
│ │ └── PhobosSwiftTestKnightTests.swift
├── UIComponent
│ ├── Assets
│ │ ├── .gitkeep
│ │ ├── Media.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── message_bar_error.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── error@2x.png
│ │ │ │ └── error@3x.png
│ │ │ ├── message_bar_info.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── blink@2x.png
│ │ │ │ └── blink@3x.png
│ │ │ ├── message_bar_success.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── happy@2x.png
│ │ │ │ └── happy@3x.png
│ │ │ ├── message_bar_warning.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── sad@2x.png
│ │ │ │ └── sad@3x.png
│ │ │ ├── news_placeholder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── sample@2x.jpg
│ │ │ │ └── sample@3x.jpg
│ │ │ └── news_placeholder1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── news_placeholder@2x.png
│ │ │ │ └── news_placeholder@3x.png
│ │ ├── en.lproj
│ │ │ └── Localizable.strings
│ │ ├── ghost
│ │ │ ├── article_template.html
│ │ │ ├── prism-css.min.js
│ │ │ ├── prism-okaidia.min.css
│ │ │ ├── prism.min.js
│ │ │ └── screen.css
│ │ └── zh-Hans.lproj
│ │ │ └── Localizable.strings
│ ├── Classes
│ │ ├── .gitkeep
│ │ ├── PBSActivityButton
│ │ │ └── PBSActivityButton.swift
│ │ ├── PBSArticle
│ │ │ ├── API
│ │ │ │ ├── .gitkeep
│ │ │ │ └── API+Ghost.swift
│ │ │ ├── Kits
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── Resource.swift
│ │ │ │ └── Styles.swift
│ │ │ ├── Models
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── AppleNewsFormatModel.swift
│ │ │ │ ├── PBSArticleModel.swift
│ │ │ │ └── PBSGhostPostResponseModel.swift
│ │ │ ├── PhobosSwiftArticle.swift
│ │ │ ├── UIKits
│ │ │ │ └── .gitkeep
│ │ │ ├── ViewModels
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── PBSArticleSectionViewModel.swift
│ │ │ │ └── PBSArticleViewModel.swift
│ │ │ └── Views
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── Cells
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── PBSArticleBigCardCell.swift
│ │ │ │ ├── PBSArticleBigCardECell.swift
│ │ │ │ ├── PBSArticleBigCardSCell.swift
│ │ │ │ ├── PBSArticleBigCardXCell.swift
│ │ │ │ ├── PBSArticleBigCardYCell.swift
│ │ │ │ ├── PBSArticleCardCell.swift
│ │ │ │ ├── PBSArticleColumnCell.swift
│ │ │ │ ├── PBSArticleIndexCell.swift
│ │ │ │ ├── PBSArticleNormalCell.swift
│ │ │ │ ├── PBSArticleSectionFooter.swift
│ │ │ │ └── PBSArticleSectionHeader.swift
│ │ │ │ ├── Layouts
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── UIArticleKit+DecorationView+FlowLayoutAttributes.swift
│ │ │ │ ├── UIArticleKit+DecorationView.swift
│ │ │ │ ├── UIArticleKit+ViewFlowLayout.swift
│ │ │ │ └── UIArticleKitDelegateFlowLayout.swift
│ │ │ │ ├── Styles
│ │ │ │ ├── PBSArticleBigCardCellStyle.swift
│ │ │ │ ├── PBSArticleSectionTheme.swift
│ │ │ │ └── PBSGhostHtmlTextStorage.swift
│ │ │ │ ├── ViewControllers
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── PBSArticleDetailViewController.swift
│ │ │ │ ├── PBSArticleMasterViewController+CellType.swift
│ │ │ │ └── PBSArticleMasterViewController.swift
│ │ │ │ └── Views
│ │ │ │ └── .gitkeep
│ │ ├── PBSBadgeView
│ │ │ ├── PBSBadgeControl.swift
│ │ │ └── UIView+PBSBadgeView.swift
│ │ ├── PBSIconFontKit
│ │ │ ├── PBSIconFontKit.swift
│ │ │ └── PBSIconFontUtils.swift
│ │ ├── PBSMessageBar
│ │ │ ├── PBSAlertCell.swift
│ │ │ ├── PBSAlertController.swift
│ │ │ ├── PBSAlertView.swift
│ │ │ ├── PBSMessageBar.swift
│ │ │ ├── PBSMessageBarViewController.swift
│ │ │ ├── PBSMessageHud.swift
│ │ │ ├── PBSMessageHudViewController.swift
│ │ │ ├── PBSMessagePanel.swift
│ │ │ └── PBSMessagePanelViewController.swift
│ │ ├── PBSPageView
│ │ │ ├── PBSSegmentCollectionViewFlowLayout.swift
│ │ │ ├── PBSSegmentContentView.swift
│ │ │ ├── PBSSegmentContentViewDelegate.swift
│ │ │ ├── PBSSegmentContentViewReloadable.swift
│ │ │ ├── PBSSegmentTitleView.swift
│ │ │ ├── PBSSegmentTitleViewDelegate.swift
│ │ │ ├── PBSSegmentView.swift
│ │ │ └── PBSSegmentViewStyle.swift
│ │ ├── PBSProgressHUD
│ │ │ └── PBSProgressHUD.swift
│ │ ├── PBSWaterfall
│ │ │ ├── PBSWaterfallLayout.swift
│ │ │ └── PBSWaterfallLayoutDelegate.swift
│ │ ├── PhobosSwiftUIComponent.swift
│ │ └── Privatized+third+party+code
│ │ │ ├── Charts
│ │ │ ├── Animation
│ │ │ │ ├── Animator.swift
│ │ │ │ └── ChartAnimationEasing.swift
│ │ │ ├── Charts
│ │ │ │ ├── BarChartView.swift
│ │ │ │ ├── BarLineChartViewBase.swift
│ │ │ │ ├── BubbleChartView.swift
│ │ │ │ ├── CandleStickChartView.swift
│ │ │ │ ├── ChartViewBase.swift
│ │ │ │ ├── CombinedChartView.swift
│ │ │ │ ├── HorizontalBarChartView.swift
│ │ │ │ ├── LineChartView.swift
│ │ │ │ ├── PieChartView.swift
│ │ │ │ ├── PieRadarChartViewBase.swift
│ │ │ │ ├── RadarChartView.swift
│ │ │ │ └── ScatterChartView.swift
│ │ │ ├── Components
│ │ │ │ ├── AxisBase.swift
│ │ │ │ ├── ChartLimitLine.swift
│ │ │ │ ├── ComponentBase.swift
│ │ │ │ ├── Description.swift
│ │ │ │ ├── IMarker.swift
│ │ │ │ ├── Legend.swift
│ │ │ │ ├── LegendEntry.swift
│ │ │ │ ├── MarkerImage.swift
│ │ │ │ ├── MarkerView.swift
│ │ │ │ ├── XAxis.swift
│ │ │ │ └── YAxis.swift
│ │ │ ├── Data
│ │ │ │ ├── Implementations
│ │ │ │ │ ├── ChartBaseDataSet.swift
│ │ │ │ │ └── Standard
│ │ │ │ │ │ ├── BarChartData.swift
│ │ │ │ │ │ ├── BarChartDataEntry.swift
│ │ │ │ │ │ ├── BarChartDataSet.swift
│ │ │ │ │ │ ├── BarLineScatterCandleBubbleChartData.swift
│ │ │ │ │ │ ├── BarLineScatterCandleBubbleChartDataSet.swift
│ │ │ │ │ │ ├── BubbleChartData.swift
│ │ │ │ │ │ ├── BubbleChartDataEntry.swift
│ │ │ │ │ │ ├── BubbleChartDataSet.swift
│ │ │ │ │ │ ├── CandleChartData.swift
│ │ │ │ │ │ ├── CandleChartDataEntry.swift
│ │ │ │ │ │ ├── CandleChartDataSet.swift
│ │ │ │ │ │ ├── ChartData.swift
│ │ │ │ │ │ ├── ChartDataEntry.swift
│ │ │ │ │ │ ├── ChartDataEntryBase.swift
│ │ │ │ │ │ ├── ChartDataSet.swift
│ │ │ │ │ │ ├── CombinedChartData.swift
│ │ │ │ │ │ ├── LineChartData.swift
│ │ │ │ │ │ ├── LineChartDataSet.swift
│ │ │ │ │ │ ├── LineRadarChartDataSet.swift
│ │ │ │ │ │ ├── LineScatterCandleRadarChartDataSet.swift
│ │ │ │ │ │ ├── PieChartData.swift
│ │ │ │ │ │ ├── PieChartDataEntry.swift
│ │ │ │ │ │ ├── PieChartDataSet.swift
│ │ │ │ │ │ ├── RadarChartData.swift
│ │ │ │ │ │ ├── RadarChartDataEntry.swift
│ │ │ │ │ │ ├── RadarChartDataSet.swift
│ │ │ │ │ │ ├── ScatterChartData.swift
│ │ │ │ │ │ └── ScatterChartDataSet.swift
│ │ │ │ └── Interfaces
│ │ │ │ │ ├── IBarChartDataSet.swift
│ │ │ │ │ ├── IBarLineScatterCandleBubbleChartDataSet.swift
│ │ │ │ │ ├── IBubbleChartDataSet.swift
│ │ │ │ │ ├── ICandleChartDataSet.swift
│ │ │ │ │ ├── IChartDataSet.swift
│ │ │ │ │ ├── ILineChartDataSet.swift
│ │ │ │ │ ├── ILineRadarChartDataSet.swift
│ │ │ │ │ ├── ILineScatterCandleRadarChartDataSet.swift
│ │ │ │ │ ├── IPieChartDataSet.swift
│ │ │ │ │ ├── IRadarChartDataSet.swift
│ │ │ │ │ └── IScatterChartDataSet.swift
│ │ │ ├── Filters
│ │ │ │ ├── DataApproximator+N.swift
│ │ │ │ └── DataApproximator.swift
│ │ │ ├── Formatters
│ │ │ │ ├── DefaultAxisValueFormatter.swift
│ │ │ │ ├── DefaultFillFormatter.swift
│ │ │ │ ├── DefaultValueFormatter.swift
│ │ │ │ ├── IAxisValueFormatter.swift
│ │ │ │ ├── IFillFormatter.swift
│ │ │ │ ├── IValueFormatter.swift
│ │ │ │ └── IndexAxisValueFormatter.swift
│ │ │ ├── Highlight
│ │ │ │ ├── BarHighlighter.swift
│ │ │ │ ├── ChartHighlighter.swift
│ │ │ │ ├── CombinedHighlighter.swift
│ │ │ │ ├── Highlight.swift
│ │ │ │ ├── HorizontalBarHighlighter.swift
│ │ │ │ ├── IHighlighter.swift
│ │ │ │ ├── PieHighlighter.swift
│ │ │ │ ├── PieRadarHighlighter.swift
│ │ │ │ ├── RadarHighlighter.swift
│ │ │ │ └── Range.swift
│ │ │ ├── Interfaces
│ │ │ │ ├── BarChartDataProvider.swift
│ │ │ │ ├── BarLineScatterCandleBubbleChartDataProvider.swift
│ │ │ │ ├── BubbleChartDataProvider.swift
│ │ │ │ ├── CandleChartDataProvider.swift
│ │ │ │ ├── ChartDataProvider.swift
│ │ │ │ ├── CombinedChartDataProvider.swift
│ │ │ │ ├── LineChartDataProvider.swift
│ │ │ │ └── ScatterChartDataProvider.swift
│ │ │ ├── Jobs
│ │ │ │ ├── AnimatedMoveViewJob.swift
│ │ │ │ ├── AnimatedViewPortJob.swift
│ │ │ │ ├── AnimatedZoomViewJob.swift
│ │ │ │ ├── MoveViewJob.swift
│ │ │ │ ├── ViewPortJob.swift
│ │ │ │ └── ZoomViewJob.swift
│ │ │ ├── Renderers
│ │ │ │ ├── AxisRendererBase.swift
│ │ │ │ ├── BarChartRenderer.swift
│ │ │ │ ├── BarLineScatterCandleBubbleRenderer.swift
│ │ │ │ ├── BubbleChartRenderer.swift
│ │ │ │ ├── CandleStickChartRenderer.swift
│ │ │ │ ├── ChartDataRendererBase.swift
│ │ │ │ ├── CombinedChartRenderer.swift
│ │ │ │ ├── HorizontalBarChartRenderer.swift
│ │ │ │ ├── LegendRenderer.swift
│ │ │ │ ├── LineChartRenderer.swift
│ │ │ │ ├── LineRadarRenderer.swift
│ │ │ │ ├── LineScatterCandleRadarRenderer.swift
│ │ │ │ ├── PieChartRenderer.swift
│ │ │ │ ├── RadarChartRenderer.swift
│ │ │ │ ├── Renderer.swift
│ │ │ │ ├── Scatter
│ │ │ │ │ ├── ChevronDownShapeRenderer.swift
│ │ │ │ │ ├── ChevronUpShapeRenderer.swift
│ │ │ │ │ ├── CircleShapeRenderer.swift
│ │ │ │ │ ├── CrossShapeRenderer.swift
│ │ │ │ │ ├── IShapeRenderer.swift
│ │ │ │ │ ├── SquareShapeRenderer.swift
│ │ │ │ │ ├── TriangleShapeRenderer.swift
│ │ │ │ │ └── XShapeRenderer.swift
│ │ │ │ ├── ScatterChartRenderer.swift
│ │ │ │ ├── XAxisRenderer.swift
│ │ │ │ ├── XAxisRendererHorizontalBarChart.swift
│ │ │ │ ├── XAxisRendererRadarChart.swift
│ │ │ │ ├── YAxisRenderer.swift
│ │ │ │ ├── YAxisRendererHorizontalBarChart.swift
│ │ │ │ └── YAxisRendererRadarChart.swift
│ │ │ └── Utils
│ │ │ │ ├── ChartColorTemplates.swift
│ │ │ │ ├── ChartUtils.swift
│ │ │ │ ├── Fill.swift
│ │ │ │ ├── Platform+Accessibility.swift
│ │ │ │ ├── Platform+Color.swift
│ │ │ │ ├── Platform+Gestures.swift
│ │ │ │ ├── Platform+Graphics.swift
│ │ │ │ ├── Platform+Touch Handling.swift
│ │ │ │ ├── Platform.swift
│ │ │ │ ├── Transformer.swift
│ │ │ │ ├── TransformerHorizontalBarChart.swift
│ │ │ │ └── ViewPortHandler.swift
│ │ │ ├── Cosmos
│ │ │ ├── CosmosAccessibility.swift
│ │ │ ├── CosmosDefaultSettings.swift
│ │ │ ├── CosmosLayerHelper.swift
│ │ │ ├── CosmosLayers.swift
│ │ │ ├── CosmosLocalizedRating.swift
│ │ │ ├── CosmosRating.swift
│ │ │ ├── CosmosSettings.swift
│ │ │ ├── CosmosSize.swift
│ │ │ ├── CosmosText.swift
│ │ │ ├── CosmosTouch.swift
│ │ │ ├── CosmosView.swift
│ │ │ ├── Helpers
│ │ │ │ ├── CosmosTouchTarget.swift
│ │ │ │ └── RightToLeft.swift
│ │ │ ├── StarFillMode.swift
│ │ │ └── StarLayer.swift
│ │ │ ├── FloatingPanel
│ │ │ ├── FloatingPanelBackdropView.swift
│ │ │ ├── FloatingPanelBehavior.swift
│ │ │ ├── FloatingPanelController.swift
│ │ │ ├── FloatingPanelCore.swift
│ │ │ ├── FloatingPanelGrabberView.swift
│ │ │ ├── FloatingPanelLayout.swift
│ │ │ ├── FloatingPanelLayoutAnchoring.swift
│ │ │ ├── FloatingPanelLogger.swift
│ │ │ ├── FloatingPanelPassthroughView.swift
│ │ │ ├── FloatingPanelPosition.swift
│ │ │ ├── FloatingPanelReference.swift
│ │ │ ├── FloatingPanelState.swift
│ │ │ ├── FloatingPanelSurfaceView.swift
│ │ │ ├── FloatingPanelTransitioning.swift
│ │ │ └── UIExtensions+FloatingPanel.swift
│ │ │ └── ProgressHUD
│ │ │ └── ProgressHUD.swift
│ ├── README.md
│ └── Tests
│ │ └── Test.swift
└── Wechat
│ ├── Assets
│ └── .gitkeep
│ ├── Classes
│ ├── .gitkeep
│ ├── PBSWechat+Rx.swift
│ ├── PBSWechat.swift
│ ├── PBSWechatDelegate.swift
│ ├── PhobosSwiftWechat.swift
│ └── RxPBSWechatDelegateProxy.swift
│ ├── README.md
│ └── Tests
│ └── PBSWechatTests.swift
├── PhobosSwiftAnimation.podspec
├── PhobosSwiftAuth.podspec
├── PhobosSwiftCore.podspec
├── PhobosSwiftCoreSwiftUI.podspec
├── PhobosSwiftGrowth.podspec
├── PhobosSwiftHades.podspec
├── PhobosSwiftLocation.podspec
├── PhobosSwiftLog.podspec
├── PhobosSwiftMedia.podspec
├── PhobosSwiftNetwork.podspec
├── PhobosSwiftPayment.podspec
├── PhobosSwiftPersistence.podspec
├── PhobosSwiftPush.podspec
├── PhobosSwiftRouter.podspec
├── PhobosSwiftSlideout.podspec
├── PhobosSwiftSplash.podspec
├── PhobosSwiftTestKnight.podspec
├── PhobosSwiftUIComponent.podspec
├── PhobosSwiftWechat.podspec
├── README.md
└── fastlane
├── .env.Default
├── .env.Log
├── .env.Persistence
└── Fastfile
/.ruby-version:
--------------------------------------------------------------------------------
1 | 2.7.3
2 |
--------------------------------------------------------------------------------
/.swiftformat:
--------------------------------------------------------------------------------
1 | # file options
2 |
3 | --symlinks ignore
4 | --swiftversion 5.1
5 |
6 | # rules
7 | --disable isEmpty
8 | --disable andOperator
9 | --disable wrapMultilineStatementBraces
10 | --disable enumNamespaces
11 |
12 | # format options
13 | --indent 2
14 | --closingparen same-line
15 | --commas inline
16 | --comments indent
17 | --decimalgrouping 3,5
18 | --exponentcase lowercase
19 | --exponentgrouping disabled
20 | --extensionacl on-declarations
21 | --fractiongrouping disabled
22 | --ifdef no-indent
23 | --importgrouping testable-top
24 | --operatorfunc no-space
25 | --nospaceoperators ..<, ...
26 | --selfrequired validate
27 | --stripunusedargs closure-only
28 | --wraparguments after-first
29 | --wrapcollections after-first
30 | --wrapparameters after-first
31 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | os: osx
2 | osx_image: xcode12.3
3 | language: swift
4 | cache:
5 | bundler: true
6 | cocoapods: true
7 | directories:
8 | # Built-in support for ccache doesn't seem to pick this up
9 | - $HOME/.ccache
10 |
11 | # install dependencies
12 | install:
13 | - bundle install
14 |
15 | stages:
16 | - build_debug
17 | - lint_core
18 |
19 | jobs:
20 | include:
21 | # The order of builds matters (even though they are run in parallel):
22 | # Travis will schedule them in the same order they are listed here.
23 |
24 | - stage: lint_core
25 | script:
26 | - bundle exec fastlane ios lint --env Core
27 | on:
28 | branch: master
29 |
30 | - stage: build_debug
31 | before_script: "cd Example"
32 | script:
33 | - bundle exec pod update --verbose
34 | - bundle exec fastlane ios build configuration:Debug skip_archive:true --env ci
35 | on:
36 | branch: develop
37 |
38 | branches:
39 | only:
40 | - master
41 | - develop
42 |
--------------------------------------------------------------------------------
/Example/.swiftlint.yml:
--------------------------------------------------------------------------------
1 | included:
2 | - ../PhobosSwift
3 | opt_in_rules:
4 | - overridden_super_call
5 | - private_outlet
6 | - prohibited_super_call
7 | - first_where
8 | - closure_spacing
9 | - unneeded_parentheses_in_closure_argument
10 | - redundant_nil_coalescing
11 | - pattern_matching_keywords
12 | - explicit_init
13 | - contains_over_first_not_nil
14 | disabled_rules:
15 | - nesting
16 | - unused_setter_value
17 | - line_length
18 | - trailing_whitespace
19 | - type_name
20 | - identifier_name
21 | - vertical_whitespace
22 | - trailing_newline
23 | - opening_brace
24 | - large_tuple
25 | - file_length
26 | - comma
27 | - colon
28 | - private_over_fileprivate
29 | - force_cast
30 | - force_try
31 | - function_parameter_count
32 | - statement_position
33 | - legacy_hashing
34 | - todo
35 | - operator_whitespace
36 | - type_body_length
37 | - function_body_length
38 | - cyclomatic_complexity
39 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/CapturePhoto.imageset/CapturePhoto@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/Example/PhobosSwiftExample/Assets.xcassets/CapturePhoto.imageset/CapturePhoto@2x.png
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/CapturePhoto.imageset/CapturePhoto@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/Example/PhobosSwiftExample/Assets.xcassets/CapturePhoto.imageset/CapturePhoto@3x.png
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/CapturePhoto.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "CapturePhoto@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "CapturePhoto@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/FlipCamera.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "FlipCamera@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "FlipCamera@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/FlipCamera.imageset/FlipCamera@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/Example/PhobosSwiftExample/Assets.xcassets/FlipCamera.imageset/FlipCamera@2x.png
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/FlipCamera.imageset/FlipCamera@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/Example/PhobosSwiftExample/Assets.xcassets/FlipCamera.imageset/FlipCamera@3x.png
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/launch.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "launch@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "launch@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/launch.imageset/launch@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/Example/PhobosSwiftExample/Assets.xcassets/launch.imageset/launch@2x.png
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Assets.xcassets/launch.imageset/launch@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/Example/PhobosSwiftExample/Assets.xcassets/launch.imageset/launch@3x.png
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/Phobos-Service-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Version
6 | 0.1.0
7 | InternalBuildVersion
8 | 0.1.0
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/PhobosSwiftExample/PhobosSwiftExample.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 | com.apple.developer.icloud-container-identifiers
8 |
9 | iCloud.codes.restless.phobosswift.example
10 |
11 | com.apple.developer.icloud-services
12 |
13 | CloudDocuments
14 |
15 | com.apple.developer.ubiquity-container-identifiers
16 |
17 | iCloud.codes.restless.phobosswift.example
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Example/fastlane/.env.ci:
--------------------------------------------------------------------------------
1 | #---------- Xcode Select ----------------
2 | XCODE_SELECT = "/Applications/Xcode.app"
3 |
4 | #----------- Common Environment --------------
5 |
6 | APP_SCHEME = "PhobosSwiftExample"
7 |
8 | WORKSPACE = "PhobosSwiftExample.xcworkspace"
9 |
10 | APP_NAME = "PhobosSwiftExample"
11 |
12 | FASTLANE_DONT_STORE_PASSWORD = "1"
13 |
14 | BUILD_OUTPUT_DIRECTORY = "build-output"
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Example/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | app_identifier(ENV['BUNDLE_IDENTIFIER']) # The bundle identifier of your app
2 | apple_id(ENV['FASTLANE_USER']) # Your Apple email address
3 |
4 | itc_team_id(ENV['ITC_TEAM_ID']) # App Store Connect Team ID
5 | team_id(ENV['TEAM_ID']) # Developer Portal Team ID
6 |
7 | # For more information about the Appfile, see:
8 | # https://docs.fastlane.tools/advanced/#appfile
9 |
10 | for_platform :ios do
11 | #team_id '123' # for all iOS related things
12 | #for_lane :inhouse do
13 | # app_identifier(ENV["BUNDLE_IDENTIFIER_ENTERPRISE"])
14 | # itc_team_id(ENV["ITC_TEAM_ID_ENTERPRISE"]) # App Store Connect Team ID for enterprise
15 | # team_id(ENV["TEAM_ID_ENTERPRISE"]) # Developer Portal Team ID for enterprise
16 | #end
17 |
18 | end
19 |
--------------------------------------------------------------------------------
/Example/fastlane/Fastfile:
--------------------------------------------------------------------------------
1 |
2 |
3 | import_from_git(
4 | url: "https://gitee.com/tjerwinchen/fastools.git", # The URL of the repository to import the Fastfile from.
5 | branch: "master", # The branch to checkout on the repository
6 | path: "lib/fastlane/fastlane.build.rb", # The path of the Fastfile in the repository
7 | #version: "~> 1.0.0" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints.
8 | )
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | source "https://rubygems.org"
4 |
5 | git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
6 |
7 | gem "cocoapods"
8 | gem "fastlane"
9 | gem "cocoapods-dependencies"
10 | gem 'fastools', :git => 'https://gitee.com/tjerwinchen/fastools.git', :branch => 'master'
11 |
12 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Animation/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftAnimation
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Animation/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftAnimation
2 | ================
3 | # Features
4 | - 转场动画封装
5 |
6 |
7 |
8 | # Requirements
9 | - iOS 10.0 or later
10 | - Xcode 11.0 or later
11 | - cocoapods 1.10.0 or later
12 |
13 |
14 | # How To Use
15 | - swift
16 |
17 | ```
18 |
19 | import PhobosSwiftAnimation
20 |
21 | let transition = PBSDraggableInteractiveTransition(cardView: UIView,
22 | pushFromViewCtrl: UIViewController,
23 | pushToViewCtrl: UIViewController,
24 | navigationController: UINavigationController,
25 | style: PBSDraggableInteractiveTransitionStyle)
26 |
27 | ```
28 |
29 | # Installation
30 | ## Podfile
31 |
32 | ```
33 | platform :ios, '10.0'
34 | use_frameworks!
35 | pod 'PhobosSwiftAnimation', '~> 0.1.0'
36 | ```
37 |
38 |
39 | # Author
40 | [Restless Developer](https://github.com/restlesscode)
41 |
42 |
43 |
44 | # Licenses
45 | All source code is licensed under the [MIT License](../../LICENSE).
46 |
--------------------------------------------------------------------------------
/PhobosSwift/Auth/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Auth/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Auth/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftAuth
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Auth/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Auth/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Auth/Classes/PhobosSwiftAuth.swift:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // PhobosSwiftAuth.swift
4 | // PhobosSwiftAuth
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import Foundation
28 |
29 | class PhobosSwiftAuth: NSObject {}
30 |
--------------------------------------------------------------------------------
/PhobosSwift/Auth/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftAuth
2 | ================
3 | # Features
4 | - 常规权限获取(TouchId、FaceId..)
5 |
6 |
7 | # Requirements
8 | - iOS 10.0 or later
9 | - Xcode 11.0 or later
10 | - cocoapods 1.10.0 or later
11 |
12 |
13 | # How To Use
14 | - swift
15 |
16 | ```
17 | import PhobosSwiftAuth
18 |
19 | let isFaceIDAvailable = BioMetricAuthenticator.shared.isFaceIDAvailable
20 | ```
21 |
22 | # Installation
23 | ## Podfile
24 |
25 | ```
26 | platform :ios, '10.0'
27 | use_frameworks!
28 | pod 'PhobosSwiftAuth', '~> 0.1.0'
29 | ```
30 |
31 |
32 | # Author
33 | [Restless Developer](https://github.com/restlesscode)
34 |
35 |
36 |
37 | # Licenses
38 | All source code is licensed under the [MIT License](../../LICENSE).
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Core/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Core/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Core/Assets/Phobos-Service-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Version
6 | 0.1.0
7 | InternalBuildVersion
8 | 0.1.0
9 |
10 |
11 |
--------------------------------------------------------------------------------
/PhobosSwift/Core/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftCore
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Core/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Core/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Core/Classes/Privatized+third+party+code/SwiftRSA/Message.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Message.swift
3 | // SwiftyRSA
4 | //
5 | // Created by Loïs Di Qual on 9/19/16.
6 | // Copyright © 2016 Scoop. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | /// Message Protocol
12 | ///
13 | /// need to implementation of data, base64string
14 | public protocol Message {
15 | /// data
16 | var data: Data { get }
17 |
18 | /// base64String
19 | var base64String: String { get }
20 |
21 | /// init with data
22 | init(data: Data)
23 |
24 | /// init with base64 string
25 | init(base64Encoded base64String: String) throws
26 | }
27 |
28 | /// Enhanced features of Message protocol is implemented in this extension
29 | extension Message {
30 | /// Base64-encoded string of the message data
31 | public var base64String: String {
32 | data.base64EncodedString()
33 | }
34 |
35 | /// Creates an encrypted message with a base64-encoded string.
36 | ///
37 | /// - Parameter base64String: Base64-encoded data of the encrypted message
38 | /// - Throws: SwiftyRSAError
39 | public init(base64Encoded base64String: String) throws {
40 | guard let data = Data(base64Encoded: base64String) else {
41 | throw SwiftyRSAError.invalidBase64String
42 | }
43 | self.init(data: data)
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/PhobosSwift/Core/Classes/Privatized+third+party+code/SwiftRSA/NSData+SHA.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData_SHA1.h
3 | // SwiftyRSA
4 | //
5 | // Created by Paul Wilkinson on 19/04/2016.
6 | // Copyright © 2016 Scoop. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (NSData_SwiftyRSASHA)
12 |
13 | - (nonnull NSData*) SwiftyRSASHA1;
14 | - (nonnull NSData*) SwiftyRSASHA224;
15 | - (nonnull NSData*) SwiftyRSASHA256;
16 | - (nonnull NSData*) SwiftyRSASHA384;
17 | - (nonnull NSData*) SwiftyRSASHA512;
18 |
19 | @end
--------------------------------------------------------------------------------
/PhobosSwift/Core/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftCore
2 | ================
3 | # Features
4 | - Extensions
5 | ```
6 | Array、Bundle、Calendar、Date、CATransition、CGPoint、Codable、Diffable、DispatchQueue、FileManager、Int、String、UIApplication、UIColor、UIImage、UINavifationBar、UITableView、UIView、UIViewController、UIWindow、URL...
7 |
8 | ```
9 | - Utils
10 |
11 |
12 | # Requirements
13 | - iOS 10.0 or later
14 | - Xcode 11.0 or later
15 | - cocoapods 1.10.0 or later
16 |
17 |
18 | # How To Use
19 | - swift
20 |
21 | ```
22 | import PhobosSwiftCore
23 |
24 | let number = "22".pbs.int
25 | ```
26 |
27 | # Installation
28 | ## Podfile
29 |
30 | ```
31 | platform :ios, '10.0'
32 | use_frameworks!
33 | pod 'PhobosSwiftCore', '~> 0.1.0'
34 | ```
35 |
36 |
37 | # Author
38 | [Restless Developer](https://github.com/restlesscode)
39 |
40 |
41 |
42 | # Licenses
43 | All source code is licensed under the [MIT License](../../LICENSE).
--------------------------------------------------------------------------------
/PhobosSwift/Core/SwiftUI/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Core/SwiftUI/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/CoreSwiftUI/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/CoreSwiftUI/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/CoreSwiftUI/Assets/Phobos-Service-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Version
6 | 0.1.0
7 | InternalBuildVersion
8 | 0.1.0
9 |
10 |
11 |
--------------------------------------------------------------------------------
/PhobosSwift/CoreSwiftUI/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftCoreSwiftUI
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/CoreSwiftUI/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/CoreSwiftUI/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/CoreSwiftUI/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftCoreSwiftUI
2 | ================
3 | # Features
4 | - SwiftUI
5 |
6 |
7 | # Requirements
8 | - iOS 10.0 or later
9 | - Xcode 11.0 or later
10 | - cocoapods 1.10.0 or later
11 |
12 |
13 | # How To Use
14 | - swift
15 |
16 | ```
17 |
18 | import PhobosSwiftCoreSwiftUI
19 |
20 | ```
21 |
22 | # Installation
23 | ## Podfile
24 |
25 | ```
26 | platform :ios, '10.0'
27 | use_frameworks!
28 | pod 'PhobosSwiftCoreSwiftUI', '~> 0.1.0'
29 | ```
30 |
31 |
32 | # Author
33 | [Restless Developer](https://github.com/restlesscode)
34 |
35 |
36 |
37 | # Licenses
38 | All source code is licensed under the [MIT License](../../LICENSE).
39 |
--------------------------------------------------------------------------------
/PhobosSwift/CoreSwiftUI/Tests/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/CoreSwiftUI/Tests/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Growth/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Assets/Growth.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Assets/Growth.xcassets/quote.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "quote@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "quote@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Assets/Growth.xcassets/quote.imageset/quote@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Growth/Assets/Growth.xcassets/quote.imageset/quote@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Assets/Growth.xcassets/quote.imageset/quote@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Growth/Assets/Growth.xcassets/quote.imageset/quote@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Assets/Localization/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | File.strings
3 | Pods
4 |
5 | Created by Theo Chen on 2021/8/13.
6 |
7 | */
8 |
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Assets/Localization/zh-Hans.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | File.strings
3 | Pods
4 |
5 | Created by Theo Chen on 2021/8/13.
6 |
7 | */
8 |
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Growth/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Classes/PBSGrowth.swift:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // PBSGrowth.swift
4 | // PhobosSwiftGrowth
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import Foundation
28 | import PhobosSwiftCore
29 | import PhobosSwiftLog
30 |
31 | class PBSGrowth: PBSModule {}
32 |
--------------------------------------------------------------------------------
/PhobosSwift/Growth/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftGrowth
2 | ================
3 | # Features
4 | - 空
5 |
6 | # Requirements
7 | - iOS 10.0 or later
8 | - Xcode 11.0 or later
9 | - cocoapods 1.10.0 or later
10 |
11 |
12 | # How To Use
13 | - swift
14 |
15 | ```
16 | import PhobosSwiftGrowth
17 |
18 | ```
19 |
20 | # Installation
21 | ## Podfile
22 |
23 | ```
24 | platform :ios, '10.0'
25 | use_frameworks!
26 | pod 'PhobosSwiftGrowth', '~> 0.1.0'
27 | ```
28 |
29 |
30 | # Author
31 | [Restless Developer](https://github.com/restlesscode)
32 |
33 |
34 |
35 | # Licenses
36 | All source code is licensed under the [MIT License](../../LICENSE).
37 |
--------------------------------------------------------------------------------
/PhobosSwift/Growth/Tests/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Growth/Tests/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Hades/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Hades/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Hades/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Hades/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Hades/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftHades
2 | ================
3 | # Features
4 | - 广告封装
5 |
6 | # Requirements
7 | - iOS 10.0 or later
8 | - Xcode 11.0 or later
9 | - cocoapods 1.10.0 or later
10 |
11 |
12 | # How To Use
13 | - swift
14 |
15 | ```
16 |
17 | import PhobosSwiftHades
18 |
19 | let viewController = UIViewController()
20 | let bannerView = PBSBannerAd().createBannerView(bannerType: .google, rootViewController: viewController)
21 |
22 | ```
23 |
24 | # Installation
25 | ## Podfile
26 |
27 | ```
28 | platform :ios, '10.0'
29 | use_frameworks!
30 | pod 'PhobosSwiftHades', '~> 0.1.0'
31 | ```
32 |
33 |
34 | # Author
35 | [Restless Developer](https://github.com/restlesscode)
36 |
37 |
38 |
39 | # Licenses
40 | All source code is licensed under the [MIT License](../../LICENSE).
41 |
--------------------------------------------------------------------------------
/PhobosSwift/Location/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Location/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Location/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftLocation
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Location/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Location/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Location/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftLocation
2 | ================
3 | # Features
4 | - Extensions
5 | ```
6 | CLLocationCoordinate2D(坐标系转换、距离计算)
7 | CLLocationManager(定位、导航)
8 | MKLocalSearch(关键字搜索)
9 | MKMapItem、MKMapRect
10 | PhobosSwiftLocation
11 | ```
12 | - Utils
13 |
14 | ```
15 | PBSClusterManager(管理地图标注、缩放level等)
16 | PBSLocation(管理定位授权)
17 | ```
18 |
19 |
20 | # Requirements
21 | - iOS 10.0 or later
22 | - Xcode 11.0 or later
23 | - cocoapods 1.10.0 or later
24 |
25 |
26 | # How To Use
27 | - swift
28 |
29 | ```
30 | import PhobosSwiftLocation
31 |
32 | let WGSLocation = CLLocationCoordinate2D(latitude: 31.30018852172415, longitude: 121.29127298178801)
33 | let location = WGSLocation.pbs.WGS84ToGCJ02
34 | ```
35 |
36 | # Installation
37 | ## Podfile
38 |
39 | ```
40 | platform :ios, '10.0'
41 | use_frameworks!
42 | pod 'PhobosSwiftLocation', '~> 0.1.0'
43 | ```
44 |
45 |
46 | # Author
47 | [Restless Developer](https://github.com/restlesscode)
48 |
49 |
50 |
51 | # Licenses
52 | All source code is licensed under the [MIT License](../../LICENSE).
53 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Log/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Log/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftLog
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Log/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/PBSLoggerRecord.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PBSLoggerRecord.swift
3 | // PhobosSwiftLog
4 | //
5 | // Created by Wenda on 6/29/21.
6 | //
7 |
8 | import CloudKit
9 | import Foundation
10 |
11 | public class PBSLoggerModel: Codable {
12 | let ckRecord: PBSLoggerRecord
13 | }
14 |
15 | public class PBSLoggerRecord: Codable {
16 | let type: String
17 | let properties: [Column]
18 |
19 | var record: CKRecord {
20 | let record = CKRecord(recordType: type)
21 | return record
22 | }
23 | }
24 |
25 | public struct Column: Codable {
26 | let name: String
27 | let type: String
28 | }
29 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/Destinations/AppleSystemLogDestination.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppleSystemLogDestination.swift
3 | // XCGLogger: https://github.com/DaveWoodCom/XCGLogger
4 | //
5 | // Created by Dave Wood on 2014-06-06.
6 | // Copyright © 2014 Dave Wood, Cerebral Gardens.
7 | // Some rights reserved: https://github.com/DaveWoodCom/XCGLogger/blob/master/LICENSE.txt
8 | //
9 |
10 | import Dispatch
11 | import Foundation
12 |
13 | // MARK: - AppleSystemLogDestination
14 |
15 | /// A standard destination that outputs log details to the Apple System Log using NSLog instead of print
16 | open class AppleSystemLogDestination: BaseQueuedDestination {
17 | // MARK: - Properties
18 |
19 | /// Option: whether or not to output the date the log was created (Always false for this destination)
20 | override open var showDate: Bool {
21 | get {
22 | false
23 | }
24 | set {
25 | // ignored, NSLog adds the date, so we always want showDate to be false in this subclass
26 | }
27 | }
28 |
29 | // MARK: - Overridden Methods
30 |
31 | /// Print the log to the Apple System Log facility (using NSLog).
32 | ///
33 | /// - Parameters:
34 | /// - message: Formatted/processed message ready for output.
35 | ///
36 | /// - Returns: Nothing
37 | ///
38 | override open func write(logDetails: LogDetails, message: String) {
39 | NSLog("%@", message)
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/Extensions/DispatchQueue+XCGAdditions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DispatchQueue+XCGAdditions.swift
3 | // XCGLogger: https://github.com/DaveWoodCom/XCGLogger
4 | //
5 | // Created by Dave Wood on 2016-08-26.
6 | // Copyright © 2016 Dave Wood, Cerebral Gardens.
7 | // Some rights reserved: https://github.com/DaveWoodCom/XCGLogger/blob/master/LICENSE.txt
8 | //
9 |
10 | import Dispatch
11 |
12 | /// Extensions to the DispatchQueue class
13 | extension DispatchQueue {
14 | /// Extract the current dispatch queue's label name (Temp workaround until this is added to Swift 3.0 properly)
15 | public static var currentQueueLabel: String? {
16 | String(validatingUTF8: __dispatch_queue_get_label(nil))
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/Filters/DevFilter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DevFilter.swift
3 | // XCGLogger: https://github.com/DaveWoodCom/XCGLogger
4 | //
5 | // Created by Dave Wood on 2016-09-01.
6 | // Copyright © 2016 Dave Wood, Cerebral Gardens.
7 | // Some rights reserved: https://github.com/DaveWoodCom/XCGLogger/blob/master/LICENSE.txt
8 | //
9 |
10 | // MARK: - DevFilter
11 |
12 | /// Filter log messages by devs
13 | open class DevFilter: UserInfoFilter {
14 | /// Initializer to create an inclusion list of devs to match against
15 | ///
16 | /// Note: Only log messages with a specific dev will be logged, all others will be excluded
17 | ///
18 | /// - Parameters:
19 | /// - devs: Set or Array of devs to match against.
20 | ///
21 | override public init(includeFrom devs: S) where S.Iterator.Element == String {
22 | super.init(includeFrom: devs)
23 | userInfoKey = XCGLogger.Constants.userInfoKeyDevs
24 | }
25 |
26 | /// Initializer to create an exclusion list of devs to match against
27 | ///
28 | /// Note: Log messages with a specific dev will be excluded from logging
29 | ///
30 | /// - Parameters:
31 | /// - devs: Set or Array of devs to match against.
32 | ///
33 | override public init(excludeFrom devs: S) where S.Iterator.Element == String {
34 | super.init(excludeFrom: devs)
35 | userInfoKey = XCGLogger.Constants.userInfoKeyDevs
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/Filters/FilterProtocol.swift:
--------------------------------------------------------------------------------
1 | //
2 | // FilterProtocol.swift
3 | // XCGLogger: https://github.com/DaveWoodCom/XCGLogger
4 | //
5 | // Created by Dave Wood on 2016-08-31.
6 | // Copyright © 2016 Dave Wood, Cerebral Gardens.
7 | // Some rights reserved: https://github.com/DaveWoodCom/XCGLogger/blob/master/LICENSE.txt
8 | //
9 |
10 | // MARK: - FilterProtocol
11 |
12 | /// Protocol for log filter classes to conform to
13 | public protocol FilterProtocol: CustomDebugStringConvertible {
14 | /// Check if the log message should be excluded from logging.
15 | ///
16 | /// - Parameters:
17 | /// - logDetails: The log details.
18 | /// - message: Formatted/processed message ready for output.
19 | ///
20 | /// - Returns:
21 | /// - true: Drop this log message.
22 | /// - false: Keep this log message and continue processing.
23 | ///
24 | func shouldExclude(logDetails: inout LogDetails, message: inout String) -> Bool
25 | }
26 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/Filters/TagFilter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TagFilter.swift
3 | // XCGLogger: https://github.com/DaveWoodCom/XCGLogger
4 | //
5 | // Created by Dave Wood on 2016-09-01.
6 | // Copyright © 2016 Dave Wood, Cerebral Gardens.
7 | // Some rights reserved: https://github.com/DaveWoodCom/XCGLogger/blob/master/LICENSE.txt
8 | //
9 |
10 | // MARK: - TagFilter
11 |
12 | /// Filter log messages by tags
13 | open class TagFilter: UserInfoFilter {
14 | /// Initializer to create an inclusion list of tags to match against
15 | ///
16 | /// Note: Only log messages with a specific tag will be logged, all others will be excluded
17 | ///
18 | /// - Parameters:
19 | /// - tags: Set or Array of tags to match against.
20 | ///
21 | override public init(includeFrom tags: S) where S.Iterator.Element == String {
22 | super.init(includeFrom: tags)
23 | userInfoKey = XCGLogger.Constants.userInfoKeyTags
24 | }
25 |
26 | /// Initializer to create an exclusion list of tags to match against
27 | ///
28 | /// Note: Log messages with a specific tag will be excluded from logging
29 | ///
30 | /// - Parameters:
31 | /// - tags: Set or Array of tags to match against.
32 | ///
33 | override public init(excludeFrom tags: S) where S.Iterator.Element == String {
34 | super.init(excludeFrom: tags)
35 | userInfoKey = XCGLogger.Constants.userInfoKeyTags
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/LogFormatters/LogFormatterProtocol.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LogFormatterProtocol.swift
3 | // XCGLogger: https://github.com/DaveWoodCom/XCGLogger
4 | //
5 | // Created by Dave Wood on 2016-08-30.
6 | // Copyright © 2016 Dave Wood, Cerebral Gardens.
7 | // Some rights reserved: https://github.com/DaveWoodCom/XCGLogger/blob/master/LICENSE.txt
8 | //
9 |
10 | // MARK: - LogFormatterProtocol
11 |
12 | /// Protocol for log formatter classes to conform to
13 | public protocol LogFormatterProtocol: CustomDebugStringConvertible {
14 | /// Apply some additional formatting to the message if appropriate.
15 | ///
16 | /// - Parameters:
17 | /// - logDetails: The log details.
18 | /// - message: Formatted/processed message ready for output.
19 | ///
20 | /// - Returns: Nothing
21 | ///
22 | @discardableResult func format(logDetails: inout LogDetails, message: inout String) -> String
23 | }
24 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/LogFormatters/Optional/gitkeeper.txt:
--------------------------------------------------------------------------------
1 | This directory intentionally left blank, for now...
2 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/ObjectiveC/gitkeeper.txt:
--------------------------------------------------------------------------------
1 | This directory intentionally left blank, for now...
2 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/iOS/Info-iOS.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | $(CURRENT_PROJECT_VERSION)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | NSHumanReadableCopyright
24 | Copyright © 2014 Dave Wood, Cerebral Gardens.
25 | NSPrincipalClass
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/macOS/Info-macOS.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | $(CURRENT_PROJECT_VERSION)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | NSHumanReadableCopyright
24 | Copyright © 2014 Dave Wood, Cerebral Gardens.
25 | NSPrincipalClass
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/Classes/Privatized+third+party+code/XCGLogger/tvOS/Info-tvOS.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | $(CURRENT_PROJECT_VERSION)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | NSHumanReadableCopyright
24 | Copyright © 2014 Dave Wood, Cerebral Gardens.
25 | NSPrincipalClass
26 |
27 | UIRequiredDeviceCapabilities
28 |
29 | arm64
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/PhobosSwift/Log/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftLog
2 | ================
3 | # Installation
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_back_wh.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "btn_common_back_wh@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "btn_common_back_wh@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_back_wh.imageset/btn_common_back_wh@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_back_wh.imageset/btn_common_back_wh@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_back_wh.imageset/btn_common_back_wh@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_back_wh.imageset/btn_common_back_wh@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_close_wh.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "btn_common_close_wh@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "btn_common_close_wh@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_close_wh.imageset/btn_common_close_wh@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_close_wh.imageset/btn_common_close_wh@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_close_wh.imageset/btn_common_close_wh@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_close_wh.imageset/btn_common_close_wh@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_delete_wh.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "btn_common_delete_wh@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "btn_common_delete_wh@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_delete_wh.imageset/btn_common_delete_wh@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_delete_wh.imageset/btn_common_delete_wh@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_delete_wh.imageset/btn_common_delete_wh@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_delete_wh.imageset/btn_common_delete_wh@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_forward_wh.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "btn_common_forward_wh@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "btn_common_forward_wh@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_forward_wh.imageset/btn_common_forward_wh@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_forward_wh.imageset/btn_common_forward_wh@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/btn_common_forward_wh.imageset/btn_common_forward_wh@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/btn_common_forward_wh.imageset/btn_common_forward_wh@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/black_white.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.000",
9 | "green" : "0.000",
10 | "red" : "0.000"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "1.000",
27 | "green" : "1.000",
28 | "red" : "1.000"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/color_divider.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.906",
9 | "green" : "0.906",
10 | "red" : "0.906"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.224",
27 | "green" : "0.220",
28 | "red" : "0.220"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/color_search_bg.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.949",
9 | "green" : "0.949",
10 | "red" : "0.949"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.180",
27 | "green" : "0.169",
28 | "red" : "0.149"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/divider.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.965",
9 | "green" : "0.957",
10 | "red" : "0.949"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.000",
27 | "green" : "0.000",
28 | "red" : "0.000"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/error_red.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.000",
9 | "green" : "0.000",
10 | "red" : "0.878"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey1_black.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.945",
9 | "green" : "0.941",
10 | "red" : "0.937"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.000",
27 | "green" : "0.000",
28 | "red" : "0.000"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey1_grey6.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.945",
9 | "green" : "0.941",
10 | "red" : "0.937"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.318",
27 | "green" : "0.306",
28 | "red" : "0.290"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey1_grey7.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.945",
9 | "green" : "0.941",
10 | "red" : "0.937"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.137",
27 | "green" : "0.125",
28 | "red" : "0.102"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey216_grey6.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.847",
9 | "green" : "0.847",
10 | "red" : "0.847"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.318",
27 | "green" : "0.306",
28 | "red" : "0.290"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey242_black.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.969",
9 | "green" : "0.949",
10 | "red" : "0.949"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.000",
27 | "green" : "0.000",
28 | "red" : "0.000"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey2_grey6.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.796",
9 | "green" : "0.792",
10 | "red" : "0.788"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.318",
27 | "green" : "0.306",
28 | "red" : "0.290"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey4.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.506",
9 | "green" : "0.498",
10 | "red" : "0.486"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey5_b0.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.412",
9 | "green" : "0.400",
10 | "red" : "0.384"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.698",
27 | "green" : "0.694",
28 | "red" : "0.690"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey5_grey3.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.412",
9 | "green" : "0.400",
10 | "red" : "0.384"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.698",
27 | "green" : "0.694",
28 | "red" : "0.690"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/grey9_grey10.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.318",
9 | "green" : "0.306",
10 | "red" : "0.290"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.796",
27 | "green" : "0.792",
28 | "red" : "0.788"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/line.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.949",
9 | "green" : "0.949",
10 | "red" : "0.949"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "light"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.949",
27 | "green" : "0.949",
28 | "red" : "0.949"
29 | }
30 | },
31 | "idiom" : "universal"
32 | },
33 | {
34 | "appearances" : [
35 | {
36 | "appearance" : "luminosity",
37 | "value" : "dark"
38 | }
39 | ],
40 | "color" : {
41 | "color-space" : "srgb",
42 | "components" : {
43 | "alpha" : "1.000",
44 | "blue" : "0.224",
45 | "green" : "0.212",
46 | "red" : "0.196"
47 | }
48 | },
49 | "idiom" : "universal"
50 | }
51 | ],
52 | "info" : {
53 | "author" : "xcode",
54 | "version" : 1
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/livechat_mes_bg.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.224",
9 | "green" : "0.212",
10 | "red" : "0.196"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "1.000",
27 | "green" : "1.000",
28 | "red" : "1.000"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/porsche_red.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.110",
9 | "green" : "0.000",
10 | "red" : "0.835"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/premium_gold.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.518",
9 | "green" : "0.776",
10 | "red" : "0.906"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/shadow.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.812",
9 | "green" : "0.780",
10 | "red" : "0.741"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.118",
27 | "green" : "0.110",
28 | "red" : "0.110"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/soulful_blue.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.957",
9 | "green" : "0.686",
10 | "red" : "0.000"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/success_green.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.275",
9 | "green" : "0.824",
10 | "red" : "0.075"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/vehicle_tint.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.224",
9 | "green" : "0.212",
10 | "red" : "0.200"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.604",
27 | "green" : "0.596",
28 | "red" : "0.588"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/warning_yellow.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.212",
9 | "green" : "0.698",
10 | "red" : "0.886"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/white_grey7.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "1.000",
9 | "green" : "1.000",
10 | "red" : "1.000"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.137",
27 | "green" : "0.125",
28 | "red" : "0.102"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/colors/white_grey8.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "1.000",
9 | "green" : "1.000",
10 | "red" : "1.000"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "1.000",
26 | "blue" : "0.094",
27 | "green" : "0.078",
28 | "red" : "0.055"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/delete_close.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "delete_close@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/delete_close.imageset/delete_close@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/delete_close.imageset/delete_close@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/delete_open.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "delete_open@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/delete_open.imageset/delete_open@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/delete_open.imageset/delete_open@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_back@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_back.imageset/editor_back@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_back.imageset/editor_back@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_cancel.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_cancel@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_cancel.imageset/editor_cancel@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_cancel.imageset/editor_cancel@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_cj.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_cj@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_cj.imageset/editor_cj@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_cj.imageset/editor_cj@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_dl.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_dl@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_dl.imageset/editor_dl@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_dl.imageset/editor_dl@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_dl_s.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_dl_s@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_dl_s.imageset/editor_dl_s@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_dl_s.imageset/editor_dl_s@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_fk.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_fk@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_fk.imageset/editor_fk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_fk.imageset/editor_fk@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_fk_s.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_fk_s@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_fk_s.imageset/editor_fk_s@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_fk_s.imageset/editor_fk_s@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_masaike.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_masaike@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_masaike.imageset/editor_masaike@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_masaike.imageset/editor_masaike@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_masaike_s.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_masaike_s@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_masaike_s.imageset/editor_masaike_s@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_masaike_s.imageset/editor_masaike_s@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_mosaic_brush.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "EditMosaicBrush@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "EditMosaicBrush@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_mosaic_brush.imageset/EditMosaicBrush@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_mosaic_brush.imageset/EditMosaicBrush@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_mosaic_brush.imageset/EditMosaicBrush@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_mosaic_brush.imageset/EditMosaicBrush@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_rotate.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_rotate@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_rotate.imageset/editor_rotate@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_rotate.imageset/editor_rotate@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_sure.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_sure@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_sure.imageset/editor_sure@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_sure.imageset/editor_sure@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_wenzi.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_wenzi@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_wenzi.imageset/editor_wenzi@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_wenzi.imageset/editor_wenzi@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_wenzi_s.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "editor_wenzi_s@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_wenzi_s.imageset/editor_wenzi_s@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/editor_wenzi_s.imageset/editor_wenzi_s@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/mosaic_type_1.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "mosaic_type_1@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/mosaic_type_1.imageset/mosaic_type_1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/mosaic_type_1.imageset/mosaic_type_1@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/mosaic_type_1_s.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "mosaic_type_1_s@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Assets/Media.xcassets/image-edit/mosaic_type_1_s.imageset/mosaic_type_1_s@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Media/Assets/Media.xcassets/image-edit/mosaic_type_1_s.imageset/mosaic_type_1_s@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/PhobosSwiftMedia.swift:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // PhobosSwiftMedia.swift
4 | // PhobosSwiftMedia
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import UIKit
28 |
29 | class PhobosSwiftMedia: NSObject {}
30 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/Privatized+third+party+code/SKPhotoBrowser/SKCacheable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SKCacheable.swift
3 | // SKPhotoBrowser
4 | //
5 | // Created by Kevin Wolkober on 6/13/16.
6 | // Copyright © 2016 suzuki_keishi. All rights reserved.
7 | //
8 |
9 | import UIKit.UIImage
10 |
11 | ///
12 | public protocol SKCacheable {}
13 |
14 | ///
15 | public protocol SKImageCacheable: SKCacheable {
16 | func imageForKey(_ key: String) -> UIImage?
17 | func setImage(_ image: UIImage, forKey key: String)
18 | func removeImageForKey(_ key: String)
19 | func removeAllImages()
20 | }
21 |
22 | public protocol SKRequestResponseCacheable: SKCacheable {
23 | func cachedResponseForRequest(_ request: URLRequest) -> CachedURLResponse?
24 | func storeCachedResponse(_ cachedResponse: CachedURLResponse, forRequest request: URLRequest)
25 | }
26 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/Privatized+third+party+code/SKPhotoBrowser/SKDetectingView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SKDetectingView.swift
3 | // SKPhotoBrowser
4 | //
5 | // Created by suzuki_keishi on 2015/10/01.
6 | // Copyright © 2015 suzuki_keishi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @objc protocol SKDetectingViewDelegate {
12 | func handleSingleTap(_ view: UIView, touch: UITouch)
13 | func handleDoubleTap(_ view: UIView, touch: UITouch)
14 | }
15 |
16 | class SKDetectingView: UIView {
17 | weak var delegate: SKDetectingViewDelegate?
18 |
19 | override func touchesEnded(_ touches: Set, with event: UIEvent?) {
20 | super.touchesEnded(touches, with: event)
21 | defer {
22 | _ = next
23 | }
24 |
25 | guard let touch = touches.first else {
26 | return
27 | }
28 | switch touch.tapCount {
29 | case 1: handleSingleTap(touch)
30 | case 2: handleDoubleTap(touch)
31 | default: break
32 | }
33 | }
34 |
35 | func handleSingleTap(_ touch: UITouch) {
36 | delegate?.handleSingleTap(self, touch: touch)
37 | }
38 |
39 | func handleDoubleTap(_ touch: UITouch) {
40 | delegate?.handleDoubleTap(self, touch: touch)
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/Privatized+third+party+code/SKPhotoBrowser/SKIndicatorView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SKIndicatorView.swift
3 | // SKPhotoBrowser
4 | //
5 | // Created by suzuki_keishi on 2015/10/09.
6 | // Copyright © 2015 suzuki_keishi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class SKIndicatorView: UIActivityIndicatorView {
12 | required init(coder aDecoder: NSCoder) {
13 | super.init(coder: aDecoder)
14 | }
15 |
16 | override init(frame: CGRect) {
17 | super.init(frame: frame)
18 | center = CGPoint(x: frame.width / 2, y: frame.height / 2)
19 | style = SKPhotoBrowserOptions.indicatorStyle
20 | color = SKPhotoBrowserOptions.indicatorColor
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/Privatized+third+party+code/SKPhotoBrowser/SKMesurement.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SKMesurement.swift
3 | // SKPhotoBrowser
4 | //
5 | // Created by 鈴木 啓司 on 2016/08/09.
6 | // Copyright © 2016年 suzuki_keishi. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import UIKit
11 |
12 | struct SKMesurement {
13 | static let isPhone: Bool = UIDevice.current.userInterfaceIdiom == .phone
14 | static let isPad: Bool = UIDevice.current.userInterfaceIdiom == .pad
15 | static var statusBarH: CGFloat {
16 | UIApplication.pbs_shared?.statusBarFrame.height ?? 0.0
17 | }
18 |
19 | static var screenHeight: CGFloat {
20 | UIApplication.pbs_shared?.preferredApplicationWindow?.bounds.height ?? UIScreen.main.bounds.height
21 | }
22 |
23 | static var screenWidth: CGFloat {
24 | UIApplication.pbs_shared?.preferredApplicationWindow?.bounds.width ?? UIScreen.main.bounds.width
25 | }
26 |
27 | static var screenScale: CGFloat {
28 | UIScreen.main.scale
29 | }
30 |
31 | static var screenRatio: CGFloat {
32 | screenWidth / screenHeight
33 | }
34 |
35 | static var isPhoneX: Bool {
36 | if isPhone && UIScreen.main.nativeBounds.height == 2436 {
37 | return true
38 | }
39 | return false
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/Privatized+third+party+code/SKPhotoBrowser/SKPhotoBrowser.h:
--------------------------------------------------------------------------------
1 | //
2 | // SKPhotoBrowser.h
3 | // SKPhotoBrowser
4 | //
5 | // Created by 鈴木 啓司 on 2015/10/09.
6 | // Copyright © 2015年 suzuki_keishi. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for SKPhotoBrowser.
12 | FOUNDATION_EXPORT double SKPhotoBrowserVersionNumber;
13 |
14 | //! Project version string for SKPhotoBrowser.
15 | FOUNDATION_EXPORT const unsigned char SKPhotoBrowserVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 |
20 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/Privatized+third+party+code/SKPhotoBrowser/UIApplication+UIWindow.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+UIWindow.swift
3 | // SKPhotoBrowser
4 | //
5 | // Created by Josef Dolezal on 25/09/2017.
6 | // Copyright © 2017 suzuki_keishi. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension UIApplication {
12 | internal var preferredApplicationWindow: UIWindow? {
13 | // Since delegate window is of type UIWindow??, we have to
14 | // unwrap it twice to be sure the window is not nil
15 | if let appWindow = UIApplication.pbs_shared?.delegate?.window, let window = appWindow {
16 | return window
17 | } else if let window = UIApplication.pbs_shared?.keyWindow {
18 | return window
19 | }
20 |
21 | return nil
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/Classes/Privatized+third+party+code/SKPhotoBrowser/extensions/UIView+Radius.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Radius.swift
3 | // SKPhotoBrowser
4 | //
5 | // Created by K Rummler on 15/03/16.
6 | // Copyright © 2016 suzuki_keishi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | extension UIView {
12 | func addCornerRadiusAnimation(_ from: CGFloat, to: CGFloat, duration: CFTimeInterval) {
13 | let animation = CABasicAnimation(keyPath: "cornerRadius")
14 | animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.linear)
15 | animation.fromValue = from
16 | animation.toValue = to
17 | animation.duration = duration
18 | layer.add(animation, forKey: "cornerRadius")
19 | layer.cornerRadius = to
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Media/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftUIMedia
2 | ================
3 | # Features
4 | - Camera: 相机
5 | - ImageEditor: 图片编辑
6 | - ImageSelector: 图片选择
7 | - ImagePreview: 图片预览
8 |
9 |
10 |
11 | # Requirements
12 | - iOS 10.0 or later
13 | - Xcode 11.0 or later
14 | - cocoapods 1.10.0 or later
15 |
16 |
17 | # How To Use
18 | - swift
19 |
20 | ```
21 |
22 | import PhobosSwiftUIMedia
23 |
24 | let viewController = PBSImageBrower.PreviewViewController()
25 | viewController.setOtherData([:])
26 |
27 | ```
28 |
29 | # Installation
30 | ## Podfile
31 |
32 | ```
33 | platform :ios, '10.0'
34 | use_frameworks!
35 | pod 'PhobosSwiftUIMedia', '~> 0.1.0'
36 | ```
37 |
38 |
39 | # Author
40 | [Restless Developer](https://github.com/restlesscode)
41 |
42 |
43 |
44 | # Licenses
45 | All source code is licensed under the [MIT License](../../LICENSE).
46 |
--------------------------------------------------------------------------------
/PhobosSwift/Network/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Network/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Network/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Network/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Network/Classes/PBSNetwork.swift:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // PBSNetwork.swift
4 | // PhobosSwiftNetwork
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import Foundation
28 |
29 | public class PBSNetwork: NSObject {}
30 |
--------------------------------------------------------------------------------
/PhobosSwift/Network/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftNetwork
2 | ================
3 | # Features
4 | - PBSNetwork: Api请求
5 | - Extensions for CocoaMQTT: CocoaMQTT封装
6 | - PBSCertificatePinner: SSL Pinning
7 | - PBSNetwork.Reachability: 网络状态监听
8 | - Session: 会话管理
9 |
10 | # Requirements
11 | - iOS 10.0 or later
12 | - Xcode 11.0 or later
13 | - cocoapods 1.10.0 or later
14 |
15 |
16 | # How To Use
17 | - swift
18 |
19 | ```
20 | import PhobosSwiftNetwork
21 |
22 | struct APIRequestResponse: Codable {
23 | let errorcode: String
24 | let errormsg: String
25 | }
26 |
27 | func request() {
28 | PBSNetwork.APIRequest.request("https://xxx.com", method: .get).then { (result: Result) in
29 | switch result {
30 | case let .success(model):
31 | if model.errorcode == "0" {
32 |
33 | } else {
34 |
35 | }
36 | case let .failure(error):
37 | NSLog("request error: \(error.localizedDescription)")
38 | }
39 | }
40 | }
41 |
42 | ```
43 |
44 | # Installation
45 | ## Podfile
46 |
47 | ```
48 | platform :ios, '10.0'
49 | use_frameworks!
50 | pod 'PhobosSwiftNetwork', '~> 0.1.0'
51 | ```
52 |
53 |
54 | # Author
55 | [Restless Developer](https://github.com/restlesscode)
56 |
57 |
58 |
59 | # Licenses
60 | All source code is licensed under the [MIT License](../../LICENSE).
61 |
--------------------------------------------------------------------------------
/PhobosSwift/Payment/Alipay/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Payment/Alipay/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Payment/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Payment/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Payment/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Payment/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Payment/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftPayment
2 | ================
3 | # Features
4 | - IAP: 内购封装
5 | - PaymentAppDelegateSwizzler: 微信、支付宝、IAP支付回调封装
6 |
7 |
8 | # Requirements
9 | - iOS 10.0 or later
10 | - Xcode 11.0 or later
11 | - cocoapods 1.10.0 or later
12 |
13 |
14 | # How To Use
15 | - swift
16 |
17 | ```
18 | import PhobosSwiftPayment
19 |
20 | PBSPayment.shared()
21 |
22 | ```
23 |
24 | # Installation
25 | ## Podfile
26 |
27 | ```
28 | platform :ios, '10.0'
29 | use_frameworks!
30 | pod 'PhobosSwiftPayment', '~> 0.1.0'
31 | ```
32 |
33 |
34 | # Author
35 | [Restless Developer](https://github.com/restlesscode)
36 |
37 |
38 |
39 | # Licenses
40 | All source code is licensed under the [MIT License](../../LICENSE).
41 |
--------------------------------------------------------------------------------
/PhobosSwift/Payment/Tests/Codebase-Service-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PlistVersion
6 | 0.1.0
7 | CodebasePush
8 |
9 | Aliyun
10 |
11 | AppKey
12 | 27856970
13 | AppSecret
14 | 336fdc2769c2aacb588255efb6e39652
15 |
16 |
17 | CodebaseLog
18 |
19 | MaxFileSize
20 | 1048576
21 | MaxTimeInterval
22 | 86400
23 | MaxLogFiles
24 | 5
25 | iCloudContainerIdentifier
26 | iCloud.cn.porsche.app-inhouse
27 |
28 | InternalBuildVersion
29 | 0.1.0
30 |
31 |
32 |
--------------------------------------------------------------------------------
/PhobosSwift/Payment/Tests/Test.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Bundle.swift
3 | // CodebaseCore
4 | //
5 | // Created by Theo Chen on 2019/4/18.
6 | //
7 | import CodebaseCore
8 | import Foundation
9 | import XCTest
10 |
11 | /// Test the enhanced features of Bundle class is implemented in this extension
12 | class BundleTest: XCTestCase {
13 | override func setUp() {
14 | super.setUp()
15 | }
16 |
17 | override func tearDown() {
18 | super.tearDown()
19 | }
20 |
21 | // func testBundle_forMainBundle() {
22 | // let currentBundle = Bundle.cob_bundle(with:CodebaseCore.self)
23 | // XCTAssertNotNil(currentBundle.bundlePath)
24 | // XCTAssertNotNil(currentBundle.resourcePath)
25 | // XCTAssertNotNil(currentBundle.executablePath)
26 | // }
27 | }
28 |
--------------------------------------------------------------------------------
/PhobosSwift/Payment/Wechatpay/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Payment/Wechatpay/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Persistence/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Persistence/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Persistence/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftPersistence
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Persistence/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Persistence/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Persistence/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftPersistence
2 | ================
3 | # Features
4 | - Realm: Realm封装
5 |
6 |
7 | # Requirements
8 | - iOS 10.0 or later
9 | - Xcode 11.0 or later
10 | - cocoapods 1.10.0 or later
11 |
12 |
13 | # How To Use
14 | - swift
15 |
16 | ```
17 | import PhobosSwiftPersistence
18 |
19 | let realm = Realm.pbs.makeRealm()
20 | ```
21 |
22 | # Installation
23 | ## Podfile
24 |
25 | ```
26 | platform :ios, '10.0'
27 | use_frameworks!
28 | pod 'PhobosSwiftPersistence', '~> 0.1.0'
29 | ```
30 |
31 |
32 | # Author
33 | [Restless Developer](https://github.com/restlesscode)
34 |
35 |
36 |
37 | # Licenses
38 | All source code is licensed under the [MIT License](../../LICENSE).
39 |
--------------------------------------------------------------------------------
/PhobosSwift/Push/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Push/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Push/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftPush
2 | ================
3 | # Changelog
4 |
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Push/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftPush
2 | ================
3 | # Features
4 | - Nitifications: 注册、接收、推送
5 |
6 |
7 | # Requirements
8 | - iOS 10.0 or later
9 | - Xcode 11.0 or later
10 | - cocoapods 1.10.0 or later
11 |
12 |
13 | # How To Use
14 | - swift
15 |
16 | ```
17 |
18 | import PhobosSwiftPush
19 |
20 | PBSPush.shared.registerRemoteNotifications { status in
21 |
22 | } onError: { error in
23 |
24 | } onSuccess: { data in
25 |
26 | }
27 |
28 | ```
29 |
30 | # Installation
31 | ## Podfile
32 |
33 | ```
34 | platform :ios, '10.0'
35 | use_frameworks!
36 | pod 'PhobosSwiftPush', '~> 0.1.0'
37 | ```
38 |
39 |
40 | # Author
41 | [Restless Developer](https://github.com/restlesscode)
42 |
43 |
44 |
45 | # Licenses
46 | All source code is licensed under the [MIT License](../../LICENSE).
47 |
--------------------------------------------------------------------------------
/PhobosSwift/Push/Tests/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Push/Tests/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Router/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Router/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Router/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Router/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Router/Classes/Privatized+third+party+code/URLNavigator/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Suyeol Jeon (xoul.kr)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/PhobosSwift/Router/Classes/Privatized+third+party+code/URLNavigator/URLMatcher/URLMatchResult.swift:
--------------------------------------------------------------------------------
1 | /// Represents an URL match result.
2 | public struct URLMatchResult {
3 | /// The url pattern that was matched.
4 | public let pattern: String
5 |
6 | /// The values extracted from the URL placeholder.
7 | public let values: [String: Any]
8 | }
9 |
--------------------------------------------------------------------------------
/PhobosSwift/Router/Classes/Privatized+third+party+code/URLNavigator/URLMatcher/URLPatchComponentMatchResult.swift:
--------------------------------------------------------------------------------
1 | enum URLPathComponentMatchResult {
2 | case matches((key: String, value: Any)?)
3 | case notMatches
4 | }
5 |
--------------------------------------------------------------------------------
/PhobosSwift/Router/Classes/Privatized+third+party+code/URLNavigator/URLMatcher/URLPathComponent.swift:
--------------------------------------------------------------------------------
1 | enum URLPathComponent {
2 | case plain(String)
3 | case placeholder(type: String?, key: String)
4 | }
5 |
6 | extension URLPathComponent {
7 | init(_ value: String) {
8 | if value.hasPrefix("<") && value.hasSuffix(">") {
9 | let start = value.index(after: value.startIndex)
10 | let end = value.index(before: value.endIndex)
11 | let placeholder = value[start.." -> "int:id"
12 | let typeAndKey = placeholder.components(separatedBy: ":")
13 | if typeAndKey.count == 1 { // any-type placeholder
14 | self = .placeholder(type: nil, key: typeAndKey[0])
15 | } else if typeAndKey.count == 2 {
16 | self = .placeholder(type: typeAndKey[0], key: typeAndKey[1])
17 | } else {
18 | self = .plain(value)
19 | }
20 | } else {
21 | self = .plain(value)
22 | }
23 | }
24 | }
25 |
26 | extension URLPathComponent: Equatable {
27 | static func ==(lhs: URLPathComponent, rhs: URLPathComponent) -> Bool {
28 | switch (lhs, rhs) {
29 | case let (.plain(leftValue), .plain(rightValue)):
30 | return leftValue == rightValue
31 |
32 | case let (.placeholder(leftType, leftKey), .placeholder(rightType, key: rightKey)):
33 | return (leftType == rightType) && (leftKey == rightKey)
34 |
35 | default:
36 | return false
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/PhobosSwift/Router/Classes/Privatized+third+party+code/URLNavigator/URLNavigator/NavigatorDelegate.swift:
--------------------------------------------------------------------------------
1 | #if os(iOS) || os(tvOS)
2 | import UIKit
3 |
4 | public protocol NavigatorDelegate: AnyObject {
5 | /// Returns whether the navigator should push the view controller or not. It returns `true` for
6 | /// default.
7 | func shouldPush(viewController: UIViewController, from: UINavigationControllerType) -> Bool
8 |
9 | /// Returns whether the navigator should present the view controller or not. It returns `true`
10 | /// for default.
11 | func shouldPresent(viewController: UIViewController, from: UIViewControllerType) -> Bool
12 |
13 | /// Returns whether the navigator should show the view controller or not. It returns `true` for
14 | /// default.
15 | func shouldShow(viewController: UIViewController, from: UIViewControllerType) -> Bool
16 | }
17 |
18 | extension NavigatorDelegate {
19 | ///
20 | public func shouldPush(viewController: UIViewController,
21 | from: UINavigationControllerType) -> Bool {
22 | true
23 | }
24 |
25 | ///
26 | public func shouldPresent(viewController: UIViewController,
27 | from: UIViewControllerType) -> Bool {
28 | true
29 | }
30 |
31 | ///
32 | public func shouldShow(viewController: UIViewController,
33 | from: UIViewControllerType) -> Bool {
34 | true
35 | }
36 | }
37 | #endif
38 |
--------------------------------------------------------------------------------
/PhobosSwift/Router/Classes/Privatized+third+party+code/URLNavigator/URLNavigator/UIViewControllerType.swift:
--------------------------------------------------------------------------------
1 | #if os(iOS) || os(tvOS)
2 | import UIKit
3 |
4 | ///
5 | public protocol UINavigationControllerType {
6 | ///
7 | func pushViewController(_ viewController: UIViewController, animated: Bool)
8 | }
9 |
10 | ///
11 | public protocol UIViewControllerType {
12 | ///
13 | func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)?)
14 | ///
15 | func show(_ vc: UIViewController, sender: Any?)
16 | }
17 |
18 | extension UINavigationController: UINavigationControllerType {}
19 | extension UIViewController: UIViewControllerType {}
20 | #endif
21 |
--------------------------------------------------------------------------------
/PhobosSwift/Router/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftRouter
2 | ================
3 | # Features
4 | - URLNavigator
5 | - URLMatcher
6 | - PBSRouter
7 |
8 |
9 | # Requirements
10 | - iOS 10.0 or later
11 | - Xcode 11.0 or later
12 | - cocoapods 1.10.0 or later
13 |
14 |
15 | # How To Use
16 | - swift
17 |
18 | ```
19 |
20 | import PhobosSwiftRouter
21 |
22 | let router = PBSRouter.default
23 | router.configure()
24 | router.register("testURL/HelloViewController") { url, _, _ -> UIViewController? in
25 | print(url.urlStringValue == "testURL/HelloViewController")
26 | print(url.urlStringValue)
27 | return UIViewController()
28 | }
29 |
30 | ```
31 |
32 | # Installation
33 | ## Podfile
34 |
35 | ```
36 | platform :ios, '10.0'
37 | use_frameworks!
38 | pod 'PhobosSwiftRouter', '~> 0.1.0'
39 | ```
40 |
41 |
42 | # Author
43 | [Restless Developer](https://github.com/restlesscode)
44 |
45 |
46 |
47 | # Licenses
48 | All source code is licensed under the [MIT License](../../LICENSE).
49 |
--------------------------------------------------------------------------------
/PhobosSwift/Slideout/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Slideout/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Slideout/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Slideout/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Slideout/Classes/PhobosSwiftSlideout.swift:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // PhobosSwiftSlideout.swift
4 | // PhobosSwiftSlideout
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import PhobosSwiftCore
28 | import UIKit
29 |
30 | /// 暂时为空类
31 | public class PhobosSwiftSlideout {}
32 |
--------------------------------------------------------------------------------
/PhobosSwift/Slideout/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftSlideout
2 | ================
3 | # Features
4 | - 抽屉式转场动画ViewController
5 |
6 | # Requirements
7 | - iOS 10.0 or later
8 | - Xcode 11.0 or later
9 | - cocoapods 1.10.0 or later
10 |
11 |
12 | # How To Use
13 | - swift
14 |
15 | ```
16 | import PhobosSwiftSlideout
17 |
18 | let viewController = UIViewController()
19 | let slideViewController = PBSSlideViewController(centerViewController: viewController, style: .scaled)
20 |
21 | ```
22 |
23 | # Installation
24 | ## Podfile
25 |
26 | ```
27 | platform :ios, '10.0'
28 | use_frameworks!
29 | pod 'PhobosSwiftSlideout', '~> 0.1.0'
30 | ```
31 |
32 |
33 | # Author
34 | [Restless Developer](https://github.com/restlesscode)
35 |
36 |
37 |
38 | # Licenses
39 | All source code is licensed under the [MIT License](../../LICENSE).
40 |
--------------------------------------------------------------------------------
/PhobosSwift/Splash/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Splash/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Splash/Assets/Media.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/PhobosSwift/Splash/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Splash/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Splash/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftSplash
2 | ================
3 | # Features
4 | - APP进入后台时默认展示页
5 |
6 |
7 | # Requirements
8 | - iOS 10.0 or later
9 | - Xcode 11.0 or later
10 | - cocoapods 1.10.0 or later
11 |
12 |
13 | # How To Use
14 | - swift
15 |
16 | ```
17 |
18 | import PhobosSwiftSplash
19 |
20 | PBSSplash.shared.configuration
21 | ```
22 |
23 | # Installation
24 | ## Podfile
25 |
26 | ```
27 | platform :ios, '10.0'
28 | use_frameworks!
29 | pod 'PhobosSwiftSplash', '~> 0.1.0'
30 | ```
31 |
32 |
33 | # Author
34 | [Restless Developer](https://github.com/restlesscode)
35 |
36 |
37 |
38 | # Licenses
39 | All source code is licensed under the [MIT License](../../LICENSE).
40 |
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/debug.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "debug@2.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "debug@3.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/debug.imageset/debug@2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/debug.imageset/debug@2.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/debug.imageset/debug@3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/debug.imageset/debug@3.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/preproduction.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "preproduction@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "preproduction@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/preproduction.imageset/preproduction@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/preproduction.imageset/preproduction@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/preproduction.imageset/preproduction@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/preproduction.imageset/preproduction@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/release.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "release@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "release@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/release.imageset/release@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/release.imageset/release@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/release.imageset/release@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/release.imageset/release@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/staging.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "staging@2.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "staging@3.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/staging.imageset/staging@2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/staging.imageset/staging@2.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Assets/Media.xcassets/staging.imageset/staging@3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Assets/Media.xcassets/staging.imageset/staging@3.png
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/TestKnight/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/TestKnight/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftTestKnight
2 | ================
3 | # Features
4 | - 测试环境工具
5 |
6 |
7 | # Requirements
8 | - iOS 10.0 or later
9 | - Xcode 11.0 or later
10 | - cocoapods 1.10.0 or later
11 |
12 |
13 | # How To Use
14 | - swift
15 |
16 | ```
17 |
18 | import PhobosSwiftTestKnight
19 |
20 | let testKnight = PBSTestKnight.shared
21 | if testKnight.configuration == .debug {
22 |
23 | }
24 | ```
25 |
26 | # Installation
27 | ## Podfile
28 |
29 | ```
30 | platform :ios, '10.0'
31 | use_frameworks!
32 | pod 'PhobosSwiftTestKnight', '~> 0.1.0'
33 | ```
34 |
35 |
36 | # Author
37 | [Restless Developer](https://github.com/restlesscode)
38 |
39 |
40 |
41 | # Licenses
42 | All source code is licensed under the [MIT License](../../LICENSE).
43 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_error.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "error@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "error@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_error.imageset/error@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_error.imageset/error@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_error.imageset/error@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_error.imageset/error@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_info.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "blink@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "blink@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_info.imageset/blink@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_info.imageset/blink@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_info.imageset/blink@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_info.imageset/blink@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_success.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "happy@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "happy@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_success.imageset/happy@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_success.imageset/happy@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_success.imageset/happy@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_success.imageset/happy@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_warning.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "sad@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "sad@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_warning.imageset/sad@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_warning.imageset/sad@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_warning.imageset/sad@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/message_bar_warning.imageset/sad@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "sample@2x.jpg",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "sample@3x.jpg",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder.imageset/sample@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder.imageset/sample@2x.jpg
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder.imageset/sample@3x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder.imageset/sample@3x.jpg
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder1.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "news_placeholder@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "filename" : "news_placeholder@3x.png",
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder1.imageset/news_placeholder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder1.imageset/news_placeholder@2x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder1.imageset/news_placeholder@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Assets/Media.xcassets/news_placeholder1.imageset/news_placeholder@3x.png
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // Localizable.strings
4 | // PhobosSwiftUIComponent
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | "LANG" = "en";
28 | "MORE_ABOUT" = "MORE POST ABOUT ";
29 |
30 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/ghost/prism-css.min.js:
--------------------------------------------------------------------------------
1 | !function(s){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/@[\w-]+/}},url:{pattern:RegExp("url\\((?:"+t.source+"|[^\n\r()]*)\\)","i"),inside:{function:/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+t.source+")*?(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var e=s.languages.markup;e&&(e.tag.addInlined("style","css"),s.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:e.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:s.languages.css}},alias:"language-css"}},e.tag))}(Prism);
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/ghost/prism-okaidia.min.css:
--------------------------------------------------------------------------------
1 | code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}
2 | /*# sourceMappingURL=prism-okaidia.min.css.map */
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Assets/zh-Hans.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // Localizable.strings
4 | // PhobosSwiftUIComponent
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 |
28 | "LANG" = "zh-Hans";
29 | "MORE_ABOUT" = "MORE POST ABOUT ";
30 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/API/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/API/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/Kits/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/Kits/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/Models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/Models/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/PhobosSwiftArticle.swift:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // PhobosSwiftArticle.swift
4 | // PhobosSwiftUIComponent
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import Foundation
28 |
29 | public class PhobosSwiftArticle: NSObject {}
30 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/UIKits/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/UIKits/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/ViewModels/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/ViewModels/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/Views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/Views/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/Views/Cells/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/Views/Cells/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/Views/Layouts/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/Views/Layouts/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/Views/ViewControllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/Views/ViewControllers/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/PBSArticle/Views/Views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/UIComponent/Classes/PBSArticle/Views/Views/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Charts/BubbleChartView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BubbleChartView.swift
3 | // Charts
4 | //
5 | // Bubble chart implementation:
6 | // Copyright 2015 Pierre-Marc Airoldi
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | open class BubbleChartView: BarLineChartViewBase, BubbleChartDataProvider {
16 | override open func initialize() {
17 | super.initialize()
18 |
19 | renderer = BubbleChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
20 | }
21 |
22 | // MARK: - BubbleChartDataProvider
23 |
24 | open var bubbleData: BubbleChartData? { _data as? BubbleChartData }
25 | }
26 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Charts/CandleStickChartView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CandleStickChartView.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | /// Financial chart type that draws candle-sticks.
16 | open class CandleStickChartView: BarLineChartViewBase, CandleChartDataProvider {
17 | override internal func initialize() {
18 | super.initialize()
19 |
20 | renderer = CandleStickChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
21 |
22 | xAxis.spaceMin = 0.5
23 | xAxis.spaceMax = 0.5
24 | }
25 |
26 | // MARK: - CandleChartDataProvider
27 |
28 | open var candleData: CandleChartData? {
29 | _data as? CandleChartData
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Charts/LineChartView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LineChartView.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | /// Chart that draws lines, surfaces, circles, ...
16 | open class LineChartView: BarLineChartViewBase, LineChartDataProvider {
17 | override internal func initialize() {
18 | super.initialize()
19 |
20 | renderer = LineChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
21 | }
22 |
23 | // MARK: - LineChartDataProvider
24 |
25 | open var lineData: LineChartData? { _data as? LineChartData }
26 | }
27 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Charts/ScatterChartView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScatterChartView.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | /// The ScatterChart. Draws dots, triangles, squares and custom shapes into the chartview.
16 | open class ScatterChartView: BarLineChartViewBase, ScatterChartDataProvider {
17 | override open func initialize() {
18 | super.initialize()
19 |
20 | renderer = ScatterChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
21 |
22 | xAxis.spaceMin = 0.5
23 | xAxis.spaceMax = 0.5
24 | }
25 |
26 | // MARK: - ScatterChartDataProvider
27 |
28 | open var scatterData: ScatterChartData? { _data as? ScatterChartData }
29 | }
30 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Components/ComponentBase.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ComponentBase.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | /// This class encapsulates everything both Axis, Legend and LimitLines have in common
16 | @objc(ChartComponentBase)
17 | open class ComponentBase: NSObject {
18 | /// flag that indicates if this component is enabled or not
19 | @objc open var enabled = true
20 |
21 | /// The offset this component has on the x-axis
22 | /// **default**: 5.0
23 | @objc open var xOffset = CGFloat(5.0)
24 |
25 | /// The offset this component has on the x-axis
26 | /// **default**: 5.0 (or 0.0 on ChartYAxis)
27 | @objc open var yOffset = CGFloat(5.0)
28 |
29 | override public init() {
30 | super.init()
31 | }
32 |
33 | @objc open var isEnabled: Bool { enabled }
34 | }
35 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BarLineScatterCandleBubbleChartData.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import Foundation
13 |
14 | open class BarLineScatterCandleBubbleChartData: ChartData {
15 | override public init() {
16 | super.init()
17 | }
18 |
19 | override public init(dataSets: [IChartDataSet]?) {
20 | super.init(dataSets: dataSets)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BarLineScatterCandleBubbleChartDataSet.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | open class BarLineScatterCandleBubbleChartDataSet: ChartDataSet, IBarLineScatterCandleBubbleChartDataSet
16 | {
17 | // MARK: - Data functions and accessors
18 |
19 | // MARK: - Styling functions and accessors
20 |
21 | open var highlightColor = NSUIColor(red: 255.0 / 255.0, green: 187.0 / 255.0, blue: 115.0 / 255.0, alpha: 1.0)
22 | open var highlightLineWidth = CGFloat(0.5)
23 | open var highlightLineDashPhase = CGFloat(0.0)
24 | open var highlightLineDashLengths: [CGFloat]?
25 |
26 | // MARK: - NSCopying
27 |
28 | override open func copy(with zone: NSZone? = nil) -> Any {
29 | let copy = super.copy(with: zone) as! BarLineScatterCandleBubbleChartDataSet
30 | copy.highlightColor = highlightColor
31 | copy.highlightLineWidth = highlightLineWidth
32 | copy.highlightLineDashPhase = highlightLineDashPhase
33 | copy.highlightLineDashLengths = highlightLineDashLengths
34 | return copy
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/BubbleChartData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BubbleChartData.swift
3 | // Charts
4 | //
5 | // Bubble chart implementation:
6 | // Copyright 2015 Pierre-Marc Airoldi
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | open class BubbleChartData: BarLineScatterCandleBubbleChartData {
16 | override public init() {
17 | super.init()
18 | }
19 |
20 | override public init(dataSets: [IChartDataSet]?) {
21 | super.init(dataSets: dataSets)
22 | }
23 |
24 | /// Sets the width of the circle that surrounds the bubble when highlighted for all DataSet objects this data object contains
25 | @objc open func setHighlightCircleWidth(_ width: CGFloat) {
26 | (_dataSets as? [IBubbleChartDataSet])?.forEach { $0.highlightCircleWidth = width }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/CandleChartData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CandleChartData.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import Foundation
13 |
14 | open class CandleChartData: BarLineScatterCandleBubbleChartData {
15 | override public init() {
16 | super.init()
17 | }
18 |
19 | override public init(dataSets: [IChartDataSet]?) {
20 | super.init(dataSets: dataSets)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/LineChartData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LineChartData.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import Foundation
13 |
14 | /// Data object that encapsulates all data associated with a LineChart.
15 | open class LineChartData: ChartData {
16 | override public init() {
17 | super.init()
18 | }
19 |
20 | override public init(dataSets: [IChartDataSet]?) {
21 | super.init(dataSets: dataSets)
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/RadarChartData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RadarChartData.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | open class RadarChartData: ChartData {
16 | @objc open var highlightColor = NSUIColor(red: 255.0 / 255.0, green: 187.0 / 255.0, blue: 115.0 / 255.0, alpha: 1.0)
17 | @objc open var highlightLineWidth = CGFloat(1.0)
18 | @objc open var highlightLineDashPhase = CGFloat(0.0)
19 | @objc open var highlightLineDashLengths: [CGFloat]?
20 |
21 | /// Sets labels that should be drawn around the RadarChart at the end of each web line.
22 | @objc open var labels = [String]()
23 |
24 | /// Sets the labels that should be drawn around the RadarChart at the end of each web line.
25 | open func setLabels(_ labels: String...) {
26 | self.labels = labels
27 | }
28 |
29 | override public init() {
30 | super.init()
31 | }
32 |
33 | override public init(dataSets: [IChartDataSet]?) {
34 | super.init(dataSets: dataSets)
35 | }
36 |
37 | override open func entryForHighlight(_ highlight: Highlight) -> ChartDataEntry? {
38 | getDataSetByIndex(highlight.dataSetIndex)?.entryForIndex(Int(highlight.x))
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RadarChartDataEntry.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | open class RadarChartDataEntry: ChartDataEntry {
16 | public required init() {
17 | super.init()
18 | }
19 |
20 | /// - Parameters:
21 | /// - value: The value on the y-axis.
22 | @objc public init(value: Double) {
23 | super.init(x: .nan, y: value)
24 | }
25 |
26 | /// - Parameters:
27 | /// - value: The value on the y-axis.
28 | /// - data: Spot for additional data this Entry represents.
29 | @objc public convenience init(value: Double, data: Any?) {
30 | self.init(value: value)
31 | self.data = data
32 | }
33 |
34 | // MARK: Data property accessors
35 |
36 | @objc open var value: Double {
37 | get { y }
38 | set { y = newValue }
39 | }
40 |
41 | // MARK: NSCopying
42 |
43 | override open func copy(with zone: NSZone? = nil) -> Any {
44 | let copy = super.copy(with: zone) as! RadarChartDataEntry
45 |
46 | return copy
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Implementations/Standard/ScatterChartData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScatterChartData.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | open class ScatterChartData: BarLineScatterCandleBubbleChartData {
16 | override public init() {
17 | super.init()
18 | }
19 |
20 | override public init(dataSets: [IChartDataSet]?) {
21 | super.init(dataSets: dataSets)
22 | }
23 |
24 | /// - Returns: The maximum shape-size across all DataSets.
25 | @objc open func getGreatestShapeSize() -> CGFloat {
26 | (_dataSets as? [IScatterChartDataSet])?
27 | .max { $0.scatterShapeSize < $1.scatterShapeSize }?
28 | .scatterShapeSize ?? 0
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Interfaces/IBarLineScatterCandleBubbleChartDataSet.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IBarLineScatterCandleBubbleChartDataSet.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol IBarLineScatterCandleBubbleChartDataSet: IChartDataSet {
17 | // MARK: - Data functions and accessors
18 |
19 | // MARK: - Styling functions and accessors
20 |
21 | var highlightColor: NSUIColor { get set }
22 | var highlightLineWidth: CGFloat { get set }
23 | var highlightLineDashPhase: CGFloat { get set }
24 | var highlightLineDashLengths: [CGFloat]? { get set }
25 | }
26 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Interfaces/IBubbleChartDataSet.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IBubbleChartDataSet.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol IBubbleChartDataSet: IBarLineScatterCandleBubbleChartDataSet {
17 | // MARK: - Data functions and accessors
18 |
19 | var maxSize: CGFloat { get }
20 | var isNormalizeSizeEnabled: Bool { get }
21 |
22 | // MARK: - Styling functions and accessors
23 |
24 | /// Sets/gets the width of the circle that surrounds the bubble when highlighted
25 | var highlightCircleWidth: CGFloat { get set }
26 | }
27 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Interfaces/ILineScatterCandleRadarChartDataSet.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ILineScatterCandleRadarChartDataSet.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import Foundation
13 |
14 | @objc
15 | public protocol ILineScatterCandleRadarChartDataSet: IBarLineScatterCandleBubbleChartDataSet {
16 | // MARK: - Data functions and accessors
17 |
18 | // MARK: - Styling functions and accessors
19 |
20 | /// Enables / disables the horizontal highlight-indicator. If disabled, the indicator is not drawn.
21 | var drawHorizontalHighlightIndicatorEnabled: Bool { get set }
22 |
23 | /// Enables / disables the vertical highlight-indicator. If disabled, the indicator is not drawn.
24 | var drawVerticalHighlightIndicatorEnabled: Bool { get set }
25 |
26 | /// `true` if horizontal highlight indicator lines are enabled (drawn)
27 | var isHorizontalHighlightIndicatorEnabled: Bool { get }
28 |
29 | /// `true` if vertical highlight indicator lines are enabled (drawn)
30 | var isVerticalHighlightIndicatorEnabled: Bool { get }
31 |
32 | /// Enables / disables both vertical and horizontal highlight-indicators.
33 | /// :param: enabled
34 | func setDrawHighlightIndicators(_ enabled: Bool)
35 | }
36 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Interfaces/IRadarChartDataSet.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IRadarChartDataSet.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol IRadarChartDataSet: ILineRadarChartDataSet {
17 | // MARK: - Data functions and accessors
18 |
19 | // MARK: - Styling functions and accessors
20 |
21 | /// flag indicating whether highlight circle should be drawn or not
22 | var drawHighlightCircleEnabled: Bool { get set }
23 |
24 | var isDrawHighlightCircleEnabled: Bool { get }
25 |
26 | var highlightCircleFillColor: NSUIColor? { get set }
27 |
28 | /// The stroke color for highlight circle.
29 | /// If `nil`, the color of the dataset is taken.
30 | var highlightCircleStrokeColor: NSUIColor? { get set }
31 |
32 | var highlightCircleStrokeAlpha: CGFloat { get set }
33 |
34 | var highlightCircleInnerRadius: CGFloat { get set }
35 |
36 | var highlightCircleOuterRadius: CGFloat { get set }
37 |
38 | var highlightCircleStrokeWidth: CGFloat { get set }
39 | }
40 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Data/Interfaces/IScatterChartDataSet.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IScatterChartDataSet.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol IScatterChartDataSet: ILineScatterCandleRadarChartDataSet {
17 | // MARK: - Data functions and accessors
18 |
19 | // MARK: - Styling functions and accessors
20 |
21 | /// The size the scatter shape will have
22 | var scatterShapeSize: CGFloat { get }
23 |
24 | /// - Returns: The radius of the hole in the shape (applies to Square, Circle and Triangle)
25 | /// Set this to <= 0 to remove holes.
26 | /// **default**: 0.0
27 | var scatterShapeHoleRadius: CGFloat { get }
28 |
29 | /// - Returns: Color for the hole in the shape. Setting to `nil` will behave as transparent.
30 | /// **default**: nil
31 | var scatterShapeHoleColor: NSUIColor? { get }
32 |
33 | /// The IShapeRenderer responsible for rendering this DataSet.
34 | var shapeRenderer: IShapeRenderer? { get }
35 | }
36 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Formatters/IAxisValueFormatter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IAxisValueFormatter.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import Foundation
13 |
14 | /// An interface for providing custom axis Strings.
15 | @objc(IChartAxisValueFormatter)
16 | public protocol IAxisValueFormatter: AnyObject {
17 | /// Called when a value from an axis is formatted before being drawn.
18 | ///
19 | /// For performance reasons, avoid excessive calculations and memory allocations inside this method.
20 | ///
21 | /// - Parameters:
22 | /// - value: the value that is currently being drawn
23 | /// - axis: the axis that the value belongs to
24 | /// - Returns: The customized label that is drawn on the x-axis.
25 | func stringForValue(_ value: Double,
26 | axis: AxisBase?) -> String
27 | }
28 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Formatters/IFillFormatter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IFillFormatter.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | /// Protocol for providing a custom logic to where the filling line of a LineDataSet should end. This of course only works if setFillEnabled(...) is set to true.
16 | @objc(IChartFillFormatter)
17 | public protocol IFillFormatter {
18 | /// - Returns: The vertical (y-axis) position where the filled-line of the LineDataSet should end.
19 | func getFillLinePosition(dataSet: ILineChartDataSet, dataProvider: LineChartDataProvider) -> CGFloat
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Formatters/IndexAxisValueFormatter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IndexAxisValueFormatter.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import Foundation
13 |
14 | /// This formatter is used for passing an array of x-axis labels, on whole x steps.
15 | @objc(ChartIndexAxisValueFormatter)
16 | open class IndexAxisValueFormatter: NSObject, IAxisValueFormatter {
17 | private var _values = [String]()
18 | private var _valueCount: Int = 0
19 |
20 | @objc public var values: [String] {
21 | get {
22 | _values
23 | }
24 | set {
25 | _values = newValue
26 | _valueCount = _values.count
27 | }
28 | }
29 |
30 | override public init() {
31 | super.init()
32 | }
33 |
34 | @objc public init(values: [String]) {
35 | super.init()
36 |
37 | self.values = values
38 | }
39 |
40 | @objc public static func with(values: [String]) -> IndexAxisValueFormatter? {
41 | IndexAxisValueFormatter(values: values)
42 | }
43 |
44 | open func stringForValue(_ value: Double,
45 | axis: AxisBase?) -> String
46 | {
47 | let index = Int(value.rounded())
48 | guard values.indices.contains(index), index == Int(value) else { return "" }
49 | return _values[index]
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Highlight/IHighlighter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IHighlighter.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc(IChartHighlighter)
16 | public protocol IHighlighter: AnyObject {
17 | /// - Parameters:
18 | /// - x:
19 | /// - y:
20 | /// - Returns: A Highlight object corresponding to the given x- and y- touch positions in pixels.
21 | func getHighlight(x: CGFloat, y: CGFloat) -> Highlight?
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Highlight/PieHighlighter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PieHighlighter.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc(PieChartHighlighter)
16 | open class PieHighlighter: PieRadarHighlighter {
17 | override open func closestHighlight(index: Int, x: CGFloat, y: CGFloat) -> Highlight? {
18 | guard
19 | let set = chart?.data?.dataSets[0],
20 | let entry = set.entryForIndex(index)
21 | else { return nil }
22 |
23 | return Highlight(x: Double(index), y: entry.y, xPx: x, yPx: y, dataSetIndex: 0, axis: set.axisDependency)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Highlight/Range.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Range.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import Foundation
13 |
14 | @objc(ChartRange)
15 | open class Range: NSObject {
16 | @objc open var from: Double
17 | @objc open var to: Double
18 |
19 | @objc public init(from: Double, to: Double) {
20 | self.from = from
21 | self.to = to
22 |
23 | super.init()
24 | }
25 |
26 | /// - Parameters:
27 | /// - value:
28 | /// - Returns: `true` if this range contains (if the value is in between) the given value, `false` ifnot.
29 | @objc open func contains(_ value: Double) -> Bool {
30 | if value > from && value <= to {
31 | return true
32 | } else {
33 | return false
34 | }
35 | }
36 |
37 | @objc open func isLarger(_ value: Double) -> Bool {
38 | value > to
39 | }
40 |
41 | @objc open func isSmaller(_ value: Double) -> Bool {
42 | value < from
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/BarChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BarChartDataProvider.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol BarChartDataProvider: BarLineScatterCandleBubbleChartDataProvider {
17 | var barData: BarChartData? { get }
18 |
19 | var isDrawBarShadowEnabled: Bool { get }
20 | var isDrawValueAboveBarEnabled: Bool { get }
21 | var isHighlightFullBarEnabled: Bool { get }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/BarLineScatterCandleBubbleChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BarLineScatterCandleBubbleChartDataProvider.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol BarLineScatterCandleBubbleChartDataProvider: ChartDataProvider {
17 | func getTransformer(forAxis: YAxis.AxisDependency) -> Transformer
18 | func isInverted(axis: YAxis.AxisDependency) -> Bool
19 |
20 | var lowestVisibleX: Double { get }
21 | var highestVisibleX: Double { get }
22 | }
23 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/BubbleChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BubbleChartDataProvider.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol BubbleChartDataProvider: BarLineScatterCandleBubbleChartDataProvider {
17 | var bubbleData: BubbleChartData? { get }
18 | }
19 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/CandleChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CandleChartDataProvider.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol CandleChartDataProvider: BarLineScatterCandleBubbleChartDataProvider {
17 | var candleData: CandleChartData? { get }
18 | }
19 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/ChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChartDataProvider.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol ChartDataProvider {
17 | /// The minimum x-value of the chart, regardless of zoom or translation.
18 | var chartXMin: Double { get }
19 |
20 | /// The maximum x-value of the chart, regardless of zoom or translation.
21 | var chartXMax: Double { get }
22 |
23 | /// The minimum y-value of the chart, regardless of zoom or translation.
24 | var chartYMin: Double { get }
25 |
26 | /// The maximum y-value of the chart, regardless of zoom or translation.
27 | var chartYMax: Double { get }
28 |
29 | var maxHighlightDistance: CGFloat { get }
30 |
31 | var xRange: Double { get }
32 |
33 | var centerOffsets: CGPoint { get }
34 |
35 | var data: ChartData? { get }
36 |
37 | var maxVisibleCount: Int { get }
38 | }
39 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/CombinedChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CombinedChartDataProvider.swoft
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol CombinedChartDataProvider: LineChartDataProvider, BarChartDataProvider, BubbleChartDataProvider, CandleChartDataProvider, ScatterChartDataProvider
17 | {
18 | var combinedData: CombinedChartData? { get }
19 | }
20 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/LineChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LineChartDataProvider.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol LineChartDataProvider: BarLineScatterCandleBubbleChartDataProvider {
17 | var lineData: LineChartData? { get }
18 |
19 | func getAxis(_ axis: YAxis.AxisDependency) -> YAxis
20 | }
21 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Interfaces/ScatterChartDataProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScatterChartDataProvider.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol ScatterChartDataProvider: BarLineScatterCandleBubbleChartDataProvider {
17 | var scatterData: ScatterChartData? { get }
18 | }
19 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Jobs/AnimatedMoveViewJob.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AnimatedMoveViewJob.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | open class AnimatedMoveViewJob: AnimatedViewPortJob {
16 | override internal func animationUpdate() {
17 | guard
18 | let viewPortHandler = viewPortHandler,
19 | let transformer = transformer,
20 | let view = view
21 | else { return }
22 |
23 | var pt = CGPoint(x: xOrigin + (CGFloat(xValue) - xOrigin) * phase,
24 | y: yOrigin + (CGFloat(yValue) - yOrigin) * phase)
25 |
26 | transformer.pointValueToPixel(&pt)
27 | viewPortHandler.centerViewPort(pt: pt, chart: view)
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Jobs/MoveViewJob.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MoveViewJob.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc(MoveChartViewJob)
16 | open class MoveViewJob: ViewPortJob {
17 | override open func doJob() {
18 | guard
19 | let viewPortHandler = viewPortHandler,
20 | let transformer = transformer,
21 | let view = view
22 | else { return }
23 |
24 | var pt = CGPoint(x: xValue,
25 | y: yValue)
26 |
27 | transformer.pointValueToPixel(&pt)
28 | viewPortHandler.centerViewPort(pt: pt, chart: view)
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Jobs/ViewPortJob.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewPortJob.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | // This defines a viewport modification job, used for delaying or animating viewport changes
16 | @objc(ChartViewPortJob)
17 | open class ViewPortJob: NSObject {
18 | internal var point = CGPoint()
19 | internal weak var viewPortHandler: ViewPortHandler?
20 | internal var xValue: Double = 0.0
21 | internal var yValue: Double = 0.0
22 | internal weak var transformer: Transformer?
23 | internal weak var view: ChartViewBase?
24 |
25 | @objc public init(viewPortHandler: ViewPortHandler,
26 | xValue: Double,
27 | yValue: Double,
28 | transformer: Transformer,
29 | view: ChartViewBase)
30 | {
31 | super.init()
32 |
33 | self.viewPortHandler = viewPortHandler
34 | self.xValue = xValue
35 | self.yValue = yValue
36 | self.transformer = transformer
37 | self.view = view
38 | }
39 |
40 | @objc open func doJob() {
41 | fatalError("`doJob()` must be overridden by subclasses")
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Renderers/Renderer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Renderer.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc(ChartRenderer)
16 | open class Renderer: NSObject {
17 | /// the component that handles the drawing area of the chart and it's offsets
18 | @objc public let viewPortHandler: ViewPortHandler
19 |
20 | @objc public init(viewPortHandler: ViewPortHandler) {
21 | self.viewPortHandler = viewPortHandler
22 | super.init()
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChevronDownShapeRenderer.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 | import CoreGraphics
12 | import Foundation
13 |
14 | open class ChevronDownShapeRenderer: NSObject, IShapeRenderer {
15 | open func renderShape(context: CGContext,
16 | dataSet: IScatterChartDataSet,
17 | viewPortHandler: ViewPortHandler,
18 | point: CGPoint,
19 | color: NSUIColor)
20 | {
21 | let shapeSize = dataSet.scatterShapeSize
22 | let shapeHalf = shapeSize / 2.0
23 |
24 | context.setLineWidth(1.0)
25 | context.setStrokeColor(color.cgColor)
26 |
27 | context.beginPath()
28 | context.move(to: CGPoint(x: point.x, y: point.y + 2 * shapeHalf))
29 | context.addLine(to: CGPoint(x: point.x + 2 * shapeHalf, y: point.y))
30 | context.move(to: CGPoint(x: point.x, y: point.y + 2 * shapeHalf))
31 | context.addLine(to: CGPoint(x: point.x - 2 * shapeHalf, y: point.y))
32 | context.strokePath()
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChevronUpShapeRenderer.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 | import CoreGraphics
12 | import Foundation
13 |
14 | open class ChevronUpShapeRenderer: NSObject, IShapeRenderer {
15 | open func renderShape(context: CGContext,
16 | dataSet: IScatterChartDataSet,
17 | viewPortHandler: ViewPortHandler,
18 | point: CGPoint,
19 | color: NSUIColor)
20 | {
21 | let shapeSize = dataSet.scatterShapeSize
22 | let shapeHalf = shapeSize / 2.0
23 |
24 | context.setLineWidth(1.0)
25 | context.setStrokeColor(color.cgColor)
26 |
27 | context.beginPath()
28 | context.move(to: CGPoint(x: point.x, y: point.y - 2 * shapeHalf))
29 | context.addLine(to: CGPoint(x: point.x + 2 * shapeHalf, y: point.y))
30 | context.move(to: CGPoint(x: point.x, y: point.y - 2 * shapeHalf))
31 | context.addLine(to: CGPoint(x: point.x - 2 * shapeHalf, y: point.y))
32 | context.strokePath()
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Renderers/Scatter/CrossShapeRenderer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CrossShapeRenderer.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 | import CoreGraphics
12 | import Foundation
13 |
14 | open class CrossShapeRenderer: NSObject, IShapeRenderer {
15 | open func renderShape(context: CGContext,
16 | dataSet: IScatterChartDataSet,
17 | viewPortHandler: ViewPortHandler,
18 | point: CGPoint,
19 | color: NSUIColor)
20 | {
21 | let shapeSize = dataSet.scatterShapeSize
22 | let shapeHalf = shapeSize / 2.0
23 |
24 | context.setLineWidth(1.0)
25 | context.setStrokeColor(color.cgColor)
26 |
27 | context.beginPath()
28 | context.move(to: CGPoint(x: point.x - shapeHalf, y: point.y))
29 | context.addLine(to: CGPoint(x: point.x + shapeHalf, y: point.y))
30 | context.move(to: CGPoint(x: point.x, y: point.y - shapeHalf))
31 | context.addLine(to: CGPoint(x: point.x, y: point.y + shapeHalf))
32 | context.strokePath()
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Renderers/Scatter/IShapeRenderer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IShapeRenderer.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc
16 | public protocol IShapeRenderer: AnyObject {
17 | /// Renders the provided ScatterDataSet with a shape.
18 | ///
19 | /// - Parameters:
20 | /// - context: CGContext for drawing on
21 | /// - dataSet: The DataSet to be drawn
22 | /// - viewPortHandler: Contains information about the current state of the view
23 | /// - point: Position to draw the shape at
24 | /// - color: Color to draw the shape
25 | func renderShape(context: CGContext,
26 | dataSet: IScatterChartDataSet,
27 | viewPortHandler: ViewPortHandler,
28 | point: CGPoint,
29 | color: NSUIColor)
30 | }
31 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Renderers/Scatter/XShapeRenderer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // XShapeRenderer.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 | import CoreGraphics
12 | import Foundation
13 |
14 | open class XShapeRenderer: NSObject, IShapeRenderer {
15 | open func renderShape(context: CGContext,
16 | dataSet: IScatterChartDataSet,
17 | viewPortHandler: ViewPortHandler,
18 | point: CGPoint,
19 | color: NSUIColor)
20 | {
21 | let shapeSize = dataSet.scatterShapeSize
22 | let shapeHalf = shapeSize / 2.0
23 |
24 | context.setLineWidth(1.0)
25 | context.setStrokeColor(color.cgColor)
26 |
27 | context.beginPath()
28 | context.move(to: CGPoint(x: point.x - shapeHalf, y: point.y - shapeHalf))
29 | context.addLine(to: CGPoint(x: point.x + shapeHalf, y: point.y + shapeHalf))
30 | context.move(to: CGPoint(x: point.x + shapeHalf, y: point.y - shapeHalf))
31 | context.addLine(to: CGPoint(x: point.x - shapeHalf, y: point.y + shapeHalf))
32 | context.strokePath()
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Utils/Platform+Color.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Platform+Color.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | #if canImport(UIKit)
13 | import UIKit
14 |
15 | public typealias NSUIColor = UIColor
16 | private func fetchLabelColor() -> UIColor {
17 | if #available(iOS 13, tvOS 13, *) {
18 | return .label
19 | } else {
20 | return .black
21 | }
22 | }
23 |
24 | private let labelColor: UIColor = fetchLabelColor()
25 |
26 | extension UIColor {
27 | static var labelOrBlack: UIColor { labelColor }
28 | }
29 | #endif
30 |
31 | #if canImport(AppKit) && !targetEnvironment(macCatalyst)
32 |
33 | import AppKit
34 |
35 | public typealias NSUIColor = NSColor
36 | private func fetchLabelColor() -> NSColor {
37 | if #available(macOS 10.14, *) {
38 | return .labelColor
39 | } else {
40 | return .black
41 | }
42 | }
43 |
44 | private let labelColor: NSColor = fetchLabelColor()
45 |
46 | extension NSColor {
47 | static var labelOrBlack: NSColor { labelColor }
48 | }
49 | #endif
50 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Charts/Utils/TransformerHorizontalBarChart.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TransformerHorizontalBarChart.swift
3 | // Charts
4 | //
5 | // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
6 | // A port of MPAndroidChart for iOS
7 | // Licensed under Apache License 2.0
8 | //
9 | // https://github.com/danielgindi/Charts
10 | //
11 |
12 | import CoreGraphics
13 | import Foundation
14 |
15 | @objc(ChartTransformerHorizontalBarChart)
16 | open class TransformerHorizontalBarChart: Transformer {
17 | /// Prepares the matrix that contains all offsets.
18 | override open func prepareMatrixOffset(inverted: Bool) {
19 | if !inverted {
20 | _matrixOffset = CGAffineTransform(translationX: _viewPortHandler.offsetLeft, y: _viewPortHandler.chartHeight - _viewPortHandler.offsetBottom)
21 | } else {
22 | _matrixOffset = CGAffineTransform(scaleX: -1.0, y: 1.0)
23 | _matrixOffset = _matrixOffset.translatedBy(x: -(_viewPortHandler.chartWidth - _viewPortHandler.offsetRight),
24 | y: _viewPortHandler.chartHeight - _viewPortHandler.offsetBottom)
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Cosmos/CosmosLayerHelper.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | /// Helper class for creating CALayer objects.
4 | class CosmosLayerHelper {
5 | /**
6 |
7 | Creates a text layer for the given text string and font.
8 |
9 | - parameter text: The text shown in the layer.
10 | - parameter font: The text font. It is also used to calculate the layer bounds.
11 | - parameter color: Text color.
12 |
13 | - returns: New text layer.
14 |
15 | */
16 | class func createTextLayer(_ text: String, font: UIFont, color: UIColor) -> CATextLayer {
17 | let size = NSString(string: text).size(withAttributes: [NSAttributedString.Key.font: font])
18 |
19 | let layer = CATextLayer()
20 | layer.bounds = CGRect(origin: CGPoint(), size: size)
21 | layer.anchorPoint = CGPoint()
22 |
23 | layer.string = text
24 | layer.font = CGFont(font.fontName as CFString)
25 | layer.fontSize = font.pointSize
26 | layer.foregroundColor = color.cgColor
27 | layer.contentsScale = UIScreen.main.scale
28 |
29 | return layer
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Cosmos/CosmosSize.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | /**
4 |
5 | Helper class for calculating size for the cosmos view.
6 |
7 | */
8 | class CosmosSize {
9 | /**
10 |
11 | Calculates the size of the cosmos view. It goes through all the star and text layers and makes size the view size is large enough to show all of them.
12 |
13 | */
14 | class func calculateSizeToFitLayers(_ layers: [CALayer]) -> CGSize {
15 | var size = CGSize()
16 |
17 | for layer in layers {
18 | if layer.frame.maxX > size.width {
19 | size.width = layer.frame.maxX
20 | }
21 |
22 | if layer.frame.maxY > size.height {
23 | size.height = layer.frame.maxY
24 | }
25 | }
26 |
27 | return size
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Cosmos/CosmosText.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | /**
4 |
5 | Positions the text layer to the right of the stars.
6 |
7 | */
8 | class CosmosText {
9 | /**
10 |
11 | Positions the text layer to the right from the stars. Text is aligned to the center of the star superview vertically.
12 |
13 | - parameter layer: The text layer to be positioned.
14 | - parameter starsSize: The size of the star superview.
15 | - parameter textMargin: The distance between the stars and the text.
16 |
17 | */
18 | class func position(_ layer: CALayer, starsSize: CGSize, textMargin: Double) {
19 | layer.position.x = starsSize.width + CGFloat(textMargin)
20 | let yOffset = (starsSize.height - layer.bounds.height) / 2
21 | layer.position.y = yOffset
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Cosmos/Helpers/CosmosTouchTarget.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | /**
4 |
5 | Helper function to make sure bounds are big enought to be used as touch target.
6 | The function is used in pointInside(point: CGPoint, withEvent event: UIEvent?) of UIImageView.
7 |
8 | */
9 | struct CosmosTouchTarget {
10 | static func optimize(_ bounds: CGRect) -> CGRect {
11 | let recommendedHitSize: CGFloat = 44
12 |
13 | var hitWidthIncrease: CGFloat = recommendedHitSize - bounds.width
14 | var hitHeightIncrease: CGFloat = recommendedHitSize - bounds.height
15 |
16 | if hitWidthIncrease < 0 { hitWidthIncrease = 0 }
17 | if hitHeightIncrease < 0 { hitHeightIncrease = 0 }
18 |
19 | let extendedBounds: CGRect = bounds.insetBy(dx: -hitWidthIncrease / 2,
20 | dy: -hitHeightIncrease / 2)
21 |
22 | return extendedBounds
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Cosmos/Helpers/RightToLeft.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | /**
4 |
5 | Helper functions for dealing with right-to-left languages.
6 |
7 | */
8 | struct RightToLeft {
9 | static func isRightToLeft(_ view: UIView) -> Bool {
10 | if #available(iOS 9.0, *) {
11 | return UIView.userInterfaceLayoutDirection(
12 | for: view.semanticContentAttribute) == .rightToLeft
13 | } else {
14 | return false
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/Cosmos/StarFillMode.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | /**
4 |
5 | Defines how the star is filled when the rating is not an integer number. For example, if rating is 4.6 and the fill more is Half, the star will appear to be half filled.
6 |
7 | */
8 | public enum StarFillMode: Int {
9 | /// Show only fully filled stars. For example, fourth star will be empty for 3.2.
10 | case full = 0
11 |
12 | /// Show fully filled and half-filled stars. For example, fourth star will be half filled for 3.6.
13 | case half = 1
14 |
15 | /// Fill star according to decimal rating. For example, fourth star will be 20% filled for 3.2.
16 | case precise = 2
17 | }
18 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/FloatingPanel/FloatingPanelBackdropView.swift:
--------------------------------------------------------------------------------
1 | // Copyright 2018-Present Shin Yamamoto. All rights reserved. MIT license.
2 |
3 | import UIKit
4 |
5 | /// A view that presents a backdrop interface behind a panel.
6 | @objc(FloatingPanelBackdropView)
7 | public class FloatingPanelBackdropView: UIView {
8 | /// The gesture recognizer for tap gestures to dismiss a panel.
9 | public var dismissalTapGestureRecognizer: UITapGestureRecognizer!
10 | }
11 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/FloatingPanel/FloatingPanelGrabberView.swift:
--------------------------------------------------------------------------------
1 | // Copyright 2018-Present Shin Yamamoto. All rights reserved. MIT license.
2 |
3 | import UIKit
4 |
5 | /// A view that presents a grabber handle in the surface of a panel.
6 | @objc(FloatingPanelGrabberView)
7 | public class FloatingPanelGrabberView: UIView {
8 | public var barColor = UIColor(displayP3Red: 0.76, green: 0.77, blue: 0.76, alpha: 1.0) { didSet { backgroundColor = barColor } }
9 |
10 | public required init?(coder aDecoder: NSCoder) {
11 | super.init(coder: aDecoder)
12 | }
13 |
14 | init() {
15 | super.init(frame: .zero)
16 | backgroundColor = barColor
17 | }
18 |
19 | override public func layoutSubviews() {
20 | super.layoutSubviews()
21 | render()
22 | }
23 |
24 | override public func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
25 | let view = super.hitTest(point, with: event)
26 | return view == self ? nil : view
27 | }
28 |
29 | private func render() {
30 | layer.masksToBounds = true
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/FloatingPanel/FloatingPanelPassthroughView.swift:
--------------------------------------------------------------------------------
1 | // Copyright 2018-Present Shin Yamamoto. All rights reserved. MIT license.
2 |
3 | import UIKit
4 |
5 | @objc(FloatingPanelPassthroughView)
6 | class FloatingPanelPassthroughView: UIView {
7 | public weak var eventForwardingView: UIView?
8 | override public func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
9 | let hitView = super.hitTest(point, with: event)
10 | switch hitView {
11 | case self:
12 | return eventForwardingView?.hitTest(convert(point, to: eventForwardingView), with: event)
13 | default:
14 | return hitView
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/Classes/Privatized+third+party+code/FloatingPanel/FloatingPanelReference.swift:
--------------------------------------------------------------------------------
1 | // Copyright 2018-Present Shin Yamamoto. All rights reserved. MIT license.
2 |
3 | import UIKit
4 |
5 | /// Constants that specify the edge of the container of a panel.
6 | @objc public enum FloatingPanelReferenceEdge: Int {
7 | case top
8 | case left
9 | case bottom
10 | case right
11 | }
12 |
13 | extension FloatingPanelReferenceEdge {
14 | func inset(of insets: UIEdgeInsets) -> CGFloat {
15 | switch self {
16 | case .top: return insets.top
17 | case .left: return insets.left
18 | case .bottom: return insets.bottom
19 | case .right: return insets.right
20 | }
21 | }
22 |
23 | func mainDimension(_ size: CGSize) -> CGFloat {
24 | switch self {
25 | case .top, .bottom: return size.height
26 | case .left, .right: return size.width
27 | }
28 | }
29 | }
30 |
31 | /// Constants that specify a layout guide to lay out a panel.
32 | @objc public enum FloatingPanelLayoutReferenceGuide: Int {
33 | case superview = 0
34 | case safeArea = 1
35 | }
36 |
37 | extension FloatingPanelLayoutReferenceGuide {
38 | func layoutGuide(vc: UIViewController) -> LayoutGuideProvider {
39 | switch self {
40 | case .safeArea:
41 | return vc.fp_safeAreaLayoutGuide
42 | case .superview:
43 | return vc.view
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/PhobosSwift/UIComponent/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftUIComponent
2 | ================
3 | # Features
4 | - ghost
5 | - PBSActivityButton
6 | - PBSArticle
7 | - PBSBadgeView
8 | - PBSIconFontKit
9 | - PBSMessageBar
10 | - PBSPageView
11 | - PBSProgressHUD
12 | - PBSWaterfall
13 |
14 | - *Charts*
15 | - *Chosmos*
16 | - *FloatingPanel*
17 | - *ProgressHUD*
18 |
19 |
20 | # Requirements
21 | - iOS 10.0 or later
22 | - Xcode 11.0 or later
23 | - cocoapods 1.10.0 or later
24 |
25 |
26 | # How To Use
27 | - swift
28 |
29 | ```
30 |
31 | import PhobosSwiftUIComponent
32 |
33 | let button = PBSActivityButton.init(type: .custom, enabledBackgroundColor: UIColor.white, disabledBackgroundColor: UIColor.gray)
34 |
35 | ```
36 |
37 | # Installation
38 | ## Podfile
39 |
40 | ```
41 | platform :ios, '10.0'
42 | use_frameworks!
43 | pod 'PhobosSwiftUIComponent', '~> 0.1.0'
44 | ```
45 |
46 |
47 | # Author
48 | [Restless Developer](https://github.com/restlesscode)
49 |
50 |
51 |
52 | # Licenses
53 | All source code is licensed under the [MIT License](../../LICENSE).
54 |
--------------------------------------------------------------------------------
/PhobosSwift/Wechat/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Wechat/Assets/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Wechat/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/restlesscode/phobos-swift/01fb7f835decf5b64a8754bbf2d191f22efd230f/PhobosSwift/Wechat/Classes/.gitkeep
--------------------------------------------------------------------------------
/PhobosSwift/Wechat/Classes/PhobosSwiftWechat.swift:
--------------------------------------------------------------------------------
1 | //
2 | //
3 | // PhobosSwiftWechat.swift
4 | // PhobosSwiftWechat
5 | //
6 | // Copyright (c) 2021 Restless Codes Team (https://github.com/restlesscode/)
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the "Software"), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import Foundation
28 |
29 | class PhobosSwiftWechat: NSObject {}
30 |
--------------------------------------------------------------------------------
/PhobosSwift/Wechat/README.md:
--------------------------------------------------------------------------------
1 | PhobosSwiftWechat
2 | ================
3 | # Features
4 | - 基于微信SDK的封装(检查微信版本、是否安装、安装地址、调起微信、处理回调等)
5 |
6 |
7 | # Requirements
8 | - iOS 10.0 or later
9 | - Xcode 11.0 or later
10 | - cocoapods 1.10.0 or later
11 |
12 |
13 | # How To Use
14 | - swift
15 |
16 | ```
17 |
18 | import PhobosSwiftWechat
19 |
20 | let wechat = PBSWechat.shared
21 | wechat.configure(appId: "", universalLink: "")
22 |
23 | ```
24 |
25 | # Installation
26 | ## Podfile
27 |
28 | ```
29 | platform :ios, '10.0'
30 | use_frameworks!
31 | pod 'PhobosSwiftWechat', '~> 0.1.0'
32 | ```
33 |
34 |
35 | # Author
36 | [Restless Developer](https://github.com/restlesscode)
37 |
38 |
39 |
40 | # Licenses
41 | All source code is licensed under the [MIT License](../../LICENSE).
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PhobosSwift Open Source Framework
2 |
3 | This repository contains all PhobosSwift SDK source.
4 |
5 | PhobosSwift provides useful functions, extensions, and functions written by Swift provided by Restless Code Team. The purpose is to help iOS engineers accelerate mobile development. Learn more [https://twitter.com/CodesRestless](https: //twitter.com/CodesRestless)}
6 |
7 |
8 | ## Installation
9 | See the subsections below for details about the different installation methods.
10 | 1. [Standard pod install](README.md#standard-pod-install)
11 |
12 | ### Standard pod install
13 | ```
14 | pod 'PhobosSwiftCore'
15 | ```
16 |
17 | #### Background
18 |
19 | See
20 | [the Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html#pod)
21 | for instructions and options about overriding pod source locations.
22 |
23 |
24 | ## Contributing
25 |
26 | See [Contributing](CONTRIBUTING.md) for more information on contributing to the PhobosSwift
27 | iOS SDK.
28 |
29 |
--------------------------------------------------------------------------------
/fastlane/.env.Default:
--------------------------------------------------------------------------------
1 | #---------- Xcode Select ----------------
2 | XCODE_SELECT = "/Applications/Xcode.app"
3 |
4 | #------- Pod's Env ------------------
5 | #FRAMEWORK_NAME = 'PhobosSwift'
6 |
7 | FRAMEWORK_DEMO_PATH = 'Example'
8 |
9 | #SUBSPECS = ',,...'
10 |
11 | #TAG_PREFIX = ''
12 |
13 | #REPO_NAME = 'xxxxxx-spec.git'
14 |
15 | #REPO_GIT_URL = 'https://xxxxx/xxxxxx-spec.git'
16 |
17 | USE_LIBRARIES = false
18 |
19 | SOURCES = 'https://cdn.cocoapods.org/'
20 |
21 |
--------------------------------------------------------------------------------
/fastlane/.env.Log:
--------------------------------------------------------------------------------
1 | #---------- Xcode Select ----------------
2 | XCODE_SELECT = "/Applications/Xcode.app"
3 |
4 | #------- Pod's Env ------------------
5 | FRAMEWORK_NAME = 'PhobosSwiftLog'
6 |
7 | FRAMEWORK_DEMO_PATH = 'Example'
8 |
9 | TAG_PREFIX = 'Log'
10 |
11 | #REPO_NAME = 'xxxxxx-spec.git'
12 |
13 | #REPO_GIT_URL = 'https://xxxxx/xxxxxx-spec.git'
14 |
15 | USE_LIBRARIES = false
16 |
17 | SOURCES = 'https://cdn.cocoapods.org/'
18 |
19 |
--------------------------------------------------------------------------------
/fastlane/.env.Persistence:
--------------------------------------------------------------------------------
1 | #---------- Xcode Select ----------------
2 | XCODE_SELECT = "/Applications/Xcode.app"
3 |
4 | #------- Pod's Env ------------------
5 | FRAMEWORK_NAME = 'PhobosSwiftPersistence'
6 |
7 | FRAMEWORK_DEMO_PATH = 'Example'
8 |
9 | SUBSPECS = 'Core,Realm'
10 |
11 | TAG_PREFIX = 'Persistence'
12 |
13 | #REPO_NAME = 'xxxxxx-spec.git'
14 |
15 | #REPO_GIT_URL = 'https://xxxxx/xxxxxx-spec.git'
16 |
17 | USE_LIBRARIES = false
18 |
19 | SOURCES = 'https://cdn.cocoapods.org/'
20 |
21 |
--------------------------------------------------------------------------------
/fastlane/Fastfile:
--------------------------------------------------------------------------------
1 | import_from_git(
2 | url: "https://gitee.com/tjerwinchen/fastools.git", # The URL of the repository to import the Fastfile from.
3 | branch: "master", # The branch to checkout on the repository
4 | path: "lib/fastlane/fastlane.pods.rb", # The path of the Fastfile in the repository
5 | #version: "~> 1.0.0" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints.
6 | )
7 |
8 | import_from_git(
9 | url: "https://gitee.com/tjerwinchen/fastools.git", # The URL of the repository to import the Fastfile from.
10 | branch: "master", # The branch to checkout on the repository
11 | path: "lib/fastlane/fastlane.framework.rb", # The path of the Fastfile in the repository
12 | #version: "~> 1.0.0" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints.
13 | )
14 |
15 |
16 |
--------------------------------------------------------------------------------