├── Example
├── KLineDemo.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── cheng.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── cheng.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── KLineDemo.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcuserdata
│ │ └── cheng.xcuserdatad
│ │ ├── UserInterfaceState.xcuserstate
│ │ └── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
├── KLineDemo
│ ├── Classes
│ │ ├── AppDelegate
│ │ │ ├── AppDelegate.swift
│ │ │ ├── NavigationController.swift
│ │ │ ├── ViewController.swift
│ │ │ └── ViewControllerCell.swift
│ │ ├── Common
│ │ │ ├── Base
│ │ │ │ ├── BaseCell.swift
│ │ │ │ └── BaseView.swift
│ │ │ ├── Extension
│ │ │ │ ├── Double+extension.swift
│ │ │ │ ├── NSObject+extension.swift
│ │ │ │ ├── UIColor+extension.swift
│ │ │ │ ├── UILabel+extension.swift
│ │ │ │ ├── UITableView+extension.swift
│ │ │ │ └── UIView+extension.swift
│ │ │ └── Util
│ │ │ │ └── UtilSampleData.swift
│ │ ├── Config.swift
│ │ ├── Const
│ │ │ ├── APISConst.swift
│ │ │ ├── ColorConst.swift
│ │ │ └── DefaultConst.swift
│ │ ├── KLine
│ │ │ ├── Const
│ │ │ │ └── KLineConst.swift
│ │ │ ├── Controller
│ │ │ │ ├── KLineFullScreenViewController.swift
│ │ │ │ └── KLineViewController.swift
│ │ │ ├── Model
│ │ │ │ ├── KLineInfoViewModel.swift
│ │ │ │ └── KLineModel.swift
│ │ │ ├── Util
│ │ │ │ ├── UtilAlgorithm.swift
│ │ │ │ └── UtilDate.swift
│ │ │ └── View
│ │ │ │ ├── KLineBaseView.swift
│ │ │ │ ├── KLineInfoView.swift
│ │ │ │ └── KLineView.swift
│ │ ├── Model
│ │ │ ├── FiveTradeModel.swift
│ │ │ ├── KLineModel2.swift
│ │ │ └── KLineSampleDataResponse.swift
│ │ ├── Modules
│ │ │ └── Demo
│ │ │ │ ├── BarViewController.swift
│ │ │ │ ├── CandleStickViewController.swift
│ │ │ │ ├── Combined2ViewController.swift
│ │ │ │ ├── CombinedViewController.swift
│ │ │ │ ├── Line2ChartViewController.swift
│ │ │ │ ├── LineChartViewController.swift
│ │ │ │ ├── Renderers
│ │ │ │ └── HXCandleStickChartRenderer.swift
│ │ │ │ └── View
│ │ │ │ └── CombinedView.swift
│ │ └── Service
│ │ │ ├── BaseResponse.swift
│ │ │ ├── FromModelProtocol.swift
│ │ │ ├── KLine
│ │ │ ├── KLineResponse.swift
│ │ │ └── KLineService.swift
│ │ │ ├── Service.swift
│ │ │ └── TargetType+extension.swift
│ ├── Info.plist
│ └── Resources
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ │ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ │ └── SampleData
│ │ ├── SZ300033.json
│ │ ├── fiveTrade.json
│ │ ├── fiveTrade.temp_caseinsensitive_rename.json
│ │ ├── kLineForDay.json
│ │ ├── kLineForMonth.json
│ │ ├── kLineForWeek.json
│ │ ├── timeLineForDay.json
│ │ └── timeLineForFiveday.json
├── KLineDemoTests
│ ├── Info.plist
│ └── KLineDemoTests.swift
├── KLineDemoUITests
│ ├── Info.plist
│ └── KLineDemoUITests.swift
├── Podfile
├── Podfile.lock
└── Pods
│ ├── Alamofire
│ ├── LICENSE
│ ├── README.md
│ └── Source
│ │ ├── AFError.swift
│ │ ├── Alamofire.swift
│ │ ├── DispatchQueue+Alamofire.swift
│ │ ├── MultipartFormData.swift
│ │ ├── NetworkReachabilityManager.swift
│ │ ├── Notifications.swift
│ │ ├── ParameterEncoding.swift
│ │ ├── Request.swift
│ │ ├── Response.swift
│ │ ├── ResponseSerialization.swift
│ │ ├── Result.swift
│ │ ├── ServerTrustPolicy.swift
│ │ ├── SessionDelegate.swift
│ │ ├── SessionManager.swift
│ │ ├── TaskDelegate.swift
│ │ ├── Timeline.swift
│ │ └── Validation.swift
│ ├── Charts
│ ├── LICENSE
│ ├── README.md
│ └── Source
│ │ └── 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.swift
│ │ ├── Transformer.swift
│ │ ├── TransformerHorizontalBarChart.swift
│ │ └── ViewPortHandler.swift
│ ├── DGActivityIndicatorView
│ ├── DGActivityIndicatorView
│ │ ├── Animations
│ │ │ ├── DGActivityIndicatorAnimation.h
│ │ │ ├── DGActivityIndicatorAnimation.m
│ │ │ ├── DGActivityIndicatorBallBeatAnimation.h
│ │ │ ├── DGActivityIndicatorBallBeatAnimation.m
│ │ │ ├── DGActivityIndicatorBallClipRotateAnimation.h
│ │ │ ├── DGActivityIndicatorBallClipRotateAnimation.m
│ │ │ ├── DGActivityIndicatorBallClipRotateMultipleAnimation.h
│ │ │ ├── DGActivityIndicatorBallClipRotateMultipleAnimation.m
│ │ │ ├── DGActivityIndicatorBallClipRotatePulseAnimation.h
│ │ │ ├── DGActivityIndicatorBallClipRotatePulseAnimation.m
│ │ │ ├── DGActivityIndicatorBallGridBeatAnimation.h
│ │ │ ├── DGActivityIndicatorBallGridBeatAnimation.m
│ │ │ ├── DGActivityIndicatorBallGridPulseAnimation.h
│ │ │ ├── DGActivityIndicatorBallGridPulseAnimation.m
│ │ │ ├── DGActivityIndicatorBallPulseAnimation.h
│ │ │ ├── DGActivityIndicatorBallPulseAnimation.m
│ │ │ ├── DGActivityIndicatorBallPulseSyncAnimation.h
│ │ │ ├── DGActivityIndicatorBallPulseSyncAnimation.m
│ │ │ ├── DGActivityIndicatorBallRotateAnimation.h
│ │ │ ├── DGActivityIndicatorBallRotateAnimation.m
│ │ │ ├── DGActivityIndicatorBallScaleAnimation.h
│ │ │ ├── DGActivityIndicatorBallScaleAnimation.m
│ │ │ ├── DGActivityIndicatorBallScaleMultipleAnimation.h
│ │ │ ├── DGActivityIndicatorBallScaleMultipleAnimation.m
│ │ │ ├── DGActivityIndicatorBallScaleRippleAnimation.h
│ │ │ ├── DGActivityIndicatorBallScaleRippleAnimation.m
│ │ │ ├── DGActivityIndicatorBallScaleRippleMultipleAnimation.h
│ │ │ ├── DGActivityIndicatorBallScaleRippleMultipleAnimation.m
│ │ │ ├── DGActivityIndicatorBallSpinFadeLoader.h
│ │ │ ├── DGActivityIndicatorBallSpinFadeLoader.m
│ │ │ ├── DGActivityIndicatorBallTrianglePathAnimation.h
│ │ │ ├── DGActivityIndicatorBallTrianglePathAnimation.m
│ │ │ ├── DGActivityIndicatorBallZigZagAnimation.h
│ │ │ ├── DGActivityIndicatorBallZigZagAnimation.m
│ │ │ ├── DGActivityIndicatorBallZigZagDeflectAnimation.h
│ │ │ ├── DGActivityIndicatorBallZigZagDeflectAnimation.m
│ │ │ ├── DGActivityIndicatorCookieTerminatorAnimation.h
│ │ │ ├── DGActivityIndicatorCookieTerminatorAnimation.m
│ │ │ ├── DGActivityIndicatorDoubleBounceAnimation.h
│ │ │ ├── DGActivityIndicatorDoubleBounceAnimation.m
│ │ │ ├── DGActivityIndicatorFiveDotsAnimation.h
│ │ │ ├── DGActivityIndicatorFiveDotsAnimation.m
│ │ │ ├── DGActivityIndicatorLineScaleAnimation.h
│ │ │ ├── DGActivityIndicatorLineScaleAnimation.m
│ │ │ ├── DGActivityIndicatorLineScalePartyAnimation.h
│ │ │ ├── DGActivityIndicatorLineScalePartyAnimation.m
│ │ │ ├── DGActivityIndicatorLineScalePulseOutAnimation.h
│ │ │ ├── DGActivityIndicatorLineScalePulseOutAnimation.m
│ │ │ ├── DGActivityIndicatorLineScalePulseOutRapidAnimation.h
│ │ │ ├── DGActivityIndicatorLineScalePulseOutRapidAnimation.m
│ │ │ ├── DGActivityIndicatorNineDotsAnimation.h
│ │ │ ├── DGActivityIndicatorNineDotsAnimation.m
│ │ │ ├── DGActivityIndicatorRotatingSandglassAnimation.h
│ │ │ ├── DGActivityIndicatorRotatingSandglassAnimation.m
│ │ │ ├── DGActivityIndicatorRotatingSquaresAnimation.h
│ │ │ ├── DGActivityIndicatorRotatingSquaresAnimation.m
│ │ │ ├── DGActivityIndicatorRotatingTrigonAnimation.h
│ │ │ ├── DGActivityIndicatorRotatingTrigonAnimation.m
│ │ │ ├── DGActivityIndicatorThreeDotsAnimation.h
│ │ │ ├── DGActivityIndicatorThreeDotsAnimation.m
│ │ │ ├── DGActivityIndicatorTriangleSkewSpinAnimation.h
│ │ │ ├── DGActivityIndicatorTriangleSkewSpinAnimation.m
│ │ │ ├── DGActivityIndicatorTriplePulseAnimation.h
│ │ │ ├── DGActivityIndicatorTriplePulseAnimation.m
│ │ │ ├── DGActivityIndicatorTripleRingsAnimation.h
│ │ │ ├── DGActivityIndicatorTripleRingsAnimation.m
│ │ │ ├── DGActivityIndicatorTwoDotsAnimation.h
│ │ │ └── DGActivityIndicatorTwoDotsAnimation.m
│ │ ├── DGActivityIndicatorAnimationProtocol.h
│ │ ├── DGActivityIndicatorView.h
│ │ └── DGActivityIndicatorView.m
│ ├── LICENSE
│ └── README.md
│ ├── Local Podspecs
│ └── Charts.podspec.json
│ ├── Manifest.lock
│ ├── Moya
│ ├── License.md
│ ├── Readme.md
│ └── Sources
│ │ └── Moya
│ │ ├── AnyEncodable.swift
│ │ ├── Cancellable.swift
│ │ ├── Endpoint.swift
│ │ ├── Image.swift
│ │ ├── Moya+Alamofire.swift
│ │ ├── MoyaError.swift
│ │ ├── MoyaProvider+Defaults.swift
│ │ ├── MoyaProvider+Internal.swift
│ │ ├── MoyaProvider.swift
│ │ ├── MultiTarget.swift
│ │ ├── MultipartFormData.swift
│ │ ├── Plugin.swift
│ │ ├── Plugins
│ │ ├── AccessTokenPlugin.swift
│ │ ├── CredentialsPlugin.swift
│ │ ├── NetworkActivityPlugin.swift
│ │ └── NetworkLoggerPlugin.swift
│ │ ├── Response.swift
│ │ ├── TargetType.swift
│ │ ├── Task.swift
│ │ ├── URL+Moya.swift
│ │ ├── URLRequest+Encoding.swift
│ │ └── ValidationType.swift
│ ├── ObjectMapper
│ ├── LICENSE
│ ├── README-CN.md
│ └── Sources
│ │ ├── CodableTransform.swift
│ │ ├── CustomDateFormatTransform.swift
│ │ ├── DataTransform.swift
│ │ ├── DateFormatterTransform.swift
│ │ ├── DateTransform.swift
│ │ ├── DictionaryTransform.swift
│ │ ├── EnumOperators.swift
│ │ ├── EnumTransform.swift
│ │ ├── FromJSON.swift
│ │ ├── HexColorTransform.swift
│ │ ├── ISO8601DateTransform.swift
│ │ ├── ImmutableMappable.swift
│ │ ├── IntegerOperators.swift
│ │ ├── Map.swift
│ │ ├── MapError.swift
│ │ ├── Mappable.swift
│ │ ├── Mapper.swift
│ │ ├── NSDecimalNumberTransform.swift
│ │ ├── Operators.swift
│ │ ├── ToJSON.swift
│ │ ├── TransformOf.swift
│ │ ├── TransformOperators.swift
│ │ ├── TransformType.swift
│ │ └── URLTransform.swift
│ ├── Pods.xcodeproj
│ ├── project.pbxproj
│ └── xcuserdata
│ │ └── cheng.xcuserdatad
│ │ └── xcschemes
│ │ ├── Alamofire.xcscheme
│ │ ├── Charts.xcscheme
│ │ ├── DGActivityIndicatorView.xcscheme
│ │ ├── Moya.xcscheme
│ │ ├── ObjectMapper.xcscheme
│ │ ├── Pods-KLineDemo.xcscheme
│ │ ├── Pods-KLineDemoTests.xcscheme
│ │ ├── Pods-KLineDemoUITests.xcscheme
│ │ ├── Result.xcscheme
│ │ ├── RxAtomic.xcscheme
│ │ ├── RxCocoa.xcscheme
│ │ ├── RxSwift.xcscheme
│ │ ├── SnapKit.xcscheme
│ │ └── xcschememanagement.plist
│ ├── Result
│ ├── LICENSE
│ ├── README.md
│ └── Result
│ │ ├── AnyError.swift
│ │ ├── NoError.swift
│ │ ├── Result.swift
│ │ └── ResultProtocol.swift
│ ├── RxAtomic
│ ├── LICENSE.md
│ ├── README.md
│ └── RxAtomic
│ │ ├── RxAtomic.c
│ │ └── include
│ │ └── RxAtomic.h
│ ├── RxCocoa
│ ├── LICENSE.md
│ ├── Platform
│ │ ├── DataStructures
│ │ │ ├── Bag.swift
│ │ │ ├── InfiniteSequence.swift
│ │ │ ├── PriorityQueue.swift
│ │ │ └── Queue.swift
│ │ ├── DeprecationWarner.swift
│ │ ├── DispatchQueue+Extensions.swift
│ │ ├── Platform.Darwin.swift
│ │ ├── Platform.Linux.swift
│ │ └── RecursiveLock.swift
│ ├── README.md
│ └── RxCocoa
│ │ ├── Common
│ │ ├── Binder.swift
│ │ ├── ControlTarget.swift
│ │ ├── DelegateProxy.swift
│ │ ├── DelegateProxyType.swift
│ │ ├── KeyPathBinder.swift
│ │ ├── NSLayoutConstraint+Rx.swift
│ │ ├── Observable+Bind.swift
│ │ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ │ ├── RxTarget.swift
│ │ ├── SectionedViewDataSourceType.swift
│ │ └── TextInput.swift
│ │ ├── Deprecated.swift
│ │ ├── Foundation
│ │ ├── KVORepresentable+CoreGraphics.swift
│ │ ├── KVORepresentable+Swift.swift
│ │ ├── KVORepresentable.swift
│ │ ├── Logging.swift
│ │ ├── NSObject+Rx+KVORepresentable.swift
│ │ ├── NSObject+Rx+RawRepresentable.swift
│ │ ├── NSObject+Rx.swift
│ │ ├── NotificationCenter+Rx.swift
│ │ └── URLSession+Rx.swift
│ │ ├── Runtime
│ │ ├── _RX.m
│ │ ├── _RXDelegateProxy.m
│ │ ├── _RXKVOObserver.m
│ │ ├── _RXObjCRuntime.m
│ │ └── include
│ │ │ ├── RxCocoaRuntime.h
│ │ │ ├── _RX.h
│ │ │ ├── _RXDelegateProxy.h
│ │ │ ├── _RXKVOObserver.h
│ │ │ └── _RXObjCRuntime.h
│ │ ├── RxCocoa.h
│ │ ├── RxCocoa.swift
│ │ ├── Traits
│ │ ├── BehaviorRelay.swift
│ │ ├── ControlEvent.swift
│ │ ├── ControlProperty.swift
│ │ ├── Driver
│ │ │ ├── BehaviorRelay+Driver.swift
│ │ │ ├── ControlEvent+Driver.swift
│ │ │ ├── ControlProperty+Driver.swift
│ │ │ ├── Driver+Subscription.swift
│ │ │ ├── Driver.swift
│ │ │ └── ObservableConvertibleType+Driver.swift
│ │ ├── PublishRelay.swift
│ │ ├── SharedSequence
│ │ │ ├── ObservableConvertibleType+SharedSequence.swift
│ │ │ ├── SchedulerType+SharedSequence.swift
│ │ │ ├── SharedSequence+Operators+arity.swift
│ │ │ ├── SharedSequence+Operators.swift
│ │ │ └── SharedSequence.swift
│ │ └── Signal
│ │ │ ├── ControlEvent+Signal.swift
│ │ │ ├── ObservableConvertibleType+Signal.swift
│ │ │ ├── PublishRelay+Signal.swift
│ │ │ ├── Signal+Subscription.swift
│ │ │ └── Signal.swift
│ │ ├── iOS
│ │ ├── DataSources
│ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift
│ │ │ ├── RxPickerViewAdapter.swift
│ │ │ └── RxTableViewReactiveArrayDataSource.swift
│ │ ├── Events
│ │ │ └── ItemEvents.swift
│ │ ├── NSTextStorage+Rx.swift
│ │ ├── Protocols
│ │ │ ├── RxCollectionViewDataSourceType.swift
│ │ │ ├── RxPickerViewDataSourceType.swift
│ │ │ └── RxTableViewDataSourceType.swift
│ │ ├── Proxies
│ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift
│ │ │ ├── RxCollectionViewDataSourceProxy.swift
│ │ │ ├── RxCollectionViewDelegateProxy.swift
│ │ │ ├── RxNavigationControllerDelegateProxy.swift
│ │ │ ├── RxPickerViewDataSourceProxy.swift
│ │ │ ├── RxPickerViewDelegateProxy.swift
│ │ │ ├── RxScrollViewDelegateProxy.swift
│ │ │ ├── RxSearchBarDelegateProxy.swift
│ │ │ ├── RxSearchControllerDelegateProxy.swift
│ │ │ ├── RxTabBarControllerDelegateProxy.swift
│ │ │ ├── RxTabBarDelegateProxy.swift
│ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift
│ │ │ ├── RxTableViewDataSourceProxy.swift
│ │ │ ├── RxTableViewDelegateProxy.swift
│ │ │ ├── RxTextStorageDelegateProxy.swift
│ │ │ ├── RxTextViewDelegateProxy.swift
│ │ │ └── RxWebViewDelegateProxy.swift
│ │ ├── UIActivityIndicatorView+Rx.swift
│ │ ├── UIAlertAction+Rx.swift
│ │ ├── UIApplication+Rx.swift
│ │ ├── UIBarButtonItem+Rx.swift
│ │ ├── UIButton+Rx.swift
│ │ ├── UICollectionView+Rx.swift
│ │ ├── UIControl+Rx.swift
│ │ ├── UIDatePicker+Rx.swift
│ │ ├── UIGestureRecognizer+Rx.swift
│ │ ├── UIImageView+Rx.swift
│ │ ├── UILabel+Rx.swift
│ │ ├── UINavigationController+Rx.swift
│ │ ├── UINavigationItem+Rx.swift
│ │ ├── UIPageControl+Rx.swift
│ │ ├── UIPickerView+Rx.swift
│ │ ├── UIProgressView+Rx.swift
│ │ ├── UIRefreshControl+Rx.swift
│ │ ├── UIScrollView+Rx.swift
│ │ ├── UISearchBar+Rx.swift
│ │ ├── UISearchController+Rx.swift
│ │ ├── UISegmentedControl+Rx.swift
│ │ ├── UISlider+Rx.swift
│ │ ├── UIStepper+Rx.swift
│ │ ├── UISwitch+Rx.swift
│ │ ├── UITabBar+Rx.swift
│ │ ├── UITabBarController+Rx.swift
│ │ ├── UITabBarItem+Rx.swift
│ │ ├── UITableView+Rx.swift
│ │ ├── UITextField+Rx.swift
│ │ ├── UITextView+Rx.swift
│ │ ├── UIView+Rx.swift
│ │ ├── UIViewController+Rx.swift
│ │ └── UIWebView+Rx.swift
│ │ └── macOS
│ │ ├── NSButton+Rx.swift
│ │ ├── NSControl+Rx.swift
│ │ ├── NSImageView+Rx.swift
│ │ ├── NSSlider+Rx.swift
│ │ ├── NSTextField+Rx.swift
│ │ ├── NSTextView+Rx.swift
│ │ └── NSView+Rx.swift
│ ├── RxSwift
│ ├── LICENSE.md
│ ├── Platform
│ │ ├── AtomicInt.swift
│ │ ├── DataStructures
│ │ │ ├── Bag.swift
│ │ │ ├── InfiniteSequence.swift
│ │ │ ├── PriorityQueue.swift
│ │ │ └── Queue.swift
│ │ ├── DeprecationWarner.swift
│ │ ├── DispatchQueue+Extensions.swift
│ │ ├── Platform.Darwin.swift
│ │ ├── Platform.Linux.swift
│ │ └── RecursiveLock.swift
│ ├── README.md
│ └── RxSwift
│ │ ├── AnyObserver.swift
│ │ ├── Cancelable.swift
│ │ ├── Concurrency
│ │ ├── AsyncLock.swift
│ │ ├── Lock.swift
│ │ ├── LockOwnerType.swift
│ │ ├── SynchronizedDisposeType.swift
│ │ ├── SynchronizedOnType.swift
│ │ └── SynchronizedUnsubscribeType.swift
│ │ ├── ConnectableObservableType.swift
│ │ ├── Deprecated.swift
│ │ ├── Disposable.swift
│ │ ├── Disposables
│ │ ├── AnonymousDisposable.swift
│ │ ├── BinaryDisposable.swift
│ │ ├── BooleanDisposable.swift
│ │ ├── CompositeDisposable.swift
│ │ ├── Disposables.swift
│ │ ├── DisposeBag.swift
│ │ ├── DisposeBase.swift
│ │ ├── NopDisposable.swift
│ │ ├── RefCountDisposable.swift
│ │ ├── ScheduledDisposable.swift
│ │ ├── SerialDisposable.swift
│ │ ├── SingleAssignmentDisposable.swift
│ │ └── SubscriptionDisposable.swift
│ │ ├── Errors.swift
│ │ ├── Event.swift
│ │ ├── Extensions
│ │ ├── Bag+Rx.swift
│ │ └── String+Rx.swift
│ │ ├── GroupedObservable.swift
│ │ ├── ImmediateSchedulerType.swift
│ │ ├── Observable.swift
│ │ ├── ObservableConvertibleType.swift
│ │ ├── ObservableType+Extensions.swift
│ │ ├── ObservableType.swift
│ │ ├── Observables
│ │ ├── AddRef.swift
│ │ ├── Amb.swift
│ │ ├── AsMaybe.swift
│ │ ├── AsSingle.swift
│ │ ├── Buffer.swift
│ │ ├── Catch.swift
│ │ ├── CombineLatest+Collection.swift
│ │ ├── CombineLatest+arity.swift
│ │ ├── CombineLatest.swift
│ │ ├── Concat.swift
│ │ ├── Create.swift
│ │ ├── Debounce.swift
│ │ ├── Debug.swift
│ │ ├── DefaultIfEmpty.swift
│ │ ├── Deferred.swift
│ │ ├── Delay.swift
│ │ ├── DelaySubscription.swift
│ │ ├── Dematerialize.swift
│ │ ├── DistinctUntilChanged.swift
│ │ ├── Do.swift
│ │ ├── ElementAt.swift
│ │ ├── Empty.swift
│ │ ├── Enumerated.swift
│ │ ├── Error.swift
│ │ ├── Filter.swift
│ │ ├── First.swift
│ │ ├── Generate.swift
│ │ ├── GroupBy.swift
│ │ ├── Just.swift
│ │ ├── Map.swift
│ │ ├── Materialize.swift
│ │ ├── Merge.swift
│ │ ├── Multicast.swift
│ │ ├── Never.swift
│ │ ├── ObserveOn.swift
│ │ ├── Optional.swift
│ │ ├── Producer.swift
│ │ ├── Range.swift
│ │ ├── Reduce.swift
│ │ ├── Repeat.swift
│ │ ├── RetryWhen.swift
│ │ ├── Sample.swift
│ │ ├── Scan.swift
│ │ ├── Sequence.swift
│ │ ├── ShareReplayScope.swift
│ │ ├── SingleAsync.swift
│ │ ├── Sink.swift
│ │ ├── Skip.swift
│ │ ├── SkipUntil.swift
│ │ ├── SkipWhile.swift
│ │ ├── StartWith.swift
│ │ ├── SubscribeOn.swift
│ │ ├── Switch.swift
│ │ ├── SwitchIfEmpty.swift
│ │ ├── Take.swift
│ │ ├── TakeLast.swift
│ │ ├── TakeUntil.swift
│ │ ├── TakeWhile.swift
│ │ ├── Throttle.swift
│ │ ├── Timeout.swift
│ │ ├── Timer.swift
│ │ ├── ToArray.swift
│ │ ├── Using.swift
│ │ ├── Window.swift
│ │ ├── WithLatestFrom.swift
│ │ ├── Zip+Collection.swift
│ │ ├── Zip+arity.swift
│ │ └── Zip.swift
│ │ ├── ObserverType.swift
│ │ ├── Observers
│ │ ├── AnonymousObserver.swift
│ │ ├── ObserverBase.swift
│ │ └── TailRecursiveSink.swift
│ │ ├── Reactive.swift
│ │ ├── Rx.swift
│ │ ├── RxMutableBox.swift
│ │ ├── SchedulerType.swift
│ │ ├── Schedulers
│ │ ├── ConcurrentDispatchQueueScheduler.swift
│ │ ├── ConcurrentMainScheduler.swift
│ │ ├── CurrentThreadScheduler.swift
│ │ ├── HistoricalScheduler.swift
│ │ ├── HistoricalSchedulerTimeConverter.swift
│ │ ├── Internal
│ │ │ ├── DispatchQueueConfiguration.swift
│ │ │ ├── InvocableScheduledItem.swift
│ │ │ ├── InvocableType.swift
│ │ │ ├── ScheduledItem.swift
│ │ │ └── ScheduledItemType.swift
│ │ ├── MainScheduler.swift
│ │ ├── OperationQueueScheduler.swift
│ │ ├── RecursiveScheduler.swift
│ │ ├── SchedulerServices+Emulation.swift
│ │ ├── SerialDispatchQueueScheduler.swift
│ │ ├── VirtualTimeConverterType.swift
│ │ └── VirtualTimeScheduler.swift
│ │ ├── Subjects
│ │ ├── AsyncSubject.swift
│ │ ├── BehaviorSubject.swift
│ │ ├── PublishSubject.swift
│ │ ├── ReplaySubject.swift
│ │ └── SubjectType.swift
│ │ ├── SwiftSupport
│ │ └── SwiftSupport.swift
│ │ └── Traits
│ │ ├── Completable+AndThen.swift
│ │ ├── Completable.swift
│ │ ├── Maybe.swift
│ │ ├── ObservableType+PrimitiveSequence.swift
│ │ ├── PrimitiveSequence+Zip+arity.swift
│ │ ├── PrimitiveSequence.swift
│ │ └── Single.swift
│ ├── SnapKit
│ ├── LICENSE
│ ├── README.md
│ └── Source
│ │ ├── Constraint.swift
│ │ ├── ConstraintAttributes.swift
│ │ ├── ConstraintConfig.swift
│ │ ├── ConstraintConstantTarget.swift
│ │ ├── ConstraintDSL.swift
│ │ ├── ConstraintDescription.swift
│ │ ├── ConstraintInsetTarget.swift
│ │ ├── ConstraintInsets.swift
│ │ ├── ConstraintItem.swift
│ │ ├── ConstraintLayoutGuide+Extensions.swift
│ │ ├── ConstraintLayoutGuide.swift
│ │ ├── ConstraintLayoutGuideDSL.swift
│ │ ├── ConstraintLayoutSupport.swift
│ │ ├── ConstraintLayoutSupportDSL.swift
│ │ ├── ConstraintMaker.swift
│ │ ├── ConstraintMakerEditable.swift
│ │ ├── ConstraintMakerExtendable.swift
│ │ ├── ConstraintMakerFinalizable.swift
│ │ ├── ConstraintMakerPriortizable.swift
│ │ ├── ConstraintMakerRelatable.swift
│ │ ├── ConstraintMultiplierTarget.swift
│ │ ├── ConstraintOffsetTarget.swift
│ │ ├── ConstraintPriority.swift
│ │ ├── ConstraintPriorityTarget.swift
│ │ ├── ConstraintRelatableTarget.swift
│ │ ├── ConstraintRelation.swift
│ │ ├── ConstraintView+Extensions.swift
│ │ ├── ConstraintView.swift
│ │ ├── ConstraintViewDSL.swift
│ │ ├── Debugging.swift
│ │ ├── LayoutConstraint.swift
│ │ ├── LayoutConstraintItem.swift
│ │ ├── Typealiases.swift
│ │ └── UILayoutSupport+Extensions.swift
│ └── Target Support Files
│ ├── Alamofire
│ ├── Alamofire-dummy.m
│ ├── Alamofire-prefix.pch
│ ├── Alamofire-umbrella.h
│ ├── Alamofire.modulemap
│ ├── Alamofire.xcconfig
│ └── Info.plist
│ ├── Charts
│ ├── Charts-dummy.m
│ ├── Charts-prefix.pch
│ ├── Charts-umbrella.h
│ ├── Charts.modulemap
│ ├── Charts.xcconfig
│ └── Info.plist
│ ├── DGActivityIndicatorView
│ ├── DGActivityIndicatorView-dummy.m
│ ├── DGActivityIndicatorView-prefix.pch
│ ├── DGActivityIndicatorView-umbrella.h
│ ├── DGActivityIndicatorView.modulemap
│ ├── DGActivityIndicatorView.xcconfig
│ └── Info.plist
│ ├── Moya
│ ├── Info.plist
│ ├── Moya-dummy.m
│ ├── Moya-prefix.pch
│ ├── Moya-umbrella.h
│ ├── Moya.modulemap
│ └── Moya.xcconfig
│ ├── ObjectMapper
│ ├── Info.plist
│ ├── ObjectMapper-dummy.m
│ ├── ObjectMapper-prefix.pch
│ ├── ObjectMapper-umbrella.h
│ ├── ObjectMapper.modulemap
│ └── ObjectMapper.xcconfig
│ ├── Pods-KLineDemo
│ ├── Info.plist
│ ├── Pods-KLineDemo-acknowledgements.markdown
│ ├── Pods-KLineDemo-acknowledgements.plist
│ ├── Pods-KLineDemo-dummy.m
│ ├── Pods-KLineDemo-frameworks.sh
│ ├── Pods-KLineDemo-resources.sh
│ ├── Pods-KLineDemo-umbrella.h
│ ├── Pods-KLineDemo.debug.xcconfig
│ ├── Pods-KLineDemo.modulemap
│ └── Pods-KLineDemo.release.xcconfig
│ ├── Pods-KLineDemoTests
│ ├── Info.plist
│ ├── Pods-KLineDemoTests-acknowledgements.markdown
│ ├── Pods-KLineDemoTests-acknowledgements.plist
│ ├── Pods-KLineDemoTests-dummy.m
│ ├── Pods-KLineDemoTests-frameworks.sh
│ ├── Pods-KLineDemoTests-resources.sh
│ ├── Pods-KLineDemoTests-umbrella.h
│ ├── Pods-KLineDemoTests.debug.xcconfig
│ ├── Pods-KLineDemoTests.modulemap
│ └── Pods-KLineDemoTests.release.xcconfig
│ ├── Pods-KLineDemoUITests
│ ├── Info.plist
│ ├── Pods-KLineDemoUITests-acknowledgements.markdown
│ ├── Pods-KLineDemoUITests-acknowledgements.plist
│ ├── Pods-KLineDemoUITests-dummy.m
│ ├── Pods-KLineDemoUITests-frameworks.sh
│ ├── Pods-KLineDemoUITests-resources.sh
│ ├── Pods-KLineDemoUITests-umbrella.h
│ ├── Pods-KLineDemoUITests.debug.xcconfig
│ ├── Pods-KLineDemoUITests.modulemap
│ └── Pods-KLineDemoUITests.release.xcconfig
│ ├── Result
│ ├── Info.plist
│ ├── Result-dummy.m
│ ├── Result-prefix.pch
│ ├── Result-umbrella.h
│ ├── Result.modulemap
│ └── Result.xcconfig
│ ├── RxAtomic
│ ├── Info.plist
│ ├── RxAtomic-dummy.m
│ ├── RxAtomic-prefix.pch
│ ├── RxAtomic-umbrella.h
│ ├── RxAtomic.modulemap
│ └── RxAtomic.xcconfig
│ ├── RxCocoa
│ ├── Info.plist
│ ├── RxCocoa-dummy.m
│ ├── RxCocoa-prefix.pch
│ ├── RxCocoa-umbrella.h
│ ├── RxCocoa.modulemap
│ └── RxCocoa.xcconfig
│ ├── RxSwift
│ ├── Info.plist
│ ├── RxSwift-dummy.m
│ ├── RxSwift-prefix.pch
│ ├── RxSwift-umbrella.h
│ ├── RxSwift.modulemap
│ └── RxSwift.xcconfig
│ └── SnapKit
│ ├── Info.plist
│ ├── SnapKit-dummy.m
│ ├── SnapKit-prefix.pch
│ ├── SnapKit-umbrella.h
│ ├── SnapKit.modulemap
│ └── SnapKit.xcconfig
├── KLine
├── Const
│ └── KLineConst.swift
├── Controller
│ └── KLineFullScreenViewController.swift
├── KLineChartViewController.swift
├── Manager
│ └── MarketSubscribeManager.swift
├── Model
│ ├── KLineDepthInfoViewModel.swift
│ ├── KLineDepthModel.swift
│ ├── KLineInfoViewModel.swift
│ ├── KLineModel.swift
│ ├── KLinePeriod.swift
│ └── KLineSampleDataResponse.swift
├── Util
│ ├── UtilAlgorithm.swift
│ └── UtilSampleData.swift
└── View
│ ├── KLineBaseView.swift
│ ├── KLineChartCell.swift
│ ├── KLineChartCheckedView.swift
│ ├── KLineChartFooterView.swift
│ ├── KLineChartHeaderView.swift
│ ├── KLineDepthInfoView.swift
│ ├── KLineDepthView.swift
│ ├── KLineFullScreenBottomView.swift
│ ├── KLineFullScreenCheckedView.swift
│ ├── KLineFullScreenIndexView.swift
│ ├── KLineFullScreenTopInfoView.swift
│ ├── KLineInfoView.swift
│ └── KLineView.swift
├── README.md
├── 增量推送中间对齐深度图.png
├── 横屏k线长按效果.png
└── 竖屏k线长按效果.png
/Example/KLineDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/KLineDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/KLineDemo.xcodeproj/project.xcworkspace/xcuserdata/cheng.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShouBinCheng/KLineDemo/9403783d3bbe8e95fd4aaa75b12bb1edd35bff55/Example/KLineDemo.xcodeproj/project.xcworkspace/xcuserdata/cheng.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Example/KLineDemo.xcodeproj/xcuserdata/cheng.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | KLineDemo.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 13
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Example/KLineDemo.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/KLineDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/KLineDemo.xcworkspace/xcuserdata/cheng.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShouBinCheng/KLineDemo/9403783d3bbe8e95fd4aaa75b12bb1edd35bff55/Example/KLineDemo.xcworkspace/xcuserdata/cheng.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Example/KLineDemo.xcworkspace/xcuserdata/cheng.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/AppDelegate/NavigationController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NavigationController.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/20.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class NavigationController: UINavigationController {
12 |
13 | override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
14 | return (self.topViewController?.supportedInterfaceOrientations)!
15 | }
16 |
17 |
18 | override func viewDidLoad() {
19 | super.viewDidLoad()
20 |
21 | // Do any additional setup after loading the view.
22 | }
23 |
24 | override func didReceiveMemoryWarning() {
25 | super.didReceiveMemoryWarning()
26 | // Dispose of any resources that can be recreated.
27 | }
28 |
29 |
30 | /*
31 | // MARK: - Navigation
32 |
33 | // In a storyboard-based application, you will often want to do a little preparation before navigation
34 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
35 | // Get the new view controller using segue.destinationViewController.
36 | // Pass the selected object to the new view controller.
37 | }
38 | */
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Common/Base/BaseView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BaseView.swift
3 | // KLineDemo
4 | //
5 | // Created by 程守斌 on 2019/2/28.
6 | // Copyright © 2019 程守斌. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class BaseView: UIView {
12 |
13 | override init(frame: CGRect) {
14 | super.init(frame: frame)
15 | makeUI()
16 | makeConstraint()
17 | makeEvent()
18 | }
19 |
20 | required init?(coder aDecoder: NSCoder) {
21 | super.init(coder: aDecoder)
22 | }
23 |
24 | //创建UI 子类需override
25 | func makeUI(){
26 | }
27 |
28 | //创建约束 子类需override
29 | func makeConstraint(){
30 | }
31 |
32 | //创建事件 子类需override
33 | func makeEvent() {
34 | }
35 |
36 | //刷新UI 子类需override
37 | func refreshUI(viewModel:Any?){
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Common/Extension/NSObject+extension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+extension.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/18.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension NSObject {
12 | public var className: String {
13 | return type(of: self).className
14 | }
15 |
16 | public static var className: String {
17 | return String(describing: self)
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Common/Extension/UIColor+extension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+extension.swift
3 | // ejufu
4 | //
5 | // Created by Kevin on 2017/12/16.
6 | // Copyright © 2017年 qsjr. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import UIKit
11 |
12 | extension UIColor {
13 |
14 | public convenience init(hexString: String, alpha: CGFloat = 1.0) {
15 | var formatted = hexString.replacingOccurrences(of: "0x", with: "")
16 | formatted = formatted.replacingOccurrences(of: "#", with: "")
17 | if let hex = Int(formatted, radix: 16) {
18 | let red = CGFloat(CGFloat((hex & 0xFF0000) >> 16)/255.0)
19 | let green = CGFloat(CGFloat((hex & 0x00FF00) >> 8)/255.0)
20 | let blue = CGFloat(CGFloat((hex & 0x0000FF) >> 0)/255.0)
21 | self.init(red: red, green: green, blue: blue, alpha: alpha)
22 | } else {
23 | self.init(red: 1.0, green: 1.0, blue: 1.0, alpha: 1)
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Common/Extension/UITableView+extension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+extension.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/18.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import UIKit
11 |
12 | extension UITableView {
13 | //创建tableview
14 | static func create(frame:CGRect, style:UITableView.Style, edgeTop:CGFloat, edgeBottom:CGFloat) -> UITableView {
15 | let tableView = UITableView.init(frame: frame, style: style)
16 | tableView.separatorStyle = .none
17 | tableView.backgroundColor = .clear
18 | tableView.autoresizingMask = [.flexibleHeight,.flexibleWidth]
19 | tableView.contentInset = UIEdgeInsets(top: edgeTop, left: 0, bottom: edgeBottom, right: 0)
20 | tableView.scrollIndicatorInsets = UIEdgeInsets(top: edgeTop, left: 0, bottom: edgeBottom, right: 0)
21 | tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
22 | return tableView
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Common/Extension/UIView+extension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+extension.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/16.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import UIKit
11 |
12 | extension UIView {
13 | //添加多个View
14 | func addSubviews(_ views:[UIView]){
15 | for view in views {
16 | self.addSubview(view)
17 | }
18 | }
19 | }
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Config.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Config.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/21.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | class Config : NSObject {
12 |
13 | static let isOpenNetworkLog = true
14 | }
15 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Const/APISConst.swift:
--------------------------------------------------------------------------------
1 | //
2 | // APISConst.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/21.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class APISConst: NSObject {
12 |
13 | static let baseUrl = "https://candybox.tth365.com/"
14 |
15 | static let klineWeek = "kline/week_k" //周线测试数据
16 | static let klineDay = "kline/day_k" //日线测试数据
17 | static let klineOneday = "kline/oneday" //分时测试数据
18 | }
19 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Const/ColorConst.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ColorConst.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/14.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ColorConst: NSObject {
12 |
13 | static let kLineBgColor = UIColor.init(hexString: "#2A2B34")
14 |
15 | //线条色
16 | static let lineColor = UIColor.init(hexString: "#D9D9D9")
17 | }
18 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Const/DefaultConst.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DefaultConst.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/18.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import UIKit
11 |
12 | class DefaultConst: NSObject {
13 |
14 | //屏幕宽高
15 | static let kScreenWidth:CGFloat = UIScreen.main.bounds.size.width
16 | static let kScreenHeight:CGFloat = UIScreen.main.bounds.size.height
17 | //一个像素宽度
18 | static let kPixelSize:CGFloat = (1.0/UIScreen.main.scale)
19 | }
20 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/KLine/Controller/KLineFullScreenViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineFullScreenViewController.swift
3 | // KLineDemo
4 | //
5 | // Created by 程守斌 on 2019/3/1.
6 | // Copyright © 2019 程守斌. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class KLineFullScreenViewController: UIViewController {
12 |
13 | override var prefersStatusBarHidden: Bool {
14 | return true
15 | }
16 |
17 |
18 | }
19 |
20 | //MARK: - life cycle
21 | extension KLineFullScreenViewController {
22 |
23 | override func viewDidLoad() {
24 | super.viewDidLoad()
25 |
26 | self.view.backgroundColor = KLineConst.kLineBgColor
27 | let transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi/2));
28 | self.view.layer.setAffineTransform(transform)
29 |
30 | }
31 |
32 | override func touchesEnded(_ touches: Set, with event: UIEvent?) {
33 | self.dismiss(animated: true, completion: nil)
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/KLine/Model/KLineInfoViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineInfoViewModel.swift
3 | // Coinx
4 | //
5 | // Created by Kevin on 2018/5/6.
6 | // Copyright © 2018年 lizhengyi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import Charts
11 |
12 | class KLineInfoViewModel: NSObject {
13 | var highlight:Highlight?
14 | var kLineModel:KLineModel?
15 | var kType:KType?
16 | var kIndexTop:KIndexTop?
17 | var kIndexBottom:KIndexBottom?
18 | var topHighly:Double?
19 | var bottomHighly:Double?
20 | }
21 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/KLine/Util/UtilDate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UtilDate.swift
3 | // Coinx
4 | //
5 | // Created by Kevin on 2018/4/29.
6 | // Copyright © 2018年 lizhengyi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class UtilDate: NSObject {
12 | //格式化为自定义模式
13 | static func toString(formatter:String, timeIntervalSince1970: Int) -> String{
14 | let date = Date(timeIntervalSince1970: TimeInterval(timeIntervalSince1970))
15 | let dformatter = DateFormatter()
16 | dformatter.dateFormat = formatter
17 | return dformatter.string(from:date)
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Model/KLineSampleDataResponse.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineSampleDataResponse.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/22.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import ObjectMapper
11 |
12 | struct KLineSampleDataResponse : Mappable{
13 |
14 | var symbol:String?
15 |
16 | var success:String?
17 | var chartlist:[KLineModel2]?
18 |
19 | init?(map: Map) {
20 |
21 | }
22 | mutating func mapping(map: Map) {
23 | symbol <- map["stock.symbol"]
24 | success <- map["success"]
25 | chartlist <- map["chartlist"]
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Modules/Demo/View/CombinedView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CombinedView.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/22.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import Charts
11 |
12 | class CombinedView: LineChartView {
13 |
14 |
15 | func autoScale() {
16 |
17 | print("hdhdhakndalncsndclnasdk")
18 |
19 | }
20 |
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Service/BaseResponse.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BaseResponse.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/21.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import ObjectMapper
11 |
12 | ///子类无需集成。仅需对应data格式和Codable
13 | class BaseResponse: Mappable {
14 |
15 | var code:String?// 服务端返回码
16 | var msg:String?
17 | var data: T?
18 |
19 | required init?(map: Map){
20 |
21 | }
22 | func mapping(map: Map){
23 | code <- map["code"]
24 | msg <- map["msg"]
25 | data <- map["data"]
26 | }
27 | }
28 |
29 | struct EmptyResponse: Mappable{
30 |
31 | init?(map: Map){
32 | }
33 | func mapping(map: Map){
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Classes/Service/TargetType+extension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TargetType+extension.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/21.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import Moya
11 |
12 | extension TargetType {
13 |
14 | var baseURL: URL {
15 | return URL(string:APISConst.baseUrl)!
16 | }
17 |
18 | var headers: [String: String]? {
19 | return [
20 | "os":"iOS"
21 | ]
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Example/KLineDemo/Resources/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Example/KLineDemo/Resources/SampleData/fiveTrade.json:
--------------------------------------------------------------------------------
1 | {
2 | "symbol": "SZ300033",
3 | "time": "Aug 31, 2016 11:34:39 AM",
4 | "bp1": 68.35,
5 | "bc1": 41,
6 | "bp2": 68.34,
7 | "bc2": 1,
8 | "bp3": 68.32,
9 | "bc3": 3,
10 | "bp4": 68.3,
11 | "bc4": 16,
12 | "bp5": 68.27,
13 | "bc5": 1,
14 | "bp6": 0.0,
15 | "bc6": 0,
16 | "bp7": 0.0,
17 | "bc7": 0,
18 | "bp8": 0.0,
19 | "bc8": 0,
20 | "bp9": 0.0,
21 | "bc9": 0,
22 | "bp10": 0.0,
23 | "bc10": 0,
24 | "current": 68.35,
25 | "sp1": 68.36,
26 | "sc1": 33,
27 | "sp2": 68.37,
28 | "sc2": 157,
29 | "sp3": 68.38,
30 | "sc3": 114,
31 | "sp4": 68.39,
32 | "sc4": 44,
33 | "sp5": 68.4,
34 | "sc5": 73,
35 | "sp6": 0.0,
36 | "sc6": 0,
37 | "sp7": 0.0,
38 | "sc7": 0,
39 | "sp8": 0.0,
40 | "sc8": 0,
41 | "sp9": 0.0,
42 | "sc9": 0,
43 | "sp10": 0.0,
44 | "sc10": 0,
45 | "buypct": 12.84,
46 | "sellpct": 87.16,
47 | "diff": -359,
48 | "ratio": -74.33
49 | }
--------------------------------------------------------------------------------
/Example/KLineDemo/Resources/SampleData/fiveTrade.temp_caseinsensitive_rename.json:
--------------------------------------------------------------------------------
1 | {
2 | "symbol": "SZ300033",
3 | "time": "Aug 31, 2016 11:34:39 AM",
4 | "bp1": 68.35,
5 | "bc1": 41,
6 | "bp2": 68.34,
7 | "bc2": 1,
8 | "bp3": 68.32,
9 | "bc3": 3,
10 | "bp4": 68.3,
11 | "bc4": 16,
12 | "bp5": 68.27,
13 | "bc5": 1,
14 | "bp6": 0.0,
15 | "bc6": 0,
16 | "bp7": 0.0,
17 | "bc7": 0,
18 | "bp8": 0.0,
19 | "bc8": 0,
20 | "bp9": 0.0,
21 | "bc9": 0,
22 | "bp10": 0.0,
23 | "bc10": 0,
24 | "current": 68.35,
25 | "sp1": 68.36,
26 | "sc1": 33,
27 | "sp2": 68.37,
28 | "sc2": 157,
29 | "sp3": 68.38,
30 | "sc3": 114,
31 | "sp4": 68.39,
32 | "sc4": 44,
33 | "sp5": 68.4,
34 | "sc5": 73,
35 | "sp6": 0.0,
36 | "sc6": 0,
37 | "sp7": 0.0,
38 | "sc7": 0,
39 | "sp8": 0.0,
40 | "sc8": 0,
41 | "sp9": 0.0,
42 | "sc9": 0,
43 | "sp10": 0.0,
44 | "sc10": 0,
45 | "buypct": 12.84,
46 | "sellpct": 87.16,
47 | "diff": -359,
48 | "ratio": -74.33
49 | }
50 |
--------------------------------------------------------------------------------
/Example/KLineDemoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Example/KLineDemoTests/KLineDemoTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineDemoTests.swift
3 | // KLineDemoTests
4 | //
5 | // Created by 程守斌 on 2019/2/28.
6 | // Copyright © 2019 程守斌. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | @testable import KLineDemo
11 |
12 | class KLineDemoTests: XCTestCase {
13 |
14 | override func setUp() {
15 | // Put setup code here. This method is called before the invocation of each test method in the class.
16 | }
17 |
18 | override func tearDown() {
19 | // Put teardown code here. This method is called after the invocation of each test method in the class.
20 | }
21 |
22 | func testExample() {
23 | // This is an example of a functional test case.
24 | // Use XCTAssert and related functions to verify your tests produce the correct results.
25 | }
26 |
27 | func testPerformanceExample() {
28 | // This is an example of a performance test case.
29 | self.measure {
30 | // Put the code you want to measure the time of here.
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/Example/KLineDemoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Example/Podfile:
--------------------------------------------------------------------------------
1 | platform :ios, '9.0'
2 |
3 | target 'KLineDemo' do
4 | use_frameworks!
5 | inhibit_all_warnings! #忽略警告
6 |
7 | pod 'Alamofire' #网络请求库
8 | pod 'Moya' #网络层封装
9 | pod 'RxSwift' #响应式
10 | pod 'RxCocoa' #Cocoa响应式扩展
11 | # pod 'Charts' #图表库
12 |
13 | #改动CandleStickChartRenderer,增加最高低价显示,以收盘价为中心原点
14 | pod 'Charts', git:"https://github.com/iCoobin/Charts.git", tag:"3.2.3-myself"
15 | pod 'SnapKit' #布局
16 | pod 'ObjectMapper' #模型
17 | pod 'DGActivityIndicatorView' #Loading
18 |
19 | target 'KLineDemoTests' do
20 | inherit! :search_paths
21 | end
22 |
23 | target 'KLineDemoUITests' do
24 | inherit! :search_paths
25 | end
26 |
27 | end
28 |
--------------------------------------------------------------------------------
/Example/Pods/Alamofire/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014 Alamofire Software Foundation (http://alamofire.org/)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | open class BubbleChartView: BarLineChartViewBase, BubbleChartDataProvider
16 | {
17 | open override func initialize()
18 | {
19 | super.initialize()
20 |
21 | renderer = BubbleChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
22 | }
23 |
24 | // MARK: - BubbleChartDataProvider
25 |
26 | open var bubbleData: BubbleChartData? { return _data as? BubbleChartData }
27 | }
28 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | /// Financial chart type that draws candle-sticks.
16 | open class CandleStickChartView: BarLineChartViewBase, CandleChartDataProvider
17 | {
18 | internal override func initialize()
19 | {
20 | super.initialize()
21 |
22 | renderer = CandleStickChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
23 |
24 | self.xAxis.spaceMin = 0.5
25 | self.xAxis.spaceMax = 0.5
26 | }
27 |
28 | // MARK: - CandleChartDataProvider
29 |
30 | open var candleData: CandleChartData?
31 | {
32 | return _data as? CandleChartData
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | /// Chart that draws lines, surfaces, circles, ...
16 | open class LineChartView: BarLineChartViewBase, LineChartDataProvider
17 | {
18 | internal override func initialize()
19 | {
20 | super.initialize()
21 |
22 | renderer = LineChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
23 | }
24 |
25 | // MARK: - LineChartDataProvider
26 |
27 | open var lineData: LineChartData? { return _data as? LineChartData }
28 | }
29 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | /// The ScatterChart. Draws dots, triangles, squares and custom shapes into the chartview.
16 | open class ScatterChartView: BarLineChartViewBase, ScatterChartDataProvider
17 | {
18 | open override func initialize()
19 | {
20 | super.initialize()
21 |
22 | renderer = ScatterChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler)
23 |
24 | xAxis.spaceMin = 0.5
25 | xAxis.spaceMax = 0.5
26 | }
27 |
28 | // MARK: - ScatterChartDataProvider
29 |
30 | open var scatterData: ScatterChartData? { return _data as? ScatterChartData }
31 | }
32 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 |
16 | /// This class encapsulates everything both Axis, Legend and LimitLines have in common
17 | @objc(ChartComponentBase)
18 | open class ComponentBase: NSObject
19 | {
20 | /// flag that indicates if this component is enabled or not
21 | @objc open var enabled = true
22 |
23 | /// The offset this component has on the x-axis
24 | /// **default**: 5.0
25 | @objc open var xOffset = CGFloat(5.0)
26 |
27 | /// The offset this component has on the x-axis
28 | /// **default**: 5.0 (or 0.0 on ChartYAxis)
29 | @objc open var yOffset = CGFloat(5.0)
30 |
31 | public override init()
32 | {
33 | super.init()
34 | }
35 |
36 | @objc open var isEnabled: Bool { return enabled }
37 | }
38 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 | {
16 | public override init()
17 | {
18 | super.init()
19 | }
20 |
21 | public override init(dataSets: [IChartDataSet]?)
22 | {
23 | super.init(dataSets: dataSets)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | open class BubbleChartData: BarLineScatterCandleBubbleChartData
16 | {
17 | public override init()
18 | {
19 | super.init()
20 | }
21 |
22 | public override init(dataSets: [IChartDataSet]?)
23 | {
24 | super.init(dataSets: dataSets)
25 | }
26 |
27 | /// Sets the width of the circle that surrounds the bubble when highlighted for all DataSet objects this data object contains
28 | @objc open func setHighlightCircleWidth(_ width: CGFloat)
29 | {
30 | (_dataSets as? [IBubbleChartDataSet])?.forEach { $0.highlightCircleWidth = width }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 | {
16 | public override init()
17 | {
18 | super.init()
19 | }
20 |
21 | public override init(dataSets: [IChartDataSet]?)
22 | {
23 | super.init(dataSets: dataSets)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 | {
17 | public override init()
18 | {
19 | super.init()
20 | }
21 |
22 | public override init(dataSets: [IChartDataSet]?)
23 | {
24 | super.init(dataSets: dataSets)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol IBarLineScatterCandleBubbleChartDataSet: IChartDataSet
17 | {
18 | // MARK: - Data functions and accessors
19 |
20 | // MARK: - Styling functions and accessors
21 |
22 | var highlightColor: NSUIColor { get set }
23 | var highlightLineWidth: CGFloat { get set }
24 | var highlightLineDashPhase: CGFloat { get set }
25 | var highlightLineDashLengths: [CGFloat]? { get set }
26 | }
27 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol IBubbleChartDataSet: IBarLineScatterCandleBubbleChartDataSet
17 | {
18 | // MARK: - Data functions and accessors
19 |
20 | var maxSize: CGFloat { get }
21 | var isNormalizeSizeEnabled: Bool { get }
22 |
23 | // MARK: - Styling functions and accessors
24 |
25 | /// Sets/gets the width of the circle that surrounds the bubble when highlighted
26 | var highlightCircleWidth: CGFloat { get set }
27 | }
28 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol IScatterChartDataSet: ILineScatterCandleRadarChartDataSet
17 | {
18 | // MARK: - Data functions and accessors
19 |
20 | // MARK: - Styling functions and accessors
21 |
22 | /// The size the scatter shape will have
23 | var scatterShapeSize: CGFloat { get }
24 |
25 | /// - Returns: The radius of the hole in the shape (applies to Square, Circle and Triangle)
26 | /// Set this to <= 0 to remove holes.
27 | /// **default**: 0.0
28 | var scatterShapeHoleRadius: CGFloat { get }
29 |
30 | /// - Returns: Color for the hole in the shape. Setting to `nil` will behave as transparent.
31 | /// **default**: nil
32 | var scatterShapeHoleColor: NSUIColor? { get }
33 |
34 | /// The IShapeRenderer responsible for rendering this DataSet.
35 | var shapeRenderer: IShapeRenderer? { get }
36 | }
37 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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: class
17 | {
18 |
19 | /// Called when a value from an axis is formatted before being drawn.
20 | ///
21 | /// For performance reasons, avoid excessive calculations and memory allocations inside this method.
22 | ///
23 | /// - Parameters:
24 | /// - value: the value that is currently being drawn
25 | /// - axis: the axis that the value belongs to
26 | /// - Returns: The customized label that is drawn on the x-axis.
27 | func stringForValue(_ value: Double,
28 | axis: AxisBase?) -> String
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
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 | {
19 | /// - Returns: The vertical (y-axis) position where the filled-line of the LineDataSet should end.
20 | func getFillLinePosition(dataSet: ILineChartDataSet, dataProvider: LineChartDataProvider) -> CGFloat
21 | }
22 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc(IChartHighlighter)
16 | public protocol IHighlighter: class
17 | {
18 | /// - Parameters:
19 | /// - x:
20 | /// - y:
21 | /// - Returns: A Highlight object corresponding to the given x- and y- touch positions in pixels.
22 | func getHighlight(x: CGFloat, y: CGFloat) -> Highlight?
23 | }
24 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc(PieChartHighlighter)
16 | open class PieHighlighter: PieRadarHighlighter
17 | {
18 | open override func closestHighlight(index: Int, x: CGFloat, y: CGFloat) -> Highlight?
19 | {
20 | guard
21 | let set = chart?.data?.dataSets[0],
22 | let entry = set.entryForIndex(index)
23 | else { return nil }
24 |
25 | return Highlight(x: Double(index), y: entry.y, xPx: x, yPx: y, dataSetIndex: 0, axis: set.axisDependency)
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol BarChartDataProvider: BarLineScatterCandleBubbleChartDataProvider
17 | {
18 | var barData: BarChartData? { get }
19 |
20 | var isDrawBarShadowEnabled: Bool { get }
21 | var isDrawValueAboveBarEnabled: Bool { get }
22 | var isHighlightFullBarEnabled: Bool { get }
23 | }
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol BarLineScatterCandleBubbleChartDataProvider: ChartDataProvider
17 | {
18 | func getTransformer(forAxis: YAxis.AxisDependency) -> Transformer
19 | func isInverted(axis: YAxis.AxisDependency) -> Bool
20 |
21 | var lowestVisibleX: Double { get }
22 | var highestVisibleX: Double { get }
23 | }
24 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol BubbleChartDataProvider: BarLineScatterCandleBubbleChartDataProvider
17 | {
18 | var bubbleData: BubbleChartData? { get }
19 | }
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol CandleChartDataProvider: BarLineScatterCandleBubbleChartDataProvider
17 | {
18 | var candleData: CandleChartData? { get }
19 | }
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol ChartDataProvider
17 | {
18 | /// The minimum x-value of the chart, regardless of zoom or translation.
19 | var chartXMin: Double { get }
20 |
21 | /// The maximum x-value of the chart, regardless of zoom or translation.
22 | var chartXMax: Double { get }
23 |
24 | /// The minimum y-value of the chart, regardless of zoom or translation.
25 | var chartYMin: Double { get }
26 |
27 | /// The maximum y-value of the chart, regardless of zoom or translation.
28 | var chartYMax: Double { get }
29 |
30 | var maxHighlightDistance: CGFloat { get }
31 |
32 | var xRange: Double { get }
33 |
34 | var centerOffsets: CGPoint { get }
35 |
36 | var data: ChartData? { get }
37 |
38 | var maxVisibleCount: Int { get }
39 | }
40 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol CombinedChartDataProvider: LineChartDataProvider, BarChartDataProvider, BubbleChartDataProvider, CandleChartDataProvider, ScatterChartDataProvider
17 | {
18 | var combinedData: CombinedChartData? { get }
19 | }
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol LineChartDataProvider: BarLineScatterCandleBubbleChartDataProvider
17 | {
18 | var lineData: LineChartData? { get }
19 |
20 | func getAxis(_ axis: YAxis.AxisDependency) -> YAxis
21 | }
22 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol ScatterChartDataProvider: BarLineScatterCandleBubbleChartDataProvider
17 | {
18 | var scatterData: ScatterChartData? { get }
19 | }
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | #if !os(OSX)
16 | import UIKit
17 | #endif
18 |
19 | open class AnimatedMoveViewJob: AnimatedViewPortJob
20 | {
21 | internal override func animationUpdate()
22 | {
23 | guard
24 | let viewPortHandler = viewPortHandler,
25 | let transformer = transformer,
26 | let view = view
27 | else { return }
28 |
29 | var pt = CGPoint(
30 | x: xOrigin + (CGFloat(xValue) - xOrigin) * phase,
31 | y: yOrigin + (CGFloat(yValue) - yOrigin) * phase
32 | )
33 |
34 | transformer.pointValueToPixel(&pt)
35 | viewPortHandler.centerViewPort(pt: pt, chart: view)
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | #if !os(OSX)
16 | import UIKit
17 | #endif
18 |
19 | @objc(MoveChartViewJob)
20 | open class MoveViewJob: ViewPortJob
21 | {
22 | open override func doJob()
23 | {
24 | guard
25 | let viewPortHandler = viewPortHandler,
26 | let transformer = transformer,
27 | let view = view
28 | else { return }
29 |
30 | var pt = CGPoint(
31 | x: xValue,
32 | y: yValue
33 | )
34 |
35 | transformer.pointValueToPixel(&pt)
36 | viewPortHandler.centerViewPort(pt: pt, chart: view)
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc(ChartRenderer)
16 | open class Renderer: NSObject
17 | {
18 | /// the component that handles the drawing area of the chart and it's offsets
19 | @objc public let viewPortHandler: ViewPortHandler
20 |
21 | @objc public init(viewPortHandler: ViewPortHandler)
22 | {
23 | self.viewPortHandler = viewPortHandler
24 | super.init()
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
12 | import CoreGraphics
13 |
14 | open class CrossShapeRenderer : NSObject, IShapeRenderer
15 | {
16 | open func renderShape(
17 | context: CGContext,
18 | dataSet: IScatterChartDataSet,
19 | viewPortHandler: ViewPortHandler,
20 | point: CGPoint,
21 | color: NSUIColor)
22 | {
23 | let shapeSize = dataSet.scatterShapeSize
24 | let shapeHalf = shapeSize / 2.0
25 |
26 | context.setLineWidth(1.0)
27 | context.setStrokeColor(color.cgColor)
28 |
29 | context.beginPath()
30 | context.move(to: CGPoint(x: point.x - shapeHalf, y: point.y))
31 | context.addLine(to: CGPoint(x: point.x + shapeHalf, y: point.y))
32 | context.move(to: CGPoint(x: point.x, y: point.y - shapeHalf))
33 | context.addLine(to: CGPoint(x: point.x, y: point.y + shapeHalf))
34 | context.strokePath()
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc
16 | public protocol IShapeRenderer: class
17 | {
18 | /// Renders the provided ScatterDataSet with a shape.
19 | ///
20 | /// - Parameters:
21 | /// - context: CGContext for drawing on
22 | /// - dataSet: The DataSet to be drawn
23 | /// - viewPortHandler: Contains information about the current state of the view
24 | /// - point: Position to draw the shape at
25 | /// - color: Color to draw the shape
26 | func renderShape(
27 | context: CGContext,
28 | dataSet: IScatterChartDataSet,
29 | viewPortHandler: ViewPortHandler,
30 | point: CGPoint,
31 | color: NSUIColor)
32 | }
33 |
--------------------------------------------------------------------------------
/Example/Pods/Charts/Source/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 Foundation
13 | import CoreGraphics
14 |
15 | @objc(ChartTransformerHorizontalBarChart)
16 | open class TransformerHorizontalBarChart: Transformer
17 | {
18 | /// Prepares the matrix that contains all offsets.
19 | open override func prepareMatrixOffset(inverted: Bool)
20 | {
21 | if !inverted
22 | {
23 | _matrixOffset = CGAffineTransform(translationX: _viewPortHandler.offsetLeft, y: _viewPortHandler.chartHeight - _viewPortHandler.offsetBottom)
24 | }
25 | else
26 | {
27 | _matrixOffset = CGAffineTransform(scaleX: -1.0, y: 1.0)
28 | _matrixOffset = _matrixOffset.translatedBy(x: -(_viewPortHandler.chartWidth - _viewPortHandler.offsetRight),
29 | y: _viewPortHandler.chartHeight - _viewPortHandler.offsetBottom)
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 8/10/16.
6 | // Copyright © 2016 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "DGActivityIndicatorAnimationProtocol.h"
12 |
13 | @interface DGActivityIndicatorAnimation : NSObject
14 |
15 | - (CABasicAnimation *)createBasicAnimationWithKeyPath:(NSString *)keyPath;
16 | - (CAKeyframeAnimation *)createKeyframeAnimationWithKeyPath:(NSString *)keyPath;
17 | - (CAAnimationGroup *)createAnimationGroup;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorAnimation.m:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorAnimation.m
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 8/10/16.
6 | // Copyright © 2016 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @implementation DGActivityIndicatorAnimation
12 |
13 | - (CABasicAnimation *)createBasicAnimationWithKeyPath:(NSString *)keyPath {
14 | CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:keyPath];
15 | animation.removedOnCompletion = NO;
16 | return animation;
17 | }
18 |
19 | - (CAKeyframeAnimation *)createKeyframeAnimationWithKeyPath:(NSString *)keyPath {
20 | CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:keyPath];
21 | animation.removedOnCompletion = NO;
22 | return animation;
23 | }
24 |
25 | - (CAAnimationGroup *)createAnimationGroup {
26 | CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
27 | animationGroup.removedOnCompletion = NO;
28 | return animationGroup;
29 | }
30 |
31 | - (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor {
32 |
33 | }
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallBeatAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallBeatAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallClipRotateAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/19/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallClipRotateAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallClipRotateMultipleAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/19/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallClipRotateMultipleAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallClipRotatePulseAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/19/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallClipRotatePulseAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallGridBeatAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallGridBeatAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallGridPulseAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallGridPulseAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallPulseAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/19/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallPulseAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallPulseSyncAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallPulseSyncAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallRotateAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallRotateAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallScaleAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallScaleAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallScaleMultipleAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallScaleMultipleAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallScaleTrippleAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallScaleRippleAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallScaleRippleMultipleAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallScaleRippleMultipleAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallSpinFadeLoader.h
3 | // CheeseDigest
4 | //
5 | // Created by Robin.Chao on 9/8/15.
6 | // Copyright (c) 2015 mRocker. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallSpinFadeLoader : DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallTrianglePathAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallTrianglePathAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallZigZagAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallZigZagAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorBallZigZagDeflectAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorBallZigZagDeflectAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorCookieTerminatorAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by tripleCC on 15/6/28.
6 | // Copyright (c) 2015年 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorCookieTerminatorAnimation: DGActivityIndicatorAnimation
12 |
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorDoubleBounceAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 5/23/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorDoubleBounceAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorFiveDotsAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 5/23/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorFiveDotsAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorLineScaleAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorLineScaleAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorLineScalePartyAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorLineScalePartyAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorLineScalePulseOutAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorLineScalePulseOutAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorLineScalePulseOutRapidAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorLineScalePulseOutRapidAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorNineDotsAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 5/23/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorNineDotsAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorRotatingTrigonsAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by tripleCC on 15/6/26.
6 | // Copyright (c) 2015年 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorRotatingSandglassAnimation: DGActivityIndicatorAnimation
12 |
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorRotatingSquaresAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 5/23/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorRotatingSquaresAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorRotatingTrigonsAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by tripleCC on 15/6/26.
6 | // Copyright (c) 2015年 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorRotatingTrigonAnimation: DGActivityIndicatorAnimation
12 |
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorThreeDotsAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 6/15/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorThreeDotsAnimation : DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorTriangleSkewSpinAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Nguyen Vinh on 7/20/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorTriangleSkewSpinAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorTriplePulseAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 5/23/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorTriplePulseAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorTripleRingsPulseAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by tripleCC on 15/6/28.
6 | // Copyright (c) 2015年 Danil Gontovnik. All rights reserved.
7 | //
8 | #import "DGActivityIndicatorAnimation.h"
9 |
10 | @interface DGActivityIndicatorTripleRingsAnimation: DGActivityIndicatorAnimation
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorTwoDotsAnimation.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 5/24/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import "DGActivityIndicatorAnimation.h"
10 |
11 | @interface DGActivityIndicatorTwoDotsAnimation: DGActivityIndicatorAnimation
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorAnimationProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // DGActivityIndicatorAnimationProtocol.h
3 | // DGActivityIndicatorExample
4 | //
5 | // Created by Danil Gontovnik on 5/23/15.
6 | // Copyright (c) 2015 Danil Gontovnik. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @protocol DGActivityIndicatorAnimationProtocol
13 |
14 | - (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor;
15 |
16 | @end
--------------------------------------------------------------------------------
/Example/Pods/DGActivityIndicatorView/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Danil Gontovnik
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 |
23 |
--------------------------------------------------------------------------------
/Example/Pods/Local Podspecs/Charts.podspec.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Charts",
3 | "version": "3.2.3",
4 | "summary": "Charts is a powerful & easy to use chart library for iOS, tvOS and OSX (and Android)",
5 | "homepage": "https://github.com/danielgindi/Charts",
6 | "license": {
7 | "type": "Apache License, Version 2.0",
8 | "file": "LICENSE"
9 | },
10 | "authors": [
11 | "Daniel Cohen Gindi",
12 | "Philipp Jahoda"
13 | ],
14 | "platforms": {
15 | "ios": "8.0",
16 | "tvos": "9.0",
17 | "osx": "10.11"
18 | },
19 | "source": {
20 | "git": "https://github.com/danielgindi/Charts.git",
21 | "tag": "v3.2.3"
22 | },
23 | "default_subspecs": "Core",
24 | "swift_version": "4.2",
25 | "cocoapods_version": ">= 1.5.0",
26 | "subspecs": [
27 | {
28 | "name": "Core",
29 | "source_files": "Source/Charts/**/*.swift"
30 | }
31 | ]
32 | }
33 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/License.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014-present Artsy, Ash Furrow
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 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/Sources/Moya/AnyEncodable.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct AnyEncodable: Encodable {
4 |
5 | private let encodable: Encodable
6 |
7 | public init(_ encodable: Encodable) {
8 | self.encodable = encodable
9 | }
10 |
11 | func encode(to encoder: Encoder) throws {
12 | try encodable.encode(to: encoder)
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/Sources/Moya/Cancellable.swift:
--------------------------------------------------------------------------------
1 | /// Protocol to define the opaque type returned from a request.
2 | public protocol Cancellable {
3 |
4 | /// A Boolean value stating whether a request is cancelled.
5 | var isCancelled: Bool { get }
6 |
7 | /// Cancels the represented request.
8 | func cancel()
9 | }
10 |
11 | internal class CancellableWrapper: Cancellable {
12 | internal var innerCancellable: Cancellable = SimpleCancellable()
13 |
14 | var isCancelled: Bool { return innerCancellable.isCancelled }
15 |
16 | internal func cancel() {
17 | innerCancellable.cancel()
18 | }
19 | }
20 |
21 | internal class SimpleCancellable: Cancellable {
22 | var isCancelled = false
23 | func cancel() {
24 | isCancelled = true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/Sources/Moya/Image.swift:
--------------------------------------------------------------------------------
1 | #if os(iOS) || os(watchOS) || os(tvOS)
2 | import UIKit.UIImage
3 | public typealias ImageType = UIImage
4 | #elseif os(macOS)
5 | import AppKit.NSImage
6 | public typealias ImageType = NSImage
7 | #endif
8 |
9 | /// An alias for the SDK's image type.
10 | public typealias Image = ImageType
11 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/Sources/Moya/Plugins/CredentialsPlugin.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import Result
3 |
4 | /// Provides each request with optional URLCredentials.
5 | public final class CredentialsPlugin: PluginType {
6 |
7 | public typealias CredentialClosure = (TargetType) -> URLCredential?
8 | let credentialsClosure: CredentialClosure
9 |
10 | /// Initializes a CredentialsPlugin.
11 | public init(credentialsClosure: @escaping CredentialClosure) {
12 | self.credentialsClosure = credentialsClosure
13 | }
14 |
15 | // MARK: Plugin
16 |
17 | public func willSend(_ request: RequestType, target: TargetType) {
18 | if let credentials = credentialsClosure(target) {
19 | _ = request.authenticate(usingCredential: credentials)
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/Sources/Moya/Plugins/NetworkActivityPlugin.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import Result
3 |
4 | /// Network activity change notification type.
5 | public enum NetworkActivityChangeType {
6 | case began, ended
7 | }
8 |
9 | /// Notify a request's network activity changes (request begins or ends).
10 | public final class NetworkActivityPlugin: PluginType {
11 |
12 | public typealias NetworkActivityClosure = (_ change: NetworkActivityChangeType, _ target: TargetType) -> Void
13 | let networkActivityClosure: NetworkActivityClosure
14 |
15 | /// Initializes a NetworkActivityPlugin.
16 | public init(networkActivityClosure: @escaping NetworkActivityClosure) {
17 | self.networkActivityClosure = networkActivityClosure
18 | }
19 |
20 | // MARK: Plugin
21 |
22 | /// Called by the provider as soon as the request is about to start
23 | public func willSend(_ request: RequestType, target: TargetType) {
24 | networkActivityClosure(.began, target)
25 | }
26 |
27 | /// Called by the provider as soon as a response arrives, even if the request is canceled.
28 | public func didReceive(_ result: Result, target: TargetType) {
29 | networkActivityClosure(.ended, target)
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/Sources/Moya/URL+Moya.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | public extension URL {
4 |
5 | /// Initialize URL from Moya's `TargetType`.
6 | init(target: T) {
7 | // When a TargetType's path is empty, URL.appendingPathComponent may introduce trailing /, which may not be wanted in some cases
8 | // See: https://github.com/Moya/Moya/pull/1053
9 | // And: https://github.com/Moya/Moya/issues/1049
10 | if target.path.isEmpty {
11 | self = target.baseURL
12 | } else {
13 | self = target.baseURL.appendingPathComponent(target.path)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Example/Pods/Moya/Sources/Moya/URLRequest+Encoding.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | internal extension URLRequest {
4 |
5 | mutating func encoded(encodable: Encodable, encoder: JSONEncoder = JSONEncoder()) throws -> URLRequest {
6 | do {
7 | let encodable = AnyEncodable(encodable)
8 | httpBody = try encoder.encode(encodable)
9 |
10 | let contentTypeHeaderName = "Content-Type"
11 | if value(forHTTPHeaderField: contentTypeHeaderName) == nil {
12 | setValue("application/json", forHTTPHeaderField: contentTypeHeaderName)
13 | }
14 |
15 | return self
16 | } catch {
17 | throw MoyaError.encodableMapping(error)
18 | }
19 | }
20 |
21 | func encoded(parameters: [String: Any], parameterEncoding: ParameterEncoding) throws -> URLRequest {
22 | do {
23 | return try parameterEncoding.encode(self, with: parameters)
24 | } catch {
25 | throw MoyaError.parameterEncoding(error)
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Example/Pods/ObjectMapper/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c) 2014 Hearst
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5 |
6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7 |
8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9 |
--------------------------------------------------------------------------------
/Example/Pods/Result/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Rob Rix
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.
--------------------------------------------------------------------------------
/Example/Pods/Result/Result/AnyError.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | /// A type-erased error which wraps an arbitrary error instance. This should be
4 | /// useful for generic contexts.
5 | public struct AnyError: Swift.Error {
6 | /// The underlying error.
7 | public let error: Swift.Error
8 |
9 | public init(_ error: Swift.Error) {
10 | if let anyError = error as? AnyError {
11 | self = anyError
12 | } else {
13 | self.error = error
14 | }
15 | }
16 | }
17 |
18 | extension AnyError: ErrorConvertible {
19 | public static func error(from error: Error) -> AnyError {
20 | return AnyError(error)
21 | }
22 | }
23 |
24 | extension AnyError: CustomStringConvertible {
25 | public var description: String {
26 | return String(describing: error)
27 | }
28 | }
29 |
30 | extension AnyError: LocalizedError {
31 | public var errorDescription: String? {
32 | return error.localizedDescription
33 | }
34 |
35 | public var failureReason: String? {
36 | return (error as? LocalizedError)?.failureReason
37 | }
38 |
39 | public var helpAnchor: String? {
40 | return (error as? LocalizedError)?.helpAnchor
41 | }
42 |
43 | public var recoverySuggestion: String? {
44 | return (error as? LocalizedError)?.recoverySuggestion
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Example/Pods/Result/Result/NoError.swift:
--------------------------------------------------------------------------------
1 | /// An “error” that is impossible to construct.
2 | ///
3 | /// This can be used to describe `Result`s where failures will never
4 | /// be generated. For example, `Result` describes a result that
5 | /// contains an `Int`eger and is guaranteed never to be a `failure`.
6 | public enum NoError: Swift.Error, Equatable {
7 | public static func ==(lhs: NoError, rhs: NoError) -> Bool {
8 | return true
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Example/Pods/RxAtomic/LICENSE.md:
--------------------------------------------------------------------------------
1 | **The MIT License**
2 | **Copyright © 2015 Krunoslav Zaher**
3 | **All rights reserved.**
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Example/Pods/RxAtomic/RxAtomic/RxAtomic.c:
--------------------------------------------------------------------------------
1 | //
2 | // RxAtomic.c
3 | // RxAtomic
4 | //
5 | // Created by Krunoslav Zaher on 10/28/18.
6 | // Copyright © 2018 Krunoslav Zaher. All rights reserved.
7 | //
8 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/LICENSE.md:
--------------------------------------------------------------------------------
1 | **The MIT License**
2 | **Copyright © 2015 Krunoslav Zaher**
3 | **All rights reserved.**
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InfiniteSequence.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 6/13/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Sequence that repeats `repeatedValue` infinite number of times.
10 | struct InfiniteSequence : Sequence {
11 | typealias Element = E
12 | typealias Iterator = AnyIterator
13 |
14 | private let _repeatedValue: E
15 |
16 | init(repeatedValue: E) {
17 | _repeatedValue = repeatedValue
18 | }
19 |
20 | func makeIterator() -> Iterator {
21 | let repeatedValue = _repeatedValue
22 | return AnyIterator {
23 | return repeatedValue
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DispatchQueue+Extensions.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 10/22/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Dispatch
10 |
11 | extension DispatchQueue {
12 | private static var token: DispatchSpecificKey<()> = {
13 | let key = DispatchSpecificKey<()>()
14 | DispatchQueue.main.setSpecific(key: key, value: ())
15 | return key
16 | }()
17 |
18 | static var isMain: Bool {
19 | return DispatchQueue.getSpecific(key: token) != nil
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/Platform/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Platform.Darwin.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 12/29/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
10 |
11 | import Darwin
12 | import class Foundation.Thread
13 | import protocol Foundation.NSCopying
14 |
15 | extension Thread {
16 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) {
17 | let currentThread = Thread.current
18 | let threadDictionary = currentThread.threadDictionary
19 |
20 | if let newValue = value {
21 | threadDictionary[key] = newValue
22 | }
23 | else {
24 | threadDictionary[key] = nil
25 | }
26 | }
27 |
28 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? {
29 | let currentThread = Thread.current
30 | let threadDictionary = currentThread.threadDictionary
31 |
32 | return threadDictionary[key] as? T
33 | }
34 | }
35 |
36 | #endif
37 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/Platform/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Platform.Linux.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 12/29/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(Linux)
10 |
11 | import class Foundation.Thread
12 |
13 | extension Thread {
14 |
15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) {
16 | let currentThread = Thread.current
17 | var threadDictionary = currentThread.threadDictionary
18 |
19 | if let newValue = value {
20 | threadDictionary[key] = newValue
21 | }
22 | else {
23 | threadDictionary[key] = nil
24 | }
25 |
26 | currentThread.threadDictionary = threadDictionary
27 | }
28 |
29 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? {
30 | let currentThread = Thread.current
31 | let threadDictionary = currentThread.threadDictionary
32 |
33 | return threadDictionary[key] as? T
34 | }
35 | }
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/Platform/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RecursiveLock.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 12/18/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import class Foundation.NSRecursiveLock
10 |
11 | #if TRACE_RESOURCES
12 | class RecursiveLock: NSRecursiveLock {
13 | override init() {
14 | _ = Resources.incrementTotal()
15 | super.init()
16 | }
17 |
18 | override func lock() {
19 | super.lock()
20 | _ = Resources.incrementTotal()
21 | }
22 |
23 | override func unlock() {
24 | super.unlock()
25 | _ = Resources.decrementTotal()
26 | }
27 |
28 | deinit {
29 | _ = Resources.decrementTotal()
30 | }
31 | }
32 | #else
33 | typealias RecursiveLock = NSRecursiveLock
34 | #endif
35 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSLayoutConstraint+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 12/6/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if !os(Linux)
10 |
11 | #if os(macOS)
12 | import Cocoa
13 | #else
14 | import UIKit
15 | #endif
16 |
17 | import RxSwift
18 |
19 | #if os(iOS) || os(macOS) || os(tvOS)
20 | extension Reactive where Base: NSLayoutConstraint {
21 | /// Bindable sink for `constant` property.
22 | public var constant: Binder {
23 | return Binder(self.base) { constraint, constant in
24 | constraint.constant = constant
25 | }
26 | }
27 |
28 | /// Bindable sink for `active` property.
29 | @available(iOS 8, OSX 10.10, *)
30 | public var active: Binder {
31 | return Binder(self.base) { constraint, value in
32 | constraint.isActive = value
33 | }
34 | }
35 | }
36 |
37 | #endif
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxTarget.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 7/12/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import class Foundation.NSObject
10 |
11 | import RxSwift
12 |
13 | class RxTarget : NSObject
14 | , Disposable {
15 |
16 | private var retainSelf: RxTarget?
17 |
18 | override init() {
19 | super.init()
20 | self.retainSelf = self
21 |
22 | #if TRACE_RESOURCES
23 | _ = Resources.incrementTotal()
24 | #endif
25 |
26 | #if DEBUG
27 | MainScheduler.ensureExecutingOnScheduler()
28 | #endif
29 | }
30 |
31 | func dispose() {
32 | #if DEBUG
33 | MainScheduler.ensureExecutingOnScheduler()
34 | #endif
35 | self.retainSelf = nil
36 | }
37 |
38 | #if TRACE_RESOURCES
39 | deinit {
40 | _ = Resources.decrementTotal()
41 | }
42 | #endif
43 | }
44 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SectionedViewDataSourceType.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 1/10/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import struct Foundation.IndexPath
10 |
11 | /// Data source with access to underlying sectioned model.
12 | public protocol SectionedViewDataSourceType {
13 | /// Returns model at index path.
14 | ///
15 | /// In case data source doesn't contain any sections when this method is being called, `RxCocoaError.ItemsNotYetBound(object: self)` is thrown.
16 |
17 | /// - parameter indexPath: Model index path
18 | /// - returns: Model at index path.
19 | func model(at indexPath: IndexPath) throws -> Any
20 | }
21 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KVORepresentable.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 11/14/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Type that is KVO representable (KVO mechanism can be used to observe it).
10 | public protocol KVORepresentable {
11 | /// Associated KVO type.
12 | associatedtype KVOType
13 |
14 | /// Constructs `Self` using KVO value.
15 | init?(KVOValue: KVOType)
16 | }
17 |
18 | extension KVORepresentable {
19 | /// Initializes `KVORepresentable` with optional value.
20 | init?(KVOValue: KVOType?) {
21 | guard let KVOValue = KVOValue else {
22 | return nil
23 | }
24 |
25 | self.init(KVOValue: KVOValue)
26 | }
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Foundation/Logging.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Logging.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 4/3/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import struct Foundation.URLRequest
10 |
11 | /// Simple logging settings for RxCocoa library.
12 | public struct Logging {
13 | public typealias LogURLRequest = (URLRequest) -> Bool
14 |
15 | /// Log URL requests to standard output in curl format.
16 | public static var URLRequests: LogURLRequest = { _ in
17 | #if DEBUG
18 | return true
19 | #else
20 | return false
21 | #endif
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NotificationCenter+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 5/2/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import class Foundation.NotificationCenter
10 | import struct Foundation.Notification
11 |
12 | import RxSwift
13 |
14 | extension Reactive where Base: NotificationCenter {
15 | /**
16 | Transforms notifications posted to notification center to observable sequence of notifications.
17 |
18 | - parameter name: Optional name used to filter notifications.
19 | - parameter object: Optional object used to filter notifications.
20 | - returns: Observable sequence of posted notifications.
21 | */
22 | public func notification(_ name: Notification.Name?, object: AnyObject? = nil) -> Observable {
23 | return Observable.create { [weak object] observer in
24 | let nsObserver = self.base.addObserver(forName: name, object: object, queue: nil) { notification in
25 | observer.on(.next(notification))
26 | }
27 |
28 | return Disposables.create {
29 | self.base.removeObserver(nsObserver)
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Runtime/_RX.m:
--------------------------------------------------------------------------------
1 | //
2 | // _RX.m
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 7/12/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import "include/_RX.h"
10 |
11 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxCocoaRuntime.h
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 2/21/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "_RX.h"
11 | #import "_RXDelegateProxy.h"
12 | #import "_RXKVOObserver.h"
13 | #import "_RXObjCRuntime.h"
14 |
15 | //! Project version number for RxCocoa.
16 | FOUNDATION_EXPORT double RxCocoaVersionNumber;
17 |
18 | //! Project version string for RxCocoa.
19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[];
20 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h:
--------------------------------------------------------------------------------
1 | //
2 | // _RXDelegateProxy.h
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 7/4/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface _RXDelegateProxy : NSObject
14 |
15 | @property (nonatomic, weak, readonly) id _forwardToDelegate;
16 |
17 | -(void)_setForwardToDelegate:(id __nullable)forwardToDelegate retainDelegate:(BOOL)retainDelegate NS_SWIFT_NAME(_setForwardToDelegate(_:retainDelegate:)) ;
18 |
19 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector;
20 | -(BOOL)voidDelegateMethodsContain:(SEL)selector;
21 |
22 | -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments;
23 | -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h:
--------------------------------------------------------------------------------
1 | //
2 | // _RXKVOObserver.h
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 7/11/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | ################################################################################
13 | This file is part of RX private API
14 | ################################################################################
15 | */
16 |
17 | // Exists because if written in Swift, reading unowned is disabled during dealloc process
18 | @interface _RXKVOObserver : NSObject
19 |
20 | -(instancetype)initWithTarget:(id)target
21 | retainTarget:(BOOL)retainTarget
22 | keyPath:(NSString*)keyPath
23 | options:(NSKeyValueObservingOptions)options
24 | callback:(void (^)(id))callback;
25 |
26 | -(void)dispose;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/RxCocoa.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxCocoa.h
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 2/21/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "_RX.h"
11 | #import "_RXDelegateProxy.h"
12 | #import "_RXKVOObserver.h"
13 | #import "_RXObjCRuntime.h"
14 |
15 | //! Project version number for RxCocoa.
16 | FOUNDATION_EXPORT double RxCocoaVersionNumber;
17 |
18 | //! Project version string for RxCocoa.
19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[];
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BehaviorRelay+Driver.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 10/7/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension BehaviorRelay {
12 | /// Converts `BehaviorRelay` to `Driver`.
13 | ///
14 | /// - returns: Observable sequence.
15 | public func asDriver() -> Driver {
16 | let source = self.asObservable()
17 | .observeOn(DriverSharingStrategy.scheduler)
18 | return SharedSequence(source)
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ControlEvent+Driver.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 9/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension ControlEvent {
12 | /// Converts `ControlEvent` to `Driver` trait.
13 | ///
14 | /// `ControlEvent` already can't fail, so no special case needs to be handled.
15 | public func asDriver() -> Driver {
16 | return self.asDriver { (error) -> Driver in
17 | #if DEBUG
18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.")
19 | #else
20 | return Driver.empty()
21 | #endif
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ControlProperty+Driver.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 9/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension ControlProperty {
12 | /// Converts `ControlProperty` to `Driver` trait.
13 | ///
14 | /// `ControlProperty` already can't fail, so no special case needs to be handled.
15 | public func asDriver() -> Driver {
16 | return self.asDriver { (error) -> Driver in
17 | #if DEBUG
18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.")
19 | #else
20 | return Driver.empty()
21 | #endif
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Traits/PublishRelay.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PublishRelay.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 3/28/15.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | /// PublishRelay is a wrapper for `PublishSubject`.
12 | ///
13 | /// Unlike `PublishSubject` it can't terminate with error or completed.
14 | public final class PublishRelay: ObservableType {
15 | public typealias E = Element
16 |
17 | private let _subject: PublishSubject
18 |
19 | // Accepts `event` and emits it to subscribers
20 | public func accept(_ event: Element) {
21 | _subject.onNext(event)
22 | }
23 |
24 | /// Initializes with internal empty subject.
25 | public init() {
26 | _subject = PublishSubject()
27 | }
28 |
29 | /// Subscribes observer
30 | public func subscribe(_ observer: O) -> Disposable where O.E == E {
31 | return _subject.subscribe(observer)
32 | }
33 |
34 | /// - returns: Canonical interface for push style sequence
35 | public func asObservable() -> Observable {
36 | return _subject.asObservable()
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ControlEvent+Signal.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 11/1/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension ControlEvent {
12 | /// Converts `ControlEvent` to `Signal` trait.
13 | ///
14 | /// `ControlEvent` already can't fail, so no special case needs to be handled.
15 | public func asSignal() -> Signal {
16 | return self.asSignal { (error) -> Signal in
17 | #if DEBUG
18 | rxFatalError("Somehow signal received error from a source that shouldn't fail.")
19 | #else
20 | return Signal.empty()
21 | #endif
22 | }
23 | }
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PublishRelay+Signal.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 12/28/15.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension PublishRelay {
12 | /// Converts `PublishRelay` to `Signal`.
13 | ///
14 | /// - returns: Observable sequence.
15 | public func asSignal() -> Signal {
16 | let source = self.asObservable()
17 | .observeOn(SignalSharingStrategy.scheduler)
18 | return SharedSequence(source)
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ItemEvents.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 6/20/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 | import UIKit
11 |
12 | public typealias ItemMovedEvent = (sourceIndex: IndexPath, destinationIndex: IndexPath)
13 | public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: IndexPath)
14 | public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: IndexPath)
15 | #endif
16 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxCollectionViewDataSourceType.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 6/29/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | /// Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods.
15 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ {
16 |
17 | /// Type of elements that can be bound to collection view.
18 | associatedtype Element
19 |
20 | /// New observable sequence event observed.
21 | ///
22 | /// - parameter collectionView: Bound collection view.
23 | /// - parameter observedEvent: Event
24 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) -> Void
25 | }
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxPickerViewDataSourceType.swift
3 | // RxCocoa
4 | //
5 | // Created by Sergey Shulga on 05/07/2017.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | /// Marks data source as `UIPickerView` reactive data source enabling it to be used with one of the `bindTo` methods.
15 | public protocol RxPickerViewDataSourceType {
16 | /// Type of elements that can be bound to picker view.
17 | associatedtype Element
18 |
19 | /// New observable sequence event observed.
20 | ///
21 | /// - parameter pickerView: Bound picker view.
22 | /// - parameter observedEvent: Event
23 | func pickerView(_ pickerView: UIPickerView, observedEvent: Event)
24 | }
25 |
26 | #endif
27 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxTableViewDataSourceType.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 6/26/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | /// Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods.
15 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ {
16 |
17 | /// Type of elements that can be bound to table view.
18 | associatedtype Element
19 |
20 | /// New observable sequence event observed.
21 | ///
22 | /// - parameter tableView: Bound table view.
23 | /// - parameter observedEvent: Event
24 | func tableView(_ tableView: UITableView, observedEvent: Event) -> Void
25 | }
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxCollectionViewDelegateProxy.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 6/29/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | /// For more information take a look at `DelegateProxyType`.
15 | open class RxCollectionViewDelegateProxy
16 | : RxScrollViewDelegateProxy
17 | , UICollectionViewDelegate
18 | , UICollectionViewDelegateFlowLayout {
19 |
20 | /// Typed parent object.
21 | public weak private(set) var collectionView: UICollectionView?
22 |
23 | /// Initializes `RxCollectionViewDelegateProxy`
24 | ///
25 | /// - parameter collectionView: Parent object for delegate proxy.
26 | public init(collectionView: UICollectionView) {
27 | self.collectionView = collectionView
28 | super.init(scrollView: collectionView)
29 | }
30 | }
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxPickerViewDelegateProxy.swift
3 | // RxCocoa
4 | //
5 | // Created by Segii Shulga on 5/12/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension UIPickerView: HasDelegate {
15 | public typealias Delegate = UIPickerViewDelegate
16 | }
17 |
18 | open class RxPickerViewDelegateProxy
19 | : DelegateProxy
20 | , DelegateProxyType
21 | , UIPickerViewDelegate {
22 |
23 | /// Typed parent object.
24 | public weak private(set) var pickerView: UIPickerView?
25 |
26 | /// - parameter pickerView: Parent object for delegate proxy.
27 | public init(pickerView: ParentObject) {
28 | self.pickerView = pickerView
29 | super.init(parentObject: pickerView, delegateProxy: RxPickerViewDelegateProxy.self)
30 | }
31 |
32 | // Register known implementationss
33 | public static func registerKnownImplementations() {
34 | self.register { RxPickerViewDelegateProxy(pickerView: $0) }
35 | }
36 | }
37 | #endif
38 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxSearchBarDelegateProxy.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 7/4/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension UISearchBar: HasDelegate {
15 | public typealias Delegate = UISearchBarDelegate
16 | }
17 |
18 | /// For more information take a look at `DelegateProxyType`.
19 | open class RxSearchBarDelegateProxy
20 | : DelegateProxy
21 | , DelegateProxyType
22 | , UISearchBarDelegate {
23 |
24 | /// Typed parent object.
25 | public weak private(set) var searchBar: UISearchBar?
26 |
27 | /// - parameter searchBar: Parent object for delegate proxy.
28 | public init(searchBar: ParentObject) {
29 | self.searchBar = searchBar
30 | super.init(parentObject: searchBar, delegateProxy: RxSearchBarDelegateProxy.self)
31 | }
32 |
33 | // Register known implementations
34 | public static func registerKnownImplementations() {
35 | self.register { RxSearchBarDelegateProxy(searchBar: $0) }
36 | }
37 | }
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxTabBarControllerDelegateProxy.swift
3 | // RxCocoa
4 | //
5 | // Created by Yusuke Kita on 2016/12/07.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension UITabBarController: HasDelegate {
15 | public typealias Delegate = UITabBarControllerDelegate
16 | }
17 |
18 | /// For more information take a look at `DelegateProxyType`.
19 | open class RxTabBarControllerDelegateProxy
20 | : DelegateProxy
21 | , DelegateProxyType
22 | , UITabBarControllerDelegate {
23 |
24 | /// Typed parent object.
25 | public weak private(set) var tabBar: UITabBarController?
26 |
27 | /// - parameter tabBar: Parent object for delegate proxy.
28 | public init(tabBar: ParentObject) {
29 | self.tabBar = tabBar
30 | super.init(parentObject: tabBar, delegateProxy: RxTabBarControllerDelegateProxy.self)
31 | }
32 |
33 | // Register known implementations
34 | public static func registerKnownImplementations() {
35 | self.register { RxTabBarControllerDelegateProxy(tabBar: $0) }
36 | }
37 | }
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxTableViewDelegateProxy.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 6/15/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | /// For more information take a look at `DelegateProxyType`.
15 | open class RxTableViewDelegateProxy
16 | : RxScrollViewDelegateProxy
17 | , UITableViewDelegate {
18 |
19 | /// Typed parent object.
20 | public weak private(set) var tableView: UITableView?
21 |
22 | /// - parameter tableView: Parent object for delegate proxy.
23 | public init(tableView: UITableView) {
24 | self.tableView = tableView
25 | super.init(scrollView: tableView)
26 | }
27 |
28 | }
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxTextStorageDelegateProxy.swift
3 | // RxCocoa
4 | //
5 | // Created by Segii Shulga on 12/30/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension NSTextStorage: HasDelegate {
15 | public typealias Delegate = NSTextStorageDelegate
16 | }
17 |
18 | open class RxTextStorageDelegateProxy
19 | : DelegateProxy
20 | , DelegateProxyType
21 | , NSTextStorageDelegate {
22 |
23 | /// Typed parent object.
24 | public weak private(set) var textStorage: NSTextStorage?
25 |
26 | /// - parameter textStorage: Parent object for delegate proxy.
27 | public init(textStorage: NSTextStorage) {
28 | self.textStorage = textStorage
29 | super.init(parentObject: textStorage, delegateProxy: RxTextStorageDelegateProxy.self)
30 | }
31 |
32 | // Register known implementations
33 | public static func registerKnownImplementations() {
34 | self.register { RxTextStorageDelegateProxy(textStorage: $0) }
35 | }
36 | }
37 | #endif
38 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWebViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxWebViewDelegateProxy.swift
3 | // RxCocoa
4 | //
5 | // Created by Andrew Breckenridge on 9/26/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension UIWebView: HasDelegate {
15 | public typealias Delegate = UIWebViewDelegate
16 | }
17 |
18 | open class RxWebViewDelegateProxy
19 | : DelegateProxy
20 | , DelegateProxyType
21 | , UIWebViewDelegate {
22 |
23 | /// Typed parent object.
24 | public weak private(set) var webView: UIWebView?
25 |
26 | /// - parameter webView: Parent object for delegate proxy.
27 | public init(webView: ParentObject) {
28 | self.webView = webView
29 | super.init(parentObject: webView, delegateProxy: RxWebViewDelegateProxy.self)
30 | }
31 |
32 | // Register known implementations
33 | public static func registerKnownImplementations() {
34 | self.register { RxWebViewDelegateProxy(webView: $0) }
35 | }
36 | }
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIActivityIndicatorView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Ivan Persidskiy on 02/12/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIActivityIndicatorView {
15 |
16 | /// Bindable sink for `startAnimating()`, `stopAnimating()` methods.
17 | public var isAnimating: Binder {
18 | return Binder(self.base) { activityIndicator, active in
19 | if active {
20 | activityIndicator.startAnimating()
21 | } else {
22 | activityIndicator.stopAnimating()
23 | }
24 | }
25 | }
26 |
27 | }
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIAlertAction+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIAlertAction+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Andrew Breckenridge on 5/7/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIAlertAction {
15 |
16 | /// Bindable sink for `enabled` property.
17 | public var isEnabled: Binder {
18 | return Binder(self.base) { alertAction, value in
19 | alertAction.isEnabled = value
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Mads Bøgeskov on 18/01/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIApplication {
15 |
16 | /// Bindable sink for `networkActivityIndicatorVisible`.
17 | public var isNetworkActivityIndicatorVisible: Binder {
18 | return Binder(self.base) { application, active in
19 | application.isNetworkActivityIndicatorVisible = active
20 | }
21 | }
22 | }
23 | #endif
24 |
25 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIImageView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 4/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UIImageView {
15 |
16 | /// Bindable sink for `image` property.
17 | public var image: Binder {
18 | return Binder(base) { imageView, image in
19 | imageView.image = image
20 | }
21 | }
22 | }
23 |
24 | #endif
25 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UILabel+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 4/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UILabel {
15 |
16 | /// Bindable sink for `text` property.
17 | public var text: Binder {
18 | return Binder(self.base) { label, text in
19 | label.text = text
20 | }
21 | }
22 |
23 | /// Bindable sink for `attributedText` property.
24 | public var attributedText: Binder {
25 | return Binder(self.base) { label, text in
26 | label.attributedText = text
27 | }
28 | }
29 |
30 | }
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UINavigationItem+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationItem+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by kumapo on 2016/05/09.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UINavigationItem {
15 |
16 | /// Bindable sink for `title` property.
17 | public var title: Binder {
18 | return Binder(self.base) { navigationItem, text in
19 | navigationItem.title = text
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIPageControl+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIPageControl+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Francesco Puntillo on 14/04/2016.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UIPageControl {
15 |
16 | /// Bindable sink for `currentPage` property.
17 | public var currentPage: Binder {
18 | return Binder(self.base) { controller, page in
19 | controller.currentPage = page
20 | }
21 | }
22 |
23 | /// Bindable sink for `numberOfPages` property.
24 | public var numberOfPages: Binder {
25 | return Binder(self.base) { controller, page in
26 | controller.numberOfPages = page
27 | }
28 | }
29 |
30 | }
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIProgressView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIProgressView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Samuel Bae on 2/27/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UIProgressView {
15 |
16 | /// Bindable sink for `progress` property
17 | public var progress: Binder {
18 | return Binder(self.base) { progressView, progress in
19 | progressView.progress = progress
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIRefreshControl+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Yosuke Ishikawa on 1/31/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIRefreshControl {
15 | /// Bindable sink for `beginRefreshing()`, `endRefreshing()` methods.
16 | public var isRefreshing: Binder {
17 | return Binder(self.base) { refreshControl, refresh in
18 | if refresh {
19 | refreshControl.beginRefreshing()
20 | } else {
21 | refreshControl.endRefreshing()
22 | }
23 | }
24 | }
25 |
26 | }
27 |
28 | #endif
29 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UISlider+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Alexander van der Werff on 28/05/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UISlider {
15 |
16 | /// Reactive wrapper for `value` property.
17 | public var value: ControlProperty {
18 | return base.rx.controlPropertyWithDefaultEvents(
19 | getter: { slider in
20 | slider.value
21 | }, setter: { slider, value in
22 | slider.value = value
23 | }
24 | )
25 | }
26 |
27 | }
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIStepper+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Yuta ToKoRo on 9/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIStepper {
15 |
16 | /// Reactive wrapper for `value` property.
17 | public var value: ControlProperty {
18 | return base.rx.controlPropertyWithDefaultEvents(
19 | getter: { stepper in
20 | stepper.value
21 | }, setter: { stepper, value in
22 | stepper.value = value
23 | }
24 | )
25 | }
26 |
27 | /// Reactive wrapper for `stepValue` property.
28 | public var stepValue: Binder {
29 | return Binder(self.base) { stepper, value in
30 | stepper.stepValue = value
31 | }
32 | }
33 |
34 | }
35 |
36 | #endif
37 |
38 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UISwitch+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Carlos García on 8/7/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UISwitch {
15 |
16 | /// Reactive wrapper for `isOn` property.
17 | public var isOn: ControlProperty {
18 | return value
19 | }
20 |
21 | /// Reactive wrapper for `isOn` property.
22 | ///
23 | /// ⚠️ Versions prior to iOS 10.2 were leaking `UISwitch`'s, so on those versions
24 | /// underlying observable sequence won't complete when nothing holds a strong reference
25 | /// to `UISwitch`.
26 | public var value: ControlProperty {
27 | return base.rx.controlPropertyWithDefaultEvents(
28 | getter: { uiSwitch in
29 | uiSwitch.isOn
30 | }, setter: { uiSwitch, value in
31 | uiSwitch.isOn = value
32 | }
33 | )
34 | }
35 |
36 | }
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UITabBarItem+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBarItem+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Mateusz Derks on 04/03/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UITabBarItem {
15 |
16 | /// Bindable sink for `badgeValue` property.
17 | public var badgeValue: Binder {
18 | return Binder(self.base) { tabBarItem, badgeValue in
19 | tabBarItem.badgeValue = badgeValue
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 12/6/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIView {
15 | /// Bindable sink for `hidden` property.
16 | public var isHidden: Binder {
17 | return Binder(self.base) { view, hidden in
18 | view.isHidden = hidden
19 | }
20 | }
21 |
22 | /// Bindable sink for `alpha` property.
23 | public var alpha: Binder {
24 | return Binder(self.base) { view, alpha in
25 | view.alpha = alpha
26 | }
27 | }
28 |
29 | /// Bindable sink for `isUserInteractionEnabled` property.
30 | public var isUserInteractionEnabled: Binder {
31 | return Binder(self.base) { view, userInteractionEnabled in
32 | view.isUserInteractionEnabled = userInteractionEnabled
33 | }
34 | }
35 |
36 | }
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/iOS/UIViewController+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Kyle Fuller on 27/05/2016.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIViewController {
15 |
16 | /// Bindable sink for `title`.
17 | public var title: Binder {
18 | return Binder(self.base) { viewController, title in
19 | viewController.title = title
20 | }
21 | }
22 |
23 | }
24 | #endif
25 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSButton+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 5/17/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(macOS)
10 |
11 | import RxSwift
12 | import Cocoa
13 |
14 | extension Reactive where Base: NSButton {
15 |
16 | /// Reactive wrapper for control event.
17 | public var tap: ControlEvent {
18 | return controlEvent
19 | }
20 |
21 | /// Reactive wrapper for `state` property`.
22 | public var state: ControlProperty {
23 | return base.rx.controlProperty(
24 | getter: { control in
25 | return control.state
26 | }, setter: { (control: NSButton, state: NSControl.StateValue) in
27 | control.state = state
28 | }
29 | )
30 | }
31 | }
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSImageView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 5/17/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(macOS)
10 |
11 | import RxSwift
12 | import Cocoa
13 |
14 | extension Reactive where Base: NSImageView {
15 |
16 | /// Bindable sink for `image` property.
17 | public var image: Binder {
18 | return Binder(base) { imageView, image in
19 | imageView.image = image
20 | }
21 | }
22 | }
23 |
24 | #endif
25 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSSlider+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Junior B. on 24/05/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(macOS)
10 |
11 | import RxSwift
12 | import Cocoa
13 |
14 | extension Reactive where Base: NSSlider {
15 |
16 | /// Reactive wrapper for `value` property.
17 | public var value: ControlProperty {
18 | return base.rx.controlProperty(
19 | getter: { control in
20 | return control.doubleValue
21 | },
22 | setter: { control, value in
23 | control.doubleValue = value
24 | }
25 | )
26 | }
27 |
28 | }
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/Example/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 12/6/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(macOS)
10 |
11 | import Cocoa
12 | import RxSwift
13 |
14 | extension Reactive where Base: NSView {
15 | /// Bindable sink for `hidden` property.
16 | public var isHidden: Binder {
17 | return Binder(self.base) { view, value in
18 | view.isHidden = value
19 | }
20 | }
21 |
22 | /// Bindable sink for `alphaValue` property.
23 | public var alpha: Binder {
24 | return Binder(self.base) { view, value in
25 | view.alphaValue = value
26 | }
27 | }
28 | }
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/LICENSE.md:
--------------------------------------------------------------------------------
1 | **The MIT License**
2 | **Copyright © 2015 Krunoslav Zaher**
3 | **All rights reserved.**
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/Platform/AtomicInt.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AtomicInt.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 10/28/18.
6 | // Copyright © 2018 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxAtomic
10 |
11 | typealias AtomicInt = RxAtomic.AtomicInt
12 |
13 | extension AtomicInt {
14 | init(_ initialValue: Int32) {
15 | self.init()
16 | self.initialize(initialValue)
17 | }
18 |
19 | @discardableResult
20 | mutating func increment() -> Int32 {
21 | return self.add(1)
22 | }
23 |
24 | @discardableResult
25 | mutating func decrement() -> Int32 {
26 | return self.sub(1)
27 | }
28 |
29 | mutating func isFlagSet(_ mask: Int32) -> Bool {
30 | return (self.load() & mask) != 0
31 | }
32 | }
33 |
34 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InfiniteSequence.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 6/13/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Sequence that repeats `repeatedValue` infinite number of times.
10 | struct InfiniteSequence : Sequence {
11 | typealias Element = E
12 | typealias Iterator = AnyIterator
13 |
14 | private let _repeatedValue: E
15 |
16 | init(repeatedValue: E) {
17 | _repeatedValue = repeatedValue
18 | }
19 |
20 | func makeIterator() -> Iterator {
21 | let repeatedValue = _repeatedValue
22 | return AnyIterator {
23 | return repeatedValue
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DispatchQueue+Extensions.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 10/22/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Dispatch
10 |
11 | extension DispatchQueue {
12 | private static var token: DispatchSpecificKey<()> = {
13 | let key = DispatchSpecificKey<()>()
14 | DispatchQueue.main.setSpecific(key: key, value: ())
15 | return key
16 | }()
17 |
18 | static var isMain: Bool {
19 | return DispatchQueue.getSpecific(key: token) != nil
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/Platform/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Platform.Darwin.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 12/29/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
10 |
11 | import Darwin
12 | import class Foundation.Thread
13 | import protocol Foundation.NSCopying
14 |
15 | extension Thread {
16 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) {
17 | let currentThread = Thread.current
18 | let threadDictionary = currentThread.threadDictionary
19 |
20 | if let newValue = value {
21 | threadDictionary[key] = newValue
22 | }
23 | else {
24 | threadDictionary[key] = nil
25 | }
26 | }
27 |
28 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? {
29 | let currentThread = Thread.current
30 | let threadDictionary = currentThread.threadDictionary
31 |
32 | return threadDictionary[key] as? T
33 | }
34 | }
35 |
36 | #endif
37 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/Platform/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Platform.Linux.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 12/29/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(Linux)
10 |
11 | import class Foundation.Thread
12 |
13 | extension Thread {
14 |
15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) {
16 | let currentThread = Thread.current
17 | var threadDictionary = currentThread.threadDictionary
18 |
19 | if let newValue = value {
20 | threadDictionary[key] = newValue
21 | }
22 | else {
23 | threadDictionary[key] = nil
24 | }
25 |
26 | currentThread.threadDictionary = threadDictionary
27 | }
28 |
29 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? {
30 | let currentThread = Thread.current
31 | let threadDictionary = currentThread.threadDictionary
32 |
33 | return threadDictionary[key] as? T
34 | }
35 | }
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/Platform/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RecursiveLock.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 12/18/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import class Foundation.NSRecursiveLock
10 |
11 | #if TRACE_RESOURCES
12 | class RecursiveLock: NSRecursiveLock {
13 | override init() {
14 | _ = Resources.incrementTotal()
15 | super.init()
16 | }
17 |
18 | override func lock() {
19 | super.lock()
20 | _ = Resources.incrementTotal()
21 | }
22 |
23 | override func unlock() {
24 | super.unlock()
25 | _ = Resources.decrementTotal()
26 | }
27 |
28 | deinit {
29 | _ = Resources.decrementTotal()
30 | }
31 | }
32 | #else
33 | typealias RecursiveLock = NSRecursiveLock
34 | #endif
35 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Cancelable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Cancelable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 3/12/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents disposable resource with state tracking.
10 | public protocol Cancelable : Disposable {
11 | /// Was resource disposed.
12 | var isDisposed: Bool { get }
13 | }
14 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Concurrency/Lock.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Lock.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 3/31/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol Lock {
10 | func lock()
11 | func unlock()
12 | }
13 |
14 | // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html
15 | typealias SpinLock = RecursiveLock
16 |
17 | extension RecursiveLock : Lock {
18 | @inline(__always)
19 | final func performLocked(_ action: () -> Void) {
20 | lock(); defer { unlock() }
21 | action()
22 | }
23 |
24 | @inline(__always)
25 | final func calculateLocked(_ action: () -> T) -> T {
26 | lock(); defer { unlock() }
27 | return action()
28 | }
29 |
30 | @inline(__always)
31 | final func calculateLockedOrFail(_ action: () throws -> T) throws -> T {
32 | lock(); defer { unlock() }
33 | let result = try action()
34 | return result
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LockOwnerType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol LockOwnerType : class, Lock {
10 | var _lock: RecursiveLock { get }
11 | }
12 |
13 | extension LockOwnerType {
14 | func lock() {
15 | _lock.lock()
16 | }
17 |
18 | func unlock() {
19 | _lock.unlock()
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SynchronizedDisposeType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol SynchronizedDisposeType : class, Disposable, Lock {
10 | func _synchronized_dispose()
11 | }
12 |
13 | extension SynchronizedDisposeType {
14 | func synchronizedDispose() {
15 | lock(); defer { unlock() }
16 | _synchronized_dispose()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SynchronizedOnType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol SynchronizedOnType : class, ObserverType, Lock {
10 | func _synchronized_on(_ event: Event)
11 | }
12 |
13 | extension SynchronizedOnType {
14 | func synchronizedOn(_ event: Event) {
15 | lock(); defer { unlock() }
16 | _synchronized_on(event)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SynchronizedUnsubscribeType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol SynchronizedUnsubscribeType : class {
10 | associatedtype DisposeKey
11 |
12 | func synchronizedUnsubscribe(_ disposeKey: DisposeKey)
13 | }
14 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/ConnectableObservableType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ConnectableObservableType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 3/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /**
10 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence.
11 | */
12 | public protocol ConnectableObservableType : ObservableType {
13 | /**
14 | Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established.
15 |
16 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence.
17 | */
18 | func connect() -> Disposable
19 | }
20 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Disposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Disposable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/8/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents a disposable resource.
10 | public protocol Disposable {
11 | /// Dispose resource.
12 | func dispose()
13 | }
14 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BooleanDisposable.swift
3 | // RxSwift
4 | //
5 | // Created by Junior B. on 10/29/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents a disposable resource that can be checked for disposal status.
10 | public final class BooleanDisposable : Cancelable {
11 |
12 | internal static let BooleanDisposableTrue = BooleanDisposable(isDisposed: true)
13 | private var _isDisposed = false
14 |
15 | /// Initializes a new instance of the `BooleanDisposable` class
16 | public init() {
17 | }
18 |
19 | /// Initializes a new instance of the `BooleanDisposable` class with given value
20 | public init(isDisposed: Bool) {
21 | self._isDisposed = isDisposed
22 | }
23 |
24 | /// - returns: Was resource disposed.
25 | public var isDisposed: Bool {
26 | return _isDisposed
27 | }
28 |
29 | /// Sets the status to disposed, which can be observer through the `isDisposed` property.
30 | public func dispose() {
31 | _isDisposed = true
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Disposables/Disposables.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Disposables.swift
3 | // RxSwift
4 | //
5 | // Created by Mohsen Ramezanpoor on 01/08/2016.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// A collection of utility methods for common disposable operations.
10 | public struct Disposables {
11 | private init() {}
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DisposeBase.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 4/4/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Base class for all disposables.
10 | public class DisposeBase {
11 | init() {
12 | #if TRACE_RESOURCES
13 | let _ = Resources.incrementTotal()
14 | #endif
15 | }
16 |
17 | deinit {
18 | #if TRACE_RESOURCES
19 | let _ = Resources.decrementTotal()
20 | #endif
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NopDisposable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/15/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents a disposable that does nothing on disposal.
10 | ///
11 | /// Nop = No Operation
12 | fileprivate struct NopDisposable : Disposable {
13 |
14 | fileprivate static let noOp: Disposable = NopDisposable()
15 |
16 | fileprivate init() {
17 |
18 | }
19 |
20 | /// Does nothing.
21 | public func dispose() {
22 | }
23 | }
24 |
25 | extension Disposables {
26 | /**
27 | Creates a disposable that does nothing on disposal.
28 | */
29 | static public func create() -> Disposable {
30 | return NopDisposable.noOp
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SubscriptionDisposable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct SubscriptionDisposable : Disposable {
10 | private let _key: T.DisposeKey
11 | private weak var _owner: T?
12 |
13 | init(owner: T, key: T.DisposeKey) {
14 | _owner = owner
15 | _key = key
16 | }
17 |
18 | func dispose() {
19 | _owner?.synchronizedUnsubscribe(_key)
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Bag+Rx.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/19/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 |
10 | // MARK: forEach
11 |
12 | @inline(__always)
13 | func dispatch(_ bag: Bag<(Event) -> ()>, _ event: Event) {
14 | bag._value0?(event)
15 |
16 | if bag._onlyFastPath {
17 | return
18 | }
19 |
20 | let pairs = bag._pairs
21 | for i in 0 ..< pairs.count {
22 | pairs[i].value(event)
23 | }
24 |
25 | if let dictionary = bag._dictionary {
26 | for element in dictionary.values {
27 | element(event)
28 | }
29 | }
30 | }
31 |
32 | /// Dispatches `dispose` to all disposables contained inside bag.
33 | func disposeAll(in bag: Bag) {
34 | bag._value0?.dispose()
35 |
36 | if bag._onlyFastPath {
37 | return
38 | }
39 |
40 | let pairs = bag._pairs
41 | for i in 0 ..< pairs.count {
42 | pairs[i].value.dispose()
43 | }
44 |
45 | if let dictionary = bag._dictionary {
46 | for element in dictionary.values {
47 | element.dispose()
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Extensions/String+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // String+Rx.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 12/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | extension String {
10 | /// This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)`
11 | func lastIndexOf(_ character: Character) -> Index? {
12 | var index = endIndex
13 | while index > startIndex {
14 | index = self.index(before: index)
15 | if self[index] == character {
16 | return index
17 | }
18 | }
19 |
20 | return nil
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ObservableConvertibleType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 9/17/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Type that can be converted to observable sequence (`Observable`).
10 | public protocol ObservableConvertibleType {
11 | /// Type of elements in sequence.
12 | associatedtype E
13 |
14 | /// Converts `self` to `Observable` sequence.
15 | ///
16 | /// - returns: Observable sequence that represents `self`.
17 | func asObservable() -> Observable
18 | }
19 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Observables/Empty.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Empty.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 8/30/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | extension ObservableType {
10 | /**
11 | Returns an empty observable sequence, using the specified scheduler to send out the single `Completed` message.
12 |
13 | - seealso: [empty operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html)
14 |
15 | - returns: An observable sequence with no elements.
16 | */
17 | public static func empty() -> Observable {
18 | return EmptyProducer()
19 | }
20 | }
21 |
22 | final fileprivate class EmptyProducer : Producer {
23 | override func subscribe(_ observer: O) -> Disposable where O.E == Element {
24 | observer.on(.completed)
25 | return Disposables.create()
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Observables/Error.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Error.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 8/30/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | extension ObservableType {
10 | /**
11 | Returns an observable sequence that terminates with an `error`.
12 |
13 | - seealso: [throw operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html)
14 |
15 | - returns: The observable sequence that terminates with specified error.
16 | */
17 | public static func error(_ error: Swift.Error) -> Observable {
18 | return ErrorProducer(error: error)
19 | }
20 | }
21 |
22 | final fileprivate class ErrorProducer : Producer {
23 | private let _error: Swift.Error
24 |
25 | init(error: Swift.Error) {
26 | _error = error
27 | }
28 |
29 | override func subscribe(_ observer: O) -> Disposable where O.E == Element {
30 | observer.on(.error(_error))
31 | return Disposables.create()
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Observables/Never.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Never.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 8/30/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | extension ObservableType {
10 |
11 | /**
12 | Returns a non-terminating observable sequence, which can be used to denote an infinite duration.
13 |
14 | - seealso: [never operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html)
15 |
16 | - returns: An observable sequence whose observers will never get called.
17 | */
18 | public static func never() -> Observable {
19 | return NeverProducer()
20 | }
21 | }
22 |
23 | final fileprivate class NeverProducer : Producer {
24 | override func subscribe(_ observer: O) -> Disposable where O.E == Element {
25 | return Disposables.create()
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AnonymousObserver.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/8/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | final class AnonymousObserver : ObserverBase {
10 | typealias Element = ElementType
11 |
12 | typealias EventHandler = (Event) -> Void
13 |
14 | private let _eventHandler : EventHandler
15 |
16 | init(_ eventHandler: @escaping EventHandler) {
17 | #if TRACE_RESOURCES
18 | let _ = Resources.incrementTotal()
19 | #endif
20 | _eventHandler = eventHandler
21 | }
22 |
23 | override func onCore(_ event: Event) {
24 | return _eventHandler(event)
25 | }
26 |
27 | #if TRACE_RESOURCES
28 | deinit {
29 | let _ = Resources.decrementTotal()
30 | }
31 | #endif
32 | }
33 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ObserverBase.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/15/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | class ObserverBase : Disposable, ObserverType {
10 | typealias E = ElementType
11 |
12 | private var _isStopped = AtomicInt(0)
13 |
14 | func on(_ event: Event) {
15 | switch event {
16 | case .next:
17 | if _isStopped.load() == 0 {
18 | onCore(event)
19 | }
20 | case .error, .completed:
21 | if _isStopped.fetchOr(1) == 0 {
22 | onCore(event)
23 | }
24 | }
25 | }
26 |
27 | func onCore(_ event: Event) {
28 | rxAbstractMethod()
29 | }
30 |
31 | func dispose() {
32 | _isStopped.fetchOr(1)
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/RxMutableBox.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxMutableBox.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 5/22/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Creates mutable reference wrapper for any type.
10 | final class RxMutableBox : CustomDebugStringConvertible {
11 | /// Wrapped value
12 | var value : T
13 |
14 | /// Creates reference wrapper for `value`.
15 | ///
16 | /// - parameter value: Value to wrap.
17 | init (_ value: T) {
18 | self.value = value
19 | }
20 | }
21 |
22 | extension RxMutableBox {
23 | /// - returns: Box description.
24 | var debugDescription: String {
25 | return "MutatingBox(\(self.value))"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift:
--------------------------------------------------------------------------------
1 | //
2 | // HistoricalScheduler.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 12/27/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import struct Foundation.Date
10 |
11 | /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time.
12 | public class HistoricalScheduler : VirtualTimeScheduler {
13 |
14 | /**
15 | Creates a new historical scheduler with initial clock value.
16 |
17 | - parameter initialClock: Initial value for virtual clock.
18 | */
19 | public init(initialClock: RxTime = Date(timeIntervalSince1970: 0)) {
20 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter())
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InvocableScheduledItem.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 11/7/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct InvocableScheduledItem : InvocableType {
10 |
11 | let _invocable: I
12 | let _state: I.Value
13 |
14 | init(invocable: I, state: I.Value) {
15 | _invocable = invocable
16 | _state = state
17 | }
18 |
19 | func invoke() {
20 | _invocable.invoke(_state)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InvocableType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 11/7/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol InvocableType {
10 | func invoke()
11 | }
12 |
13 | protocol InvocableWithValueType {
14 | associatedtype Value
15 |
16 | func invoke(_ value: Value)
17 | }
18 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScheduledItem.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 9/2/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct ScheduledItem
10 | : ScheduledItemType
11 | , InvocableType {
12 | typealias Action = (T) -> Disposable
13 |
14 | private let _action: Action
15 | private let _state: T
16 |
17 | private let _disposable = SingleAssignmentDisposable()
18 |
19 | var isDisposed: Bool {
20 | return _disposable.isDisposed
21 | }
22 |
23 | init(action: @escaping Action, state: T) {
24 | _action = action
25 | _state = state
26 | }
27 |
28 | func invoke() {
29 | _disposable.setDisposable(_action(_state))
30 | }
31 |
32 | func dispose() {
33 | _disposable.dispose()
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScheduledItemType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 11/7/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol ScheduledItemType
10 | : Cancelable
11 | , InvocableType {
12 | func invoke()
13 | }
14 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/Subjects/SubjectType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SubjectType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 3/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents an object that is both an observable sequence as well as an observer.
10 | public protocol SubjectType : ObservableType {
11 | /// The type of the observer that represents this subject.
12 | ///
13 | /// Usually this type is type of subject itself, but it doesn't have to be.
14 | associatedtype SubjectObserverType : ObserverType
15 |
16 | /// Returns observer interface for subject.
17 | ///
18 | /// - returns: Observer interface for subject.
19 | func asObserver() -> SubjectObserverType
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/Example/Pods/RxSwift/RxSwift/SwiftSupport/SwiftSupport.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SwiftSupport.swift
3 | // RxSwift
4 | //
5 | // Created by Volodymyr Gorbenko on 3/6/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | typealias IntMax = Int64
12 | public typealias RxAbstractInteger = FixedWidthInteger
13 |
14 | extension SignedInteger {
15 | func toIntMax() -> IntMax {
16 | return IntMax(self)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Example/Pods/SnapKit/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Alamofire/Alamofire-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Alamofire : NSObject
3 | @end
4 | @implementation PodsDummy_Alamofire
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double AlamofireVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Alamofire/Alamofire.modulemap:
--------------------------------------------------------------------------------
1 | framework module Alamofire {
2 | umbrella header "Alamofire-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Alamofire/Alamofire.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Alamofire
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Alamofire/Info.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 | 4.8.1
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Charts/Charts-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Charts : NSObject
3 | @end
4 | @implementation PodsDummy_Charts
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Charts/Charts-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Charts/Charts-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double ChartsVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char ChartsVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Charts/Charts.modulemap:
--------------------------------------------------------------------------------
1 | framework module Charts {
2 | umbrella header "Charts-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Charts/Charts.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Charts
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Charts
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Charts/Info.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 | 3.2.3
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_DGActivityIndicatorView : NSObject
3 | @end
4 | @implementation PodsDummy_DGActivityIndicatorView
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.modulemap:
--------------------------------------------------------------------------------
1 | framework module DGActivityIndicatorView {
2 | umbrella header "DGActivityIndicatorView-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DGActivityIndicatorView
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/DGActivityIndicatorView
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DGActivityIndicatorView/Info.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 | 2.1.1
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Moya/Info.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 | 12.0.1
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Moya/Moya-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Moya : NSObject
3 | @end
4 | @implementation PodsDummy_Moya
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Moya/Moya-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Moya/Moya-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double MoyaVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char MoyaVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Moya/Moya.modulemap:
--------------------------------------------------------------------------------
1 | framework module Moya {
2 | umbrella header "Moya-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Moya/Moya.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Moya
2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/Result"
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | OTHER_LDFLAGS = -framework "Foundation"
5 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
6 | PODS_BUILD_DIR = ${BUILD_DIR}
7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
8 | PODS_ROOT = ${SRCROOT}
9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Moya
10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | SKIP_INSTALL = YES
12 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/ObjectMapper/Info.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 | 3.4.2
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/ObjectMapper/ObjectMapper-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_ObjectMapper : NSObject
3 | @end
4 | @implementation PodsDummy_ObjectMapper
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/ObjectMapper/ObjectMapper-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/ObjectMapper/ObjectMapper-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double ObjectMapperVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char ObjectMapperVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/ObjectMapper/ObjectMapper.modulemap:
--------------------------------------------------------------------------------
1 | framework module ObjectMapper {
2 | umbrella header "ObjectMapper-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/ObjectMapper/ObjectMapper.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/ObjectMapper
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemo/Info.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 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemo/Pods-KLineDemo-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_KLineDemo : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_KLineDemo
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemo/Pods-KLineDemo-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double Pods_KLineDemoVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char Pods_KLineDemoVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemo/Pods-KLineDemo.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_KLineDemo {
2 | umbrella header "Pods-KLineDemo-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoTests/Info.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 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoTests/Pods-KLineDemoTests-acknowledgements.markdown:
--------------------------------------------------------------------------------
1 | # Acknowledgements
2 | This application makes use of the following third party libraries:
3 | Generated by CocoaPods - https://cocoapods.org
4 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoTests/Pods-KLineDemoTests-acknowledgements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreferenceSpecifiers
6 |
7 |
8 | FooterText
9 | This application makes use of the following third party libraries:
10 | Title
11 | Acknowledgements
12 | Type
13 | PSGroupSpecifier
14 |
15 |
16 | FooterText
17 | Generated by CocoaPods - https://cocoapods.org
18 | Title
19 |
20 | Type
21 | PSGroupSpecifier
22 |
23 |
24 | StringsTable
25 | Acknowledgements
26 | Title
27 | Acknowledgements
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoTests/Pods-KLineDemoTests-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_KLineDemoTests : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_KLineDemoTests
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoTests/Pods-KLineDemoTests-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double Pods_KLineDemoTestsVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char Pods_KLineDemoTestsVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoTests/Pods-KLineDemoTests.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_KLineDemoTests {
2 | umbrella header "Pods-KLineDemoTests-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoUITests/Info.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 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoUITests/Pods-KLineDemoUITests-acknowledgements.markdown:
--------------------------------------------------------------------------------
1 | # Acknowledgements
2 | This application makes use of the following third party libraries:
3 | Generated by CocoaPods - https://cocoapods.org
4 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoUITests/Pods-KLineDemoUITests-acknowledgements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreferenceSpecifiers
6 |
7 |
8 | FooterText
9 | This application makes use of the following third party libraries:
10 | Title
11 | Acknowledgements
12 | Type
13 | PSGroupSpecifier
14 |
15 |
16 | FooterText
17 | Generated by CocoaPods - https://cocoapods.org
18 | Title
19 |
20 | Type
21 | PSGroupSpecifier
22 |
23 |
24 | StringsTable
25 | Acknowledgements
26 | Title
27 | Acknowledgements
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoUITests/Pods-KLineDemoUITests-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_KLineDemoUITests : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_KLineDemoUITests
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoUITests/Pods-KLineDemoUITests-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double Pods_KLineDemoUITestsVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char Pods_KLineDemoUITestsVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-KLineDemoUITests/Pods-KLineDemoUITests.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_KLineDemoUITests {
2 | umbrella header "Pods-KLineDemoUITests-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Result/Info.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 | 4.1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Result/Result-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Result : NSObject
3 | @end
4 | @implementation PodsDummy_Result
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Result/Result-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Result/Result-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double ResultVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char ResultVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Result/Result.modulemap:
--------------------------------------------------------------------------------
1 | framework module Result {
2 | umbrella header "Result-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Result/Result.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Result
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Result
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxAtomic/Info.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 | 4.4.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxAtomic/RxAtomic-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_RxAtomic : NSObject
3 | @end
4 | @implementation PodsDummy_RxAtomic
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxAtomic/RxAtomic-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxAtomic/RxAtomic-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "RxAtomic.h"
14 |
15 | FOUNDATION_EXPORT double RxAtomicVersionNumber;
16 | FOUNDATION_EXPORT const unsigned char RxAtomicVersionString[];
17 |
18 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxAtomic/RxAtomic.modulemap:
--------------------------------------------------------------------------------
1 | framework module RxAtomic {
2 | umbrella header "RxAtomic-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxAtomic/RxAtomic.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | PODS_BUILD_DIR = ${BUILD_DIR}
4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
5 | PODS_ROOT = ${SRCROOT}
6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxAtomic
7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
8 | SKIP_INSTALL = YES
9 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxCocoa/Info.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 | 4.4.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxCocoa/RxCocoa-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_RxCocoa : NSObject
3 | @end
4 | @implementation PodsDummy_RxCocoa
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxCocoa/RxCocoa-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxCocoa/RxCocoa-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "RxCocoaRuntime.h"
14 | #import "_RX.h"
15 | #import "_RXDelegateProxy.h"
16 | #import "_RXKVOObserver.h"
17 | #import "_RXObjCRuntime.h"
18 | #import "RxCocoa.h"
19 |
20 | FOUNDATION_EXPORT double RxCocoaVersionNumber;
21 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[];
22 |
23 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxCocoa/RxCocoa.modulemap:
--------------------------------------------------------------------------------
1 | framework module RxCocoa {
2 | umbrella header "RxCocoa-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxCocoa/RxCocoa.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa
2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift"
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
5 | PODS_BUILD_DIR = ${BUILD_DIR}
6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_ROOT = ${SRCROOT}
8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa
9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
10 | SKIP_INSTALL = YES
11 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxSwift/Info.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 | 4.4.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxSwift/RxSwift-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_RxSwift : NSObject
3 | @end
4 | @implementation PodsDummy_RxSwift
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxSwift/RxSwift-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxSwift/RxSwift-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double RxSwiftVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char RxSwiftVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxSwift/RxSwift.modulemap:
--------------------------------------------------------------------------------
1 | framework module RxSwift {
2 | umbrella header "RxSwift-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/RxSwift/RxSwift.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift
2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic"
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
5 | PODS_BUILD_DIR = ${BUILD_DIR}
6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_ROOT = ${SRCROOT}
8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift
9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
10 | SKIP_INSTALL = YES
11 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SnapKit/Info.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 | 4.2.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SnapKit/SnapKit-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_SnapKit : NSObject
3 | @end
4 | @implementation PodsDummy_SnapKit
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double SnapKitVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char SnapKitVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SnapKit/SnapKit.modulemap:
--------------------------------------------------------------------------------
1 | framework module SnapKit {
2 | umbrella header "SnapKit-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/KLine/Model/KLineDepthInfoViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineDepthInfoViewModel.swift
3 | // Coinx
4 | //
5 | // Created by Kevin on 2018/5/8.
6 | // Copyright © 2018年 lizhengyi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class KLineDepthInfoViewModel: NSObject {
12 | var highlight:Highlight?
13 | var model:KLineDepthModel?
14 | }
15 |
--------------------------------------------------------------------------------
/KLine/Model/KLineDepthModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineDepthModel.swift
3 | // Coinx
4 | //
5 | // Created by Kevin on 2018/5/7.
6 | // Copyright © 2018年 lizhengyi. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct KLineDepthModel {
12 | var timestamp:Int = 0 //时间戳
13 | var priceKey:String = "" //价格字符串
14 | var volumeValue:String = "" //挂单量字符串
15 |
16 | var price:Double = .nan //价格
17 | var volume:Double = .nan //挂单量
18 |
19 | init(price:String, volume:String, timestamp:Int) {
20 | self.priceKey = price
21 | self.volumeValue = volume
22 | self.timestamp = timestamp
23 | self.price = Double(price) ?? .nan
24 | self.volume = Double(volume) ?? .nan
25 | }
26 |
27 | init() {
28 | self.price = .nan
29 | self.volume = .nan
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/KLine/Model/KLineInfoViewModel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineInfoViewModel.swift
3 | // Coinx
4 | //
5 | // Created by Kevin on 2018/5/6.
6 | // Copyright © 2018年 lizhengyi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class KLineInfoViewModel: NSObject {
12 | var highlight:Highlight?
13 | var kLineModel:KLineModel?
14 | var kType:KType?
15 | var kIndexTop:KIndexTop?
16 | var kIndexBottom:KIndexBottom?
17 | var topHighly:Double?
18 | var bottomHighly:Double?
19 | }
20 |
--------------------------------------------------------------------------------
/KLine/Model/KLineSampleDataResponse.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KLineSampleDataResponse.swift
3 | // kLineDemo
4 | //
5 | // Created by Kevin on 2018/4/22.
6 | // Copyright © 2018年 Kevin. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import ObjectMapper
11 |
12 | struct KLineSampleDataResponse : Mappable{
13 |
14 | var symbol:String?
15 |
16 | var success:String?
17 |
18 | var chartlist:[KLineModel]?
19 |
20 | init?(map: Map) {
21 |
22 | }
23 | mutating func mapping(map: Map) {
24 | symbol <- map["stock.symbol"]
25 | success <- map["success"]
26 | chartlist <- map["chartlist"]
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## KLineDemo示例代码
2 |
3 | - [Charts绘制K线图研究过程](https://www.jianshu.com/p/f70fe1730357)
4 |
5 |
--------------------------------------------------------------------------------
/增量推送中间对齐深度图.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShouBinCheng/KLineDemo/9403783d3bbe8e95fd4aaa75b12bb1edd35bff55/增量推送中间对齐深度图.png
--------------------------------------------------------------------------------
/横屏k线长按效果.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShouBinCheng/KLineDemo/9403783d3bbe8e95fd4aaa75b12bb1edd35bff55/横屏k线长按效果.png
--------------------------------------------------------------------------------
/竖屏k线长按效果.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ShouBinCheng/KLineDemo/9403783d3bbe8e95fd4aaa75b12bb1edd35bff55/竖屏k线长按效果.png
--------------------------------------------------------------------------------