From 1d245b706a38cb5e627913be68468db651bd2c06 Mon Sep 17 00:00:00 2001 From: jjatie Date: Mon, 25 Dec 2017 22:40:36 -0400 Subject: [PATCH 01/84] Remove java interface convention (#2997) * Renamed `IMarker` to `Marker` following Swift API guidelines. * Renamed `IAxisValueFormatter` to `AxisValueFormatter` * Renamed `IFillFormatter` to `FillFormatter` * Renamed `IValueFormatter` to `ValueFormatter` * Renamed `IHighlighter` to `Highlighter` * Renamed `I*DataSet` to `*DataSetProtocol` to follow Swift API guidelines * Fixed naming of `LineRadarChartDataSetProtocol` and `RadarChartDataSetProtocol` from previous commit * Renamed "Interfaces" to "DataProviders" for clarity * Updated Demos to for new type naming --- Charts.xcodeproj/project.pbxproj | 150 +- .../ChartsDemo.xcodeproj/project.pbxproj | 2123 ++++++++--------- .../Objective-C/Components/XYMarkerView.swift | 4 +- .../Objective-C/DemoBaseViewController.m | 8 +- .../Demos/CandleStickChartViewController.m | 2 +- .../Demos/CombinedChartViewController.m | 8 +- .../Demos/CubicLineChartViewController.m | 12 +- .../Demos/LineChart1ViewController.m | 10 +- .../Demos/LineChart2ViewController.m | 10 +- .../Demos/LineChartFilledViewController.m | 4 +- .../Demos/LineChartTimeViewController.m | 10 +- .../Demos/MultipleLinesChartViewController.m | 8 +- .../NegativeStackedBarChartViewController.m | 4 +- .../PositiveNegativeBarChartViewController.m | 4 +- .../Demos/RadarChartViewController.m | 4 +- .../Formatters/DateValueFormatter.h | 2 +- .../Formatters/DayAxisValueFormatter.h | 2 +- .../Formatters/IntAxisValueFormatter.h | 2 +- .../Formatters/LargeValueFormatter.swift | 2 +- .../Swift/Components/XYMarkerView.swift | 4 +- .../Demos/CombinedChartViewController.swift | 2 +- .../Demos/CubicLineChartViewController.swift | 4 +- ...egativeStackedBarChartViewController.swift | 2 +- ...sitiveNegativeBarChartViewController.swift | 2 +- .../Demos/RadarChartViewController.swift | 2 +- .../Swift/Formatters/DateValueFormatter.swift | 2 +- .../Formatters/DayAxisValueFormatter.swift | 2 +- .../Formatters/IntAxisValueFormatter.swift | 2 +- .../Formatters/LargeValueFormatter.swift | 2 +- Source/Charts/Charts/BarChartView.swift | 2 +- .../Charts/Charts/BarLineChartViewBase.swift | 6 +- Source/Charts/Charts/ChartViewBase.swift | 8 +- Source/Charts/Charts/CombinedChartView.swift | 4 +- .../Charts/HorizontalBarChartView.swift | 2 +- .../Charts/Charts/PieRadarChartViewBase.swift | 0 Source/Charts/Components/AxisBase.swift | 4 +- .../{IMarker.swift => Marker.swift} | 10 +- Source/Charts/Components/MarkerImage.swift | 2 +- Source/Charts/Components/MarkerView.swift | 2 +- .../Implementations/ChartBaseDataSet.swift | 6 +- .../Standard/BarChartData.swift | 4 +- .../Standard/BarChartDataSet.swift | 2 +- .../BarLineScatterCandleBubbleChartData.swift | 2 +- ...rLineScatterCandleBubbleChartDataSet.swift | 2 +- .../Standard/BubbleChartData.swift | 4 +- .../Standard/BubbleChartDataSet.swift | 2 +- .../Standard/CandleChartData.swift | 2 +- .../Standard/CandleChartDataSet.swift | 2 +- .../Implementations/Standard/ChartData.swift | 40 +- .../Standard/CombinedChartData.swift | 6 +- .../Standard/LineChartData.swift | 2 +- .../Standard/LineChartDataSet.swift | 8 +- .../Standard/LineRadarChartDataSet.swift | 2 +- .../LineScatterCandleRadarChartDataSet.swift | 2 +- .../Standard/PieChartData.swift | 12 +- .../Standard/PieChartDataSet.swift | 2 +- .../Standard/RadarChartData.swift | 2 +- .../Standard/RadarChartDataSet.swift | 2 +- .../Standard/ScatterChartData.swift | 4 +- .../Standard/ScatterChartDataSet.swift | 2 +- ...et.swift => BarChartDataSetProtocol.swift} | 4 +- ...terCandleBubbleChartDataSetProtocol.swift} | 4 +- ...swift => BubbleChartDataSetProtocol.swift} | 4 +- ...swift => CandleChartDataSetProtocol.swift} | 4 +- ...taSet.swift => ChartDataSetProtocol.swift} | 6 +- ...t.swift => LineChartDataSetProtocol.swift} | 8 +- ...ft => LineRadarChartDataSetProtocol.swift} | 4 +- ...tterCandleRadarChartDataSetProtocol.swift} | 4 +- ...et.swift => PieChartDataSetProtocol.swift} | 4 +- ....swift => RadarChartDataSetProtocol.swift} | 4 +- ...wift => ScatterChartDataSetProtocol.swift} | 4 +- ...rmatter.swift => AxisValueFormatter.swift} | 6 +- .../DefaultAxisValueFormatter.swift | 2 +- .../Formatters/DefaultFillFormatter.swift | 6 +- .../Formatters/DefaultValueFormatter.swift | 2 +- ...illFormatter.swift => FillFormatter.swift} | 8 +- .../Formatters/IndexAxisValueFormatter.swift | 2 +- ...ueFormatter.swift => ValueFormatter.swift} | 6 +- Source/Charts/Highlight/BarHighlighter.swift | 4 +- .../Charts/Highlight/ChartHighlighter.swift | 4 +- .../{IHighlighter.swift => Highlighter.swift} | 6 +- .../Highlight/HorizontalBarHighlighter.swift | 4 +- .../Charts/Renderers/BarChartRenderer.swift | 16 +- .../BarLineScatterCandleBubbleRenderer.swift | 10 +- .../Renderers/BubbleChartRenderer.swift | 8 +- .../Renderers/CandleStickChartRenderer.swift | 8 +- .../HorizontalBarChartRenderer.swift | 8 +- Source/Charts/Renderers/LegendRenderer.swift | 16 +- .../Charts/Renderers/LineChartRenderer.swift | 26 +- .../LineScatterCandleRadarRenderer.swift | 2 +- .../Charts/Renderers/PieChartRenderer.swift | 10 +- .../Charts/Renderers/RadarChartRenderer.swift | 8 +- .../Scatter/ChevronDownShapeRenderer.swift | 2 +- .../Scatter/ChevronUpShapeRenderer.swift | 2 +- .../Scatter/CircleShapeRenderer.swift | 2 +- .../Scatter/CrossShapeRenderer.swift | 2 +- .../Renderers/Scatter/IShapeRenderer.swift | 2 +- .../Scatter/SquareShapeRenderer.swift | 2 +- .../Scatter/TriangleShapeRenderer.swift | 2 +- .../Renderers/Scatter/XShapeRenderer.swift | 2 +- .../Renderers/ScatterChartRenderer.swift | 12 +- Source/Charts/Utils/ChartUtils.swift | 6 +- 102 files changed, 1393 insertions(+), 1396 deletions(-) mode change 100755 => 100644 Source/Charts/Charts/PieRadarChartViewBase.swift rename Source/Charts/Components/{IMarker.swift => Marker.swift} (75%) rename Source/Charts/Data/Interfaces/{IBarChartDataSet.swift => BarChartDataSetProtocol.swift} (91%) rename Source/Charts/Data/Interfaces/{IBarLineScatterCandleBubbleChartDataSet.swift => BarLineScatterCandleBubbleChartDataSetProtocol.swift} (79%) rename Source/Charts/Data/Interfaces/{IBubbleChartDataSet.swift => BubbleChartDataSetProtocol.swift} (81%) rename Source/Charts/Data/Interfaces/{ICandleChartDataSet.swift => CandleChartDataSetProtocol.swift} (93%) rename Source/Charts/Data/Interfaces/{IChartDataSet.swift => ChartDataSetProtocol.swift} (98%) rename Source/Charts/Data/Interfaces/{ILineChartDataSet.swift => LineChartDataSetProtocol.swift} (88%) rename Source/Charts/Data/Interfaces/{ILineRadarChartDataSet.swift => LineRadarChartDataSetProtocol.swift} (90%) rename Source/Charts/Data/Interfaces/{ILineScatterCandleRadarChartDataSet.swift => LineScatterCandleRadarChartDataSetProtocol.swift} (87%) rename Source/Charts/Data/Interfaces/{IPieChartDataSet.swift => PieChartDataSetProtocol.swift} (95%) rename Source/Charts/Data/Interfaces/{IRadarChartDataSet.swift => RadarChartDataSetProtocol.swift} (90%) rename Source/Charts/Data/Interfaces/{IScatterChartDataSet.swift => ScatterChartDataSetProtocol.swift} (88%) rename Source/Charts/Formatters/{IAxisValueFormatter.swift => AxisValueFormatter.swift} (88%) rename Source/Charts/Formatters/{IFillFormatter.swift => FillFormatter.swift} (72%) rename Source/Charts/Formatters/{IValueFormatter.swift => ValueFormatter.swift} (93%) rename Source/Charts/Highlight/{IHighlighter.swift => Highlighter.swift} (84%) diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 1a61360a76..00cdf1118e 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -10,7 +10,7 @@ 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */; }; 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */; }; 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */; }; - 03960E8148C6AEDACE4B77CC /* IMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 596963A429D485E3894C4666 /* IMarker.swift */; }; + 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 596963A429D485E3894C4666 /* Marker.swift */; }; 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */; }; 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */; }; 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */; }; @@ -19,14 +19,15 @@ 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */; }; 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */; }; 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */; }; - 0D8A89398F9BD5DCC8D7F976 /* ICandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BFB0A14A5C47A302A597D9 /* ICandleChartDataSet.swift */; }; + 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */; }; 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */; }; - 1311BEC21E9CC264E971EFAF /* ILineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7E6A99D82E6AE3804D5A39 /* ILineRadarChartDataSet.swift */; }; - 146EE16342C2BADC92E45BF2 /* ILineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9249AD9AEC8C85772365A128 /* ILineScatterCandleRadarChartDataSet.swift */; }; + 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */; }; + 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */; }; 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */; }; - 203A39685CC96FC625F616E4 /* IHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998F2BFE318471AFC05B50AC /* IHighlighter.swift */; }; + 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998F2BFE318471AFC05B50AC /* Highlighter.swift */; }; 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */; }; - 224EFF991FBAAC4700CF9B3B /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 224EFF981FBAAC4700CF9B3B /* EquatableTests.swift */; }; + 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */; }; + 224EFF991FBAAC4700CF9B3B /* (null) in Sources */ = {isa = PBXBuildFile; }; 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */; }; 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F279974FE650E57A061B09 /* BarChartRenderer.swift */; }; 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */; }; @@ -37,7 +38,7 @@ 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F715DB2C56C9E0615542625B /* LegendRenderer.swift */; }; 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */; }; 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */; }; - 2C40CFFC8D88BEA70E0A50B0 /* IBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3788EC55EF908B0805D7C2F /* IBubbleChartDataSet.swift */; }; + 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */; }; 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E03A4987F72414A02A0631B /* PieChartData.swift */; }; 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB92A80F861C1362EED8D946 /* YAxis.swift */; }; 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */; }; @@ -57,7 +58,7 @@ 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */; }; 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */; }; 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */; }; - 50476F8E6662CAFC1EFE0723 /* IScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BC9CEA037F897E92E45D1 /* IScatterChartDataSet.swift */; }; + 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */; }; 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */; }; 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */; }; 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */; }; @@ -84,7 +85,7 @@ 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */; }; 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A4CFFFB65819121595F06F1 /* Fill.swift */; }; 81892994002C0640AD858748 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E120E76C6F1B5877D56126DD /* ChartData.swift */; }; - 83BBAF3EDC31FD452F8BF1DB /* IRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* IRadarChartDataSet.swift */; }; + 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */; }; 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */; }; 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */; }; 8A9FF54E2075A9047CC8E953 /* IShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* IShapeRenderer.swift */; }; @@ -101,14 +102,14 @@ 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */; }; 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F099502DA50C56204E7B744 /* Range.swift */; }; 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */; }; - A40ACF0CCE96EEE104B0463D /* IValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAA8AA30C377D54D22A577A /* IValueFormatter.swift */; }; + A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */; }; A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */; }; AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */; }; - AF4AAF3709ED9DDF6362EAE8 /* IBarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5649B272BF3EBFC8A1EF0C1 /* IBarLineScatterCandleBubbleChartDataSet.swift */; }; + AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */; }; B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */; }; - B13C74B4FF705D7B595D01EF /* IAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* IAxisValueFormatter.swift */; }; + B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */; }; B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */; }; - B6C9F450D937B87224D29D5C /* IFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* IFillFormatter.swift */; }; + B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */; }; B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */; }; B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */; }; BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9922F0641F7955DC6CD324 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -117,7 +118,7 @@ C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */; }; C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */; }; C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */; }; - C3F0DDB7F0A922F0BB7EDB8A /* IBarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A53A9E42FC07FFDACA937C1 /* IBarChartDataSet.swift */; }; + C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */; }; C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; }; CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA09EF973925A110506799 /* ChartUtils.swift */; }; CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */; }; @@ -133,7 +134,7 @@ E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */; }; E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */; }; E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */; }; - E8F0F4F47CD7D72B4EE5A794 /* IChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A32510073A303CBB38E094A /* IChartDataSet.swift */; }; + E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */; }; E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ED23C354AFE81818D78E645 /* Platform.swift */; }; EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22750328058DEC2F019646F /* ChartDataEntry.swift */; }; EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */; }; @@ -144,9 +145,9 @@ F37B07008B8AE7F3909FFB9C /* ChartDataRendererBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* ChartDataRendererBase.swift */; }; F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */; }; F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */; }; - F941C88BF814DF51C465CB95 /* ILineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* ILineChartDataSet.swift */; }; + F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */; }; FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */; }; - FAAD9FF6565DED2652188584 /* IPieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AA6CC89F809DCCD7605B4 /* IPieChartDataSet.swift */; }; + FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */; }; FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */; }; FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */; }; /* End PBXBuildFile section */ @@ -167,7 +168,7 @@ 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarHighlighter.swift; path = Source/Charts/Highlight/PieRadarHighlighter.swift; sourceTree = ""; }; 0619A877C69A95ECCC440A44 /* LineChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartView.swift; path = Source/Charts/Charts/LineChartView.swift; sourceTree = ""; }; 064989451F5C99C7006E8BB3 /* Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Snapshot.swift; path = Tests/Charts/Snapshot.swift; sourceTree = ""; }; - 0BD9DF16AF59680A3BB49452 /* IAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IAxisValueFormatter.swift; path = Source/Charts/Formatters/IAxisValueFormatter.swift; sourceTree = ""; }; + 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisValueFormatter.swift; path = Source/Charts/Formatters/AxisValueFormatter.swift; sourceTree = ""; }; 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartRenderer.swift; path = Source/Charts/Renderers/LineChartRenderer.swift; sourceTree = ""; }; 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartData.swift; path = Source/Charts/Data/Implementations/Standard/CombinedChartData.swift; sourceTree = ""; }; 0F099502DA50C56204E7B744 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = Source/Charts/Highlight/Range.swift; sourceTree = ""; }; @@ -177,19 +178,19 @@ 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartView.swift; path = Source/Charts/Charts/CombinedChartView.swift; sourceTree = ""; }; 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntryBase.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntryBase.swift; sourceTree = ""; }; 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartView.swift; path = Source/Charts/Charts/ScatterChartView.swift; sourceTree = ""; }; - 18BFB0A14A5C47A302A597D9 /* ICandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ICandleChartDataSet.swift; path = Source/Charts/Data/Interfaces/ICandleChartDataSet.swift; sourceTree = ""; }; + 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift; sourceTree = ""; }; 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRenderer.swift; path = Source/Charts/Renderers/XAxisRenderer.swift; sourceTree = ""; }; 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChartsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartRenderer.swift; path = Source/Charts/Renderers/BubbleChartRenderer.swift; sourceTree = ""; }; - 219BC9CEA037F897E92E45D1 /* IScatterChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IScatterChartDataSet.swift; path = Source/Charts/Data/Interfaces/IScatterChartDataSet.swift; sourceTree = ""; }; - 224EFF981FBAAC4700CF9B3B /* EquatableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = EquatableTests.swift; path = Tests/Charts/EquatableTests.swift; sourceTree = ""; }; + 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift; sourceTree = ""; }; + 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EquatableTests.swift; path = Tests/Charts/EquatableTests.swift; sourceTree = ""; }; 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/XShapeRenderer.swift; sourceTree = ""; }; 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartView.swift; path = Source/Charts/Charts/RadarChartView.swift; sourceTree = ""; }; 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedHighlighter.swift; path = Source/Charts/Highlight/CombinedHighlighter.swift; sourceTree = ""; }; 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MoveViewJob.swift; path = Source/Charts/Jobs/MoveViewJob.swift; sourceTree = ""; }; 274116834B1B0345D622E027 /* CandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift; sourceTree = ""; }; - 2EAD807534620E3B53327F04 /* IRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IRadarChartDataSet.swift; path = Source/Charts/Data/Interfaces/IRadarChartDataSet.swift; sourceTree = ""; }; + 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift; sourceTree = ""; }; 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataProvider.swift; path = Source/Charts/Interfaces/ScatterChartDataProvider.swift; sourceTree = ""; }; 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartViewBase.swift; path = Source/Charts/Charts/ChartViewBase.swift; sourceTree = ""; }; 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformerHorizontalBarChart.swift; path = Source/Charts/Utils/TransformerHorizontalBarChart.swift; sourceTree = ""; }; @@ -197,13 +198,13 @@ 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarHighlighter.swift; path = Source/Charts/Highlight/HorizontalBarHighlighter.swift; sourceTree = ""; }; 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerImage.swift; path = Source/Charts/Components/MarkerImage.swift; sourceTree = ""; }; 3976E5F9D60E30CD94CE6156 /* Animator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Animator.swift; path = Source/Charts/Animation/Animator.swift; sourceTree = ""; }; - 3A32510073A303CBB38E094A /* IChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IChartDataSet.swift; path = Source/Charts/Data/Interfaces/IChartDataSet.swift; sourceTree = ""; }; + 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift; sourceTree = ""; }; 3D64616883374310C505EC39 /* Highlight.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlight.swift; path = Source/Charts/Highlight/Highlight.swift; sourceTree = ""; }; 3ED23C354AFE81818D78E645 /* Platform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.swift; path = Source/Charts/Utils/Platform.swift; sourceTree = ""; }; 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataProvider.swift; path = Source/Charts/Interfaces/CandleChartDataProvider.swift; sourceTree = ""; }; 3FDA09EF973925A110506799 /* ChartUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtils.swift; path = Source/Charts/Utils/ChartUtils.swift; sourceTree = ""; }; 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = "Tests/Supporting Files/Media.xcassets"; sourceTree = ""; }; - 429E88F2729735DC092EE556 /* ILineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ILineChartDataSet.swift; path = Source/Charts/Data/Interfaces/ILineChartDataSet.swift; sourceTree = ""; }; + 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift; sourceTree = ""; }; 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineChartViewBase.swift; path = Source/Charts/Charts/BarLineChartViewBase.swift; sourceTree = ""; }; 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift; sourceTree = ""; }; 46D8013D44629521B1746364 /* PieChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartRenderer.swift; path = Source/Charts/Renderers/PieChartRenderer.swift; sourceTree = ""; }; @@ -213,16 +214,16 @@ 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartData.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartData.swift; sourceTree = ""; }; 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedZoomViewJob.swift; path = Source/Charts/Jobs/AnimatedZoomViewJob.swift; sourceTree = ""; }; 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartData.swift; path = Source/Charts/Data/Implementations/Standard/LineChartData.swift; sourceTree = ""; }; - 4EAA8AA30C377D54D22A577A /* IValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IValueFormatter.swift; path = Source/Charts/Formatters/IValueFormatter.swift; sourceTree = ""; }; + 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ValueFormatter.swift; path = Source/Charts/Formatters/ValueFormatter.swift; sourceTree = ""; }; 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartView.swift; path = Source/Charts/Charts/BubbleChartView.swift; sourceTree = ""; }; - 4F7E6A99D82E6AE3804D5A39 /* ILineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ILineRadarChartDataSet.swift; path = Source/Charts/Data/Interfaces/ILineRadarChartDataSet.swift; sourceTree = ""; }; + 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift; sourceTree = ""; }; 4F9922F0641F7955DC6CD324 /* Charts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Charts.h; path = "Source/Supporting Files/Charts.h"; sourceTree = ""; }; 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxis.swift; path = Source/Charts/Components/XAxis.swift; sourceTree = ""; }; 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartRenderer.swift; path = Source/Charts/Renderers/CombinedChartRenderer.swift; sourceTree = ""; }; 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartRenderer.swift; path = Source/Charts/Renderers/HorizontalBarChartRenderer.swift; sourceTree = ""; }; 543729805D897CC03E5F78D3 /* BarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarHighlighter.swift; path = Source/Charts/Highlight/BarHighlighter.swift; sourceTree = ""; }; 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift; sourceTree = ""; }; - 596963A429D485E3894C4666 /* IMarker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IMarker.swift; path = Source/Charts/Components/IMarker.swift; sourceTree = ""; }; + 596963A429D485E3894C4666 /* Marker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Marker.swift; path = Source/Charts/Components/Marker.swift; sourceTree = ""; }; 5983826927D825EF5F855C28 /* ChartHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartHighlighter.swift; path = Source/Charts/Highlight/ChartHighlighter.swift; sourceTree = ""; }; 5A4CFFFB65819121595F06F1 /* Fill.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fill.swift; path = Source/Charts/Utils/Fill.swift; sourceTree = ""; }; 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleRenderer.swift; path = Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift; sourceTree = ""; }; @@ -240,26 +241,26 @@ 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedViewPortJob.swift; path = Source/Charts/Jobs/AnimatedViewPortJob.swift; sourceTree = ""; }; 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortHandler.swift; path = Source/Charts/Utils/ViewPortHandler.swift; sourceTree = ""; }; 75F279974FE650E57A061B09 /* BarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartRenderer.swift; path = Source/Charts/Renderers/BarChartRenderer.swift; sourceTree = ""; }; - 7A53A9E42FC07FFDACA937C1 /* IBarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBarChartDataSet.swift; path = Source/Charts/Data/Interfaces/IBarChartDataSet.swift; sourceTree = ""; }; + 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift; sourceTree = ""; }; 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtilsTests.swift; path = Tests/Charts/ChartUtilsTests.swift; sourceTree = ""; }; 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartRenderer.swift; path = Source/Charts/Renderers/RadarChartRenderer.swift; sourceTree = ""; }; 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartData.swift; sourceTree = ""; }; 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartRenderer.swift; path = Source/Charts/Renderers/ScatterChartRenderer.swift; sourceTree = ""; }; - 818AC6B12505B7C0A53D62F9 /* IFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IFillFormatter.swift; path = Source/Charts/Formatters/IFillFormatter.swift; sourceTree = ""; }; + 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FillFormatter.swift; path = Source/Charts/Formatters/FillFormatter.swift; sourceTree = ""; }; 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CrossShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift; sourceTree = ""; }; 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BarLineScatterCandleBubbleChartDataProvider.swift; sourceTree = ""; }; 910DBFE1DA1B2CA237A736DF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Source/Supporting Files/Info.plist"; sourceTree = ""; }; 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift; sourceTree = ""; }; 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarRenderer.swift; path = Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift; sourceTree = ""; }; - 9249AD9AEC8C85772365A128 /* ILineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ILineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Interfaces/ILineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; + 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift; sourceTree = ""; }; 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataApproximator.swift; path = Source/Charts/Filters/DataApproximator.swift; sourceTree = ""; }; - 998F2BFE318471AFC05B50AC /* IHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IHighlighter.swift; path = Source/Charts/Highlight/IHighlighter.swift; sourceTree = ""; }; + 998F2BFE318471AFC05B50AC /* Highlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlighter.swift; path = Source/Charts/Highlight/Highlighter.swift; sourceTree = ""; }; 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataProvider.swift; path = Source/Charts/Interfaces/BarChartDataProvider.swift; sourceTree = ""; }; 9DCD13D558BA177D5952AD66 /* PieChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartView.swift; path = Source/Charts/Charts/PieChartView.swift; sourceTree = ""; }; 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendEntry.swift; path = Source/Charts/Components/LegendEntry.swift; sourceTree = ""; }; A140F644332704916947B58C /* CombinedChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartDataProvider.swift; path = Source/Charts/Interfaces/CombinedChartDataProvider.swift; sourceTree = ""; }; A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift; sourceTree = ""; }; - A5649B272BF3EBFC8A1EF0C1 /* IBarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBarLineScatterCandleBubbleChartDataSet.swift; path = Source/Charts/Data/Interfaces/IBarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; + A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift; sourceTree = ""; }; A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift; sourceTree = ""; }; AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererRadarChart.swift; path = Source/Charts/Renderers/YAxisRendererRadarChart.swift; sourceTree = ""; }; AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronUpShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift; sourceTree = ""; }; @@ -284,7 +285,7 @@ D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartTests.swift; path = Tests/Charts/LineChartTests.swift; sourceTree = ""; }; D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataEntry.swift; sourceTree = ""; }; D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultFillFormatter.swift; path = Source/Charts/Formatters/DefaultFillFormatter.swift; sourceTree = ""; }; - DA2AA6CC89F809DCCD7605B4 /* IPieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IPieChartDataSet.swift; path = Source/Charts/Data/Interfaces/IPieChartDataSet.swift; sourceTree = ""; }; + DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift; sourceTree = ""; }; DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataEntry.swift; sourceTree = ""; }; DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartAnimationEasing.swift; path = Source/Charts/Animation/ChartAnimationEasing.swift; sourceTree = ""; }; E120E76C6F1B5877D56126DD /* ChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartData.swift; path = Source/Charts/Data/Implementations/Standard/ChartData.swift; sourceTree = ""; }; @@ -297,7 +298,7 @@ EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BubbleChartDataProvider.swift; sourceTree = ""; }; F22750328058DEC2F019646F /* ChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntry.swift; sourceTree = ""; }; F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarHighlighter.swift; path = Source/Charts/Highlight/RadarHighlighter.swift; sourceTree = ""; }; - F3788EC55EF908B0805D7C2F /* IBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBubbleChartDataSet.swift; path = Source/Charts/Data/Interfaces/IBubbleChartDataSet.swift; sourceTree = ""; }; + F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift; sourceTree = ""; }; F4785FEACAE4367F36FB8868 /* CandleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartData.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartData.swift; sourceTree = ""; }; F6227A646166E248F90F86AD /* ChartColorTemplates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartColorTemplates.swift; path = Source/Charts/Utils/ChartColorTemplates.swift; sourceTree = ""; }; F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartLimitLine.swift; path = Source/Charts/Components/ChartLimitLine.swift; sourceTree = ""; }; @@ -328,7 +329,7 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 031D7C33F3BF172E30664862 /* Interfaces */ = { + 031D7C33F3BF172E30664862 /* DataProviders */ = { isa = PBXGroup; children = ( 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */, @@ -340,7 +341,7 @@ BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */, 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */, ); - name = Interfaces; + name = DataProviders; sourceTree = ""; }; 033FD152BB2F906750106A85 /* Frameworks */ = { @@ -354,7 +355,7 @@ isa = PBXGroup; children = ( 3B9DD76FCE8D873300A822C7 /* Implementations */, - DB2D9648877455028EBEAA8F /* Interfaces */, + DB2D9648877455028EBEAA8F /* DataSet Protocols */, ); name = Data; sourceTree = ""; @@ -378,7 +379,7 @@ AA79AB82B0ADCA926510B73E /* Filters */, 74A391010038924F637D6752 /* Formatters */, 42824E1F334B0C484AF4C594 /* Highlight */, - 031D7C33F3BF172E30664862 /* Interfaces */, + 031D7C33F3BF172E30664862 /* DataProviders */, AD1224C45A29A5C88D6B7450 /* Jobs */, E7589D3E7C2BD2449960AD59 /* Renderers */, D047819AB7170595896D6FE8 /* Utils */, @@ -403,7 +404,7 @@ 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */, 3D64616883374310C505EC39 /* Highlight.swift */, 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */, - 998F2BFE318471AFC05B50AC /* IHighlighter.swift */, + 998F2BFE318471AFC05B50AC /* Highlighter.swift */, 7036F11832C017E26AC750A4 /* PieHighlighter.swift */, 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */, F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */, @@ -419,7 +420,7 @@ F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */, C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */, B137428B41C143D5115726C4 /* Description.swift */, - 596963A429D485E3894C4666 /* IMarker.swift */, + 596963A429D485E3894C4666 /* Marker.swift */, E64A75540C627E09080B402A /* Legend.swift */, 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */, 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */, @@ -471,10 +472,10 @@ 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */, D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */, 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */, - 0BD9DF16AF59680A3BB49452 /* IAxisValueFormatter.swift */, - 818AC6B12505B7C0A53D62F9 /* IFillFormatter.swift */, + 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */, + 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */, 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */, - 4EAA8AA30C377D54D22A577A /* IValueFormatter.swift */, + 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */, ); name = Formatters; sourceTree = ""; @@ -512,8 +513,8 @@ isa = PBXGroup; children = ( 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */, - 224EFF981FBAAC4700CF9B3B /* EquatableTests.swift */, 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */, + 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */, D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */, 064989451F5C99C7006E8BB3 /* Snapshot.swift */, ); @@ -591,22 +592,22 @@ name = Tests; sourceTree = ""; }; - DB2D9648877455028EBEAA8F /* Interfaces */ = { + DB2D9648877455028EBEAA8F /* DataSet Protocols */ = { isa = PBXGroup; children = ( - 7A53A9E42FC07FFDACA937C1 /* IBarChartDataSet.swift */, - A5649B272BF3EBFC8A1EF0C1 /* IBarLineScatterCandleBubbleChartDataSet.swift */, - F3788EC55EF908B0805D7C2F /* IBubbleChartDataSet.swift */, - 18BFB0A14A5C47A302A597D9 /* ICandleChartDataSet.swift */, - 3A32510073A303CBB38E094A /* IChartDataSet.swift */, - 429E88F2729735DC092EE556 /* ILineChartDataSet.swift */, - 4F7E6A99D82E6AE3804D5A39 /* ILineRadarChartDataSet.swift */, - 9249AD9AEC8C85772365A128 /* ILineScatterCandleRadarChartDataSet.swift */, - DA2AA6CC89F809DCCD7605B4 /* IPieChartDataSet.swift */, - 2EAD807534620E3B53327F04 /* IRadarChartDataSet.swift */, - 219BC9CEA037F897E92E45D1 /* IScatterChartDataSet.swift */, + 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */, + A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */, + F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */, + 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */, + 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */, + 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */, + 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */, + 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */, + DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */, + 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */, + 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */, ); - name = Interfaces; + name = "DataSet Protocols"; sourceTree = ""; }; E7589D3E7C2BD2449960AD59 /* Renderers */ = { @@ -821,7 +822,7 @@ 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */, FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */, DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */, - 03960E8148C6AEDACE4B77CC /* IMarker.swift in Sources */, + 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */, ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */, C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */, 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */, @@ -857,31 +858,31 @@ E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */, 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */, EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */, - C3F0DDB7F0A922F0BB7EDB8A /* IBarChartDataSet.swift in Sources */, - AF4AAF3709ED9DDF6362EAE8 /* IBarLineScatterCandleBubbleChartDataSet.swift in Sources */, - 2C40CFFC8D88BEA70E0A50B0 /* IBubbleChartDataSet.swift in Sources */, - 0D8A89398F9BD5DCC8D7F976 /* ICandleChartDataSet.swift in Sources */, - E8F0F4F47CD7D72B4EE5A794 /* IChartDataSet.swift in Sources */, - F941C88BF814DF51C465CB95 /* ILineChartDataSet.swift in Sources */, - 1311BEC21E9CC264E971EFAF /* ILineRadarChartDataSet.swift in Sources */, - 146EE16342C2BADC92E45BF2 /* ILineScatterCandleRadarChartDataSet.swift in Sources */, - FAAD9FF6565DED2652188584 /* IPieChartDataSet.swift in Sources */, - 83BBAF3EDC31FD452F8BF1DB /* IRadarChartDataSet.swift in Sources */, - 50476F8E6662CAFC1EFE0723 /* IScatterChartDataSet.swift in Sources */, + C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */, + AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */, + 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */, + 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */, + E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */, + F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */, + 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */, + 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */, + FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */, + 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */, + 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */, 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */, 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */, F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */, B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */, - B13C74B4FF705D7B595D01EF /* IAxisValueFormatter.swift in Sources */, - B6C9F450D937B87224D29D5C /* IFillFormatter.swift in Sources */, + B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */, + B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */, 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */, - A40ACF0CCE96EEE104B0463D /* IValueFormatter.swift in Sources */, + A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */, 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */, D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */, 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */, 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */, 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */, - 203A39685CC96FC625F616E4 /* IHighlighter.swift in Sources */, + 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */, 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */, 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */, C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */, @@ -946,9 +947,10 @@ files = ( 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */, 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */, + 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */, 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */, 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */, - 224EFF991FBAAC4700CF9B3B /* EquatableTests.swift in Sources */, + 224EFF991FBAAC4700CF9B3B /* (null) in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj b/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj index 28674b1c25..6b834aab14 100644 --- a/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj +++ b/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj @@ -1,1109 +1,1104 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { /* Begin PBXBuildFile section */ - 0439A3541C9FF95F00496F83 /* PiePolylineChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */; }; - 0471CBFC1CA1090A00E52DBC /* PiePolylineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */; }; - 0630AE511D81271B008859B0 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; }; - 0630AE521D81271B008859B0 /* Charts.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 068A9B191FBBF351003CF1AD /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF2F1AB32E15009697AA /* Images.xcassets */; }; - 068A9B1A1FBBF355003CF1AD /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B64D06EA1FB199130067418D /* Launch Screen.storyboard */; }; - 068A9B1B1FBBF366003CF1AD /* radar_marker@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */; }; - 225B36201F6EB9A50005B3D5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */; }; - 225B36311F6EB9EE0005B3D5 /* DemoBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */; }; - 225B36321F6EB9EE0005B3D5 /* DemoListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */; }; - 225B36381F6EBA040005B3D5 /* IntAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */; }; - 225B36391F6EBA040005B3D5 /* DayAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */; }; - 225B363A1F6EBA040005B3D5 /* DateValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */; }; - 225B363B1F6EBA040005B3D5 /* LargeValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */; }; - 225B36401F6EBA1D0005B3D5 /* XYMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */; }; - 225B36411F6EBA1D0005B3D5 /* BalloonMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363E1F6EBA180005B3D5 /* BalloonMarker.swift */; }; - 225B36421F6EBA1D0005B3D5 /* RadarMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */; }; - 225B365B1F6EBA470005B3D5 /* MultipleLinesChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */; }; - 225B365C1F6EBA470005B3D5 /* MultipleBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */; }; - 225B365D1F6EBA470005B3D5 /* HalfPieChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */; }; - 225B365E1F6EBA470005B3D5 /* LineChartTimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */; }; - 225B365F1F6EBA470005B3D5 /* ColoredLineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */; }; - 225B36601F6EBA470005B3D5 /* LineChart2ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */; }; - 225B36611F6EBA470005B3D5 /* LineChart1ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */; }; - 225B36621F6EBA470005B3D5 /* NegativeStackedBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */; }; - 225B36631F6EBA470005B3D5 /* ScatterChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */; }; - 225B36641F6EBA470005B3D5 /* StackedBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */; }; - 225B36651F6EBA470005B3D5 /* BubbleChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */; }; - 225B36661F6EBA470005B3D5 /* LineChartFilledViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */; }; - 225B36671F6EBA470005B3D5 /* PositiveNegativeBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */; }; - 225B36681F6EBA470005B3D5 /* AnotherBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */; }; - 225B36691F6EBA470005B3D5 /* PieChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */; }; - 225B366A1F6EBA470005B3D5 /* CubicLineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */; }; - 225B366B1F6EBA470005B3D5 /* RadarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */; }; - 225B366C1F6EBA470005B3D5 /* HorizontalBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */; }; - 225B366D1F6EBA470005B3D5 /* PiePolylineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */; }; - 225B366E1F6EBA470005B3D5 /* CombinedChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */; }; - 225B366F1F6EBA470005B3D5 /* BarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */; }; - 225B36701F6EBA470005B3D5 /* SinusBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */; }; - 225B36711F6EBA470005B3D5 /* CandleStickChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */; }; - 225B36721F6EBA5E0005B3D5 /* DemoListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */; }; - 225B36731F6EBA5E0005B3D5 /* RadarMarkerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */; }; - 225B36741F6EBA640005B3D5 /* AnotherBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */; }; - 225B36751F6EBA640005B3D5 /* BarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */; }; - 225B36761F6EBA640005B3D5 /* BubbleChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */; }; - 225B36771F6EBA640005B3D5 /* CandleStickChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */; }; - 225B36781F6EBA640005B3D5 /* ColoredLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */; }; - 225B36791F6EBA640005B3D5 /* CombinedChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */; }; - 225B367A1F6EBA640005B3D5 /* CubicLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */; }; - 225B367B1F6EBA640005B3D5 /* HalfPieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */; }; - 225B367C1F6EBA640005B3D5 /* HorizontalBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */; }; - 225B367D1F6EBA640005B3D5 /* LineChart1ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */; }; - 225B367E1F6EBA640005B3D5 /* LineChart2ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */; }; - 225B367F1F6EBA640005B3D5 /* LineChartFilledViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */; }; - 225B36801F6EBA640005B3D5 /* LineChartTimeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */; }; - 225B36811F6EBA640005B3D5 /* MultipleBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */; }; - 225B36821F6EBA640005B3D5 /* MultipleLinesChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */; }; - 225B36831F6EBA640005B3D5 /* NegativeStackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */; }; - 225B36841F6EBA640005B3D5 /* PieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0CC7841ABB875400665592 /* PieChartViewController.xib */; }; - 225B36851F6EBA640005B3D5 /* PiePolylineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */; }; - 225B36861F6EBA640005B3D5 /* PositiveNegativeBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */; }; - 225B36871F6EBA640005B3D5 /* RadarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */; }; - 225B36881F6EBA640005B3D5 /* RealmDemosViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */; }; - 225B36891F6EBA640005B3D5 /* ScatterChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */; }; - 225B368A1F6EBA640005B3D5 /* SinusBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */; }; - 225B368B1F6EBA640005B3D5 /* StackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */; }; - 225B368C1F6EBBB00005B3D5 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; }; - 225B368D1F6EBBB00005B3D5 /* Charts.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 55E356501ADC638F00A57971 /* BubbleChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */; }; - 55E356511ADC638F00A57971 /* BubbleChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */; }; - 5B0CC7851ABB875400665592 /* PieChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B0CC7831ABB875400665592 /* PieChartViewController.m */; }; - 5B0CC7861ABB875400665592 /* PieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0CC7841ABB875400665592 /* PieChartViewController.xib */; }; - 5B1B5DAB1E911A15006D1375 /* RealmDemosViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */; }; - 5B57BBB51A9B26AA0036A6CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBB41A9B26AA0036A6CC /* main.m */; }; - 5B57BBB81A9B26AA0036A6CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */; }; - 5B57BBBB1A9B26AA0036A6CC /* DemoListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */; }; - 5B613DA41D526AD5000F1E98 /* radar_marker@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */; }; - 5B613DB31D526DED000F1E98 /* RadarMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B613DB21D526DED000F1E98 /* RadarMarkerView.swift */; }; - 5B613DB51D526EA8000F1E98 /* RadarMarkerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */; }; - 5B613DF01D5A50B6000F1E98 /* XYMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B613DEF1D5A50B6000F1E98 /* XYMarkerView.swift */; }; - 5B613DF21D5A60DF000F1E98 /* LargeValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B613DF11D5A60DF000F1E98 /* LargeValueFormatter.swift */; }; - 5B8EAF241AB3271B009697AA /* DemoListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */; }; - 5B8EAF281AB32CF5009697AA /* DemoBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B8EAF261AB32CF5009697AA /* DemoBaseViewController.m */; }; - 5B8EAF301AB32E15009697AA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF2F1AB32E15009697AA /* Images.xcassets */; }; - 5B9624411B38608C007763E2 /* NegativeStackedBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */; }; - 5B9624421B38608C007763E2 /* NegativeStackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */; }; - 5BD47E5B1ABB0263008FCEC6 /* BalloonMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */; }; - 5BD47E601ABB3C91008FCEC6 /* LineChart2ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */; }; - 5BD47E611ABB3C91008FCEC6 /* LineChart2ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */; }; - 5BD47E651ABB424E008FCEC6 /* BarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */; }; - 5BD47E661ABB424E008FCEC6 /* BarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */; }; - 5BD8F0741AB89CE500566E05 /* LineChart1ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD8F0721AB89CE500566E05 /* LineChart1ViewController.m */; }; - 5BD8F0751AB89CE500566E05 /* LineChart1ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */; }; - 5BDEDC411ABB7F73007D3A60 /* HorizontalBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BDEDC3F1ABB7F73007D3A60 /* HorizontalBarChartViewController.m */; }; - 5BDEDC421ABB7F73007D3A60 /* HorizontalBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */; }; - 5BDEDC471ABB871E007D3A60 /* CombinedChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BDEDC451ABB871E007D3A60 /* CombinedChartViewController.m */; }; - 5BDEDC481ABB871E007D3A60 /* CombinedChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */; }; - 5BE377DE1D425151006EB34F /* DayAxisValueFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE377DD1D425151006EB34F /* DayAxisValueFormatter.m */; }; - 5BE377F21D47FDF1006EB34F /* IntAxisValueFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE377F11D47FDF1006EB34F /* IntAxisValueFormatter.m */; }; - 5BE673801D5B496500A87BA2 /* HalfPieChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE6737E1D5B496500A87BA2 /* HalfPieChartViewController.m */; }; - 5BE673811D5B496500A87BA2 /* HalfPieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */; }; - 5BE673921D5B4E0900A87BA2 /* LineChartFilledViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE6738D1D5B4E0900A87BA2 /* LineChartFilledViewController.m */; }; - 5BE673931D5B4E0900A87BA2 /* LineChartFilledViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */; }; - 5BE673941D5B4E0900A87BA2 /* LineChartTimeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE673901D5B4E0900A87BA2 /* LineChartTimeViewController.m */; }; - 5BE673951D5B4E0900A87BA2 /* LineChartTimeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */; }; - 5BE6739A1D5BAD7E00A87BA2 /* DateValueFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE673991D5BAD7E00A87BA2 /* DateValueFormatter.m */; }; - 5BE7E7621C693098000A0377 /* PositiveNegativeBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE7E7601C693098000A0377 /* PositiveNegativeBarChartViewController.m */; }; - 5BE7E7631C693098000A0377 /* PositiveNegativeBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */; }; - 5BEAED121ABBFB2B0013F194 /* AnotherBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED101ABBFB2B0013F194 /* AnotherBarChartViewController.m */; }; - 5BEAED131ABBFB2B0013F194 /* AnotherBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */; }; - 5BEAED1B1ABBFB340013F194 /* ScatterChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED161ABBFB340013F194 /* ScatterChartViewController.m */; }; - 5BEAED1C1ABBFB340013F194 /* ScatterChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */; }; - 5BEAED1D1ABBFB340013F194 /* StackedBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED191ABBFB340013F194 /* StackedBarChartViewController.m */; }; - 5BEAED1E1ABBFB340013F194 /* StackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */; }; - 5BEAED251ABC0BE20013F194 /* MultipleBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED201ABC0BE20013F194 /* MultipleBarChartViewController.m */; }; - 5BEAED261ABC0BE20013F194 /* MultipleBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */; }; - 5BEAED271ABC0BE20013F194 /* MultipleLinesChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED231ABC0BE20013F194 /* MultipleLinesChartViewController.m */; }; - 5BEAED281ABC0BE20013F194 /* MultipleLinesChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */; }; - 5BEAED2C1ABC160F0013F194 /* CandleStickChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED2A1ABC160F0013F194 /* CandleStickChartViewController.m */; }; - 5BEAED2D1ABC160F0013F194 /* CandleStickChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */; }; - 5BEAED311ABC18F00013F194 /* CubicLineChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED2F1ABC18F00013F194 /* CubicLineChartViewController.m */; }; - 5BEAED321ABC18F00013F194 /* CubicLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */; }; - 5BEAED361ABC192F0013F194 /* RadarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED341ABC192F0013F194 /* RadarChartViewController.m */; }; - 5BEAED371ABC192F0013F194 /* RadarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */; }; - 5BEAED3B1ABC199F0013F194 /* ColoredLineChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED391ABC199F0013F194 /* ColoredLineChartViewController.m */; }; - 5BEAED3C1ABC199F0013F194 /* ColoredLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */; }; - 5BEAED401ABC1AC60013F194 /* SinusBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */; }; - 5BEAED411ABC1AC60013F194 /* SinusBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */; }; - B64D06EB1FB199130067418D /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B64D06EA1FB199130067418D /* Launch Screen.storyboard */; }; + 0439A3541C9FF95F00496F83 /* PiePolylineChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */; }; + 0471CBFC1CA1090A00E52DBC /* PiePolylineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */; }; + 068A9B191FBBF351003CF1AD /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF2F1AB32E15009697AA /* Images.xcassets */; }; + 068A9B1A1FBBF355003CF1AD /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B64D06EA1FB199130067418D /* Launch Screen.storyboard */; }; + 068A9B1B1FBBF366003CF1AD /* radar_marker@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */; }; + 225B36201F6EB9A50005B3D5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */; }; + 225B36311F6EB9EE0005B3D5 /* DemoBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */; }; + 225B36321F6EB9EE0005B3D5 /* DemoListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */; }; + 225B36381F6EBA040005B3D5 /* IntAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */; }; + 225B36391F6EBA040005B3D5 /* DayAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */; }; + 225B363A1F6EBA040005B3D5 /* DateValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */; }; + 225B363B1F6EBA040005B3D5 /* LargeValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */; }; + 225B36401F6EBA1D0005B3D5 /* XYMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */; }; + 225B36411F6EBA1D0005B3D5 /* BalloonMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363E1F6EBA180005B3D5 /* BalloonMarker.swift */; }; + 225B36421F6EBA1D0005B3D5 /* RadarMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */; }; + 225B365B1F6EBA470005B3D5 /* MultipleLinesChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */; }; + 225B365C1F6EBA470005B3D5 /* MultipleBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */; }; + 225B365D1F6EBA470005B3D5 /* HalfPieChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */; }; + 225B365E1F6EBA470005B3D5 /* LineChartTimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */; }; + 225B365F1F6EBA470005B3D5 /* ColoredLineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */; }; + 225B36601F6EBA470005B3D5 /* LineChart2ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */; }; + 225B36611F6EBA470005B3D5 /* LineChart1ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */; }; + 225B36621F6EBA470005B3D5 /* NegativeStackedBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */; }; + 225B36631F6EBA470005B3D5 /* ScatterChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */; }; + 225B36641F6EBA470005B3D5 /* StackedBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */; }; + 225B36651F6EBA470005B3D5 /* BubbleChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */; }; + 225B36661F6EBA470005B3D5 /* LineChartFilledViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */; }; + 225B36671F6EBA470005B3D5 /* PositiveNegativeBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */; }; + 225B36681F6EBA470005B3D5 /* AnotherBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */; }; + 225B36691F6EBA470005B3D5 /* PieChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */; }; + 225B366A1F6EBA470005B3D5 /* CubicLineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */; }; + 225B366B1F6EBA470005B3D5 /* RadarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */; }; + 225B366C1F6EBA470005B3D5 /* HorizontalBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */; }; + 225B366D1F6EBA470005B3D5 /* PiePolylineChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */; }; + 225B366E1F6EBA470005B3D5 /* CombinedChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */; }; + 225B366F1F6EBA470005B3D5 /* BarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */; }; + 225B36701F6EBA470005B3D5 /* SinusBarChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */; }; + 225B36711F6EBA470005B3D5 /* CandleStickChartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */; }; + 225B36721F6EBA5E0005B3D5 /* DemoListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */; }; + 225B36731F6EBA5E0005B3D5 /* RadarMarkerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */; }; + 225B36741F6EBA640005B3D5 /* AnotherBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */; }; + 225B36751F6EBA640005B3D5 /* BarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */; }; + 225B36761F6EBA640005B3D5 /* BubbleChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */; }; + 225B36771F6EBA640005B3D5 /* CandleStickChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */; }; + 225B36781F6EBA640005B3D5 /* ColoredLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */; }; + 225B36791F6EBA640005B3D5 /* CombinedChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */; }; + 225B367A1F6EBA640005B3D5 /* CubicLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */; }; + 225B367B1F6EBA640005B3D5 /* HalfPieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */; }; + 225B367C1F6EBA640005B3D5 /* HorizontalBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */; }; + 225B367D1F6EBA640005B3D5 /* LineChart1ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */; }; + 225B367E1F6EBA640005B3D5 /* LineChart2ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */; }; + 225B367F1F6EBA640005B3D5 /* LineChartFilledViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */; }; + 225B36801F6EBA640005B3D5 /* LineChartTimeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */; }; + 225B36811F6EBA640005B3D5 /* MultipleBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */; }; + 225B36821F6EBA640005B3D5 /* MultipleLinesChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */; }; + 225B36831F6EBA640005B3D5 /* NegativeStackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */; }; + 225B36841F6EBA640005B3D5 /* PieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0CC7841ABB875400665592 /* PieChartViewController.xib */; }; + 225B36851F6EBA640005B3D5 /* PiePolylineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */; }; + 225B36861F6EBA640005B3D5 /* PositiveNegativeBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */; }; + 225B36871F6EBA640005B3D5 /* RadarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */; }; + 225B36881F6EBA640005B3D5 /* RealmDemosViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */; }; + 225B36891F6EBA640005B3D5 /* ScatterChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */; }; + 225B368A1F6EBA640005B3D5 /* SinusBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */; }; + 225B368B1F6EBA640005B3D5 /* StackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */; }; + 225B368C1F6EBBB00005B3D5 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; }; + 225B368D1F6EBBB00005B3D5 /* Charts.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0630AE411D8126C0008859B0 /* Charts.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 55E356501ADC638F00A57971 /* BubbleChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */; }; + 55E356511ADC638F00A57971 /* BubbleChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */; }; + 5B0CC7851ABB875400665592 /* PieChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B0CC7831ABB875400665592 /* PieChartViewController.m */; }; + 5B0CC7861ABB875400665592 /* PieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0CC7841ABB875400665592 /* PieChartViewController.xib */; }; + 5B1B5DAB1E911A15006D1375 /* RealmDemosViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */; }; + 5B57BBB51A9B26AA0036A6CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBB41A9B26AA0036A6CC /* main.m */; }; + 5B57BBB81A9B26AA0036A6CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */; }; + 5B57BBBB1A9B26AA0036A6CC /* DemoListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */; }; + 5B613DA41D526AD5000F1E98 /* radar_marker@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */; }; + 5B613DB31D526DED000F1E98 /* RadarMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B613DB21D526DED000F1E98 /* RadarMarkerView.swift */; }; + 5B613DB51D526EA8000F1E98 /* RadarMarkerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */; }; + 5B613DF01D5A50B6000F1E98 /* XYMarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B613DEF1D5A50B6000F1E98 /* XYMarkerView.swift */; }; + 5B613DF21D5A60DF000F1E98 /* LargeValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B613DF11D5A60DF000F1E98 /* LargeValueFormatter.swift */; }; + 5B8EAF241AB3271B009697AA /* DemoListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */; }; + 5B8EAF281AB32CF5009697AA /* DemoBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B8EAF261AB32CF5009697AA /* DemoBaseViewController.m */; }; + 5B8EAF301AB32E15009697AA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EAF2F1AB32E15009697AA /* Images.xcassets */; }; + 5B9624411B38608C007763E2 /* NegativeStackedBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */; }; + 5B9624421B38608C007763E2 /* NegativeStackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */; }; + 5BD47E5B1ABB0263008FCEC6 /* BalloonMarker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */; }; + 5BD47E601ABB3C91008FCEC6 /* LineChart2ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */; }; + 5BD47E611ABB3C91008FCEC6 /* LineChart2ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */; }; + 5BD47E651ABB424E008FCEC6 /* BarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */; }; + 5BD47E661ABB424E008FCEC6 /* BarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */; }; + 5BD8F0741AB89CE500566E05 /* LineChart1ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD8F0721AB89CE500566E05 /* LineChart1ViewController.m */; }; + 5BD8F0751AB89CE500566E05 /* LineChart1ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */; }; + 5BDEDC411ABB7F73007D3A60 /* HorizontalBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BDEDC3F1ABB7F73007D3A60 /* HorizontalBarChartViewController.m */; }; + 5BDEDC421ABB7F73007D3A60 /* HorizontalBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */; }; + 5BDEDC471ABB871E007D3A60 /* CombinedChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BDEDC451ABB871E007D3A60 /* CombinedChartViewController.m */; }; + 5BDEDC481ABB871E007D3A60 /* CombinedChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */; }; + 5BE377DE1D425151006EB34F /* DayAxisValueFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE377DD1D425151006EB34F /* DayAxisValueFormatter.m */; }; + 5BE377F21D47FDF1006EB34F /* IntAxisValueFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE377F11D47FDF1006EB34F /* IntAxisValueFormatter.m */; }; + 5BE673801D5B496500A87BA2 /* HalfPieChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE6737E1D5B496500A87BA2 /* HalfPieChartViewController.m */; }; + 5BE673811D5B496500A87BA2 /* HalfPieChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */; }; + 5BE673921D5B4E0900A87BA2 /* LineChartFilledViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE6738D1D5B4E0900A87BA2 /* LineChartFilledViewController.m */; }; + 5BE673931D5B4E0900A87BA2 /* LineChartFilledViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */; }; + 5BE673941D5B4E0900A87BA2 /* LineChartTimeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE673901D5B4E0900A87BA2 /* LineChartTimeViewController.m */; }; + 5BE673951D5B4E0900A87BA2 /* LineChartTimeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */; }; + 5BE6739A1D5BAD7E00A87BA2 /* DateValueFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE673991D5BAD7E00A87BA2 /* DateValueFormatter.m */; }; + 5BE7E7621C693098000A0377 /* PositiveNegativeBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE7E7601C693098000A0377 /* PositiveNegativeBarChartViewController.m */; }; + 5BE7E7631C693098000A0377 /* PositiveNegativeBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */; }; + 5BEAED121ABBFB2B0013F194 /* AnotherBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED101ABBFB2B0013F194 /* AnotherBarChartViewController.m */; }; + 5BEAED131ABBFB2B0013F194 /* AnotherBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */; }; + 5BEAED1B1ABBFB340013F194 /* ScatterChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED161ABBFB340013F194 /* ScatterChartViewController.m */; }; + 5BEAED1C1ABBFB340013F194 /* ScatterChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */; }; + 5BEAED1D1ABBFB340013F194 /* StackedBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED191ABBFB340013F194 /* StackedBarChartViewController.m */; }; + 5BEAED1E1ABBFB340013F194 /* StackedBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */; }; + 5BEAED251ABC0BE20013F194 /* MultipleBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED201ABC0BE20013F194 /* MultipleBarChartViewController.m */; }; + 5BEAED261ABC0BE20013F194 /* MultipleBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */; }; + 5BEAED271ABC0BE20013F194 /* MultipleLinesChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED231ABC0BE20013F194 /* MultipleLinesChartViewController.m */; }; + 5BEAED281ABC0BE20013F194 /* MultipleLinesChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */; }; + 5BEAED2C1ABC160F0013F194 /* CandleStickChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED2A1ABC160F0013F194 /* CandleStickChartViewController.m */; }; + 5BEAED2D1ABC160F0013F194 /* CandleStickChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */; }; + 5BEAED311ABC18F00013F194 /* CubicLineChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED2F1ABC18F00013F194 /* CubicLineChartViewController.m */; }; + 5BEAED321ABC18F00013F194 /* CubicLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */; }; + 5BEAED361ABC192F0013F194 /* RadarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED341ABC192F0013F194 /* RadarChartViewController.m */; }; + 5BEAED371ABC192F0013F194 /* RadarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */; }; + 5BEAED3B1ABC199F0013F194 /* ColoredLineChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED391ABC199F0013F194 /* ColoredLineChartViewController.m */; }; + 5BEAED3C1ABC199F0013F194 /* ColoredLineChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */; }; + 5BEAED401ABC1AC60013F194 /* SinusBarChartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */; }; + 5BEAED411ABC1AC60013F194 /* SinusBarChartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */; }; + B64D06EB1FB199130067418D /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B64D06EA1FB199130067418D /* Launch Screen.storyboard */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0630AE401D8126C0008859B0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 06165F241D8110E600722320; - remoteInfo = Charts; - }; - 0630AE421D8126C0008859B0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 06165F2E1D8110E600722320; - remoteInfo = ChartsTests; - }; - 0630AE531D81271B008859B0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = A58A4ED274A941CA248EA921; - remoteInfo = Charts; - }; - 225B368E1F6EBBB00005B3D5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = A58A4ED274A941CA248EA921; - remoteInfo = Charts; - }; + 0630AE401D8126C0008859B0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 06165F241D8110E600722320; + remoteInfo = Charts; + }; + 0630AE421D8126C0008859B0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 06165F2E1D8110E600722320; + remoteInfo = ChartsTests; + }; + 225B368E1F6EBBB00005B3D5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A58A4ED274A941CA248EA921; + remoteInfo = Charts; + }; + 22A4867B1FBA6D7000EC9A0F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A58A4ED274A941CA248EA921; + remoteInfo = Charts; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 225B36901F6EBBB10005B3D5 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 225B368D1F6EBBB00005B3D5 /* Charts.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 5BB4B0751ACA710D00E2EF4D /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 0630AE521D81271B008859B0 /* Charts.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; + 225B36901F6EBBB10005B3D5 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 225B368D1F6EBBB00005B3D5 /* Charts.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0439A3511C9FF95F00496F83 /* PiePolylineChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiePolylineChartViewController.h; sourceTree = ""; }; - 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PiePolylineChartViewController.m; sourceTree = ""; }; - 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PiePolylineChartViewController.xib; sourceTree = ""; }; - 0630AE391D8126C0008859B0 /* Charts.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Charts.xcodeproj; path = ../Charts.xcodeproj; sourceTree = ""; }; - 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoBaseViewController.swift; sourceTree = ""; }; - 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoListViewController.swift; sourceTree = ""; }; - 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntAxisValueFormatter.swift; sourceTree = ""; }; - 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DayAxisValueFormatter.swift; sourceTree = ""; }; - 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateValueFormatter.swift; sourceTree = ""; }; - 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LargeValueFormatter.swift; sourceTree = ""; }; - 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XYMarkerView.swift; sourceTree = ""; }; - 225B363E1F6EBA180005B3D5 /* BalloonMarker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BalloonMarker.swift; sourceTree = ""; }; - 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadarMarkerView.swift; sourceTree = ""; }; - 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleLinesChartViewController.swift; sourceTree = ""; }; - 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleBarChartViewController.swift; sourceTree = ""; }; - 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HalfPieChartViewController.swift; sourceTree = ""; }; - 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChartTimeViewController.swift; sourceTree = ""; }; - 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColoredLineChartViewController.swift; sourceTree = ""; }; - 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChart2ViewController.swift; sourceTree = ""; }; - 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChart1ViewController.swift; sourceTree = ""; }; - 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NegativeStackedBarChartViewController.swift; sourceTree = ""; }; - 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScatterChartViewController.swift; sourceTree = ""; }; - 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackedBarChartViewController.swift; sourceTree = ""; }; - 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BubbleChartViewController.swift; sourceTree = ""; }; - 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChartFilledViewController.swift; sourceTree = ""; }; - 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PositiveNegativeBarChartViewController.swift; sourceTree = ""; }; - 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnotherBarChartViewController.swift; sourceTree = ""; }; - 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PieChartViewController.swift; sourceTree = ""; }; - 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CubicLineChartViewController.swift; sourceTree = ""; }; - 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadarChartViewController.swift; sourceTree = ""; }; - 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HorizontalBarChartViewController.swift; sourceTree = ""; }; - 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PiePolylineChartViewController.swift; sourceTree = ""; }; - 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombinedChartViewController.swift; sourceTree = ""; }; - 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarChartViewController.swift; sourceTree = ""; }; - 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SinusBarChartViewController.swift; sourceTree = ""; }; - 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CandleStickChartViewController.swift; sourceTree = ""; }; - 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BubbleChartViewController.xib; sourceTree = ""; }; - 55E3564E1ADC638F00A57971 /* BubbleChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BubbleChartViewController.h; sourceTree = ""; }; - 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BubbleChartViewController.m; sourceTree = ""; }; - 5B0CC7821ABB875400665592 /* PieChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PieChartViewController.h; sourceTree = ""; }; - 5B0CC7831ABB875400665592 /* PieChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PieChartViewController.m; sourceTree = ""; }; - 5B0CC7841ABB875400665592 /* PieChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PieChartViewController.xib; sourceTree = ""; }; - 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RealmDemosViewController.xib; path = XIBs/Demos/RealmDemosViewController.xib; sourceTree = SOURCE_ROOT; }; - 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChartsDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 5B57BBB31A9B26AA0036A6CC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5B57BBB41A9B26AA0036A6CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 5B57BBB61A9B26AA0036A6CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 5B57BBB91A9B26AA0036A6CC /* DemoListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DemoListViewController.h; sourceTree = ""; }; - 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DemoListViewController.m; sourceTree = ""; }; - 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "radar_marker@3x.png"; sourceTree = ""; }; - 5B613DB21D526DED000F1E98 /* RadarMarkerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarMarkerView.swift; sourceTree = ""; }; - 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RadarMarkerView.xib; sourceTree = ""; }; - 5B613DEF1D5A50B6000F1E98 /* XYMarkerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XYMarkerView.swift; sourceTree = ""; }; - 5B613DF11D5A60DF000F1E98 /* LargeValueFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LargeValueFormatter.swift; sourceTree = ""; }; - 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DemoListViewController.xib; sourceTree = ""; }; - 5B8EAF251AB32CF5009697AA /* DemoBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoBaseViewController.h; sourceTree = ""; }; - 5B8EAF261AB32CF5009697AA /* DemoBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoBaseViewController.m; sourceTree = ""; }; - 5B8EAF2F1AB32E15009697AA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 5B96243E1B38608C007763E2 /* NegativeStackedBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NegativeStackedBarChartViewController.h; sourceTree = ""; }; - 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NegativeStackedBarChartViewController.m; sourceTree = ""; }; - 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NegativeStackedBarChartViewController.xib; sourceTree = ""; }; - 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BalloonMarker.swift; sourceTree = ""; }; - 5BD47E5C1ABB0273008FCEC6 /* ChartsDemo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ChartsDemo-Bridging-Header.h"; sourceTree = ""; }; - 5BD47E5D1ABB3C91008FCEC6 /* LineChart2ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChart2ViewController.h; sourceTree = ""; }; - 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChart2ViewController.m; sourceTree = ""; }; - 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChart2ViewController.xib; sourceTree = ""; }; - 5BD47E621ABB424E008FCEC6 /* BarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BarChartViewController.h; sourceTree = ""; }; - 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BarChartViewController.m; sourceTree = ""; }; - 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BarChartViewController.xib; sourceTree = ""; }; - 5BD8F0711AB89CE500566E05 /* LineChart1ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChart1ViewController.h; sourceTree = ""; }; - 5BD8F0721AB89CE500566E05 /* LineChart1ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChart1ViewController.m; sourceTree = ""; }; - 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChart1ViewController.xib; sourceTree = ""; }; - 5BDEDC3E1ABB7F73007D3A60 /* HorizontalBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HorizontalBarChartViewController.h; sourceTree = ""; }; - 5BDEDC3F1ABB7F73007D3A60 /* HorizontalBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HorizontalBarChartViewController.m; sourceTree = ""; }; - 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HorizontalBarChartViewController.xib; sourceTree = ""; }; - 5BDEDC441ABB871E007D3A60 /* CombinedChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CombinedChartViewController.h; sourceTree = ""; }; - 5BDEDC451ABB871E007D3A60 /* CombinedChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CombinedChartViewController.m; sourceTree = ""; }; - 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CombinedChartViewController.xib; sourceTree = ""; }; - 5BE377DC1D425151006EB34F /* DayAxisValueFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DayAxisValueFormatter.h; sourceTree = ""; }; - 5BE377DD1D425151006EB34F /* DayAxisValueFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DayAxisValueFormatter.m; sourceTree = ""; }; - 5BE377F01D47FDF1006EB34F /* IntAxisValueFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntAxisValueFormatter.h; sourceTree = ""; }; - 5BE377F11D47FDF1006EB34F /* IntAxisValueFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IntAxisValueFormatter.m; sourceTree = ""; }; - 5BE6737D1D5B496500A87BA2 /* HalfPieChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HalfPieChartViewController.h; sourceTree = ""; }; - 5BE6737E1D5B496500A87BA2 /* HalfPieChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HalfPieChartViewController.m; sourceTree = ""; }; - 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HalfPieChartViewController.xib; sourceTree = ""; }; - 5BE6738C1D5B4E0900A87BA2 /* LineChartFilledViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChartFilledViewController.h; sourceTree = ""; }; - 5BE6738D1D5B4E0900A87BA2 /* LineChartFilledViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChartFilledViewController.m; sourceTree = ""; }; - 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChartFilledViewController.xib; sourceTree = ""; }; - 5BE6738F1D5B4E0900A87BA2 /* LineChartTimeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChartTimeViewController.h; sourceTree = ""; }; - 5BE673901D5B4E0900A87BA2 /* LineChartTimeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChartTimeViewController.m; sourceTree = ""; }; - 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChartTimeViewController.xib; sourceTree = ""; }; - 5BE673981D5BAD7E00A87BA2 /* DateValueFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateValueFormatter.h; sourceTree = ""; }; - 5BE673991D5BAD7E00A87BA2 /* DateValueFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DateValueFormatter.m; sourceTree = ""; }; - 5BE7E75F1C693098000A0377 /* PositiveNegativeBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PositiveNegativeBarChartViewController.h; sourceTree = ""; }; - 5BE7E7601C693098000A0377 /* PositiveNegativeBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PositiveNegativeBarChartViewController.m; sourceTree = ""; }; - 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PositiveNegativeBarChartViewController.xib; sourceTree = ""; }; - 5BEAED0F1ABBFB2B0013F194 /* AnotherBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnotherBarChartViewController.h; sourceTree = ""; }; - 5BEAED101ABBFB2B0013F194 /* AnotherBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnotherBarChartViewController.m; sourceTree = ""; }; - 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AnotherBarChartViewController.xib; sourceTree = ""; }; - 5BEAED151ABBFB340013F194 /* ScatterChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScatterChartViewController.h; sourceTree = ""; }; - 5BEAED161ABBFB340013F194 /* ScatterChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScatterChartViewController.m; sourceTree = ""; }; - 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ScatterChartViewController.xib; sourceTree = ""; }; - 5BEAED181ABBFB340013F194 /* StackedBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackedBarChartViewController.h; sourceTree = ""; }; - 5BEAED191ABBFB340013F194 /* StackedBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StackedBarChartViewController.m; sourceTree = ""; }; - 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = StackedBarChartViewController.xib; sourceTree = ""; }; - 5BEAED1F1ABC0BE20013F194 /* MultipleBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipleBarChartViewController.h; sourceTree = ""; }; - 5BEAED201ABC0BE20013F194 /* MultipleBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipleBarChartViewController.m; sourceTree = ""; }; - 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MultipleBarChartViewController.xib; sourceTree = ""; }; - 5BEAED221ABC0BE20013F194 /* MultipleLinesChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipleLinesChartViewController.h; sourceTree = ""; }; - 5BEAED231ABC0BE20013F194 /* MultipleLinesChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipleLinesChartViewController.m; sourceTree = ""; }; - 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MultipleLinesChartViewController.xib; sourceTree = ""; }; - 5BEAED291ABC160F0013F194 /* CandleStickChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CandleStickChartViewController.h; sourceTree = ""; }; - 5BEAED2A1ABC160F0013F194 /* CandleStickChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CandleStickChartViewController.m; sourceTree = ""; }; - 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CandleStickChartViewController.xib; sourceTree = ""; }; - 5BEAED2E1ABC18F00013F194 /* CubicLineChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CubicLineChartViewController.h; sourceTree = ""; }; - 5BEAED2F1ABC18F00013F194 /* CubicLineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CubicLineChartViewController.m; sourceTree = ""; }; - 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CubicLineChartViewController.xib; sourceTree = ""; }; - 5BEAED331ABC192F0013F194 /* RadarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadarChartViewController.h; sourceTree = ""; }; - 5BEAED341ABC192F0013F194 /* RadarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RadarChartViewController.m; sourceTree = ""; }; - 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RadarChartViewController.xib; sourceTree = ""; }; - 5BEAED381ABC199F0013F194 /* ColoredLineChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColoredLineChartViewController.h; sourceTree = ""; }; - 5BEAED391ABC199F0013F194 /* ColoredLineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ColoredLineChartViewController.m; sourceTree = ""; }; - 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ColoredLineChartViewController.xib; sourceTree = ""; }; - 5BEAED3D1ABC1AC60013F194 /* SinusBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SinusBarChartViewController.h; sourceTree = ""; }; - 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SinusBarChartViewController.m; sourceTree = ""; }; - 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SinusBarChartViewController.xib; sourceTree = ""; }; - B64D06EA1FB199130067418D /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; + 0439A3511C9FF95F00496F83 /* PiePolylineChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiePolylineChartViewController.h; sourceTree = ""; }; + 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PiePolylineChartViewController.m; sourceTree = ""; }; + 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PiePolylineChartViewController.xib; sourceTree = ""; }; + 0630AE391D8126C0008859B0 /* Charts.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Charts.xcodeproj; path = ../Charts.xcodeproj; sourceTree = ""; }; + 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoBaseViewController.swift; sourceTree = ""; }; + 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoListViewController.swift; sourceTree = ""; }; + 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntAxisValueFormatter.swift; sourceTree = ""; }; + 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DayAxisValueFormatter.swift; sourceTree = ""; }; + 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateValueFormatter.swift; sourceTree = ""; }; + 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LargeValueFormatter.swift; sourceTree = ""; }; + 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XYMarkerView.swift; sourceTree = ""; }; + 225B363E1F6EBA180005B3D5 /* BalloonMarker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BalloonMarker.swift; sourceTree = ""; }; + 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadarMarkerView.swift; sourceTree = ""; }; + 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleLinesChartViewController.swift; sourceTree = ""; }; + 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleBarChartViewController.swift; sourceTree = ""; }; + 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HalfPieChartViewController.swift; sourceTree = ""; }; + 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChartTimeViewController.swift; sourceTree = ""; }; + 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColoredLineChartViewController.swift; sourceTree = ""; }; + 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChart2ViewController.swift; sourceTree = ""; }; + 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChart1ViewController.swift; sourceTree = ""; }; + 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NegativeStackedBarChartViewController.swift; sourceTree = ""; }; + 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScatterChartViewController.swift; sourceTree = ""; }; + 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackedBarChartViewController.swift; sourceTree = ""; }; + 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BubbleChartViewController.swift; sourceTree = ""; }; + 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineChartFilledViewController.swift; sourceTree = ""; }; + 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PositiveNegativeBarChartViewController.swift; sourceTree = ""; }; + 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnotherBarChartViewController.swift; sourceTree = ""; }; + 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PieChartViewController.swift; sourceTree = ""; }; + 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CubicLineChartViewController.swift; sourceTree = ""; }; + 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadarChartViewController.swift; sourceTree = ""; }; + 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HorizontalBarChartViewController.swift; sourceTree = ""; }; + 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PiePolylineChartViewController.swift; sourceTree = ""; }; + 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombinedChartViewController.swift; sourceTree = ""; }; + 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarChartViewController.swift; sourceTree = ""; }; + 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SinusBarChartViewController.swift; sourceTree = ""; }; + 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CandleStickChartViewController.swift; sourceTree = ""; }; + 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BubbleChartViewController.xib; sourceTree = ""; }; + 55E3564E1ADC638F00A57971 /* BubbleChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BubbleChartViewController.h; sourceTree = ""; }; + 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BubbleChartViewController.m; sourceTree = ""; }; + 5B0CC7821ABB875400665592 /* PieChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PieChartViewController.h; sourceTree = ""; }; + 5B0CC7831ABB875400665592 /* PieChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PieChartViewController.m; sourceTree = ""; }; + 5B0CC7841ABB875400665592 /* PieChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PieChartViewController.xib; sourceTree = ""; }; + 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RealmDemosViewController.xib; path = XIBs/Demos/RealmDemosViewController.xib; sourceTree = SOURCE_ROOT; }; + 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChartsDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5B57BBB31A9B26AA0036A6CC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5B57BBB41A9B26AA0036A6CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 5B57BBB61A9B26AA0036A6CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 5B57BBB91A9B26AA0036A6CC /* DemoListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DemoListViewController.h; sourceTree = ""; }; + 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DemoListViewController.m; sourceTree = ""; }; + 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "radar_marker@3x.png"; sourceTree = ""; }; + 5B613DB21D526DED000F1E98 /* RadarMarkerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarMarkerView.swift; sourceTree = ""; }; + 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RadarMarkerView.xib; sourceTree = ""; }; + 5B613DEF1D5A50B6000F1E98 /* XYMarkerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XYMarkerView.swift; sourceTree = ""; }; + 5B613DF11D5A60DF000F1E98 /* LargeValueFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LargeValueFormatter.swift; sourceTree = ""; }; + 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DemoListViewController.xib; sourceTree = ""; }; + 5B8EAF251AB32CF5009697AA /* DemoBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoBaseViewController.h; sourceTree = ""; }; + 5B8EAF261AB32CF5009697AA /* DemoBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoBaseViewController.m; sourceTree = ""; }; + 5B8EAF2F1AB32E15009697AA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 5B96243E1B38608C007763E2 /* NegativeStackedBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NegativeStackedBarChartViewController.h; sourceTree = ""; }; + 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NegativeStackedBarChartViewController.m; sourceTree = ""; }; + 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NegativeStackedBarChartViewController.xib; sourceTree = ""; }; + 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BalloonMarker.swift; sourceTree = ""; }; + 5BD47E5C1ABB0273008FCEC6 /* ChartsDemo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ChartsDemo-Bridging-Header.h"; sourceTree = ""; }; + 5BD47E5D1ABB3C91008FCEC6 /* LineChart2ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChart2ViewController.h; sourceTree = ""; }; + 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChart2ViewController.m; sourceTree = ""; }; + 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChart2ViewController.xib; sourceTree = ""; }; + 5BD47E621ABB424E008FCEC6 /* BarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BarChartViewController.h; sourceTree = ""; }; + 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BarChartViewController.m; sourceTree = ""; }; + 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BarChartViewController.xib; sourceTree = ""; }; + 5BD8F0711AB89CE500566E05 /* LineChart1ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChart1ViewController.h; sourceTree = ""; }; + 5BD8F0721AB89CE500566E05 /* LineChart1ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChart1ViewController.m; sourceTree = ""; }; + 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChart1ViewController.xib; sourceTree = ""; }; + 5BDEDC3E1ABB7F73007D3A60 /* HorizontalBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HorizontalBarChartViewController.h; sourceTree = ""; }; + 5BDEDC3F1ABB7F73007D3A60 /* HorizontalBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HorizontalBarChartViewController.m; sourceTree = ""; }; + 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HorizontalBarChartViewController.xib; sourceTree = ""; }; + 5BDEDC441ABB871E007D3A60 /* CombinedChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CombinedChartViewController.h; sourceTree = ""; }; + 5BDEDC451ABB871E007D3A60 /* CombinedChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CombinedChartViewController.m; sourceTree = ""; }; + 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CombinedChartViewController.xib; sourceTree = ""; }; + 5BE377DC1D425151006EB34F /* DayAxisValueFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DayAxisValueFormatter.h; sourceTree = ""; }; + 5BE377DD1D425151006EB34F /* DayAxisValueFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DayAxisValueFormatter.m; sourceTree = ""; }; + 5BE377F01D47FDF1006EB34F /* IntAxisValueFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntAxisValueFormatter.h; sourceTree = ""; }; + 5BE377F11D47FDF1006EB34F /* IntAxisValueFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IntAxisValueFormatter.m; sourceTree = ""; }; + 5BE6737D1D5B496500A87BA2 /* HalfPieChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HalfPieChartViewController.h; sourceTree = ""; }; + 5BE6737E1D5B496500A87BA2 /* HalfPieChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HalfPieChartViewController.m; sourceTree = ""; }; + 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HalfPieChartViewController.xib; sourceTree = ""; }; + 5BE6738C1D5B4E0900A87BA2 /* LineChartFilledViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChartFilledViewController.h; sourceTree = ""; }; + 5BE6738D1D5B4E0900A87BA2 /* LineChartFilledViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChartFilledViewController.m; sourceTree = ""; }; + 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChartFilledViewController.xib; sourceTree = ""; }; + 5BE6738F1D5B4E0900A87BA2 /* LineChartTimeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineChartTimeViewController.h; sourceTree = ""; }; + 5BE673901D5B4E0900A87BA2 /* LineChartTimeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LineChartTimeViewController.m; sourceTree = ""; }; + 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LineChartTimeViewController.xib; sourceTree = ""; }; + 5BE673981D5BAD7E00A87BA2 /* DateValueFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateValueFormatter.h; sourceTree = ""; }; + 5BE673991D5BAD7E00A87BA2 /* DateValueFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DateValueFormatter.m; sourceTree = ""; }; + 5BE7E75F1C693098000A0377 /* PositiveNegativeBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PositiveNegativeBarChartViewController.h; sourceTree = ""; }; + 5BE7E7601C693098000A0377 /* PositiveNegativeBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PositiveNegativeBarChartViewController.m; sourceTree = ""; }; + 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PositiveNegativeBarChartViewController.xib; sourceTree = ""; }; + 5BEAED0F1ABBFB2B0013F194 /* AnotherBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnotherBarChartViewController.h; sourceTree = ""; }; + 5BEAED101ABBFB2B0013F194 /* AnotherBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnotherBarChartViewController.m; sourceTree = ""; }; + 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AnotherBarChartViewController.xib; sourceTree = ""; }; + 5BEAED151ABBFB340013F194 /* ScatterChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScatterChartViewController.h; sourceTree = ""; }; + 5BEAED161ABBFB340013F194 /* ScatterChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScatterChartViewController.m; sourceTree = ""; }; + 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ScatterChartViewController.xib; sourceTree = ""; }; + 5BEAED181ABBFB340013F194 /* StackedBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackedBarChartViewController.h; sourceTree = ""; }; + 5BEAED191ABBFB340013F194 /* StackedBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StackedBarChartViewController.m; sourceTree = ""; }; + 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = StackedBarChartViewController.xib; sourceTree = ""; }; + 5BEAED1F1ABC0BE20013F194 /* MultipleBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipleBarChartViewController.h; sourceTree = ""; }; + 5BEAED201ABC0BE20013F194 /* MultipleBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipleBarChartViewController.m; sourceTree = ""; }; + 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MultipleBarChartViewController.xib; sourceTree = ""; }; + 5BEAED221ABC0BE20013F194 /* MultipleLinesChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipleLinesChartViewController.h; sourceTree = ""; }; + 5BEAED231ABC0BE20013F194 /* MultipleLinesChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipleLinesChartViewController.m; sourceTree = ""; }; + 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MultipleLinesChartViewController.xib; sourceTree = ""; }; + 5BEAED291ABC160F0013F194 /* CandleStickChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CandleStickChartViewController.h; sourceTree = ""; }; + 5BEAED2A1ABC160F0013F194 /* CandleStickChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CandleStickChartViewController.m; sourceTree = ""; }; + 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CandleStickChartViewController.xib; sourceTree = ""; }; + 5BEAED2E1ABC18F00013F194 /* CubicLineChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CubicLineChartViewController.h; sourceTree = ""; }; + 5BEAED2F1ABC18F00013F194 /* CubicLineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CubicLineChartViewController.m; sourceTree = ""; }; + 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CubicLineChartViewController.xib; sourceTree = ""; }; + 5BEAED331ABC192F0013F194 /* RadarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadarChartViewController.h; sourceTree = ""; }; + 5BEAED341ABC192F0013F194 /* RadarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RadarChartViewController.m; sourceTree = ""; }; + 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RadarChartViewController.xib; sourceTree = ""; }; + 5BEAED381ABC199F0013F194 /* ColoredLineChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColoredLineChartViewController.h; sourceTree = ""; }; + 5BEAED391ABC199F0013F194 /* ColoredLineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ColoredLineChartViewController.m; sourceTree = ""; }; + 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ColoredLineChartViewController.xib; sourceTree = ""; }; + 5BEAED3D1ABC1AC60013F194 /* SinusBarChartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SinusBarChartViewController.h; sourceTree = ""; }; + 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SinusBarChartViewController.m; sourceTree = ""; }; + 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SinusBarChartViewController.xib; sourceTree = ""; }; + B64D06EA1FB199130067418D /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 225B361A1F6EB9A50005B3D5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 225B368C1F6EBBB00005B3D5 /* Charts.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5B57BBAC1A9B26AA0036A6CC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0630AE511D81271B008859B0 /* Charts.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 225B361A1F6EB9A50005B3D5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 225B368C1F6EBBB00005B3D5 /* Charts.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5B57BBAC1A9B26AA0036A6CC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 22A486791FBA6D7000EC9A0F /* Charts.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0630AE3A1D8126C0008859B0 /* Products */ = { - isa = PBXGroup; - children = ( - 0630AE411D8126C0008859B0 /* Charts.framework */, - 0630AE431D8126C0008859B0 /* ChartsTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 225B361E1F6EB9A50005B3D5 /* Swift */ = { - isa = PBXGroup; - children = ( - 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */, - 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */, - 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */, - 225B363C1F6EBA180005B3D5 /* Components */, - 225B36331F6EB9FE0005B3D5 /* Formatters */, - 225B36431F6EBA410005B3D5 /* Demos */, - ); - path = Swift; - sourceTree = ""; - }; - 225B36331F6EB9FE0005B3D5 /* Formatters */ = { - isa = PBXGroup; - children = ( - 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */, - 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */, - 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */, - 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */, - ); - path = Formatters; - sourceTree = ""; - }; - 225B363C1F6EBA180005B3D5 /* Components */ = { - isa = PBXGroup; - children = ( - 225B363E1F6EBA180005B3D5 /* BalloonMarker.swift */, - 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */, - 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */, - ); - path = Components; - sourceTree = ""; - }; - 225B36431F6EBA410005B3D5 /* Demos */ = { - isa = PBXGroup; - children = ( - 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */, - 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */, - 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */, - 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */, - 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */, - 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */, - 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */, - 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */, - 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */, - 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */, - 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */, - 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */, - 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */, - 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */, - 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */, - 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */, - 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */, - 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */, - 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */, - 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */, - 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */, - 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */, - 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */, - ); - path = Demos; - sourceTree = ""; - }; - 227136F41F6EB665006D2A11 /* XIBs */ = { - isa = PBXGroup; - children = ( - 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */, - 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */, - 227136F61F6EB69D006D2A11 /* Demos */, - ); - path = XIBs; - sourceTree = ""; - }; - 227136F61F6EB69D006D2A11 /* Demos */ = { - isa = PBXGroup; - children = ( - 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */, - 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */, - 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */, - 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */, - 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */, - 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */, - 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */, - 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */, - 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */, - 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */, - 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */, - 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */, - 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */, - 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */, - 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */, - 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */, - 5B0CC7841ABB875400665592 /* PieChartViewController.xib */, - 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */, - 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */, - 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */, - 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */, - 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */, - 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */, - 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */, - ); - path = Demos; - sourceTree = ""; - }; - 5B57BBA61A9B26AA0036A6CC = { - isa = PBXGroup; - children = ( - 5B57BBB11A9B26AA0036A6CC /* Objective-C */, - 225B361E1F6EB9A50005B3D5 /* Swift */, - 227136F41F6EB665006D2A11 /* XIBs */, - 5B8EAF2E1AB32E15009697AA /* Resources */, - 5B57BBB21A9B26AA0036A6CC /* Supporting Files */, - 5B57BBB01A9B26AA0036A6CC /* Products */, - 0630AE391D8126C0008859B0 /* Charts.xcodeproj */, - ); - sourceTree = ""; - }; - 5B57BBB01A9B26AA0036A6CC /* Products */ = { - isa = PBXGroup; - children = ( - 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */, - 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */, - ); - name = Products; - sourceTree = ""; - }; - 5B57BBB11A9B26AA0036A6CC /* Objective-C */ = { - isa = PBXGroup; - children = ( - 5B57BBB61A9B26AA0036A6CC /* AppDelegate.h */, - 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */, - 5B57BBB91A9B26AA0036A6CC /* DemoListViewController.h */, - 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */, - 5B8EAF251AB32CF5009697AA /* DemoBaseViewController.h */, - 5B8EAF261AB32CF5009697AA /* DemoBaseViewController.m */, - 5BE377D41D42511A006EB34F /* Formatters */, - 5BD47E541ABB0177008FCEC6 /* Components */, - 5BD8F06F1AB89C7100566E05 /* Demos */, - ); - path = "Objective-C"; - sourceTree = ""; - }; - 5B57BBB21A9B26AA0036A6CC /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 5B57BBB31A9B26AA0036A6CC /* Info.plist */, - 5B57BBB41A9B26AA0036A6CC /* main.m */, - 5BD47E5C1ABB0273008FCEC6 /* ChartsDemo-Bridging-Header.h */, - ); - path = "Supporting Files"; - sourceTree = ""; - }; - 5B613DA21D526AD5000F1E98 /* markers */ = { - isa = PBXGroup; - children = ( - 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */, - ); - path = markers; - sourceTree = ""; - }; - 5B8EAF2E1AB32E15009697AA /* Resources */ = { - isa = PBXGroup; - children = ( - B64D06EA1FB199130067418D /* Launch Screen.storyboard */, - 5B8EAF2F1AB32E15009697AA /* Images.xcassets */, - 5B613DA21D526AD5000F1E98 /* markers */, - ); - path = Resources; - sourceTree = ""; - }; - 5BD47E541ABB0177008FCEC6 /* Components */ = { - isa = PBXGroup; - children = ( - 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */, - 5B613DB21D526DED000F1E98 /* RadarMarkerView.swift */, - 5B613DEF1D5A50B6000F1E98 /* XYMarkerView.swift */, - ); - path = Components; - sourceTree = ""; - }; - 5BD8F06F1AB89C7100566E05 /* Demos */ = { - isa = PBXGroup; - children = ( - 5BEAED0F1ABBFB2B0013F194 /* AnotherBarChartViewController.h */, - 5BEAED101ABBFB2B0013F194 /* AnotherBarChartViewController.m */, - 5BD47E621ABB424E008FCEC6 /* BarChartViewController.h */, - 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */, - 55E3564E1ADC638F00A57971 /* BubbleChartViewController.h */, - 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */, - 5BEAED291ABC160F0013F194 /* CandleStickChartViewController.h */, - 5BEAED2A1ABC160F0013F194 /* CandleStickChartViewController.m */, - 5BEAED381ABC199F0013F194 /* ColoredLineChartViewController.h */, - 5BEAED391ABC199F0013F194 /* ColoredLineChartViewController.m */, - 5BDEDC441ABB871E007D3A60 /* CombinedChartViewController.h */, - 5BDEDC451ABB871E007D3A60 /* CombinedChartViewController.m */, - 5BEAED2E1ABC18F00013F194 /* CubicLineChartViewController.h */, - 5BEAED2F1ABC18F00013F194 /* CubicLineChartViewController.m */, - 5BE6737D1D5B496500A87BA2 /* HalfPieChartViewController.h */, - 5BE6737E1D5B496500A87BA2 /* HalfPieChartViewController.m */, - 5BDEDC3E1ABB7F73007D3A60 /* HorizontalBarChartViewController.h */, - 5BDEDC3F1ABB7F73007D3A60 /* HorizontalBarChartViewController.m */, - 5BD8F0711AB89CE500566E05 /* LineChart1ViewController.h */, - 5BD8F0721AB89CE500566E05 /* LineChart1ViewController.m */, - 5BD47E5D1ABB3C91008FCEC6 /* LineChart2ViewController.h */, - 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */, - 5BE6738C1D5B4E0900A87BA2 /* LineChartFilledViewController.h */, - 5BE6738D1D5B4E0900A87BA2 /* LineChartFilledViewController.m */, - 5BE6738F1D5B4E0900A87BA2 /* LineChartTimeViewController.h */, - 5BE673901D5B4E0900A87BA2 /* LineChartTimeViewController.m */, - 5BEAED1F1ABC0BE20013F194 /* MultipleBarChartViewController.h */, - 5BEAED201ABC0BE20013F194 /* MultipleBarChartViewController.m */, - 5BEAED221ABC0BE20013F194 /* MultipleLinesChartViewController.h */, - 5BEAED231ABC0BE20013F194 /* MultipleLinesChartViewController.m */, - 5B96243E1B38608C007763E2 /* NegativeStackedBarChartViewController.h */, - 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */, - 5B0CC7821ABB875400665592 /* PieChartViewController.h */, - 5B0CC7831ABB875400665592 /* PieChartViewController.m */, - 0439A3511C9FF95F00496F83 /* PiePolylineChartViewController.h */, - 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */, - 5BE7E75F1C693098000A0377 /* PositiveNegativeBarChartViewController.h */, - 5BE7E7601C693098000A0377 /* PositiveNegativeBarChartViewController.m */, - 5BEAED331ABC192F0013F194 /* RadarChartViewController.h */, - 5BEAED341ABC192F0013F194 /* RadarChartViewController.m */, - 5BEAED151ABBFB340013F194 /* ScatterChartViewController.h */, - 5BEAED161ABBFB340013F194 /* ScatterChartViewController.m */, - 5BEAED3D1ABC1AC60013F194 /* SinusBarChartViewController.h */, - 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */, - 5BEAED181ABBFB340013F194 /* StackedBarChartViewController.h */, - 5BEAED191ABBFB340013F194 /* StackedBarChartViewController.m */, - ); - path = Demos; - sourceTree = ""; - }; - 5BE377D41D42511A006EB34F /* Formatters */ = { - isa = PBXGroup; - children = ( - 5BE377DC1D425151006EB34F /* DayAxisValueFormatter.h */, - 5BE377DD1D425151006EB34F /* DayAxisValueFormatter.m */, - 5BE377F01D47FDF1006EB34F /* IntAxisValueFormatter.h */, - 5BE377F11D47FDF1006EB34F /* IntAxisValueFormatter.m */, - 5B613DF11D5A60DF000F1E98 /* LargeValueFormatter.swift */, - 5BE673981D5BAD7E00A87BA2 /* DateValueFormatter.h */, - 5BE673991D5BAD7E00A87BA2 /* DateValueFormatter.m */, - ); - path = Formatters; - sourceTree = ""; - }; + 0630AE3A1D8126C0008859B0 /* Products */ = { + isa = PBXGroup; + children = ( + 0630AE411D8126C0008859B0 /* Charts.framework */, + 0630AE431D8126C0008859B0 /* ChartsTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 225B361E1F6EB9A50005B3D5 /* Swift */ = { + isa = PBXGroup; + children = ( + 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */, + 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */, + 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */, + 225B363C1F6EBA180005B3D5 /* Components */, + 225B36331F6EB9FE0005B3D5 /* Formatters */, + 225B36431F6EBA410005B3D5 /* Demos */, + ); + path = Swift; + sourceTree = ""; + }; + 225B36331F6EB9FE0005B3D5 /* Formatters */ = { + isa = PBXGroup; + children = ( + 225B36351F6EB9FE0005B3D5 /* DayAxisValueFormatter.swift */, + 225B36361F6EB9FE0005B3D5 /* DateValueFormatter.swift */, + 225B36341F6EB9FE0005B3D5 /* IntAxisValueFormatter.swift */, + 225B36371F6EB9FE0005B3D5 /* LargeValueFormatter.swift */, + ); + path = Formatters; + sourceTree = ""; + }; + 225B363C1F6EBA180005B3D5 /* Components */ = { + isa = PBXGroup; + children = ( + 225B363E1F6EBA180005B3D5 /* BalloonMarker.swift */, + 225B363F1F6EBA180005B3D5 /* RadarMarkerView.swift */, + 225B363D1F6EBA180005B3D5 /* XYMarkerView.swift */, + ); + path = Components; + sourceTree = ""; + }; + 225B36431F6EBA410005B3D5 /* Demos */ = { + isa = PBXGroup; + children = ( + 225B36511F6EBA410005B3D5 /* AnotherBarChartViewController.swift */, + 225B36581F6EBA410005B3D5 /* BarChartViewController.swift */, + 225B364E1F6EBA410005B3D5 /* BubbleChartViewController.swift */, + 225B365A1F6EBA410005B3D5 /* CandleStickChartViewController.swift */, + 225B36481F6EBA410005B3D5 /* ColoredLineChartViewController.swift */, + 225B36571F6EBA410005B3D5 /* CombinedChartViewController.swift */, + 225B36531F6EBA410005B3D5 /* CubicLineChartViewController.swift */, + 225B36461F6EBA410005B3D5 /* HalfPieChartViewController.swift */, + 225B36551F6EBA410005B3D5 /* HorizontalBarChartViewController.swift */, + 225B364A1F6EBA410005B3D5 /* LineChart1ViewController.swift */, + 225B36491F6EBA410005B3D5 /* LineChart2ViewController.swift */, + 225B364F1F6EBA410005B3D5 /* LineChartFilledViewController.swift */, + 225B36471F6EBA410005B3D5 /* LineChartTimeViewController.swift */, + 225B36441F6EBA410005B3D5 /* MultipleLinesChartViewController.swift */, + 225B36451F6EBA410005B3D5 /* MultipleBarChartViewController.swift */, + 225B364B1F6EBA410005B3D5 /* NegativeStackedBarChartViewController.swift */, + 225B36521F6EBA410005B3D5 /* PieChartViewController.swift */, + 225B36561F6EBA410005B3D5 /* PiePolylineChartViewController.swift */, + 225B36501F6EBA410005B3D5 /* PositiveNegativeBarChartViewController.swift */, + 225B36541F6EBA410005B3D5 /* RadarChartViewController.swift */, + 225B364C1F6EBA410005B3D5 /* ScatterChartViewController.swift */, + 225B36591F6EBA410005B3D5 /* SinusBarChartViewController.swift */, + 225B364D1F6EBA410005B3D5 /* StackedBarChartViewController.swift */, + ); + path = Demos; + sourceTree = ""; + }; + 227136F41F6EB665006D2A11 /* XIBs */ = { + isa = PBXGroup; + children = ( + 5B8EAF231AB3271B009697AA /* DemoListViewController.xib */, + 5B613DB41D526EA8000F1E98 /* RadarMarkerView.xib */, + 227136F61F6EB69D006D2A11 /* Demos */, + ); + path = XIBs; + sourceTree = ""; + }; + 227136F61F6EB69D006D2A11 /* Demos */ = { + isa = PBXGroup; + children = ( + 5BEAED111ABBFB2B0013F194 /* AnotherBarChartViewController.xib */, + 5BD47E641ABB424E008FCEC6 /* BarChartViewController.xib */, + 55E3564D1ADC638F00A57971 /* BubbleChartViewController.xib */, + 5BEAED2B1ABC160F0013F194 /* CandleStickChartViewController.xib */, + 5BEAED3A1ABC199F0013F194 /* ColoredLineChartViewController.xib */, + 5BDEDC461ABB871E007D3A60 /* CombinedChartViewController.xib */, + 5BEAED301ABC18F00013F194 /* CubicLineChartViewController.xib */, + 5BE6737F1D5B496500A87BA2 /* HalfPieChartViewController.xib */, + 5BDEDC401ABB7F73007D3A60 /* HorizontalBarChartViewController.xib */, + 5BD8F0731AB89CE500566E05 /* LineChart1ViewController.xib */, + 5BD47E5F1ABB3C91008FCEC6 /* LineChart2ViewController.xib */, + 5BE6738E1D5B4E0900A87BA2 /* LineChartFilledViewController.xib */, + 5BE673911D5B4E0900A87BA2 /* LineChartTimeViewController.xib */, + 5BEAED211ABC0BE20013F194 /* MultipleBarChartViewController.xib */, + 5BEAED241ABC0BE20013F194 /* MultipleLinesChartViewController.xib */, + 5B9624401B38608C007763E2 /* NegativeStackedBarChartViewController.xib */, + 5B0CC7841ABB875400665592 /* PieChartViewController.xib */, + 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */, + 5BE7E7611C693098000A0377 /* PositiveNegativeBarChartViewController.xib */, + 5BEAED351ABC192F0013F194 /* RadarChartViewController.xib */, + 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */, + 5BEAED171ABBFB340013F194 /* ScatterChartViewController.xib */, + 5BEAED3F1ABC1AC60013F194 /* SinusBarChartViewController.xib */, + 5BEAED1A1ABBFB340013F194 /* StackedBarChartViewController.xib */, + ); + path = Demos; + sourceTree = ""; + }; + 5B57BBA61A9B26AA0036A6CC = { + isa = PBXGroup; + children = ( + 5B57BBB11A9B26AA0036A6CC /* Objective-C */, + 225B361E1F6EB9A50005B3D5 /* Swift */, + 227136F41F6EB665006D2A11 /* XIBs */, + 5B8EAF2E1AB32E15009697AA /* Resources */, + 5B57BBB21A9B26AA0036A6CC /* Supporting Files */, + 5B57BBB01A9B26AA0036A6CC /* Products */, + 0630AE391D8126C0008859B0 /* Charts.xcodeproj */, + ); + sourceTree = ""; + }; + 5B57BBB01A9B26AA0036A6CC /* Products */ = { + isa = PBXGroup; + children = ( + 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */, + 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */, + ); + name = Products; + sourceTree = ""; + }; + 5B57BBB11A9B26AA0036A6CC /* Objective-C */ = { + isa = PBXGroup; + children = ( + 5B57BBB61A9B26AA0036A6CC /* AppDelegate.h */, + 5B57BBB71A9B26AA0036A6CC /* AppDelegate.m */, + 5B57BBB91A9B26AA0036A6CC /* DemoListViewController.h */, + 5B57BBBA1A9B26AA0036A6CC /* DemoListViewController.m */, + 5B8EAF251AB32CF5009697AA /* DemoBaseViewController.h */, + 5B8EAF261AB32CF5009697AA /* DemoBaseViewController.m */, + 5BE377D41D42511A006EB34F /* Formatters */, + 5BD47E541ABB0177008FCEC6 /* Components */, + 5BD8F06F1AB89C7100566E05 /* Demos */, + ); + path = "Objective-C"; + sourceTree = ""; + }; + 5B57BBB21A9B26AA0036A6CC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 5B57BBB31A9B26AA0036A6CC /* Info.plist */, + 5B57BBB41A9B26AA0036A6CC /* main.m */, + 5BD47E5C1ABB0273008FCEC6 /* ChartsDemo-Bridging-Header.h */, + ); + path = "Supporting Files"; + sourceTree = ""; + }; + 5B613DA21D526AD5000F1E98 /* markers */ = { + isa = PBXGroup; + children = ( + 5B613DA31D526AD5000F1E98 /* radar_marker@3x.png */, + ); + path = markers; + sourceTree = ""; + }; + 5B8EAF2E1AB32E15009697AA /* Resources */ = { + isa = PBXGroup; + children = ( + B64D06EA1FB199130067418D /* Launch Screen.storyboard */, + 5B8EAF2F1AB32E15009697AA /* Images.xcassets */, + 5B613DA21D526AD5000F1E98 /* markers */, + ); + path = Resources; + sourceTree = ""; + }; + 5BD47E541ABB0177008FCEC6 /* Components */ = { + isa = PBXGroup; + children = ( + 5BD47E5A1ABB0263008FCEC6 /* BalloonMarker.swift */, + 5B613DB21D526DED000F1E98 /* RadarMarkerView.swift */, + 5B613DEF1D5A50B6000F1E98 /* XYMarkerView.swift */, + ); + path = Components; + sourceTree = ""; + }; + 5BD8F06F1AB89C7100566E05 /* Demos */ = { + isa = PBXGroup; + children = ( + 5BEAED0F1ABBFB2B0013F194 /* AnotherBarChartViewController.h */, + 5BEAED101ABBFB2B0013F194 /* AnotherBarChartViewController.m */, + 5BD47E621ABB424E008FCEC6 /* BarChartViewController.h */, + 5BD47E631ABB424E008FCEC6 /* BarChartViewController.m */, + 55E3564E1ADC638F00A57971 /* BubbleChartViewController.h */, + 55E3564F1ADC638F00A57971 /* BubbleChartViewController.m */, + 5BEAED291ABC160F0013F194 /* CandleStickChartViewController.h */, + 5BEAED2A1ABC160F0013F194 /* CandleStickChartViewController.m */, + 5BEAED381ABC199F0013F194 /* ColoredLineChartViewController.h */, + 5BEAED391ABC199F0013F194 /* ColoredLineChartViewController.m */, + 5BDEDC441ABB871E007D3A60 /* CombinedChartViewController.h */, + 5BDEDC451ABB871E007D3A60 /* CombinedChartViewController.m */, + 5BEAED2E1ABC18F00013F194 /* CubicLineChartViewController.h */, + 5BEAED2F1ABC18F00013F194 /* CubicLineChartViewController.m */, + 5BE6737D1D5B496500A87BA2 /* HalfPieChartViewController.h */, + 5BE6737E1D5B496500A87BA2 /* HalfPieChartViewController.m */, + 5BDEDC3E1ABB7F73007D3A60 /* HorizontalBarChartViewController.h */, + 5BDEDC3F1ABB7F73007D3A60 /* HorizontalBarChartViewController.m */, + 5BD8F0711AB89CE500566E05 /* LineChart1ViewController.h */, + 5BD8F0721AB89CE500566E05 /* LineChart1ViewController.m */, + 5BD47E5D1ABB3C91008FCEC6 /* LineChart2ViewController.h */, + 5BD47E5E1ABB3C91008FCEC6 /* LineChart2ViewController.m */, + 5BE6738C1D5B4E0900A87BA2 /* LineChartFilledViewController.h */, + 5BE6738D1D5B4E0900A87BA2 /* LineChartFilledViewController.m */, + 5BE6738F1D5B4E0900A87BA2 /* LineChartTimeViewController.h */, + 5BE673901D5B4E0900A87BA2 /* LineChartTimeViewController.m */, + 5BEAED1F1ABC0BE20013F194 /* MultipleBarChartViewController.h */, + 5BEAED201ABC0BE20013F194 /* MultipleBarChartViewController.m */, + 5BEAED221ABC0BE20013F194 /* MultipleLinesChartViewController.h */, + 5BEAED231ABC0BE20013F194 /* MultipleLinesChartViewController.m */, + 5B96243E1B38608C007763E2 /* NegativeStackedBarChartViewController.h */, + 5B96243F1B38608C007763E2 /* NegativeStackedBarChartViewController.m */, + 5B0CC7821ABB875400665592 /* PieChartViewController.h */, + 5B0CC7831ABB875400665592 /* PieChartViewController.m */, + 0439A3511C9FF95F00496F83 /* PiePolylineChartViewController.h */, + 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */, + 5BE7E75F1C693098000A0377 /* PositiveNegativeBarChartViewController.h */, + 5BE7E7601C693098000A0377 /* PositiveNegativeBarChartViewController.m */, + 5BEAED331ABC192F0013F194 /* RadarChartViewController.h */, + 5BEAED341ABC192F0013F194 /* RadarChartViewController.m */, + 5BEAED151ABBFB340013F194 /* ScatterChartViewController.h */, + 5BEAED161ABBFB340013F194 /* ScatterChartViewController.m */, + 5BEAED3D1ABC1AC60013F194 /* SinusBarChartViewController.h */, + 5BEAED3E1ABC1AC60013F194 /* SinusBarChartViewController.m */, + 5BEAED181ABBFB340013F194 /* StackedBarChartViewController.h */, + 5BEAED191ABBFB340013F194 /* StackedBarChartViewController.m */, + ); + path = Demos; + sourceTree = ""; + }; + 5BE377D41D42511A006EB34F /* Formatters */ = { + isa = PBXGroup; + children = ( + 5BE377DC1D425151006EB34F /* DayAxisValueFormatter.h */, + 5BE377DD1D425151006EB34F /* DayAxisValueFormatter.m */, + 5BE377F01D47FDF1006EB34F /* IntAxisValueFormatter.h */, + 5BE377F11D47FDF1006EB34F /* IntAxisValueFormatter.m */, + 5B613DF11D5A60DF000F1E98 /* LargeValueFormatter.swift */, + 5BE673981D5BAD7E00A87BA2 /* DateValueFormatter.h */, + 5BE673991D5BAD7E00A87BA2 /* DateValueFormatter.m */, + ); + path = Formatters; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 225B361C1F6EB9A50005B3D5 /* ChartsDemo-Swift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-Swift" */; - buildPhases = ( - 225B36191F6EB9A50005B3D5 /* Sources */, - 225B361A1F6EB9A50005B3D5 /* Frameworks */, - 225B361B1F6EB9A50005B3D5 /* Resources */, - 225B36901F6EBBB10005B3D5 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 225B368F1F6EBBB00005B3D5 /* PBXTargetDependency */, - ); - name = "ChartsDemo-Swift"; - productName = "ChartsDemo-Swift"; - productReference = 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */; - productType = "com.apple.product-type.application"; - }; - 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */; - buildPhases = ( - 5B57BBAB1A9B26AA0036A6CC /* Sources */, - 5B57BBAC1A9B26AA0036A6CC /* Frameworks */, - 5B57BBAD1A9B26AA0036A6CC /* Resources */, - 5BB4B0751ACA710D00E2EF4D /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 0630AE541D81271B008859B0 /* PBXTargetDependency */, - ); - name = ChartsDemo; - productName = chartstest; - productReference = 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */; - productType = "com.apple.product-type.application"; - }; + 225B361C1F6EB9A50005B3D5 /* ChartsDemo-Swift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-Swift" */; + buildPhases = ( + 225B36191F6EB9A50005B3D5 /* Sources */, + 225B361A1F6EB9A50005B3D5 /* Frameworks */, + 225B361B1F6EB9A50005B3D5 /* Resources */, + 225B36901F6EBBB10005B3D5 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 225B368F1F6EBBB00005B3D5 /* PBXTargetDependency */, + ); + name = "ChartsDemo-Swift"; + productName = "ChartsDemo-Swift"; + productReference = 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */; + productType = "com.apple.product-type.application"; + }; + 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */; + buildPhases = ( + 5B57BBAB1A9B26AA0036A6CC /* Sources */, + 5B57BBAC1A9B26AA0036A6CC /* Frameworks */, + 5B57BBAD1A9B26AA0036A6CC /* Resources */, + 22A4867D1FBA6D7100EC9A0F /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 22A4867C1FBA6D7000EC9A0F /* PBXTargetDependency */, + ); + name = ChartsDemo; + productName = chartstest; + productReference = 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 5B57BBA71A9B26AA0036A6CC /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftMigration = 0700; - LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0900; - ORGANIZATIONNAME = dcg; - TargetAttributes = { - 225B361C1F6EB9A50005B3D5 = { - CreatedOnToolsVersion = 9.0; - }; - 5B57BBAE1A9B26AA0036A6CC = { - CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 0900; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 5B57BBA61A9B26AA0036A6CC; - productRefGroup = 5B57BBB01A9B26AA0036A6CC /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 0630AE3A1D8126C0008859B0 /* Products */; - ProjectRef = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */, - 225B361C1F6EB9A50005B3D5 /* ChartsDemo-Swift */, - ); - }; + 5B57BBA71A9B26AA0036A6CC /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftMigration = 0700; + LastSwiftUpdateCheck = 0700; + LastUpgradeCheck = 0900; + ORGANIZATIONNAME = dcg; + TargetAttributes = { + 225B361C1F6EB9A50005B3D5 = { + CreatedOnToolsVersion = 9.0; + }; + 5B57BBAE1A9B26AA0036A6CC = { + CreatedOnToolsVersion = 6.1.1; + LastSwiftMigration = 0900; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5B57BBA61A9B26AA0036A6CC; + productRefGroup = 5B57BBB01A9B26AA0036A6CC /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 0630AE3A1D8126C0008859B0 /* Products */; + ProjectRef = 0630AE391D8126C0008859B0 /* Charts.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */, + 225B361C1F6EB9A50005B3D5 /* ChartsDemo-Swift */, + ); + }; /* End PBXProject section */ /* Begin PBXReferenceProxy section */ - 0630AE411D8126C0008859B0 /* Charts.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Charts.framework; - remoteRef = 0630AE401D8126C0008859B0 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 0630AE431D8126C0008859B0 /* ChartsTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = ChartsTests.xctest; - remoteRef = 0630AE421D8126C0008859B0 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; + 0630AE411D8126C0008859B0 /* Charts.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = Charts.framework; + remoteRef = 0630AE401D8126C0008859B0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 0630AE431D8126C0008859B0 /* ChartsTests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = ChartsTests.xctest; + remoteRef = 0630AE421D8126C0008859B0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ - 225B361B1F6EB9A50005B3D5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 225B367C1F6EBA640005B3D5 /* HorizontalBarChartViewController.xib in Resources */, - 225B36841F6EBA640005B3D5 /* PieChartViewController.xib in Resources */, - 225B36741F6EBA640005B3D5 /* AnotherBarChartViewController.xib in Resources */, - 225B36781F6EBA640005B3D5 /* ColoredLineChartViewController.xib in Resources */, - 225B36791F6EBA640005B3D5 /* CombinedChartViewController.xib in Resources */, - 225B367B1F6EBA640005B3D5 /* HalfPieChartViewController.xib in Resources */, - 068A9B1A1FBBF355003CF1AD /* Launch Screen.storyboard in Resources */, - 225B367A1F6EBA640005B3D5 /* CubicLineChartViewController.xib in Resources */, - 225B368B1F6EBA640005B3D5 /* StackedBarChartViewController.xib in Resources */, - 225B36821F6EBA640005B3D5 /* MultipleLinesChartViewController.xib in Resources */, - 068A9B191FBBF351003CF1AD /* Images.xcassets in Resources */, - 225B36751F6EBA640005B3D5 /* BarChartViewController.xib in Resources */, - 225B367F1F6EBA640005B3D5 /* LineChartFilledViewController.xib in Resources */, - 225B36801F6EBA640005B3D5 /* LineChartTimeViewController.xib in Resources */, - 225B36811F6EBA640005B3D5 /* MultipleBarChartViewController.xib in Resources */, - 225B367D1F6EBA640005B3D5 /* LineChart1ViewController.xib in Resources */, - 068A9B1B1FBBF366003CF1AD /* radar_marker@3x.png in Resources */, - 225B36721F6EBA5E0005B3D5 /* DemoListViewController.xib in Resources */, - 225B36891F6EBA640005B3D5 /* ScatterChartViewController.xib in Resources */, - 225B36851F6EBA640005B3D5 /* PiePolylineChartViewController.xib in Resources */, - 225B36771F6EBA640005B3D5 /* CandleStickChartViewController.xib in Resources */, - 225B36871F6EBA640005B3D5 /* RadarChartViewController.xib in Resources */, - 225B368A1F6EBA640005B3D5 /* SinusBarChartViewController.xib in Resources */, - 225B36731F6EBA5E0005B3D5 /* RadarMarkerView.xib in Resources */, - 225B367E1F6EBA640005B3D5 /* LineChart2ViewController.xib in Resources */, - 225B36881F6EBA640005B3D5 /* RealmDemosViewController.xib in Resources */, - 225B36861F6EBA640005B3D5 /* PositiveNegativeBarChartViewController.xib in Resources */, - 225B36831F6EBA640005B3D5 /* NegativeStackedBarChartViewController.xib in Resources */, - 225B36761F6EBA640005B3D5 /* BubbleChartViewController.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5B57BBAD1A9B26AA0036A6CC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5B8EAF301AB32E15009697AA /* Images.xcassets in Resources */, - 5BE673931D5B4E0900A87BA2 /* LineChartFilledViewController.xib in Resources */, - 5BEAED2D1ABC160F0013F194 /* CandleStickChartViewController.xib in Resources */, - 5B613DB51D526EA8000F1E98 /* RadarMarkerView.xib in Resources */, - 5BD47E611ABB3C91008FCEC6 /* LineChart2ViewController.xib in Resources */, - 5BEAED131ABBFB2B0013F194 /* AnotherBarChartViewController.xib in Resources */, - 5BEAED411ABC1AC60013F194 /* SinusBarChartViewController.xib in Resources */, - 5BEAED371ABC192F0013F194 /* RadarChartViewController.xib in Resources */, - 5B8EAF241AB3271B009697AA /* DemoListViewController.xib in Resources */, - 5BEAED261ABC0BE20013F194 /* MultipleBarChartViewController.xib in Resources */, - 5BEAED3C1ABC199F0013F194 /* ColoredLineChartViewController.xib in Resources */, - 5BEAED321ABC18F00013F194 /* CubicLineChartViewController.xib in Resources */, - 5BEAED281ABC0BE20013F194 /* MultipleLinesChartViewController.xib in Resources */, - 5B9624421B38608C007763E2 /* NegativeStackedBarChartViewController.xib in Resources */, - 5B613DA41D526AD5000F1E98 /* radar_marker@3x.png in Resources */, - 5BE7E7631C693098000A0377 /* PositiveNegativeBarChartViewController.xib in Resources */, - 5B0CC7861ABB875400665592 /* PieChartViewController.xib in Resources */, - 5BEAED1C1ABBFB340013F194 /* ScatterChartViewController.xib in Resources */, - 0471CBFC1CA1090A00E52DBC /* PiePolylineChartViewController.xib in Resources */, - 5BD8F0751AB89CE500566E05 /* LineChart1ViewController.xib in Resources */, - 5BE673811D5B496500A87BA2 /* HalfPieChartViewController.xib in Resources */, - B64D06EB1FB199130067418D /* Launch Screen.storyboard in Resources */, - 5BD47E661ABB424E008FCEC6 /* BarChartViewController.xib in Resources */, - 5BDEDC421ABB7F73007D3A60 /* HorizontalBarChartViewController.xib in Resources */, - 5BDEDC481ABB871E007D3A60 /* CombinedChartViewController.xib in Resources */, - 5BE673951D5B4E0900A87BA2 /* LineChartTimeViewController.xib in Resources */, - 5BEAED1E1ABBFB340013F194 /* StackedBarChartViewController.xib in Resources */, - 5B1B5DAB1E911A15006D1375 /* RealmDemosViewController.xib in Resources */, - 55E356501ADC638F00A57971 /* BubbleChartViewController.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 225B361B1F6EB9A50005B3D5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 225B367C1F6EBA640005B3D5 /* HorizontalBarChartViewController.xib in Resources */, + 225B36841F6EBA640005B3D5 /* PieChartViewController.xib in Resources */, + 225B36741F6EBA640005B3D5 /* AnotherBarChartViewController.xib in Resources */, + 225B36781F6EBA640005B3D5 /* ColoredLineChartViewController.xib in Resources */, + 225B36791F6EBA640005B3D5 /* CombinedChartViewController.xib in Resources */, + 225B367B1F6EBA640005B3D5 /* HalfPieChartViewController.xib in Resources */, + 068A9B1A1FBBF355003CF1AD /* Launch Screen.storyboard in Resources */, + 225B367A1F6EBA640005B3D5 /* CubicLineChartViewController.xib in Resources */, + 225B368B1F6EBA640005B3D5 /* StackedBarChartViewController.xib in Resources */, + 225B36821F6EBA640005B3D5 /* MultipleLinesChartViewController.xib in Resources */, + 068A9B191FBBF351003CF1AD /* Images.xcassets in Resources */, + 225B36751F6EBA640005B3D5 /* BarChartViewController.xib in Resources */, + 225B367F1F6EBA640005B3D5 /* LineChartFilledViewController.xib in Resources */, + 225B36801F6EBA640005B3D5 /* LineChartTimeViewController.xib in Resources */, + 225B36811F6EBA640005B3D5 /* MultipleBarChartViewController.xib in Resources */, + 225B367D1F6EBA640005B3D5 /* LineChart1ViewController.xib in Resources */, + 068A9B1B1FBBF366003CF1AD /* radar_marker@3x.png in Resources */, + 225B36721F6EBA5E0005B3D5 /* DemoListViewController.xib in Resources */, + 225B36891F6EBA640005B3D5 /* ScatterChartViewController.xib in Resources */, + 225B36851F6EBA640005B3D5 /* PiePolylineChartViewController.xib in Resources */, + 225B36771F6EBA640005B3D5 /* CandleStickChartViewController.xib in Resources */, + 225B36871F6EBA640005B3D5 /* RadarChartViewController.xib in Resources */, + 225B368A1F6EBA640005B3D5 /* SinusBarChartViewController.xib in Resources */, + 225B36731F6EBA5E0005B3D5 /* RadarMarkerView.xib in Resources */, + 225B367E1F6EBA640005B3D5 /* LineChart2ViewController.xib in Resources */, + 225B36881F6EBA640005B3D5 /* RealmDemosViewController.xib in Resources */, + 225B36861F6EBA640005B3D5 /* PositiveNegativeBarChartViewController.xib in Resources */, + 225B36831F6EBA640005B3D5 /* NegativeStackedBarChartViewController.xib in Resources */, + 225B36761F6EBA640005B3D5 /* BubbleChartViewController.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5B57BBAD1A9B26AA0036A6CC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5B8EAF301AB32E15009697AA /* Images.xcassets in Resources */, + 5BE673931D5B4E0900A87BA2 /* LineChartFilledViewController.xib in Resources */, + 5BEAED2D1ABC160F0013F194 /* CandleStickChartViewController.xib in Resources */, + 5B613DB51D526EA8000F1E98 /* RadarMarkerView.xib in Resources */, + 5BD47E611ABB3C91008FCEC6 /* LineChart2ViewController.xib in Resources */, + 5BEAED131ABBFB2B0013F194 /* AnotherBarChartViewController.xib in Resources */, + 5BEAED411ABC1AC60013F194 /* SinusBarChartViewController.xib in Resources */, + 5BEAED371ABC192F0013F194 /* RadarChartViewController.xib in Resources */, + 5B8EAF241AB3271B009697AA /* DemoListViewController.xib in Resources */, + 5BEAED261ABC0BE20013F194 /* MultipleBarChartViewController.xib in Resources */, + 5BEAED3C1ABC199F0013F194 /* ColoredLineChartViewController.xib in Resources */, + 5BEAED321ABC18F00013F194 /* CubicLineChartViewController.xib in Resources */, + 5BEAED281ABC0BE20013F194 /* MultipleLinesChartViewController.xib in Resources */, + 5B9624421B38608C007763E2 /* NegativeStackedBarChartViewController.xib in Resources */, + 5B613DA41D526AD5000F1E98 /* radar_marker@3x.png in Resources */, + 5BE7E7631C693098000A0377 /* PositiveNegativeBarChartViewController.xib in Resources */, + 5B0CC7861ABB875400665592 /* PieChartViewController.xib in Resources */, + 5BEAED1C1ABBFB340013F194 /* ScatterChartViewController.xib in Resources */, + 0471CBFC1CA1090A00E52DBC /* PiePolylineChartViewController.xib in Resources */, + 5BD8F0751AB89CE500566E05 /* LineChart1ViewController.xib in Resources */, + 5BE673811D5B496500A87BA2 /* HalfPieChartViewController.xib in Resources */, + B64D06EB1FB199130067418D /* Launch Screen.storyboard in Resources */, + 5BD47E661ABB424E008FCEC6 /* BarChartViewController.xib in Resources */, + 5BDEDC421ABB7F73007D3A60 /* HorizontalBarChartViewController.xib in Resources */, + 5BDEDC481ABB871E007D3A60 /* CombinedChartViewController.xib in Resources */, + 5BE673951D5B4E0900A87BA2 /* LineChartTimeViewController.xib in Resources */, + 5BEAED1E1ABBFB340013F194 /* StackedBarChartViewController.xib in Resources */, + 5B1B5DAB1E911A15006D1375 /* RealmDemosViewController.xib in Resources */, + 55E356501ADC638F00A57971 /* BubbleChartViewController.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 225B36191F6EB9A50005B3D5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 225B365E1F6EBA470005B3D5 /* LineChartTimeViewController.swift in Sources */, - 225B36311F6EB9EE0005B3D5 /* DemoBaseViewController.swift in Sources */, - 225B36391F6EBA040005B3D5 /* DayAxisValueFormatter.swift in Sources */, - 225B36661F6EBA470005B3D5 /* LineChartFilledViewController.swift in Sources */, - 225B366A1F6EBA470005B3D5 /* CubicLineChartViewController.swift in Sources */, - 225B36671F6EBA470005B3D5 /* PositiveNegativeBarChartViewController.swift in Sources */, - 225B363A1F6EBA040005B3D5 /* DateValueFormatter.swift in Sources */, - 225B366D1F6EBA470005B3D5 /* PiePolylineChartViewController.swift in Sources */, - 225B366F1F6EBA470005B3D5 /* BarChartViewController.swift in Sources */, - 225B36601F6EBA470005B3D5 /* LineChart2ViewController.swift in Sources */, - 225B36411F6EBA1D0005B3D5 /* BalloonMarker.swift in Sources */, - 225B366C1F6EBA470005B3D5 /* HorizontalBarChartViewController.swift in Sources */, - 225B36401F6EBA1D0005B3D5 /* XYMarkerView.swift in Sources */, - 225B36421F6EBA1D0005B3D5 /* RadarMarkerView.swift in Sources */, - 225B366B1F6EBA470005B3D5 /* RadarChartViewController.swift in Sources */, - 225B36611F6EBA470005B3D5 /* LineChart1ViewController.swift in Sources */, - 225B36691F6EBA470005B3D5 /* PieChartViewController.swift in Sources */, - 225B365B1F6EBA470005B3D5 /* MultipleLinesChartViewController.swift in Sources */, - 225B365F1F6EBA470005B3D5 /* ColoredLineChartViewController.swift in Sources */, - 225B36201F6EB9A50005B3D5 /* AppDelegate.swift in Sources */, - 225B36321F6EB9EE0005B3D5 /* DemoListViewController.swift in Sources */, - 225B36711F6EBA470005B3D5 /* CandleStickChartViewController.swift in Sources */, - 225B36631F6EBA470005B3D5 /* ScatterChartViewController.swift in Sources */, - 225B365C1F6EBA470005B3D5 /* MultipleBarChartViewController.swift in Sources */, - 225B366E1F6EBA470005B3D5 /* CombinedChartViewController.swift in Sources */, - 225B36641F6EBA470005B3D5 /* StackedBarChartViewController.swift in Sources */, - 225B36651F6EBA470005B3D5 /* BubbleChartViewController.swift in Sources */, - 225B36381F6EBA040005B3D5 /* IntAxisValueFormatter.swift in Sources */, - 225B365D1F6EBA470005B3D5 /* HalfPieChartViewController.swift in Sources */, - 225B36701F6EBA470005B3D5 /* SinusBarChartViewController.swift in Sources */, - 225B36681F6EBA470005B3D5 /* AnotherBarChartViewController.swift in Sources */, - 225B36621F6EBA470005B3D5 /* NegativeStackedBarChartViewController.swift in Sources */, - 225B363B1F6EBA040005B3D5 /* LargeValueFormatter.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5B57BBAB1A9B26AA0036A6CC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5B613DF21D5A60DF000F1E98 /* LargeValueFormatter.swift in Sources */, - 5BEAED1B1ABBFB340013F194 /* ScatterChartViewController.m in Sources */, - 5B0CC7851ABB875400665592 /* PieChartViewController.m in Sources */, - 0439A3541C9FF95F00496F83 /* PiePolylineChartViewController.m in Sources */, - 5B57BBBB1A9B26AA0036A6CC /* DemoListViewController.m in Sources */, - 5BD47E651ABB424E008FCEC6 /* BarChartViewController.m in Sources */, - 5BDEDC471ABB871E007D3A60 /* CombinedChartViewController.m in Sources */, - 5BE377F21D47FDF1006EB34F /* IntAxisValueFormatter.m in Sources */, - 5BD8F0741AB89CE500566E05 /* LineChart1ViewController.m in Sources */, - 5BE377DE1D425151006EB34F /* DayAxisValueFormatter.m in Sources */, - 5BEAED401ABC1AC60013F194 /* SinusBarChartViewController.m in Sources */, - 5BE7E7621C693098000A0377 /* PositiveNegativeBarChartViewController.m in Sources */, - 5B613DB31D526DED000F1E98 /* RadarMarkerView.swift in Sources */, - 5BEAED251ABC0BE20013F194 /* MultipleBarChartViewController.m in Sources */, - 5B57BBB81A9B26AA0036A6CC /* AppDelegate.m in Sources */, - 55E356511ADC638F00A57971 /* BubbleChartViewController.m in Sources */, - 5BD47E5B1ABB0263008FCEC6 /* BalloonMarker.swift in Sources */, - 5BEAED2C1ABC160F0013F194 /* CandleStickChartViewController.m in Sources */, - 5BEAED271ABC0BE20013F194 /* MultipleLinesChartViewController.m in Sources */, - 5BE6739A1D5BAD7E00A87BA2 /* DateValueFormatter.m in Sources */, - 5BE673801D5B496500A87BA2 /* HalfPieChartViewController.m in Sources */, - 5BE673921D5B4E0900A87BA2 /* LineChartFilledViewController.m in Sources */, - 5B8EAF281AB32CF5009697AA /* DemoBaseViewController.m in Sources */, - 5BE673941D5B4E0900A87BA2 /* LineChartTimeViewController.m in Sources */, - 5B613DF01D5A50B6000F1E98 /* XYMarkerView.swift in Sources */, - 5BEAED3B1ABC199F0013F194 /* ColoredLineChartViewController.m in Sources */, - 5BDEDC411ABB7F73007D3A60 /* HorizontalBarChartViewController.m in Sources */, - 5BEAED121ABBFB2B0013F194 /* AnotherBarChartViewController.m in Sources */, - 5BEAED311ABC18F00013F194 /* CubicLineChartViewController.m in Sources */, - 5BEAED1D1ABBFB340013F194 /* StackedBarChartViewController.m in Sources */, - 5BD47E601ABB3C91008FCEC6 /* LineChart2ViewController.m in Sources */, - 5B57BBB51A9B26AA0036A6CC /* main.m in Sources */, - 5BEAED361ABC192F0013F194 /* RadarChartViewController.m in Sources */, - 5B9624411B38608C007763E2 /* NegativeStackedBarChartViewController.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 225B36191F6EB9A50005B3D5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 225B365E1F6EBA470005B3D5 /* LineChartTimeViewController.swift in Sources */, + 225B36311F6EB9EE0005B3D5 /* DemoBaseViewController.swift in Sources */, + 225B36391F6EBA040005B3D5 /* DayAxisValueFormatter.swift in Sources */, + 225B36661F6EBA470005B3D5 /* LineChartFilledViewController.swift in Sources */, + 225B366A1F6EBA470005B3D5 /* CubicLineChartViewController.swift in Sources */, + 225B36671F6EBA470005B3D5 /* PositiveNegativeBarChartViewController.swift in Sources */, + 225B363A1F6EBA040005B3D5 /* DateValueFormatter.swift in Sources */, + 225B366D1F6EBA470005B3D5 /* PiePolylineChartViewController.swift in Sources */, + 225B366F1F6EBA470005B3D5 /* BarChartViewController.swift in Sources */, + 225B36601F6EBA470005B3D5 /* LineChart2ViewController.swift in Sources */, + 225B36411F6EBA1D0005B3D5 /* BalloonMarker.swift in Sources */, + 225B366C1F6EBA470005B3D5 /* HorizontalBarChartViewController.swift in Sources */, + 225B36401F6EBA1D0005B3D5 /* XYMarkerView.swift in Sources */, + 225B36421F6EBA1D0005B3D5 /* RadarMarkerView.swift in Sources */, + 225B366B1F6EBA470005B3D5 /* RadarChartViewController.swift in Sources */, + 225B36611F6EBA470005B3D5 /* LineChart1ViewController.swift in Sources */, + 225B36691F6EBA470005B3D5 /* PieChartViewController.swift in Sources */, + 225B365B1F6EBA470005B3D5 /* MultipleLinesChartViewController.swift in Sources */, + 225B365F1F6EBA470005B3D5 /* ColoredLineChartViewController.swift in Sources */, + 225B36201F6EB9A50005B3D5 /* AppDelegate.swift in Sources */, + 225B36321F6EB9EE0005B3D5 /* DemoListViewController.swift in Sources */, + 225B36711F6EBA470005B3D5 /* CandleStickChartViewController.swift in Sources */, + 225B36631F6EBA470005B3D5 /* ScatterChartViewController.swift in Sources */, + 225B365C1F6EBA470005B3D5 /* MultipleBarChartViewController.swift in Sources */, + 225B366E1F6EBA470005B3D5 /* CombinedChartViewController.swift in Sources */, + 225B36641F6EBA470005B3D5 /* StackedBarChartViewController.swift in Sources */, + 225B36651F6EBA470005B3D5 /* BubbleChartViewController.swift in Sources */, + 225B36381F6EBA040005B3D5 /* IntAxisValueFormatter.swift in Sources */, + 225B365D1F6EBA470005B3D5 /* HalfPieChartViewController.swift in Sources */, + 225B36701F6EBA470005B3D5 /* SinusBarChartViewController.swift in Sources */, + 225B36681F6EBA470005B3D5 /* AnotherBarChartViewController.swift in Sources */, + 225B36621F6EBA470005B3D5 /* NegativeStackedBarChartViewController.swift in Sources */, + 225B363B1F6EBA040005B3D5 /* LargeValueFormatter.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5B57BBAB1A9B26AA0036A6CC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5B613DF21D5A60DF000F1E98 /* LargeValueFormatter.swift in Sources */, + 5BEAED1B1ABBFB340013F194 /* ScatterChartViewController.m in Sources */, + 5B0CC7851ABB875400665592 /* PieChartViewController.m in Sources */, + 0439A3541C9FF95F00496F83 /* PiePolylineChartViewController.m in Sources */, + 5B57BBBB1A9B26AA0036A6CC /* DemoListViewController.m in Sources */, + 5BD47E651ABB424E008FCEC6 /* BarChartViewController.m in Sources */, + 5BDEDC471ABB871E007D3A60 /* CombinedChartViewController.m in Sources */, + 5BE377F21D47FDF1006EB34F /* IntAxisValueFormatter.m in Sources */, + 5BD8F0741AB89CE500566E05 /* LineChart1ViewController.m in Sources */, + 5BE377DE1D425151006EB34F /* DayAxisValueFormatter.m in Sources */, + 5BEAED401ABC1AC60013F194 /* SinusBarChartViewController.m in Sources */, + 5BE7E7621C693098000A0377 /* PositiveNegativeBarChartViewController.m in Sources */, + 5B613DB31D526DED000F1E98 /* RadarMarkerView.swift in Sources */, + 5BEAED251ABC0BE20013F194 /* MultipleBarChartViewController.m in Sources */, + 5B57BBB81A9B26AA0036A6CC /* AppDelegate.m in Sources */, + 55E356511ADC638F00A57971 /* BubbleChartViewController.m in Sources */, + 5BD47E5B1ABB0263008FCEC6 /* BalloonMarker.swift in Sources */, + 5BEAED2C1ABC160F0013F194 /* CandleStickChartViewController.m in Sources */, + 5BEAED271ABC0BE20013F194 /* MultipleLinesChartViewController.m in Sources */, + 5BE6739A1D5BAD7E00A87BA2 /* DateValueFormatter.m in Sources */, + 5BE673801D5B496500A87BA2 /* HalfPieChartViewController.m in Sources */, + 5BE673921D5B4E0900A87BA2 /* LineChartFilledViewController.m in Sources */, + 5B8EAF281AB32CF5009697AA /* DemoBaseViewController.m in Sources */, + 5BE673941D5B4E0900A87BA2 /* LineChartTimeViewController.m in Sources */, + 5B613DF01D5A50B6000F1E98 /* XYMarkerView.swift in Sources */, + 5BEAED3B1ABC199F0013F194 /* ColoredLineChartViewController.m in Sources */, + 5BDEDC411ABB7F73007D3A60 /* HorizontalBarChartViewController.m in Sources */, + 5BEAED121ABBFB2B0013F194 /* AnotherBarChartViewController.m in Sources */, + 5BEAED311ABC18F00013F194 /* CubicLineChartViewController.m in Sources */, + 5BEAED1D1ABBFB340013F194 /* StackedBarChartViewController.m in Sources */, + 5BD47E601ABB3C91008FCEC6 /* LineChart2ViewController.m in Sources */, + 5B57BBB51A9B26AA0036A6CC /* main.m in Sources */, + 5BEAED361ABC192F0013F194 /* RadarChartViewController.m in Sources */, + 5B9624411B38608C007763E2 /* NegativeStackedBarChartViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 0630AE541D81271B008859B0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Charts; - targetProxy = 0630AE531D81271B008859B0 /* PBXContainerItemProxy */; - }; - 225B368F1F6EBBB00005B3D5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Charts; - targetProxy = 225B368E1F6EBBB00005B3D5 /* PBXContainerItemProxy */; - }; + 225B368F1F6EBBB00005B3D5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Charts; + targetProxy = 225B368E1F6EBBB00005B3D5 /* PBXContainerItemProxy */; + }; + 22A4867C1FBA6D7000EC9A0F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Charts; + targetProxy = 22A4867B1FBA6D7000EC9A0F /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 225B362D1F6EB9A50005B3D5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = "$(SRCROOT)/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.ChartsDemo-Swift"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 225B362E1F6EB9A50005B3D5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = "$(SRCROOT)/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.ChartsDemo-Swift"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 5B57BBD01A9B26AA0036A6CC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.2; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 5B57BBD11A9B26AA0036A6CC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.2; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 5B57BBD31A9B26AA0036A6CC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = "$(SOURCE_ROOT)/../Carthage/Build/iOS"; - INFOPLIST_FILE = "Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ChartsDemo; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; - SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 5B57BBD41A9B26AA0036A6CC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = "$(SOURCE_ROOT)/../Carthage/Build/iOS"; - INFOPLIST_FILE = "Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ChartsDemo; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; - SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; + 225B362D1F6EB9A50005B3D5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "$(SRCROOT)/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.ChartsDemo-Swift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + 225B362E1F6EB9A50005B3D5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "$(SRCROOT)/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.ChartsDemo-Swift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; + 5B57BBD01A9B26AA0036A6CC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 5B57BBD11A9B26AA0036A6CC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 5B57BBD31A9B26AA0036A6CC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + FRAMEWORK_SEARCH_PATHS = "$(SOURCE_ROOT)/../Carthage/Build/iOS"; + INFOPLIST_FILE = "Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = ChartsDemo; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; + SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 5B57BBD41A9B26AA0036A6CC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + FRAMEWORK_SEARCH_PATHS = "$(SOURCE_ROOT)/../Carthage/Build/iOS"; + INFOPLIST_FILE = "Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = ChartsDemo; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; + SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-Swift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 225B362D1F6EB9A50005B3D5 /* Debug */, - 225B362E1F6EB9A50005B3D5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5B57BBD01A9B26AA0036A6CC /* Debug */, - 5B57BBD11A9B26AA0036A6CC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5B57BBD31A9B26AA0036A6CC /* Debug */, - 5B57BBD41A9B26AA0036A6CC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-Swift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 225B362D1F6EB9A50005B3D5 /* Debug */, + 225B362E1F6EB9A50005B3D5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5B57BBD01A9B26AA0036A6CC /* Debug */, + 5B57BBD11A9B26AA0036A6CC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5B57BBD31A9B26AA0036A6CC /* Debug */, + 5B57BBD41A9B26AA0036A6CC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 5B57BBA71A9B26AA0036A6CC /* Project object */; + }; + rootObject = 5B57BBA71A9B26AA0036A6CC /* Project object */; } diff --git a/ChartsDemo/Objective-C/Components/XYMarkerView.swift b/ChartsDemo/Objective-C/Components/XYMarkerView.swift index bc77c82206..9826dbbcf6 100644 --- a/ChartsDemo/Objective-C/Components/XYMarkerView.swift +++ b/ChartsDemo/Objective-C/Components/XYMarkerView.swift @@ -9,11 +9,11 @@ import Charts open class XYMarkerView: BalloonMarker { - @objc open var xAxisValueFormatter: IAxisValueFormatter? + @objc open var xAxisValueFormatter: AxisValueFormatter? fileprivate var yFormatter = NumberFormatter() @objc public init(color: UIColor, font: UIFont, textColor: UIColor, insets: UIEdgeInsets, - xAxisValueFormatter: IAxisValueFormatter) + xAxisValueFormatter: AxisValueFormatter) { super.init(color: color, font: font, textColor: textColor, insets: insets) self.xAxisValueFormatter = xAxisValueFormatter diff --git a/ChartsDemo/Objective-C/DemoBaseViewController.m b/ChartsDemo/Objective-C/DemoBaseViewController.m index c5908a844c..26cc0c7369 100644 --- a/ChartsDemo/Objective-C/DemoBaseViewController.m +++ b/ChartsDemo/Objective-C/DemoBaseViewController.m @@ -75,7 +75,7 @@ - (void)handleOption:(NSString *)key forChartView:(ChartViewBase *)chartView { if ([key isEqualToString:@"toggleValues"]) { - for (id set in chartView.data.dataSets) + for (id set in chartView.data.dataSets) { set.drawValuesEnabled = !set.isDrawValuesEnabled; } @@ -85,7 +85,7 @@ - (void)handleOption:(NSString *)key forChartView:(ChartViewBase *)chartView if ([key isEqualToString:@"toggleIcons"]) { - for (id set in chartView.data.dataSets) + for (id set in chartView.data.dataSets) { set.drawIconsEnabled = !set.isDrawIconsEnabled; } @@ -143,9 +143,9 @@ - (void)handleOption:(NSString *)key forChartView:(ChartViewBase *)chartView if ([key isEqualToString:@"toggleBarBorders"]) { - for (id set in chartView.data.dataSets) + for (id set in chartView.data.dataSets) { - if ([set conformsToProtocol:@protocol(IBarChartDataSet)]) + if ([set conformsToProtocol:@protocol(BarChartDataSetProtocol)]) { set.barBorderWidth = set.barBorderWidth == 1.0 ? 0.0 : 1.0; } diff --git a/ChartsDemo/Objective-C/Demos/CandleStickChartViewController.m b/ChartsDemo/Objective-C/Demos/CandleStickChartViewController.m index 2fe219de28..b1fb82346d 100644 --- a/ChartsDemo/Objective-C/Demos/CandleStickChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/CandleStickChartViewController.m @@ -127,7 +127,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleShadowColorSameAsCandle"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.shadowColorSameAsCandle = !set.shadowColorSameAsCandle; } diff --git a/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m b/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m index fa65aec940..0466263f30 100644 --- a/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m @@ -14,7 +14,7 @@ #define ITEM_COUNT 12 -@interface CombinedChartViewController () +@interface CombinedChartViewController () { NSArray *months; } @@ -122,7 +122,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleLineValues"]) { - for (NSObject *set in _chartView.data.dataSets) + for (NSObject *set in _chartView.data.dataSets) { if ([set isKindOfClass:LineChartDataSet.class]) { @@ -136,7 +136,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleBarValues"]) { - for (NSObject *set in _chartView.data.dataSets) + for (NSObject *set in _chartView.data.dataSets) { if ([set isKindOfClass:BarChartDataSet.class]) { @@ -313,7 +313,7 @@ - (void)chartValueNothingSelected:(ChartViewBase * __nonnull)chartView NSLog(@"chartValueNothingSelected"); } -#pragma mark - IAxisValueFormatter +#pragma mark - AxisValueFormatter - (NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis diff --git a/ChartsDemo/Objective-C/Demos/CubicLineChartViewController.m b/ChartsDemo/Objective-C/Demos/CubicLineChartViewController.m index d434898479..ffea9de365 100644 --- a/ChartsDemo/Objective-C/Demos/CubicLineChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/CubicLineChartViewController.m @@ -12,7 +12,7 @@ #import "CubicLineChartViewController.h" #import "ChartsDemo-Swift.h" -@interface CubicLineSampleFillFormatter : NSObject +@interface CubicLineSampleFillFormatter : NSObject { } @end @@ -158,7 +158,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleFilled"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawFilledEnabled = !set.isDrawFilledEnabled; } @@ -169,7 +169,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCircles"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawCirclesEnabled = !set.isDrawCirclesEnabled; } @@ -180,7 +180,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeLinear : LineChartModeCubicBezier; } @@ -191,7 +191,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleStepped"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeStepped ? LineChartModeLinear : LineChartModeStepped; } @@ -201,7 +201,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleHorizontalCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeHorizontalBezier : LineChartModeCubicBezier; } diff --git a/ChartsDemo/Objective-C/Demos/LineChart1ViewController.m b/ChartsDemo/Objective-C/Demos/LineChart1ViewController.m index 8cf348c759..37b8ee2c83 100644 --- a/ChartsDemo/Objective-C/Demos/LineChart1ViewController.m +++ b/ChartsDemo/Objective-C/Demos/LineChart1ViewController.m @@ -192,7 +192,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleFilled"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawFilledEnabled = !set.isDrawFilledEnabled; } @@ -203,7 +203,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCircles"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawCirclesEnabled = !set.isDrawCirclesEnabled; } @@ -214,7 +214,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeLinear : LineChartModeCubicBezier; } @@ -225,7 +225,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleStepped"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { switch (set.mode) { case LineChartModeLinear: @@ -242,7 +242,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleHorizontalCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeHorizontalBezier ? LineChartModeCubicBezier : LineChartModeHorizontalBezier; } diff --git a/ChartsDemo/Objective-C/Demos/LineChart2ViewController.m b/ChartsDemo/Objective-C/Demos/LineChart2ViewController.m index 990ba151c5..38f1bc0777 100644 --- a/ChartsDemo/Objective-C/Demos/LineChart2ViewController.m +++ b/ChartsDemo/Objective-C/Demos/LineChart2ViewController.m @@ -204,7 +204,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleFilled"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawFilledEnabled = !set.isDrawFilledEnabled; } @@ -215,7 +215,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCircles"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawCirclesEnabled = !set.isDrawCirclesEnabled; } @@ -226,7 +226,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeLinear : LineChartModeCubicBezier; } @@ -237,7 +237,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleStepped"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { switch (set.mode) { case LineChartModeLinear: @@ -254,7 +254,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleHorizontalCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeHorizontalBezier : LineChartModeCubicBezier; } diff --git a/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m b/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m index c78a043b30..e0f215ce46 100644 --- a/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m +++ b/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m @@ -123,7 +123,7 @@ - (void)setDataCount:(int)count range:(double)range set1.fillColor = UIColor.whiteColor; set1.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set1.drawCircleHoleEnabled = NO; - set1.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { + set1.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { return _chartView.leftAxis.axisMinimum; }]; @@ -138,7 +138,7 @@ - (void)setDataCount:(int)count range:(double)range set2.fillColor = UIColor.whiteColor; set2.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set2.drawCircleHoleEnabled = NO; - set2.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { + set2.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { return _chartView.leftAxis.axisMaximum; }]; diff --git a/ChartsDemo/Objective-C/Demos/LineChartTimeViewController.m b/ChartsDemo/Objective-C/Demos/LineChartTimeViewController.m index 07bf61c50d..4f09d8ef47 100644 --- a/ChartsDemo/Objective-C/Demos/LineChartTimeViewController.m +++ b/ChartsDemo/Objective-C/Demos/LineChartTimeViewController.m @@ -158,7 +158,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleFilled"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawFilledEnabled = !set.isDrawFilledEnabled; } @@ -169,7 +169,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCircles"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawCirclesEnabled = !set.isDrawCirclesEnabled; } @@ -180,7 +180,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeLinear : LineChartModeCubicBezier; } @@ -191,7 +191,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleStepped"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { switch (set.mode) { case LineChartModeLinear: @@ -208,7 +208,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleHorizontalCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeHorizontalBezier : LineChartModeCubicBezier; } diff --git a/ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.m b/ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.m index 01f284f014..738a89cad8 100644 --- a/ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.m @@ -130,7 +130,7 @@ - (void)optionTapped:(NSString *)key { if ([key isEqualToString:@"toggleFilled"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawFilledEnabled = !set.isDrawFilledEnabled; } @@ -141,7 +141,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCircles"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.drawCirclesEnabled = !set.isDrawCirclesEnabled; } @@ -152,7 +152,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleCubic"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.mode = set.mode == LineChartModeCubicBezier ? LineChartModeLinear : LineChartModeCubicBezier; } @@ -163,7 +163,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleStepped"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { switch (set.mode) { case LineChartModeLinear: diff --git a/ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.m b/ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.m index da934ad7b7..408947c5f8 100644 --- a/ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.m @@ -12,7 +12,7 @@ #import "NegativeStackedBarChartViewController.h" #import "ChartsDemo-Swift.h" -@interface NegativeStackedBarChartViewController () +@interface NegativeStackedBarChartViewController () @property (nonatomic, strong) IBOutlet HorizontalBarChartView *chartView; @@ -184,7 +184,7 @@ - (void)chartValueNothingSelected:(ChartViewBase * __nonnull)chartView NSLog(@"chartValueNothingSelected"); } -#pragma mark - IAxisValueFormatter +#pragma mark - AxisValueFormatter - (NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis diff --git a/ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.m b/ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.m index 4a048dab65..3d36ecd6a3 100644 --- a/ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.m @@ -12,7 +12,7 @@ #import "PositiveNegativeBarChartViewController.h" #import "ChartsDemo-Swift.h" -@interface PositiveNegativeBarChartViewController () +@interface PositiveNegativeBarChartViewController () { NSArray *dataList; } @@ -182,7 +182,7 @@ - (void)chartValueNothingSelected:(ChartViewBase * __nonnull)chartView NSLog(@"chartValueNothingSelected"); } -#pragma mark - IAxisValueFormatter +#pragma mark - AxisValueFormatter - (NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis diff --git a/ChartsDemo/Objective-C/Demos/RadarChartViewController.m b/ChartsDemo/Objective-C/Demos/RadarChartViewController.m index 1810924a86..b895fdb727 100644 --- a/ChartsDemo/Objective-C/Demos/RadarChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/RadarChartViewController.m @@ -12,7 +12,7 @@ #import "RadarChartViewController.h" #import "ChartsDemo-Swift.h" -@interface RadarChartViewController () +@interface RadarChartViewController () { NSArray *activities; UIColor *originalBarBgColor; @@ -265,7 +265,7 @@ - (void)chartValueNothingSelected:(ChartViewBase * __nonnull)chartView NSLog(@"chartValueNothingSelected"); } -#pragma mark - IAxisValueFormatter +#pragma mark - AxisValueFormatter - (NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis diff --git a/ChartsDemo/Objective-C/Formatters/DateValueFormatter.h b/ChartsDemo/Objective-C/Formatters/DateValueFormatter.h index 71ba11d021..e7f0c31dec 100644 --- a/ChartsDemo/Objective-C/Formatters/DateValueFormatter.h +++ b/ChartsDemo/Objective-C/Formatters/DateValueFormatter.h @@ -12,6 +12,6 @@ #import #import "ChartsDemo-Swift.h" -@interface DateValueFormatter : NSObject +@interface DateValueFormatter : NSObject @end diff --git a/ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.h b/ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.h index 117e8c8de1..d9a7c78570 100644 --- a/ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.h +++ b/ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.h @@ -7,7 +7,7 @@ #import #import "ChartsDemo-Swift.h" -@interface DayAxisValueFormatter : NSObject +@interface DayAxisValueFormatter : NSObject - (id)initForChart:(BarLineChartViewBase *)chart; diff --git a/ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.h b/ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.h index 746cc21565..aac046df7d 100644 --- a/ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.h +++ b/ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.h @@ -7,6 +7,6 @@ #import #import "ChartsDemo-Swift.h" -@interface IntAxisValueFormatter : NSObject +@interface IntAxisValueFormatter : NSObject @end diff --git a/ChartsDemo/Objective-C/Formatters/LargeValueFormatter.swift b/ChartsDemo/Objective-C/Formatters/LargeValueFormatter.swift index 47ca78fd5e..1f37660ed3 100644 --- a/ChartsDemo/Objective-C/Formatters/LargeValueFormatter.swift +++ b/ChartsDemo/Objective-C/Formatters/LargeValueFormatter.swift @@ -7,7 +7,7 @@ import Foundation import Charts -open class LargeValueFormatter: NSObject, IValueFormatter, IAxisValueFormatter +open class LargeValueFormatter: NSObject, ValueFormatter, AxisValueFormatter { fileprivate static let MAX_LENGTH = 5 diff --git a/ChartsDemo/Swift/Components/XYMarkerView.swift b/ChartsDemo/Swift/Components/XYMarkerView.swift index 23bb965487..290ab85011 100644 --- a/ChartsDemo/Swift/Components/XYMarkerView.swift +++ b/ChartsDemo/Swift/Components/XYMarkerView.swift @@ -10,11 +10,11 @@ import Foundation import Charts public class XYMarkerView: BalloonMarker { - public var xAxisValueFormatter: IAxisValueFormatter + public var xAxisValueFormatter: AxisValueFormatter fileprivate var yFormatter = NumberFormatter() public init(color: UIColor, font: UIFont, textColor: UIColor, insets: UIEdgeInsets, - xAxisValueFormatter: IAxisValueFormatter) { + xAxisValueFormatter: AxisValueFormatter) { self.xAxisValueFormatter = xAxisValueFormatter yFormatter.minimumFractionDigits = 1 yFormatter.maximumFractionDigits = 1 diff --git a/ChartsDemo/Swift/Demos/CombinedChartViewController.swift b/ChartsDemo/Swift/Demos/CombinedChartViewController.swift index d3162293a7..e884cd042b 100644 --- a/ChartsDemo/Swift/Demos/CombinedChartViewController.swift +++ b/ChartsDemo/Swift/Demos/CombinedChartViewController.swift @@ -226,7 +226,7 @@ class CombinedChartViewController: DemoBaseViewController { } } -extension CombinedChartViewController: IAxisValueFormatter { +extension CombinedChartViewController: AxisValueFormatter { func stringForValue(_ value: Double, axis: AxisBase?) -> String { return months[Int(value) % months.count] } diff --git a/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift b/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift index 627d13d08d..5029456988 100644 --- a/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift +++ b/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift @@ -9,8 +9,8 @@ import UIKit import Charts -private class CubicLineSampleFillFormatter: IFillFormatter { - func getFillLinePosition(dataSet: ILineChartDataSet, dataProvider: LineChartDataProvider) -> CGFloat { +private class CubicLineSampleFillFormatter: FillFormatter { + func getFillLinePosition(dataSet: LineChartDataSetProtocol, dataProvider: LineChartDataProvider) -> CGFloat { return -10 } } diff --git a/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift b/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift index 088d2da1a3..3598d64602 100644 --- a/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift @@ -125,7 +125,7 @@ class NegativeStackedBarChartViewController: DemoBaseViewController { } } -extension NegativeStackedBarChartViewController: IAxisValueFormatter { +extension NegativeStackedBarChartViewController: AxisValueFormatter { func stringForValue(_ value: Double, axis: AxisBase?) -> String { return String(format: "%03.0f-%03.0f", value, value + 10) } diff --git a/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift b/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift index 6d363dec0c..85aeb9d129 100644 --- a/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift @@ -113,7 +113,7 @@ class PositiveNegativeBarChartViewController: DemoBaseViewController { } } -extension PositiveNegativeBarChartViewController: IAxisValueFormatter { +extension PositiveNegativeBarChartViewController: AxisValueFormatter { func stringForValue(_ value: Double, axis: AxisBase?) -> String { return dataLabels[min(max(Int(value), 0), dataLabels.count - 1)] } diff --git a/ChartsDemo/Swift/Demos/RadarChartViewController.swift b/ChartsDemo/Swift/Demos/RadarChartViewController.swift index f90bb74c6c..5c7f8599a4 100644 --- a/ChartsDemo/Swift/Demos/RadarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/RadarChartViewController.swift @@ -196,7 +196,7 @@ class RadarChartViewController: DemoBaseViewController { } } -extension RadarChartViewController: IAxisValueFormatter { +extension RadarChartViewController: AxisValueFormatter { func stringForValue(_ value: Double, axis: AxisBase?) -> String { return activities[Int(value) % activities.count] } diff --git a/ChartsDemo/Swift/Formatters/DateValueFormatter.swift b/ChartsDemo/Swift/Formatters/DateValueFormatter.swift index 2962a6852a..aa39e3d444 100644 --- a/ChartsDemo/Swift/Formatters/DateValueFormatter.swift +++ b/ChartsDemo/Swift/Formatters/DateValueFormatter.swift @@ -9,7 +9,7 @@ import Foundation import Charts -public class DateValueFormatter: NSObject, IAxisValueFormatter { +public class DateValueFormatter: NSObject, AxisValueFormatter { private let dateFormatter = DateFormatter() override init() { diff --git a/ChartsDemo/Swift/Formatters/DayAxisValueFormatter.swift b/ChartsDemo/Swift/Formatters/DayAxisValueFormatter.swift index 245a25c83e..f403daa06a 100644 --- a/ChartsDemo/Swift/Formatters/DayAxisValueFormatter.swift +++ b/ChartsDemo/Swift/Formatters/DayAxisValueFormatter.swift @@ -9,7 +9,7 @@ import Foundation import Charts -public class DayAxisValueFormatter: NSObject, IAxisValueFormatter { +public class DayAxisValueFormatter: NSObject, AxisValueFormatter { weak var chart: BarLineChartViewBase? let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", diff --git a/ChartsDemo/Swift/Formatters/IntAxisValueFormatter.swift b/ChartsDemo/Swift/Formatters/IntAxisValueFormatter.swift index bd3062a190..00157055ec 100644 --- a/ChartsDemo/Swift/Formatters/IntAxisValueFormatter.swift +++ b/ChartsDemo/Swift/Formatters/IntAxisValueFormatter.swift @@ -9,7 +9,7 @@ import Foundation import Charts -public class IntAxisValueFormatter: NSObject, IAxisValueFormatter { +public class IntAxisValueFormatter: NSObject, AxisValueFormatter { public func stringForValue(_ value: Double, axis: AxisBase?) -> String { return "\(Int(value))" } diff --git a/ChartsDemo/Swift/Formatters/LargeValueFormatter.swift b/ChartsDemo/Swift/Formatters/LargeValueFormatter.swift index c95ca034a6..8cf679d2b5 100644 --- a/ChartsDemo/Swift/Formatters/LargeValueFormatter.swift +++ b/ChartsDemo/Swift/Formatters/LargeValueFormatter.swift @@ -11,7 +11,7 @@ private let MAX_LENGTH = 5 @objc protocol Testing123 { } -public class LargeValueFormatter: NSObject, IValueFormatter, IAxisValueFormatter { +public class LargeValueFormatter: NSObject, ValueFormatter, AxisValueFormatter { /// Suffix to be appended after the values. /// diff --git a/Source/Charts/Charts/BarChartView.swift b/Source/Charts/Charts/BarChartView.swift index 16d7ed1674..0fd0e511d0 100644 --- a/Source/Charts/Charts/BarChartView.swift +++ b/Source/Charts/Charts/BarChartView.swift @@ -87,7 +87,7 @@ open class BarChartView: BarLineChartViewBase, BarChartDataProvider { guard let data = _data as? BarChartData, - let set = data.getDataSetForEntry(e) as? IBarChartDataSet + let set = data.getDataSetForEntry(e) as? BarChartDataSetProtocol else { return CGRect.null } let y = e.y diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index 5c11209d50..406a96f414 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -507,7 +507,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD private var _isDragging = false private var _isScaling = false private var _gestureScaleAxis = GestureScaleAxis.both - private var _closestDataSetToTouch: IChartDataSet! + private var _closestDataSetToTouch: ChartDataSetProtocol! private var _panGestureReachedEdge: Bool = false private weak var _outerScrollView: NSUIScrollView? @@ -1683,12 +1683,12 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD } /// - returns: The DataSet object displayed at the touched position of the chart - @objc open func getDataSetByTouchPoint(point pt: CGPoint) -> IBarLineScatterCandleBubbleChartDataSet! + @objc open func getDataSetByTouchPoint(point pt: CGPoint) -> BarLineScatterCandleBubbleChartDataSetProtocol! { let h = getHighlightByTouchPoint(pt) if h !== nil { - return _data?.getDataSetByIndex(h!.dataSetIndex) as! IBarLineScatterCandleBubbleChartDataSet! + return _data?.getDataSetByIndex(h!.dataSetIndex) as! BarLineScatterCandleBubbleChartDataSetProtocol! } return nil } diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index 8763174608..a939bc590d 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -48,8 +48,8 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate } /// The default IValueFormatter that has been determined by the chart considering the provided minimum and maximum values. - internal var _defaultValueFormatter: IValueFormatter? = DefaultValueFormatter(decimals: 0) - + internal var _defaultValueFormatter: ValueFormatter? = DefaultValueFormatter(decimals: 0) + /// object that holds all data that was originally set for the chart, before it was modified or any filtering algorithms had been applied internal var _data: ChartData? @@ -93,7 +93,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// object responsible for rendering the data @objc open var renderer: DataRenderer? - @objc open var highlighter: IHighlighter? + @objc open var highlighter: Highlighter? /// object that manages the bounds and drawing constraints of the chart internal var _viewPortHandler: ViewPortHandler! @@ -116,7 +116,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate @objc open var isDrawMarkersEnabled: Bool { return drawMarkers } /// The marker that is displayed when a value is clicked on the chart - @objc open var marker: IMarker? + @objc open var marker: Marker? private var _interceptTouchEvents = false diff --git a/Source/Charts/Charts/CombinedChartView.swift b/Source/Charts/Charts/CombinedChartView.swift index ead6c3d130..6ec831a026 100644 --- a/Source/Charts/Charts/CombinedChartView.swift +++ b/Source/Charts/Charts/CombinedChartView.swift @@ -16,7 +16,7 @@ import CoreGraphics open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider { /// the fill-formatter used for determining the position of the fill-line - internal var _fillFormatter: IFillFormatter! + internal var _fillFormatter: FillFormatter! /// enum that allows to specify the order in which the different data objects for the combined-chart are drawn @objc(CombinedChartDrawOrder) @@ -60,7 +60,7 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider } } - @objc open var fillFormatter: IFillFormatter + @objc open var fillFormatter: FillFormatter { get { diff --git a/Source/Charts/Charts/HorizontalBarChartView.swift b/Source/Charts/Charts/HorizontalBarChartView.swift index 06863ee619..277d37648c 100644 --- a/Source/Charts/Charts/HorizontalBarChartView.swift +++ b/Source/Charts/Charts/HorizontalBarChartView.swift @@ -107,7 +107,7 @@ open class HorizontalBarChartView: BarChartView { guard let data = _data as? BarChartData, - let set = data.getDataSetForEntry(e) as? IBarChartDataSet + let set = data.getDataSetForEntry(e) as? BarChartDataSetProtocol else { return CGRect.null } let y = e.y diff --git a/Source/Charts/Charts/PieRadarChartViewBase.swift b/Source/Charts/Charts/PieRadarChartViewBase.swift old mode 100755 new mode 100644 diff --git a/Source/Charts/Components/AxisBase.swift b/Source/Charts/Components/AxisBase.swift index 8753d948fd..b97da1e03b 100644 --- a/Source/Charts/Components/AxisBase.swift +++ b/Source/Charts/Components/AxisBase.swift @@ -22,7 +22,7 @@ open class AxisBase: ComponentBase } /// Custom formatter that is used instead of the auto-formatter if set - private var _axisValueFormatter: IAxisValueFormatter? + private var _axisValueFormatter: AxisValueFormatter? @objc open var labelFont = NSUIFont.systemFont(ofSize: 10.0) @objc open var labelTextColor = NSUIColor.black @@ -157,7 +157,7 @@ open class AxisBase: ComponentBase /// Sets the formatter to be used for formatting the axis labels. /// If no formatter is set, the chart will automatically determine a reasonable formatting (concerning decimals) for all the values that are drawn inside the chart. /// Use `nil` to use the formatter calculated by the chart. - @objc open var valueFormatter: IAxisValueFormatter? + @objc open var valueFormatter: AxisValueFormatter? { get { diff --git a/Source/Charts/Components/IMarker.swift b/Source/Charts/Components/Marker.swift similarity index 75% rename from Source/Charts/Components/IMarker.swift rename to Source/Charts/Components/Marker.swift index 59abfad7bb..834b66eeb5 100644 --- a/Source/Charts/Components/IMarker.swift +++ b/Source/Charts/Components/Marker.swift @@ -12,8 +12,8 @@ import Foundation import CoreGraphics -@objc(IChartMarker) -public protocol IMarker: class +@objc(ChartMarker) +public protocol Marker: class { /// - returns: The desired (general) offset you wish the IMarker to have on the x-axis. /// @@ -29,12 +29,12 @@ public protocol IMarker: class /// - parameter point: This is the point at which the marker wants to be drawn. You can adjust the offset conditionally based on this argument. func offsetForDrawing(atPoint: CGPoint) -> CGPoint - /// This method enables a custom IMarker to update it's content every time the IMarker is redrawn according to the data entry it points to. + /// This method enables a custom Marker to update it's content every time the Marker is redrawn according to the data entry it points to. /// - /// - parameter entry: The Entry the IMarker belongs to. This can also be any subclass of Entry, like BarEntry or CandleEntry, simply cast it at runtime. + /// - parameter entry: The Entry the Marker belongs to. This can also be any subclass of Entry, like BarEntry or CandleEntry, simply cast it at runtime. /// - parameter highlight: The highlight object contains information about the highlighted value such as it's dataset-index, the selected range or stack-index (only stacked bar entries). func refreshContent(entry: ChartDataEntry, highlight: Highlight) - /// Draws the IMarker on the given position on the given context + /// Draws the Marker on the given position on the given context func draw(context: CGContext, point: CGPoint) } diff --git a/Source/Charts/Components/MarkerImage.swift b/Source/Charts/Components/MarkerImage.swift index 14e4dcfc86..0503112d67 100644 --- a/Source/Charts/Components/MarkerImage.swift +++ b/Source/Charts/Components/MarkerImage.swift @@ -17,7 +17,7 @@ import CoreGraphics #endif @objc(ChartMarkerImage) -open class MarkerImage: NSObject, IMarker +open class MarkerImage: NSObject, Marker { /// The marker image to render @objc open var image: NSUIImage? diff --git a/Source/Charts/Components/MarkerView.swift b/Source/Charts/Components/MarkerView.swift index a051ff9968..2e380381be 100644 --- a/Source/Charts/Components/MarkerView.swift +++ b/Source/Charts/Components/MarkerView.swift @@ -17,7 +17,7 @@ import CoreGraphics #endif @objc(ChartMarkerView) -open class MarkerView: NSUIView, IMarker +open class MarkerView: NSUIView, Marker { open var offset: CGPoint = CGPoint() diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index 7136f2f04b..5e59660d21 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class ChartBaseDataSet: NSObject, IChartDataSet +open class ChartBaseDataSet: NSObject, ChartDataSetProtocol { public required override init() { @@ -270,10 +270,10 @@ open class ChartBaseDataSet: NSObject, IChartDataSet open var isHighlightEnabled: Bool { return highlightEnabled } /// Custom formatter that is used instead of the auto-formatter if set - internal var _valueFormatter: IValueFormatter? + internal var _valueFormatter: ValueFormatter? /// Custom formatter that is used instead of the auto-formatter if set - open var valueFormatter: IValueFormatter? + open var valueFormatter: ValueFormatter? { get { diff --git a/Source/Charts/Data/Implementations/Standard/BarChartData.swift b/Source/Charts/Data/Implementations/Standard/BarChartData.swift index 0317fc8a6b..df85bbafc1 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartData.swift @@ -19,7 +19,7 @@ open class BarChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } @@ -61,7 +61,7 @@ open class BarChartData: BarLineScatterCandleBubbleChartData let start = fromX fromX += groupSpaceWidthHalf - (_dataSets as? [IBarChartDataSet])?.forEach { set in + (_dataSets as! [BarChartDataSetProtocol]).forEach { set in fromX += barSpaceHalf fromX += barWidthHalf diff --git a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift index 27ed7a5722..6f88bf95cb 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class BarChartDataSet: BarLineScatterCandleBubbleChartDataSet, IBarChartDataSet +open class BarChartDataSet: BarLineScatterCandleBubbleChartDataSet, BarChartDataSetProtocol { private func initialize() { diff --git a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift index c98bb1d075..0325328f84 100644 --- a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift @@ -18,7 +18,7 @@ open class BarLineScatterCandleBubbleChartData: ChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift index 02b942f479..276a93155d 100644 --- a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class BarLineScatterCandleBubbleChartDataSet: ChartDataSet, IBarLineScatterCandleBubbleChartDataSet +open class BarLineScatterCandleBubbleChartDataSet: ChartDataSet, BarLineScatterCandleBubbleChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift b/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift index 433f384f75..f514340881 100644 --- a/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift @@ -19,7 +19,7 @@ open class BubbleChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } @@ -27,6 +27,6 @@ open class BubbleChartData: BarLineScatterCandleBubbleChartData /// Sets the width of the circle that surrounds the bubble when highlighted for all DataSet objects this data object contains @objc open func setHighlightCircleWidth(_ width: CGFloat) { - (_dataSets as? [IBubbleChartDataSet])?.forEach { $0.highlightCircleWidth = width } + (_dataSets as? [BubbleChartDataSetProtocol])?.forEach { $0.highlightCircleWidth = width } } } diff --git a/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift index cdc3567e69..d93eef6645 100644 --- a/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class BubbleChartDataSet: BarLineScatterCandleBubbleChartDataSet, IBubbleChartDataSet +open class BubbleChartDataSet: BarLineScatterCandleBubbleChartDataSet, BubbleChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Implementations/Standard/CandleChartData.swift b/Source/Charts/Data/Implementations/Standard/CandleChartData.swift index 5158668ad9..5501ebc98b 100644 --- a/Source/Charts/Data/Implementations/Standard/CandleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CandleChartData.swift @@ -18,7 +18,7 @@ open class CandleChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift index 852e65d385..c04a5edceb 100644 --- a/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, ICandleChartDataSet +open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, CandleChartDataSetProtocol { public required init() diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 3b9851a43c..bb1bd869a3 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -22,30 +22,30 @@ open class ChartData: NSObject internal var _rightAxisMax: Double = -Double.greatestFiniteMagnitude internal var _rightAxisMin: Double = Double.greatestFiniteMagnitude - internal var _dataSets = [IChartDataSet]() + internal var _dataSets = [ChartDataSetProtocol]() public override init() { super.init() - _dataSets = [IChartDataSet]() + _dataSets = [ChartDataSetProtocol]() } - @objc public init(dataSets: [IChartDataSet]?) + @objc public init(dataSets: [ChartDataSetProtocol]?) { super.init() - _dataSets = dataSets ?? [IChartDataSet]() + _dataSets = dataSets ?? [ChartDataSetProtocol]() self.initialize(dataSets: _dataSets) } - @objc public convenience init(dataSet: IChartDataSet?) + @objc public convenience init(dataSet: ChartDataSetProtocol?) { self.init(dataSets: dataSet === nil ? nil : [dataSet!]) } - internal func initialize(dataSets: [IChartDataSet]) + internal func initialize(dataSets: [ChartDataSetProtocol]) { notifyDataChanged() } @@ -187,7 +187,7 @@ open class ChartData: NSObject } /// Adjusts the minimum and maximum values based on the given DataSet. - @objc open func calcMinMax(dataSet d: IChartDataSet) + @objc open func calcMinMax(dataSet d: ChartDataSetProtocol) { if _yMax < d.yMax { @@ -329,7 +329,7 @@ open class ChartData: NSObject } /// - returns: All DataSet objects this ChartData object holds. - @objc open var dataSets: [IChartDataSet] + @objc open var dataSets: [ChartDataSetProtocol] { get { @@ -419,7 +419,7 @@ open class ChartData: NSObject /// - parameter label: /// - parameter ignorecase: /// - returns: The DataSet Object with the given label. Sensitive or not. - @objc open func getDataSetByLabel(_ label: String, ignorecase: Bool) -> IChartDataSet? + @objc open func getDataSetByLabel(_ label: String, ignorecase: Bool) -> ChartDataSetProtocol? { let index = getDataSetIndexByLabel(label, ignorecase: ignorecase) @@ -433,7 +433,7 @@ open class ChartData: NSObject } } - @objc open func getDataSetByIndex(_ index: Int) -> IChartDataSet! + @objc open func getDataSetByIndex(_ index: Int) -> ChartDataSetProtocol! { if index < 0 || index >= _dataSets.count { @@ -443,7 +443,7 @@ open class ChartData: NSObject return _dataSets[index] } - @objc open func addDataSet(_ dataSet: IChartDataSet!) + @objc open func addDataSet(_ dataSet: ChartDataSetProtocol!) { calcMinMax(dataSet: dataSet) @@ -454,7 +454,7 @@ open class ChartData: NSObject /// Also recalculates all minimum and maximum values. /// /// - returns: `true` if a DataSet was removed, `false` ifno DataSet could be removed. - @objc @discardableResult open func removeDataSet(_ dataSet: IChartDataSet!) -> Bool + @objc @discardableResult open func removeDataSet(_ dataSet: ChartDataSetProtocol!) -> Bool { if dataSet === nil { @@ -546,7 +546,7 @@ open class ChartData: NSObject } /// - returns: The DataSet that contains the provided Entry, or null, if no DataSet contains this entry. - @objc open func getDataSetForEntry(_ e: ChartDataEntry!) -> IChartDataSet? + @objc open func getDataSetForEntry(_ e: ChartDataEntry!) -> ChartDataSetProtocol? { if e == nil { @@ -567,7 +567,7 @@ open class ChartData: NSObject } /// - returns: The index of the provided DataSet in the DataSet array of this data object, or -1 if it does not exist. - @objc open func indexOfDataSet(_ dataSet: IChartDataSet) -> Int + @objc open func indexOfDataSet(_ dataSet: ChartDataSetProtocol) -> Int { for i in 0 ..< _dataSets.count { @@ -581,7 +581,7 @@ open class ChartData: NSObject } /// - returns: The first DataSet from the datasets-array that has it's dependency on the left axis. Returns null if no DataSet with left dependency could be found. - @objc open func getFirstLeft(dataSets: [IChartDataSet]) -> IChartDataSet? + @objc open func getFirstLeft(dataSets: [ChartDataSetProtocol]) -> ChartDataSetProtocol? { for dataSet in dataSets { @@ -595,7 +595,7 @@ open class ChartData: NSObject } /// - returns: The first DataSet from the datasets-array that has it's dependency on the right axis. Returns null if no DataSet with right dependency could be found. - @objc open func getFirstRight(dataSets: [IChartDataSet]) -> IChartDataSet? + @objc open func getFirstRight(dataSets: [ChartDataSetProtocol]) -> ChartDataSetProtocol? { for dataSet in _dataSets { @@ -633,8 +633,8 @@ open class ChartData: NSObject return colors } - /// Sets a custom IValueFormatter for all DataSets this data object contains. - @objc open func setValueFormatter(_ formatter: IValueFormatter?) + /// Sets a custom ValueFormatter for all DataSets this data object contains. + @objc open func setValueFormatter(_ formatter: ValueFormatter?) { guard let formatter = formatter else { return } @@ -710,7 +710,7 @@ open class ChartData: NSObject /// Checks if this data object contains the specified DataSet. /// - returns: `true` if so, `false` ifnot. - @objc open func contains(dataSet: IChartDataSet) -> Bool + @objc open func contains(dataSet: ChartDataSetProtocol) -> Bool { for set in dataSets { @@ -737,7 +737,7 @@ open class ChartData: NSObject } /// - returns: The DataSet object with the maximum number of entries or null if there are no DataSets. - @objc open var maxEntryCountSet: IChartDataSet? + @objc open var maxEntryCountSet: ChartDataSetProtocol? { if _dataSets.count == 0 { diff --git a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift index 9e2342a200..c0e1b71974 100644 --- a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift @@ -24,7 +24,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } @@ -198,7 +198,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData return allData.index(of: data) } - open override func removeDataSet(_ dataSet: IChartDataSet!) -> Bool + open override func removeDataSet(_ dataSet: ChartDataSetProtocol!) -> Bool { let datas = allData @@ -295,7 +295,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData /// /// - Parameter highlight: current highlight /// - Returns: dataset related to highlight - @objc open func getDataSetByHighlight(_ highlight: Highlight) -> IChartDataSet! + @objc open func getDataSetByHighlight(_ highlight: Highlight) -> ChartDataSetProtocol! { if highlight.dataIndex >= allData.count { diff --git a/Source/Charts/Data/Implementations/Standard/LineChartData.swift b/Source/Charts/Data/Implementations/Standard/LineChartData.swift index 2ebd6b42a9..cc19888cc0 100644 --- a/Source/Charts/Data/Implementations/Standard/LineChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/LineChartData.swift @@ -19,7 +19,7 @@ open class LineChartData: ChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift index c41dd6ac2f..8c6f50b367 100644 --- a/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class LineChartDataSet: LineRadarChartDataSet, ILineChartDataSet +open class LineChartDataSet: LineRadarChartDataSet, LineChartDataSetProtocol { @objc(LineChartMode) public enum Mode: Int @@ -144,10 +144,10 @@ open class LineChartDataSet: LineRadarChartDataSet, ILineChartDataSet open var lineCapType = CGLineCap.butt /// formatter for customizing the position of the fill-line - private var _fillFormatter: IFillFormatter = DefaultFillFormatter() + private var _fillFormatter: FillFormatter = DefaultFillFormatter() - /// Sets a custom IFillFormatter to the chart that handles the position of the filled-line for each DataSet. Set this to null to use the default logic. - open var fillFormatter: IFillFormatter? + /// Sets a custom FillFormatterProtocol to the chart that handles the position of the filled-line for each DataSet. Set this to null to use the default logic. + open var fillFormatter: FillFormatter? { get { diff --git a/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift index be934257f1..f254ea6514 100644 --- a/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class LineRadarChartDataSet: LineScatterCandleRadarChartDataSet, ILineRadarChartDataSet +open class LineRadarChartDataSet: LineScatterCandleRadarChartDataSet, LineRadarChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift index b21868ab08..ccd99d2743 100644 --- a/Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift @@ -12,7 +12,7 @@ import Foundation -open class LineScatterCandleRadarChartDataSet: BarLineScatterCandleBubbleChartDataSet, ILineScatterCandleRadarChartDataSet +open class LineScatterCandleRadarChartDataSet: BarLineScatterCandleBubbleChartDataSet, LineScatterCandleRadarChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Implementations/Standard/PieChartData.swift b/Source/Charts/Data/Implementations/Standard/PieChartData.swift index f2dc35a948..e5bd22f23c 100644 --- a/Source/Charts/Data/Implementations/Standard/PieChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/PieChartData.swift @@ -18,16 +18,16 @@ open class PieChartData: ChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } - @objc var dataSet: IPieChartDataSet? + @objc var dataSet: PieChartDataSetProtocol? { get { - return dataSets.count > 0 ? dataSets[0] as? IPieChartDataSet : nil + return dataSets.count > 0 ? dataSets[0] as? PieChartDataSetProtocol : nil } set { @@ -42,7 +42,7 @@ open class PieChartData: ChartData } } - open override func getDataSetByIndex(_ index: Int) -> IChartDataSet? + open override func getDataSetByIndex(_ index: Int) -> ChartDataSetProtocol? { if index != 0 { @@ -51,7 +51,7 @@ open class PieChartData: ChartData return super.getDataSetByIndex(index) } - open override func getDataSetByLabel(_ label: String, ignorecase: Bool) -> IChartDataSet? + open override func getDataSetByLabel(_ label: String, ignorecase: Bool) -> ChartDataSetProtocol? { if dataSets.count == 0 || dataSets[0].label == nil { @@ -80,7 +80,7 @@ open class PieChartData: ChartData return dataSet?.entryForIndex(Int(highlight.x)) } - open override func addDataSet(_ d: IChartDataSet!) + open override func addDataSet(_ d: ChartDataSetProtocol!) { super.addDataSet(d) } diff --git a/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift index af4aa617d0..ea53d8666f 100644 --- a/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift @@ -12,7 +12,7 @@ import Foundation import CoreGraphics -open class PieChartDataSet: ChartDataSet, IPieChartDataSet +open class PieChartDataSet: ChartDataSet, PieChartDataSetProtocol { @objc(PieChartValuePosition) public enum ValuePosition: Int diff --git a/Source/Charts/Data/Implementations/Standard/RadarChartData.swift b/Source/Charts/Data/Implementations/Standard/RadarChartData.swift index 31fd7d2ba0..30203de084 100644 --- a/Source/Charts/Data/Implementations/Standard/RadarChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/RadarChartData.swift @@ -34,7 +34,7 @@ open class RadarChartData: ChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift index 67b4730a28..b6da45866e 100644 --- a/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift @@ -13,7 +13,7 @@ import Foundation import CoreGraphics -open class RadarChartDataSet: LineRadarChartDataSet, IRadarChartDataSet +open class RadarChartDataSet: LineRadarChartDataSet, RadarChartDataSetProtocol { private func initialize() { diff --git a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift index ff8ccaf93e..4fe5127c34 100644 --- a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift @@ -19,7 +19,7 @@ open class ScatterChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [IChartDataSet]?) + public override init(dataSets: [ChartDataSetProtocol]?) { super.init(dataSets: dataSets) } @@ -31,7 +31,7 @@ open class ScatterChartData: BarLineScatterCandleBubbleChartData for set in _dataSets { - let scatterDataSet = set as? IScatterChartDataSet + let scatterDataSet = set as? ScatterChartDataSetProtocol if scatterDataSet == nil { diff --git a/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift index 8aee713389..1f60c8c126 100644 --- a/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift @@ -12,7 +12,7 @@ import Foundation import CoreGraphics -open class ScatterChartDataSet: LineScatterCandleRadarChartDataSet, IScatterChartDataSet +open class ScatterChartDataSet: LineScatterCandleRadarChartDataSet, ScatterChartDataSetProtocol { @objc(ScatterShape) diff --git a/Source/Charts/Data/Interfaces/IBarChartDataSet.swift b/Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift similarity index 91% rename from Source/Charts/Data/Interfaces/IBarChartDataSet.swift rename to Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift index 6f5cad081c..3e64d24f49 100644 --- a/Source/Charts/Data/Interfaces/IBarChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// IBarChartDataSet.swift +// BarChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol IBarChartDataSet: IBarLineScatterCandleBubbleChartDataSet +public protocol BarChartDataSetProtocol: BarLineScatterCandleBubbleChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Interfaces/IBarLineScatterCandleBubbleChartDataSet.swift b/Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift similarity index 79% rename from Source/Charts/Data/Interfaces/IBarLineScatterCandleBubbleChartDataSet.swift rename to Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift index 8af47ff4a7..cbc90147f0 100644 --- a/Source/Charts/Data/Interfaces/IBarLineScatterCandleBubbleChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// IBarLineScatterCandleBubbleChartDataSet.swift +// BarLineScatterCandleBubbleChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol IBarLineScatterCandleBubbleChartDataSet: IChartDataSet +public protocol BarLineScatterCandleBubbleChartDataSetProtocol: ChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Interfaces/IBubbleChartDataSet.swift b/Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift similarity index 81% rename from Source/Charts/Data/Interfaces/IBubbleChartDataSet.swift rename to Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift index 10c5d9eecb..5cc9457951 100644 --- a/Source/Charts/Data/Interfaces/IBubbleChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// IBubbleChartDataSet.swift +// BubbleChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol IBubbleChartDataSet: IBarLineScatterCandleBubbleChartDataSet +public protocol BubbleChartDataSetProtocol: BarLineScatterCandleBubbleChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Interfaces/ICandleChartDataSet.swift b/Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift similarity index 93% rename from Source/Charts/Data/Interfaces/ICandleChartDataSet.swift rename to Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift index fac88d3b2e..d47b5a8c9f 100644 --- a/Source/Charts/Data/Interfaces/ICandleChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// ICandleChartDataSet.swift +// CandleChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol ICandleChartDataSet: ILineScatterCandleRadarChartDataSet +public protocol CandleChartDataSetProtocol: LineScatterCandleRadarChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Interfaces/IChartDataSet.swift b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift similarity index 98% rename from Source/Charts/Data/Interfaces/IChartDataSet.swift rename to Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift index 293db393eb..77b1e6b0d2 100644 --- a/Source/Charts/Data/Interfaces/IChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// IChartDataSet.swift +// ChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol IChartDataSet +public protocol ChartDataSetProtocol { // MARK: - Data functions and accessors @@ -187,7 +187,7 @@ public protocol IChartDataSet var isHighlightEnabled: Bool { get } /// Custom formatter that is used instead of the auto-formatter if set - var valueFormatter: IValueFormatter? { get set } + var valueFormatter: ValueFormatter? { get set } /// - returns: `true` if the valueFormatter object of this DataSet is null. var needsFormatter: Bool { get } diff --git a/Source/Charts/Data/Interfaces/ILineChartDataSet.swift b/Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift similarity index 88% rename from Source/Charts/Data/Interfaces/ILineChartDataSet.swift rename to Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift index bc9e484907..2da6ef4437 100644 --- a/Source/Charts/Data/Interfaces/ILineChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// ILineChartDataSet.swift +// LineChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -14,7 +14,7 @@ import CoreGraphics @objc -public protocol ILineChartDataSet: ILineRadarChartDataSet +public protocol LineChartDataSetProtocol: LineRadarChartDataSetProtocol { // MARK: - Data functions and accessors @@ -75,6 +75,6 @@ public protocol ILineChartDataSet: ILineRadarChartDataSet /// Line cap type, default is CGLineCap.Butt var lineCapType: CGLineCap { get set } - /// Sets a custom IFillFormatter to the chart that handles the position of the filled-line for each DataSet. Set this to null to use the default logic. - var fillFormatter: IFillFormatter? { get set } + /// Sets a custom FillFormatterProtocol to the chart that handles the position of the filled-line for each DataSet. Set this to null to use the default logic. + var fillFormatter: FillFormatter? { get set } } diff --git a/Source/Charts/Data/Interfaces/ILineRadarChartDataSet.swift b/Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift similarity index 90% rename from Source/Charts/Data/Interfaces/ILineRadarChartDataSet.swift rename to Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift index 5d054948af..e9f3297562 100644 --- a/Source/Charts/Data/Interfaces/ILineRadarChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// ILineRadarChartDataSet.swift +// LineRadarChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol ILineRadarChartDataSet: ILineScatterCandleRadarChartDataSet +public protocol LineRadarChartDataSetProtocol: LineScatterCandleRadarChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Interfaces/ILineScatterCandleRadarChartDataSet.swift b/Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift similarity index 87% rename from Source/Charts/Data/Interfaces/ILineScatterCandleRadarChartDataSet.swift rename to Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift index cf646a1b56..d1de8e2248 100644 --- a/Source/Charts/Data/Interfaces/ILineScatterCandleRadarChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// ILineScatterCandleRadarChartDataSet.swift +// LineScatterCandleRadarChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -12,7 +12,7 @@ import Foundation @objc -public protocol ILineScatterCandleRadarChartDataSet: IBarLineScatterCandleBubbleChartDataSet +public protocol LineScatterCandleRadarChartDataSetProtocol: BarLineScatterCandleBubbleChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Interfaces/IPieChartDataSet.swift b/Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift similarity index 95% rename from Source/Charts/Data/Interfaces/IPieChartDataSet.swift rename to Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift index 1e027be0cb..0cbe2c55e8 100644 --- a/Source/Charts/Data/Interfaces/IPieChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// IPieChartDataSet.swift +// PieChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -17,7 +17,7 @@ import CoreGraphics #endif @objc -public protocol IPieChartDataSet: IChartDataSet +public protocol PieChartDataSetProtocol: ChartDataSetProtocol { // MARK: - Styling functions and accessors diff --git a/Source/Charts/Data/Interfaces/IRadarChartDataSet.swift b/Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift similarity index 90% rename from Source/Charts/Data/Interfaces/IRadarChartDataSet.swift rename to Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift index 2e37b4ffd5..98c12d77c3 100644 --- a/Source/Charts/Data/Interfaces/IRadarChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// IRadarChartDataSet.swift +// RadarChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol IRadarChartDataSet: ILineRadarChartDataSet +public protocol RadarChartDataSetProtocol: LineRadarChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Data/Interfaces/IScatterChartDataSet.swift b/Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift similarity index 88% rename from Source/Charts/Data/Interfaces/IScatterChartDataSet.swift rename to Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift index 5703f07d00..d101e22af3 100644 --- a/Source/Charts/Data/Interfaces/IScatterChartDataSet.swift +++ b/Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift @@ -1,5 +1,5 @@ // -// IScatterChartDataSet.swift +// ScatterChartDataSetProtocol.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol IScatterChartDataSet: ILineScatterCandleRadarChartDataSet +public protocol ScatterChartDataSetProtocol: LineScatterCandleRadarChartDataSetProtocol { // MARK: - Data functions and accessors diff --git a/Source/Charts/Formatters/IAxisValueFormatter.swift b/Source/Charts/Formatters/AxisValueFormatter.swift similarity index 88% rename from Source/Charts/Formatters/IAxisValueFormatter.swift rename to Source/Charts/Formatters/AxisValueFormatter.swift index 9634334cb5..ecdcb5498e 100644 --- a/Source/Charts/Formatters/IAxisValueFormatter.swift +++ b/Source/Charts/Formatters/AxisValueFormatter.swift @@ -1,5 +1,5 @@ // -// IAxisValueFormatter.swift +// AxisValueFormatter.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -12,8 +12,8 @@ import Foundation /// An interface for providing custom axis Strings. -@objc(IChartAxisValueFormatter) -public protocol IAxisValueFormatter: class +@objc(ChartAxisValueFormatter) +public protocol AxisValueFormatter: class { /// Called when a value from an axis is formatted before being drawn. diff --git a/Source/Charts/Formatters/DefaultAxisValueFormatter.swift b/Source/Charts/Formatters/DefaultAxisValueFormatter.swift index 85193d0c46..b698c5a319 100644 --- a/Source/Charts/Formatters/DefaultAxisValueFormatter.swift +++ b/Source/Charts/Formatters/DefaultAxisValueFormatter.swift @@ -12,7 +12,7 @@ import Foundation @objc(ChartDefaultAxisValueFormatter) -open class DefaultAxisValueFormatter: NSObject, IAxisValueFormatter +open class DefaultAxisValueFormatter: NSObject, AxisValueFormatter { public typealias Block = ( _ value: Double, diff --git a/Source/Charts/Formatters/DefaultFillFormatter.swift b/Source/Charts/Formatters/DefaultFillFormatter.swift index ea9c2a7465..91f99c0018 100644 --- a/Source/Charts/Formatters/DefaultFillFormatter.swift +++ b/Source/Charts/Formatters/DefaultFillFormatter.swift @@ -18,10 +18,10 @@ import CoreGraphics /// Default formatter that calculates the position of the filled line. @objc(ChartDefaultFillFormatter) -open class DefaultFillFormatter: NSObject, IFillFormatter +open class DefaultFillFormatter: NSObject, FillFormatter { public typealias Block = ( - _ dataSet: ILineChartDataSet, + _ dataSet: LineChartDataSetProtocol, _ dataProvider: LineChartDataProvider) -> CGFloat @objc open var block: Block? @@ -39,7 +39,7 @@ open class DefaultFillFormatter: NSObject, IFillFormatter } open func getFillLinePosition( - dataSet: ILineChartDataSet, + dataSet: LineChartDataSetProtocol, dataProvider: LineChartDataProvider) -> CGFloat { guard block == nil else { return block!(dataSet, dataProvider) } diff --git a/Source/Charts/Formatters/DefaultValueFormatter.swift b/Source/Charts/Formatters/DefaultValueFormatter.swift index b3fff70ac9..6c3fdbc9da 100644 --- a/Source/Charts/Formatters/DefaultValueFormatter.swift +++ b/Source/Charts/Formatters/DefaultValueFormatter.swift @@ -12,7 +12,7 @@ import Foundation @objc(ChartDefaultValueFormatter) -open class DefaultValueFormatter: NSObject, IValueFormatter +open class DefaultValueFormatter: NSObject, ValueFormatter { public typealias Block = ( _ value: Double, diff --git a/Source/Charts/Formatters/IFillFormatter.swift b/Source/Charts/Formatters/FillFormatter.swift similarity index 72% rename from Source/Charts/Formatters/IFillFormatter.swift rename to Source/Charts/Formatters/FillFormatter.swift index 8a88500299..5fb53136bb 100644 --- a/Source/Charts/Formatters/IFillFormatter.swift +++ b/Source/Charts/Formatters/FillFormatter.swift @@ -1,5 +1,5 @@ // -// IFillFormatter.swift +// FillFormatter.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,9 +13,9 @@ import Foundation import CoreGraphics /// 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. -@objc(IChartFillFormatter) -public protocol IFillFormatter +@objc(ChartFillFormatter) +public protocol FillFormatter { /// - returns: The vertical (y-axis) position where the filled-line of the LineDataSet should end. - func getFillLinePosition(dataSet: ILineChartDataSet, dataProvider: LineChartDataProvider) -> CGFloat + func getFillLinePosition(dataSet: LineChartDataSetProtocol, dataProvider: LineChartDataProvider) -> CGFloat } diff --git a/Source/Charts/Formatters/IndexAxisValueFormatter.swift b/Source/Charts/Formatters/IndexAxisValueFormatter.swift index 9655123984..afca4cc76c 100644 --- a/Source/Charts/Formatters/IndexAxisValueFormatter.swift +++ b/Source/Charts/Formatters/IndexAxisValueFormatter.swift @@ -13,7 +13,7 @@ import Foundation /// This formatter is used for passing an array of x-axis labels, on whole x steps. @objc(ChartIndexAxisValueFormatter) -open class IndexAxisValueFormatter: NSObject, IAxisValueFormatter +open class IndexAxisValueFormatter: NSObject, AxisValueFormatter { private var _values: [String] = [String]() private var _valueCount: Int = 0 diff --git a/Source/Charts/Formatters/IValueFormatter.swift b/Source/Charts/Formatters/ValueFormatter.swift similarity index 93% rename from Source/Charts/Formatters/IValueFormatter.swift rename to Source/Charts/Formatters/ValueFormatter.swift index bd7c0c90f8..66d4100097 100644 --- a/Source/Charts/Formatters/IValueFormatter.swift +++ b/Source/Charts/Formatters/ValueFormatter.swift @@ -1,5 +1,5 @@ // -// IValueFormatter.swift +// ValueFormatter.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -16,8 +16,8 @@ import Foundation /// Simply create your own formatting class and let it implement ValueFormatter. /// /// Then override the getFormattedValue(...) method and return whatever you want. -@objc(IChartValueFormatter) -public protocol IValueFormatter: class +@objc(ChartValueFormatter) +public protocol ValueFormatter: class { /// Called when a value (from labels inside the chart) is formatted before being drawn. diff --git a/Source/Charts/Highlight/BarHighlighter.swift b/Source/Charts/Highlight/BarHighlighter.swift index ff115fe147..e34e2bc47a 100644 --- a/Source/Charts/Highlight/BarHighlighter.swift +++ b/Source/Charts/Highlight/BarHighlighter.swift @@ -29,7 +29,7 @@ open class BarHighlighter: ChartHighlighter let pos = getValsForTouch(x: x, y: y) if - let set = barData.getDataSetByIndex(high!.dataSetIndex) as? IBarChartDataSet, + let set = barData.getDataSetByIndex(high!.dataSetIndex) as? BarChartDataSetProtocol, set.isStacked { return getStackedHighlight(high: high!, @@ -60,7 +60,7 @@ open class BarHighlighter: ChartHighlighter /// - parameter yValue: /// - returns: @objc open func getStackedHighlight(high: Highlight, - set: IBarChartDataSet, + set: BarChartDataSetProtocol, xValue: Double, yValue: Double) -> Highlight? { diff --git a/Source/Charts/Highlight/ChartHighlighter.swift b/Source/Charts/Highlight/ChartHighlighter.swift index 719f44e757..abc0a3e4a4 100644 --- a/Source/Charts/Highlight/ChartHighlighter.swift +++ b/Source/Charts/Highlight/ChartHighlighter.swift @@ -12,7 +12,7 @@ import Foundation import CoreGraphics -open class ChartHighlighter : NSObject, IHighlighter +open class ChartHighlighter : NSObject, Highlighter { /// instance of the data-provider @objc open weak var chart: ChartDataProvider? @@ -103,7 +103,7 @@ open class ChartHighlighter : NSObject, IHighlighter /// - returns: An array of `Highlight` objects corresponding to the selected xValue and dataSetIndex. internal func buildHighlights( - dataSet set: IChartDataSet, + dataSet set: ChartDataSetProtocol, dataSetIndex: Int, xValue: Double, rounding: ChartDataSetRounding) -> [Highlight] diff --git a/Source/Charts/Highlight/IHighlighter.swift b/Source/Charts/Highlight/Highlighter.swift similarity index 84% rename from Source/Charts/Highlight/IHighlighter.swift rename to Source/Charts/Highlight/Highlighter.swift index 56acfcc226..4197e5d7fd 100644 --- a/Source/Charts/Highlight/IHighlighter.swift +++ b/Source/Charts/Highlight/Highlighter.swift @@ -1,5 +1,5 @@ // -// IHighlighter.swift +// Highlighter.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -12,8 +12,8 @@ import Foundation import CoreGraphics -@objc(IChartHighlighter) -public protocol IHighlighter: class +@objc(ChartHighlighter) +public protocol Highlighter: class { /// - returns: A Highlight object corresponding to the given x- and y- touch positions in pixels. /// - parameter x: diff --git a/Source/Charts/Highlight/HorizontalBarHighlighter.swift b/Source/Charts/Highlight/HorizontalBarHighlighter.swift index eec39c807e..a9f0fe6f3d 100644 --- a/Source/Charts/Highlight/HorizontalBarHighlighter.swift +++ b/Source/Charts/Highlight/HorizontalBarHighlighter.swift @@ -24,7 +24,7 @@ open class HorizontalBarHighlighter: BarHighlighter guard let high = getHighlight(xValue: Double(pos.y), x: y, y: x) else { return nil } - if let set = barData.getDataSetByIndex(high.dataSetIndex) as? IBarChartDataSet, + if let set = barData.getDataSetByIndex(high.dataSetIndex) as? BarChartDataSetProtocol, set.isStacked { return getStackedHighlight(high: high, @@ -39,7 +39,7 @@ open class HorizontalBarHighlighter: BarHighlighter } internal override func buildHighlights( - dataSet set: IChartDataSet, + dataSet set: ChartDataSetProtocol, dataSetIndex: Int, xValue: Double, rounding: ChartDataSetRounding) -> [Highlight] diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index 3621ddbf9c..cf8fad5f5b 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -54,7 +54,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer for i in stride(from: 0, to: barData.dataSetCount, by: 1) { - let set = barData.dataSets[i] as! IBarChartDataSet + let set = barData.dataSets[i] as! BarChartDataSetProtocol let size = set.entryCount * (set.isStacked ? set.stackSize : 1) if _buffers[i].rects.count != size { @@ -68,7 +68,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer } } - private func prepareBuffer(dataSet: IBarChartDataSet, index: Int) + private func prepareBuffer(dataSet: BarChartDataSetProtocol, index: Int) { guard let dataProvider = dataProvider, @@ -193,19 +193,19 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer if set.isVisible { - if !(set is IBarChartDataSet) + if !(set is BarChartDataSetProtocol) { - fatalError("Datasets for BarChartRenderer must conform to IBarChartDataset") + fatalError("Datasets for BarChartRenderer must conform to BarChartDataSetProtocol") } - drawDataSet(context: context, dataSet: set as! IBarChartDataSet, index: i) + drawDataSet(context: context, dataSet: set as! BarChartDataSetProtocol, index: i) } } } private var _barShadowRectBuffer: CGRect = CGRect() - @objc open func drawDataSet(context: CGContext, dataSet: IBarChartDataSet, index: Int) + @objc open func drawDataSet(context: CGContext, dataSet: BarChartDataSetProtocol, index: Int) { guard let dataProvider = dataProvider else { return } @@ -362,7 +362,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer for dataSetIndex in 0 ..< barData.dataSetCount { - guard let dataSet = dataSets[dataSetIndex] as? IBarChartDataSet else { continue } + guard let dataSet = dataSets[dataSetIndex] as? BarChartDataSetProtocol else { continue } if !shouldDrawValues(forDataSet: dataSet) { @@ -630,7 +630,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer for high in indices { guard - let set = barData.getDataSetByIndex(high.dataSetIndex) as? IBarChartDataSet, + let set = barData.getDataSetByIndex(high.dataSetIndex) as? BarChartDataSetProtocol, set.isHighlightEnabled else { continue } diff --git a/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift b/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift index 4ba1b5fac7..1a2ad8ce46 100644 --- a/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift +++ b/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift @@ -23,7 +23,7 @@ open class BarLineScatterCandleBubbleRenderer: DataRenderer } /// Checks if the provided entry object is in bounds for drawing considering the current animation phase. - internal func isInBoundsX(entry e: ChartDataEntry, dataSet: IBarLineScatterCandleBubbleChartDataSet) -> Bool + internal func isInBoundsX(entry e: ChartDataEntry, dataSet: BarLineScatterCandleBubbleChartDataSetProtocol) -> Bool { let entryIndex = dataSet.entryIndex(entry: e) return Double(entryIndex) < Double(dataSet.entryCount) * animator.phaseX @@ -32,14 +32,14 @@ open class BarLineScatterCandleBubbleRenderer: DataRenderer /// Calculates and returns the x-bounds for the given DataSet in terms of index in their values array. /// This includes minimum and maximum visible x, as well as range. internal func xBounds(chart: BarLineScatterCandleBubbleChartDataProvider, - dataSet: IBarLineScatterCandleBubbleChartDataSet, + dataSet: BarLineScatterCandleBubbleChartDataSetProtocol, animator: Animator?) -> XBounds { return XBounds(chart: chart, dataSet: dataSet, animator: animator) } /// - returns: `true` if the DataSet values should be drawn, `false` if not. - internal func shouldDrawValues(forDataSet set: IChartDataSet) -> Bool + internal func shouldDrawValues(forDataSet set: ChartDataSetProtocol) -> Bool { return set.isVisible && (set.isDrawValuesEnabled || set.isDrawIconsEnabled) } @@ -62,7 +62,7 @@ open class BarLineScatterCandleBubbleRenderer: DataRenderer } public init(chart: BarLineScatterCandleBubbleChartDataProvider, - dataSet: IBarLineScatterCandleBubbleChartDataSet, + dataSet: BarLineScatterCandleBubbleChartDataSetProtocol, animator: Animator?) { self.set(chart: chart, dataSet: dataSet, animator: animator) @@ -70,7 +70,7 @@ open class BarLineScatterCandleBubbleRenderer: DataRenderer /// Calculates the minimum and maximum x values as well as the range between them. open func set(chart: BarLineScatterCandleBubbleChartDataProvider, - dataSet: IBarLineScatterCandleBubbleChartDataSet, + dataSet: BarLineScatterCandleBubbleChartDataSetProtocol, animator: Animator?) { let phaseX = Swift.max(0.0, Swift.min(1.0, animator?.phaseX ?? 1.0)) diff --git a/Source/Charts/Renderers/BubbleChartRenderer.swift b/Source/Charts/Renderers/BubbleChartRenderer.swift index 8498070c17..bdf8f5c95d 100644 --- a/Source/Charts/Renderers/BubbleChartRenderer.swift +++ b/Source/Charts/Renderers/BubbleChartRenderer.swift @@ -35,7 +35,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer let bubbleData = dataProvider.bubbleData else { return } - for set in bubbleData.dataSets as! [IBubbleChartDataSet] where set.isVisible + for set in bubbleData.dataSets as! [BubbleChartDataSetProtocol] where set.isVisible { drawDataSet(context: context, dataSet: set) } @@ -57,7 +57,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer private var _pointBuffer = CGPoint() private var _sizeBuffer = [CGPoint](repeating: CGPoint(), count: 2) - @objc open func drawDataSet(context: CGContext, dataSet: IBubbleChartDataSet) + @objc open func drawDataSet(context: CGContext, dataSet: BubbleChartDataSetProtocol) { guard let dataProvider = dataProvider else { return } @@ -125,7 +125,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer dataProvider = dataProvider, let bubbleData = dataProvider.bubbleData, isDrawingValuesAllowed(dataProvider: dataProvider), - let dataSets = bubbleData.dataSets as? [IBubbleChartDataSet] + let dataSets = bubbleData.dataSets as? [BubbleChartDataSetProtocol] else { return } let phaseX = max(0.0, min(1.0, animator.phaseX)) @@ -222,7 +222,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer for high in indices { guard - let dataSet = bubbleData.getDataSetByIndex(high.dataSetIndex) as? IBubbleChartDataSet, + let dataSet = bubbleData.getDataSetByIndex(high.dataSetIndex) as? BubbleChartDataSetProtocol, dataSet.isHighlightEnabled, let entry = dataSet.entryForXValue(high.x, closestToY: high.y) as? BubbleChartDataEntry, isInBoundsX(entry: entry, dataSet: dataSet) diff --git a/Source/Charts/Renderers/CandleStickChartRenderer.swift b/Source/Charts/Renderers/CandleStickChartRenderer.swift index 28a460d9fe..8582db4869 100644 --- a/Source/Charts/Renderers/CandleStickChartRenderer.swift +++ b/Source/Charts/Renderers/CandleStickChartRenderer.swift @@ -32,7 +32,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer { guard let dataProvider = dataProvider, let candleData = dataProvider.candleData else { return } - for set in candleData.dataSets as! [ICandleChartDataSet] + for set in candleData.dataSets as! [CandleChartDataSetProtocol] { if set.isVisible { @@ -48,7 +48,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer private var _bodyRect = CGRect() private var _lineSegments = [CGPoint](repeating: CGPoint(), count: 2) - @objc open func drawDataSet(context: CGContext, dataSet: ICandleChartDataSet) + @objc open func drawDataSet(context: CGContext, dataSet: CandleChartDataSetProtocol) { guard let dataProvider = dataProvider else { return } @@ -250,7 +250,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer for i in 0 ..< dataSets.count { - guard let dataSet = dataSets[i] as? IBarLineScatterCandleBubbleChartDataSet + guard let dataSet = dataSets[i] as? BarLineScatterCandleBubbleChartDataSetProtocol else { continue } if !shouldDrawValues(forDataSet: dataSet) @@ -335,7 +335,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer for high in indices { guard - let set = candleData.getDataSetByIndex(high.dataSetIndex) as? ICandleChartDataSet, + let set = candleData.getDataSetByIndex(high.dataSetIndex) as? CandleChartDataSetProtocol, set.isHighlightEnabled else { continue } diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index 23925c4d60..373f4df331 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -51,7 +51,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer for i in stride(from: 0, to: barData.dataSetCount, by: 1) { - let set = barData.dataSets[i] as! IBarChartDataSet + let set = barData.dataSets[i] as! BarChartDataSetProtocol let size = set.entryCount * (set.isStacked ? set.stackSize : 1) if _buffers[i].rects.count != size { @@ -65,7 +65,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer } } - private func prepareBuffer(dataSet: IBarChartDataSet, index: Int) + private func prepareBuffer(dataSet: BarChartDataSetProtocol, index: Int) { guard let dataProvider = dataProvider, @@ -179,7 +179,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer private var _barShadowRectBuffer: CGRect = CGRect() - open override func drawDataSet(context: CGContext, dataSet: IBarChartDataSet, index: Int) + open override func drawDataSet(context: CGContext, dataSet: BarChartDataSetProtocol, index: Int) { guard let dataProvider = dataProvider else { return } @@ -316,7 +316,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer for dataSetIndex in 0 ..< barData.dataSetCount { - guard let dataSet = dataSets[dataSetIndex] as? IBarChartDataSet else { continue } + guard let dataSet = dataSets[dataSetIndex] as? BarChartDataSetProtocol else { continue } if !shouldDrawValues(forDataSet: dataSet) || !(dataSet.isDrawIconsEnabled && dataSet.isVisible) { diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index 38c3648537..93537cd09b 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -47,10 +47,10 @@ open class LegendRenderer: Renderer let entryCount = dataSet.entryCount // if we have a barchart with stacked bars - if dataSet is IBarChartDataSet && - (dataSet as! IBarChartDataSet).isStacked + if dataSet is BarChartDataSetProtocol && + (dataSet as! BarChartDataSetProtocol).isStacked { - let bds = dataSet as! IBarChartDataSet + let bds = dataSet as! BarChartDataSetProtocol var sLabels = bds.stackLabels for j in 0.. CGPath + private func generateFilledPath(dataSet: LineChartDataSetProtocol, fillMin: CGFloat, bounds: XBounds, matrix: CGAffineTransform) -> CGPath { let phaseY = animator.phaseY let isDrawSteppedEnabled = dataSet.mode == .stepped @@ -512,7 +512,7 @@ open class LineChartRenderer: LineRadarRenderer for i in 0 ..< dataSets.count { - guard let dataSet = dataSets[i] as? ILineChartDataSet else { continue } + guard let dataSet = dataSets[i] as? LineChartDataSetProtocol else { continue } if !shouldDrawValues(forDataSet: dataSet) { @@ -607,7 +607,7 @@ open class LineChartRenderer: LineRadarRenderer for i in 0 ..< dataSets.count { - guard let dataSet = lineData.getDataSetByIndex(i) as? ILineChartDataSet else { continue } + guard let dataSet = lineData.getDataSetByIndex(i) as? LineChartDataSetProtocol else { continue } if !dataSet.isVisible || !dataSet.isDrawCirclesEnabled || dataSet.entryCount == 0 { @@ -709,7 +709,7 @@ open class LineChartRenderer: LineRadarRenderer for high in indices { - guard let set = lineData.getDataSetByIndex(high.dataSetIndex) as? ILineChartDataSet + guard let set = lineData.getDataSetByIndex(high.dataSetIndex) as? LineChartDataSetProtocol , set.isHighlightEnabled else { continue } diff --git a/Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift b/Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift index 05203caf9c..dd33ffe862 100644 --- a/Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift +++ b/Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift @@ -25,7 +25,7 @@ open class LineScatterCandleRadarRenderer: BarLineScatterCandleBubbleRenderer /// :param: points /// :param: horizontal /// :param: vertical - @objc open func drawHighlightLines(context: CGContext, point: CGPoint, set: ILineScatterCandleRadarChartDataSet) + @objc open func drawHighlightLines(context: CGContext, point: CGPoint, set: LineScatterCandleRadarChartDataSetProtocol) { // draw vertical highlight lines diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index a363da290d..3f5fecb30e 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -36,7 +36,7 @@ open class PieChartRenderer: DataRenderer if pieData != nil { - for set in pieData!.dataSets as! [IPieChartDataSet] + for set in pieData!.dataSets as! [PieChartDataSetProtocol] { if set.isVisible && set.entryCount > 0 { @@ -88,7 +88,7 @@ open class PieChartRenderer: DataRenderer } /// Calculates the sliceSpace to use based on visible values and their size compared to the set sliceSpace. - @objc open func getSliceSpace(dataSet: IPieChartDataSet) -> CGFloat + @objc open func getSliceSpace(dataSet: PieChartDataSetProtocol) -> CGFloat { guard dataSet.automaticallyDisableSliceSpacing, @@ -105,7 +105,7 @@ open class PieChartRenderer: DataRenderer return sliceSpace } - @objc open func drawDataSet(context: CGContext, dataSet: IPieChartDataSet) + @objc open func drawDataSet(context: CGContext, dataSet: PieChartDataSetProtocol) { guard let chart = chart else {return } @@ -298,7 +298,7 @@ open class PieChartRenderer: DataRenderer for i in 0 ..< dataSets.count { - guard let dataSet = dataSets[i] as? IPieChartDataSet else { continue } + guard let dataSet = dataSets[i] as? PieChartDataSetProtocol else { continue } let drawValues = dataSet.isDrawValuesEnabled @@ -687,7 +687,7 @@ open class PieChartRenderer: DataRenderer continue } - guard let set = data.getDataSetByIndex(indices[i].dataSetIndex) as? IPieChartDataSet else { continue } + guard let set = data.getDataSetByIndex(indices[i].dataSetIndex) as? PieChartDataSetProtocol else { continue } if !set.isHighlightEnabled { diff --git a/Source/Charts/Renderers/RadarChartRenderer.swift b/Source/Charts/Renderers/RadarChartRenderer.swift index ab4890f646..941d70948e 100644 --- a/Source/Charts/Renderers/RadarChartRenderer.swift +++ b/Source/Charts/Renderers/RadarChartRenderer.swift @@ -38,7 +38,7 @@ open class RadarChartRenderer: LineRadarRenderer { let mostEntries = radarData?.maxEntryCountSet?.entryCount ?? 0 - for set in radarData!.dataSets as! [IRadarChartDataSet] + for set in radarData!.dataSets as! [RadarChartDataSetProtocol] { if set.isVisible { @@ -53,7 +53,7 @@ open class RadarChartRenderer: LineRadarRenderer /// - parameter context: /// - parameter dataSet: /// - parameter mostEntries: the entry count of the dataset with the most entries - internal func drawDataSet(context: CGContext, dataSet: IRadarChartDataSet, mostEntries: Int) + internal func drawDataSet(context: CGContext, dataSet: RadarChartDataSetProtocol, mostEntries: Int) { guard let chart = chart else { return } @@ -155,7 +155,7 @@ open class RadarChartRenderer: LineRadarRenderer for i in 0 ..< data.dataSetCount { - let dataSet = data.getDataSetByIndex(i) as! IRadarChartDataSet + let dataSet = data.getDataSetByIndex(i) as! RadarChartDataSetProtocol if !shouldDrawValues(forDataSet: dataSet) { @@ -310,7 +310,7 @@ open class RadarChartRenderer: LineRadarRenderer for high in indices { guard - let set = chart.data?.getDataSetByIndex(high.dataSetIndex) as? IRadarChartDataSet, + let set = chart.data?.getDataSetByIndex(high.dataSetIndex) as? RadarChartDataSetProtocol, set.isHighlightEnabled else { continue } diff --git a/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift b/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift index 2d035bf357..152c44ab80 100644 --- a/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift @@ -15,7 +15,7 @@ open class ChevronDownShapeRenderer : NSObject, IShapeRenderer { open func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift b/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift index 725533e780..8b416684d8 100644 --- a/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift @@ -15,7 +15,7 @@ open class ChevronUpShapeRenderer : NSObject, IShapeRenderer { open func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift b/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift index b94a51137a..27dd6a8dea 100644 --- a/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift @@ -15,7 +15,7 @@ open class CircleShapeRenderer : NSObject, IShapeRenderer { open func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift b/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift index 18785d3dee..c4f5c5f059 100644 --- a/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift @@ -15,7 +15,7 @@ open class CrossShapeRenderer : NSObject, IShapeRenderer { open func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/Scatter/IShapeRenderer.swift b/Source/Charts/Renderers/Scatter/IShapeRenderer.swift index bb12d9824a..b8fd5e7c4a 100644 --- a/Source/Charts/Renderers/Scatter/IShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/IShapeRenderer.swift @@ -24,7 +24,7 @@ public protocol IShapeRenderer: class /// - parameter color: Color to draw the shape func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift b/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift index ea692e33fd..76646c68e2 100644 --- a/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift @@ -15,7 +15,7 @@ open class SquareShapeRenderer : NSObject, IShapeRenderer { open func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift b/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift index fa313b765b..c73a8b8d09 100644 --- a/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift @@ -15,7 +15,7 @@ open class TriangleShapeRenderer : NSObject, IShapeRenderer { open func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/Scatter/XShapeRenderer.swift b/Source/Charts/Renderers/Scatter/XShapeRenderer.swift index 8a546c5f0b..67b8a8a9d5 100644 --- a/Source/Charts/Renderers/Scatter/XShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/XShapeRenderer.swift @@ -15,7 +15,7 @@ open class XShapeRenderer : NSObject, IShapeRenderer { open func renderShape( context: CGContext, - dataSet: IScatterChartDataSet, + dataSet: ScatterChartDataSetProtocol, viewPortHandler: ViewPortHandler, point: CGPoint, color: NSUIColor) diff --git a/Source/Charts/Renderers/ScatterChartRenderer.swift b/Source/Charts/Renderers/ScatterChartRenderer.swift index 010ca16791..756a6c81a5 100644 --- a/Source/Charts/Renderers/ScatterChartRenderer.swift +++ b/Source/Charts/Renderers/ScatterChartRenderer.swift @@ -38,19 +38,19 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer if set.isVisible { - if !(set is IScatterChartDataSet) + if !(set is ScatterChartDataSetProtocol) { - fatalError("Datasets for ScatterChartRenderer must conform to IScatterChartDataSet") + fatalError("Datasets for ScatterChartRenderer must conform to ScatterChartDataSetProtocol") } - drawDataSet(context: context, dataSet: set as! IScatterChartDataSet) + drawDataSet(context: context, dataSet: set as! ScatterChartDataSetProtocol) } } } private var _lineSegments = [CGPoint](repeating: CGPoint(), count: 2) - @objc open func drawDataSet(context: CGContext, dataSet: IScatterChartDataSet) + @objc open func drawDataSet(context: CGContext, dataSet: ScatterChartDataSetProtocol) { guard let dataProvider = dataProvider else { return } @@ -108,7 +108,7 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer // if values are drawn if isDrawingValuesAllowed(dataProvider: dataProvider) { - guard let dataSets = scatterData.dataSets as? [IScatterChartDataSet] else { return } + guard let dataSets = scatterData.dataSets as? [ScatterChartDataSetProtocol] else { return } let phaseY = animator.phaseY @@ -206,7 +206,7 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer for high in indices { guard - let set = scatterData.getDataSetByIndex(high.dataSetIndex) as? IScatterChartDataSet, + let set = scatterData.getDataSetByIndex(high.dataSetIndex) as? ScatterChartDataSetProtocol, set.isHighlightEnabled else { continue } diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index 8b0cec179c..435fcb70a7 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -49,7 +49,7 @@ extension CGSize { open class ChartUtils { - private static var _defaultValueFormatter: IValueFormatter = ChartUtils.generateDefaultValueFormatter() + private static var _defaultValueFormatter: ValueFormatter = ChartUtils.generateDefaultValueFormatter() internal class func roundToNextSignificant(number: Double) -> Double { @@ -272,14 +272,14 @@ open class ChartUtils drawMultilineText(context: context, text: text, knownTextSize: rect.size, point: point, attributes: attributes, constrainedToSize: constrainedToSize, anchor: anchor, angleRadians: angleRadians) } - private class func generateDefaultValueFormatter() -> IValueFormatter + private class func generateDefaultValueFormatter() -> ValueFormatter { let formatter = DefaultValueFormatter(decimals: 1) return formatter } /// - returns: The default value formatter used for all chart components that needs a default - open class func defaultValueFormatter() -> IValueFormatter + open class func defaultValueFormatter() -> ValueFormatter { return _defaultValueFormatter } From e126844c082f0b7372f75929cfca82a4d7bfc881 Mon Sep 17 00:00:00 2001 From: jjatie Date: Tue, 26 Dec 2017 00:31:23 -0400 Subject: [PATCH 02/84] Renderer protocols (#3136) * Renderer is now a protocol Renamed Renderers, and organized the Renderer folder. * DataRenderer is now a protocol * AxisRenderer is now a protocol --- Charts.xcodeproj/project.pbxproj | 82 +++-- .../Charts/Charts/BarLineChartViewBase.swift | 6 +- .../Charts/HorizontalBarChartView.swift | 6 +- Source/Charts/Charts/RadarChartView.swift | 4 +- .../Standard/ScatterChartDataSet.swift | 6 +- .../ScatterChartDataSetProtocol.swift | 2 +- Source/Charts/Renderers/AxisRenderer.swift | 45 +++ .../Charts/Renderers/AxisRendererBase.swift | 211 ------------ .../BarLineScatterCandleBubbleRenderer.swift | 31 +- .../Renderers/ChartDataRendererBase.swift | 59 ---- .../Renderers/CombinedChartRenderer.swift | 27 +- Source/Charts/Renderers/DataRenderer.swift | 36 ++ Source/Charts/Renderers/LegendRenderer.swift | 9 +- .../Charts/Renderers/PieChartRenderer.swift | 29 +- Source/Charts/Renderers/Renderer.swift | 12 +- .../Scatter/ChevronDownShapeRenderer.swift | 2 +- .../Scatter/ChevronUpShapeRenderer.swift | 2 +- .../Scatter/CircleShapeRenderer.swift | 2 +- .../Scatter/CrossShapeRenderer.swift | 2 +- ...hapeRenderer.swift => ShapeRenderer.swift} | 4 +- .../Scatter/SquareShapeRenderer.swift | 2 +- .../Scatter/TriangleShapeRenderer.swift | 2 +- .../Renderers/Scatter/XShapeRenderer.swift | 2 +- .../Renderers/ScatterChartRenderer.swift | 2 +- Source/Charts/Renderers/XAxisRenderer.swift | 264 ++++++++++----- .../XAxisRendererHorizontalBarChart.swift | 94 +++--- .../Renderers/XAxisRendererRadarChart.swift | 23 +- Source/Charts/Renderers/YAxisRenderer.swift | 319 +++++++++++++----- .../YAxisRendererHorizontalBarChart.swift | 77 ++--- .../Renderers/YAxisRendererRadarChart.swift | 32 +- 30 files changed, 735 insertions(+), 659 deletions(-) create mode 100644 Source/Charts/Renderers/AxisRenderer.swift delete mode 100644 Source/Charts/Renderers/AxisRendererBase.swift delete mode 100644 Source/Charts/Renderers/ChartDataRendererBase.swift create mode 100644 Source/Charts/Renderers/DataRenderer.swift rename Source/Charts/Renderers/Scatter/{IShapeRenderer.swift => ShapeRenderer.swift} (93%) diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 00cdf1118e..ef673fe70e 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -88,7 +88,7 @@ 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */; }; 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */; }; 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */; }; - 8A9FF54E2075A9047CC8E953 /* IShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* IShapeRenderer.swift */; }; + 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */; }; 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */; }; 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */; }; 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */; }; @@ -139,10 +139,10 @@ EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22750328058DEC2F019646F /* ChartDataEntry.swift */; }; EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */; }; ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */ = {isa = PBXBuildFile; fileRef = E64A75540C627E09080B402A /* Legend.swift */; }; - ECECC58CEF03B1718F8267E8 /* AxisRendererBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75935E899183DDFA181E2CC /* AxisRendererBase.swift */; }; + ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75935E899183DDFA181E2CC /* AxisRenderer.swift */; }; F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */; }; F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */; }; - F37B07008B8AE7F3909FFB9C /* ChartDataRendererBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* ChartDataRendererBase.swift */; }; + F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */; }; F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */; }; F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */; }; F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */; }; @@ -164,7 +164,7 @@ /* Begin PBXFileReference section */ 0108D5925E21A47DA36A66AA /* BarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarChartData.swift; sourceTree = ""; }; - 0216EDC6A1FE272F4EB19FCF /* ChartDataRendererBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataRendererBase.swift; path = Source/Charts/Renderers/ChartDataRendererBase.swift; sourceTree = ""; }; + 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRenderer.swift; path = Source/Charts/Renderers/DataRenderer.swift; sourceTree = ""; }; 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarHighlighter.swift; path = Source/Charts/Highlight/PieRadarHighlighter.swift; sourceTree = ""; }; 0619A877C69A95ECCC440A44 /* LineChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartView.swift; path = Source/Charts/Charts/LineChartView.swift; sourceTree = ""; }; 064989451F5C99C7006E8BB3 /* Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Snapshot.swift; path = Tests/Charts/Snapshot.swift; sourceTree = ""; }; @@ -277,7 +277,7 @@ C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronDownShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift; sourceTree = ""; }; C574E1BC7E12D937A5471EF8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = ""; }; C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; - C75935E899183DDFA181E2CC /* AxisRendererBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisRendererBase.swift; path = Source/Charts/Renderers/AxisRendererBase.swift; sourceTree = ""; }; + C75935E899183DDFA181E2CC /* AxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisRenderer.swift; path = Source/Charts/Renderers/AxisRenderer.swift; sourceTree = ""; }; C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ComponentBase.swift; path = Source/Charts/Components/ComponentBase.swift; sourceTree = ""; }; C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TriangleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift; sourceTree = ""; }; C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartBaseDataSet.swift; path = Source/Charts/Data/Implementations/ChartBaseDataSet.swift; sourceTree = ""; }; @@ -303,7 +303,7 @@ F6227A646166E248F90F86AD /* ChartColorTemplates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartColorTemplates.swift; path = Source/Charts/Utils/ChartColorTemplates.swift; sourceTree = ""; }; F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartLimitLine.swift; path = Source/Charts/Components/ChartLimitLine.swift; sourceTree = ""; }; F715DB2C56C9E0615542625B /* LegendRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendRenderer.swift; path = Source/Charts/Renderers/LegendRenderer.swift; sourceTree = ""; }; - FA1D3D13180C2E3893A82546 /* IShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/IShapeRenderer.swift; sourceTree = ""; }; + FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ShapeRenderer.swift; sourceTree = ""; }; FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortJob.swift; path = Source/Charts/Jobs/ViewPortJob.swift; sourceTree = ""; }; FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZoomViewJob.swift; path = Source/Charts/Jobs/ZoomViewJob.swift; sourceTree = ""; }; FB92A80F861C1362EED8D946 /* YAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxis.swift; path = Source/Charts/Components/YAxis.swift; sourceTree = ""; }; @@ -369,6 +369,40 @@ name = Source; sourceTree = ""; }; + 2227EA571FF1F219007D98D9 /* AxisRenderers */ = { + isa = PBXGroup; + children = ( + C75935E899183DDFA181E2CC /* AxisRenderer.swift */, + 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */, + 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */, + BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */, + 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */, + EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */, + AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */, + ); + name = AxisRenderers; + sourceTree = ""; + }; + 2227EA581FF1F224007D98D9 /* ChartRenderers */ = { + isa = PBXGroup; + children = ( + 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */, + 75F279974FE650E57A061B09 /* BarChartRenderer.swift */, + 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */, + 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */, + BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */, + 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */, + 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */, + 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */, + 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */, + 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */, + 46D8013D44629521B1746364 /* PieChartRenderer.swift */, + 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */, + 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */, + ); + name = ChartRenderers; + sourceTree = ""; + }; 2647844720BC6574A544A337 /* Charts */ = { isa = PBXGroup; children = ( @@ -613,29 +647,11 @@ E7589D3E7C2BD2449960AD59 /* Renderers */ = { isa = PBXGroup; children = ( - C75935E899183DDFA181E2CC /* AxisRendererBase.swift */, - 75F279974FE650E57A061B09 /* BarChartRenderer.swift */, - 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */, - 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */, - BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */, - 0216EDC6A1FE272F4EB19FCF /* ChartDataRendererBase.swift */, - 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */, - 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */, F715DB2C56C9E0615542625B /* LegendRenderer.swift */, - 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */, - 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */, - 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */, - 46D8013D44629521B1746364 /* PieChartRenderer.swift */, - 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */, 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */, - F7059584CB30EF419CFB3335 /* Scatter */, - 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */, - 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */, - 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */, - BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */, - 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */, - EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */, - AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */, + 2227EA571FF1F219007D98D9 /* AxisRenderers */, + 2227EA581FF1F224007D98D9 /* ChartRenderers */, + F7059584CB30EF419CFB3335 /* ShapeRenderer */, ); name = Renderers; sourceTree = ""; @@ -649,19 +665,19 @@ name = "Supporting Files"; sourceTree = ""; }; - F7059584CB30EF419CFB3335 /* Scatter */ = { + F7059584CB30EF419CFB3335 /* ShapeRenderer */ = { isa = PBXGroup; children = ( C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */, AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */, ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */, 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */, - FA1D3D13180C2E3893A82546 /* IShapeRenderer.swift */, + FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */, 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */, C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */, 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */, ); - name = Scatter; + name = ShapeRenderer; sourceTree = ""; }; /* End PBXGroup section */ @@ -901,12 +917,12 @@ 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */, 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */, AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */, - ECECC58CEF03B1718F8267E8 /* AxisRendererBase.swift in Sources */, + ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */, 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */, 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */, 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */, 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */, - F37B07008B8AE7F3909FFB9C /* ChartDataRendererBase.swift in Sources */, + F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */, 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */, F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */, 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */, @@ -920,7 +936,7 @@ F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */, B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */, 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */, - 8A9FF54E2075A9047CC8E953 /* IShapeRenderer.swift in Sources */, + 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */, 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */, 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */, 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */, diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index 406a96f414..1a438f00c5 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -106,10 +106,10 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD _leftAxisTransformer = Transformer(viewPortHandler: _viewPortHandler) _rightAxisTransformer = Transformer(viewPortHandler: _viewPortHandler) - _leftYAxisRenderer = YAxisRenderer(viewPortHandler: _viewPortHandler, yAxis: _leftAxis, transformer: _leftAxisTransformer) - _rightYAxisRenderer = YAxisRenderer(viewPortHandler: _viewPortHandler, yAxis: _rightAxis, transformer: _rightAxisTransformer) + _leftYAxisRenderer = YAxisRenderer(viewPortHandler: _viewPortHandler, axis: _leftAxis, transformer: _leftAxisTransformer) + _rightYAxisRenderer = YAxisRenderer(viewPortHandler: _viewPortHandler, axis: _rightAxis, transformer: _rightAxisTransformer) - _xAxisRenderer = XAxisRenderer(viewPortHandler: _viewPortHandler, xAxis: _xAxis, transformer: _leftAxisTransformer) + _xAxisRenderer = XAxisRenderer(viewPortHandler: _viewPortHandler, axis: _xAxis, transformer: _leftAxisTransformer) self.highlighter = ChartHighlighter(chart: self) diff --git a/Source/Charts/Charts/HorizontalBarChartView.swift b/Source/Charts/Charts/HorizontalBarChartView.swift index 277d37648c..e36567bb8c 100644 --- a/Source/Charts/Charts/HorizontalBarChartView.swift +++ b/Source/Charts/Charts/HorizontalBarChartView.swift @@ -27,9 +27,9 @@ open class HorizontalBarChartView: BarChartView _rightAxisTransformer = TransformerHorizontalBarChart(viewPortHandler: _viewPortHandler) renderer = HorizontalBarChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler) - _leftYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, yAxis: _leftAxis, transformer: _leftAxisTransformer) - _rightYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, yAxis: _rightAxis, transformer: _rightAxisTransformer) - _xAxisRenderer = XAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, xAxis: _xAxis, transformer: _leftAxisTransformer, chart: self) + _leftYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, axis: _leftAxis, transformer: _leftAxisTransformer) + _rightYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, axis: _rightAxis, transformer: _rightAxisTransformer) + _xAxisRenderer = XAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, axis: _xAxis, transformer: _leftAxisTransformer, chart: self) self.highlighter = HorizontalBarHighlighter(chart: self) } diff --git a/Source/Charts/Charts/RadarChartView.swift b/Source/Charts/Charts/RadarChartView.swift index 2b89fbae69..0d1143bead 100644 --- a/Source/Charts/Charts/RadarChartView.swift +++ b/Source/Charts/Charts/RadarChartView.swift @@ -62,8 +62,8 @@ open class RadarChartView: PieRadarChartViewBase renderer = RadarChartRenderer(chart: self, animator: _animator, viewPortHandler: _viewPortHandler) - _yAxisRenderer = YAxisRendererRadarChart(viewPortHandler: _viewPortHandler, yAxis: _yAxis, chart: self) - _xAxisRenderer = XAxisRendererRadarChart(viewPortHandler: _viewPortHandler, xAxis: _xAxis, chart: self) + _yAxisRenderer = YAxisRendererRadarChart(viewPortHandler: _viewPortHandler, axis: _yAxis, chart: self) + _xAxisRenderer = XAxisRendererRadarChart(viewPortHandler: _viewPortHandler, axis: _xAxis, chart: self) self.highlighter = RadarHighlighter(chart: self) } diff --git a/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift index 1f60c8c126..b7d1658349 100644 --- a/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift @@ -39,7 +39,7 @@ open class ScatterChartDataSet: LineScatterCandleRadarChartDataSet, ScatterChart open var scatterShapeHoleColor: NSUIColor? = nil /// Sets the ScatterShape this DataSet should be drawn with. - /// This will search for an available IShapeRenderer and set this renderer for the DataSet + /// This will search for an available ShapeRenderer and set this renderer for the DataSet @objc open func setScatterShape(_ shape: Shape) { self.shapeRenderer = ScatterChartDataSet.renderer(forShape: shape) @@ -48,9 +48,9 @@ open class ScatterChartDataSet: LineScatterCandleRadarChartDataSet, ScatterChart /// The IShapeRenderer responsible for rendering this DataSet. /// This can also be used to set a custom IShapeRenderer aside from the default ones. /// **default**: `SquareShapeRenderer` - open var shapeRenderer: IShapeRenderer? = SquareShapeRenderer() + open var shapeRenderer: ShapeRenderer? = SquareShapeRenderer() - @objc open class func renderer(forShape shape: Shape) -> IShapeRenderer + @objc open class func renderer(forShape shape: Shape) -> ShapeRenderer { switch shape { diff --git a/Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift b/Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift index d101e22af3..0fa23662ae 100644 --- a/Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift +++ b/Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift @@ -32,5 +32,5 @@ public protocol ScatterChartDataSetProtocol: LineScatterCandleRadarChartDataSetP var scatterShapeHoleColor: NSUIColor? { get } /// - returns: The IShapeRenderer responsible for rendering this DataSet. - var shapeRenderer: IShapeRenderer? { get } + var shapeRenderer: ShapeRenderer? { get } } diff --git a/Source/Charts/Renderers/AxisRenderer.swift b/Source/Charts/Renderers/AxisRenderer.swift new file mode 100644 index 0000000000..35b1ddf72d --- /dev/null +++ b/Source/Charts/Renderers/AxisRenderer.swift @@ -0,0 +1,45 @@ +// +// AxisRenderer.swift +// Charts +// +// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda +// A port of MPAndroidChart for iOS +// Licensed under Apache License 2.0 +// +// https://github.com/danielgindi/Charts +// + +import Foundation +import CoreGraphics + + +public protocol AxisRenderer: Renderer { + + associatedtype Axis: AxisBase + + /// base axis this axis renderer works with + var axis: Axis { get } + + /// transformer to transform values to screen pixels and return + var transformer: Transformer? { get } + + /// Draws the axis labels on the specified context + func renderAxisLabels(context: CGContext) + + /// Draws the grid lines belonging to the axis. + func renderGridLines(context: CGContext) + + /// Draws the line that goes alongside the axis. + func renderAxisLine(context: CGContext) + + /// Draws the LimitLines associated with this axis to the screen. + func renderLimitLines(context: CGContext) + + /// Computes the axis values. + /// - parameter min: the minimum value in the data object for this axis + /// - parameter max: the maximum value in the data object for this axis + func computeAxis(min: Double, max: Double, inverted: Bool) + + /// Sets up the axis values. Computes the desired number of labels between the two given extremes. + func computeAxisValues(min: Double, max: Double) +} diff --git a/Source/Charts/Renderers/AxisRendererBase.swift b/Source/Charts/Renderers/AxisRendererBase.swift deleted file mode 100644 index bd1c6aa466..0000000000 --- a/Source/Charts/Renderers/AxisRendererBase.swift +++ /dev/null @@ -1,211 +0,0 @@ -// -// AxisRendererBase.swift -// Charts -// -// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda -// A port of MPAndroidChart for iOS -// Licensed under Apache License 2.0 -// -// https://github.com/danielgindi/Charts -// - -import Foundation -import CoreGraphics - -@objc(ChartAxisRendererBase) -open class AxisRendererBase: Renderer -{ - /// base axis this axis renderer works with - @objc open var axis: AxisBase? - - /// transformer to transform values to screen pixels and return - @objc open var transformer: Transformer? - - @objc public init(viewPortHandler: ViewPortHandler, transformer: Transformer?, axis: AxisBase?) - { - super.init(viewPortHandler: viewPortHandler) - - self.transformer = transformer - self.axis = axis - } - - /// Draws the axis labels on the specified context - @objc open func renderAxisLabels(context: CGContext) - { - fatalError("renderAxisLabels() cannot be called on AxisRendererBase") - } - - /// Draws the grid lines belonging to the axis. - @objc open func renderGridLines(context: CGContext) - { - fatalError("renderGridLines() cannot be called on AxisRendererBase") - } - - /// Draws the line that goes alongside the axis. - @objc open func renderAxisLine(context: CGContext) - { - fatalError("renderAxisLine() cannot be called on AxisRendererBase") - } - - /// Draws the LimitLines associated with this axis to the screen. - @objc open func renderLimitLines(context: CGContext) - { - fatalError("renderLimitLines() cannot be called on AxisRendererBase") - } - - /// Computes the axis values. - /// - parameter min: the minimum value in the data object for this axis - /// - parameter max: the maximum value in the data object for this axis - @objc open func computeAxis(min: Double, max: Double, inverted: Bool) - { - var min = min, max = max - - if let transformer = self.transformer - { - // calculate the starting and entry point of the y-labels (depending on zoom / contentrect bounds) - if viewPortHandler.contentWidth > 10.0 && !viewPortHandler.isFullyZoomedOutY - { - let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) - let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) - - if !inverted - { - min = Double(p2.y) - max = Double(p1.y) - } - else - { - min = Double(p1.y) - max = Double(p2.y) - } - } - } - - computeAxisValues(min: min, max: max) - } - - /// Sets up the axis values. Computes the desired number of labels between the two given extremes. - @objc open func computeAxisValues(min: Double, max: Double) - { - guard let axis = self.axis else { return } - - let yMin = min - let yMax = max - - let labelCount = axis.labelCount - let range = abs(yMax - yMin) - - if labelCount == 0 || range <= 0 || range.isInfinite - { - axis.entries = [Double]() - axis.centeredEntries = [Double]() - return - } - - // Find out how much spacing (in y value space) between axis values - let rawInterval = range / Double(labelCount) - var interval = ChartUtils.roundToNextSignificant(number: Double(rawInterval)) - - // If granularity is enabled, then do not allow the interval to go below specified granularity. - // This is used to avoid repeated values when rounding values for display. - if axis.granularityEnabled - { - interval = interval < axis.granularity ? axis.granularity : interval - } - - // Normalize interval - let intervalMagnitude = ChartUtils.roundToNextSignificant(number: pow(10.0, Double(Int(log10(interval))))) - let intervalSigDigit = Int(interval / intervalMagnitude) - if intervalSigDigit > 5 - { - // Use one order of magnitude higher, to avoid intervals like 0.9 or 90 - interval = floor(10.0 * Double(intervalMagnitude)) - } - - var n = axis.centerAxisLabelsEnabled ? 1 : 0 - - // force label count - if axis.isForceLabelsEnabled - { - interval = Double(range) / Double(labelCount - 1) - - // Ensure stops contains at least n elements. - axis.entries.removeAll(keepingCapacity: true) - axis.entries.reserveCapacity(labelCount) - - var v = yMin - - for _ in 0 ..< labelCount - { - axis.entries.append(v) - v += interval - } - - n = labelCount - } - else - { - // no forced count - - var first = interval == 0.0 ? 0.0 : ceil(yMin / interval) * interval - - if axis.centerAxisLabelsEnabled - { - first -= interval - } - - let last = interval == 0.0 ? 0.0 : ChartUtils.nextUp(floor(yMax / interval) * interval) - - if interval != 0.0 && last != first - { - for _ in stride(from: first, through: last, by: interval) - { - n += 1 - } - } - - // Ensure stops contains at least n elements. - axis.entries.removeAll(keepingCapacity: true) - axis.entries.reserveCapacity(labelCount) - - var f = first - var i = 0 - while i < n - { - if f == 0.0 - { - // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) - f = 0.0 - } - - axis.entries.append(Double(f)) - - f += interval - i += 1 - } - } - - // set decimals - if interval < 1 - { - axis.decimals = Int(ceil(-log10(interval))) - } - else - { - axis.decimals = 0 - } - - if axis.centerAxisLabelsEnabled - { - axis.centeredEntries.reserveCapacity(n) - axis.centeredEntries.removeAll() - - let offset: Double = interval / 2.0 - - for i in 0 ..< n - { - axis.centeredEntries.append(axis.entries[i] + offset) - } - } - } -} diff --git a/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift b/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift index 1a2ad8ce46..4bfd560f87 100644 --- a/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift +++ b/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift @@ -13,15 +13,30 @@ import Foundation import CoreGraphics @objc(BarLineScatterCandleBubbleChartRenderer) -open class BarLineScatterCandleBubbleRenderer: DataRenderer +open class BarLineScatterCandleBubbleRenderer: NSObject, DataRenderer { + public let viewPortHandler: ViewPortHandler + + public let animator: Animator + internal var _xBounds = XBounds() // Reusable XBounds object - public override init(animator: Animator, viewPortHandler: ViewPortHandler) + public init(animator: Animator, viewPortHandler: ViewPortHandler) { - super.init(animator: animator, viewPortHandler: viewPortHandler) + self.viewPortHandler = viewPortHandler + self.animator = animator + + super.init() } - + + open func drawData(context: CGContext) { } + + open func drawValues(context: CGContext) { } + + open func drawExtras(context: CGContext) { } + + open func drawHighlighted(context: CGContext, indices: [Highlight]) { } + /// Checks if the provided entry object is in bounds for drawing considering the current animation phase. internal func isInBoundsX(entry e: ChartDataEntry, dataSet: BarLineScatterCandleBubbleChartDataSetProtocol) -> Bool { @@ -44,6 +59,14 @@ open class BarLineScatterCandleBubbleRenderer: DataRenderer return set.isVisible && (set.isDrawValuesEnabled || set.isDrawIconsEnabled) } + open func initBuffers() { } + + open func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool + { + guard let data = dataProvider?.data else { return false } + return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX) + } + /// Class representing the bounds of the current viewport in terms of indices in the values array of a DataSet. open class XBounds { diff --git a/Source/Charts/Renderers/ChartDataRendererBase.swift b/Source/Charts/Renderers/ChartDataRendererBase.swift deleted file mode 100644 index 024516aa15..0000000000 --- a/Source/Charts/Renderers/ChartDataRendererBase.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// DataRenderer.swift -// Charts -// -// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda -// A port of MPAndroidChart for iOS -// Licensed under Apache License 2.0 -// -// https://github.com/danielgindi/Charts -// - -import Foundation -import CoreGraphics - -@objc(ChartDataRendererBase) -open class DataRenderer: Renderer -{ - @objc open let animator: Animator - - @objc public init(animator: Animator, viewPortHandler: ViewPortHandler) - { - self.animator = animator - - super.init(viewPortHandler: viewPortHandler) - } - - @objc open func drawData(context: CGContext) - { - fatalError("drawData() cannot be called on DataRenderer") - } - - @objc open func drawValues(context: CGContext) - { - fatalError("drawValues() cannot be called on DataRenderer") - } - - @objc open func drawExtras(context: CGContext) - { - fatalError("drawExtras() cannot be called on DataRenderer") - } - - /// Draws all highlight indicators for the values that are currently highlighted. - /// - /// - parameter indices: the highlighted values - @objc open func drawHighlighted(context: CGContext, indices: [Highlight]) - { - fatalError("drawHighlighted() cannot be called on DataRenderer") - } - - /// An opportunity for initializing internal buffers used for rendering with a new size. - /// Since this might do memory allocations, it should only be called if necessary. - @objc open func initBuffers() { } - - @objc open func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool - { - guard let data = dataProvider?.data else { return false } - return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX) - } -} diff --git a/Source/Charts/Renderers/CombinedChartRenderer.swift b/Source/Charts/Renderers/CombinedChartRenderer.swift index d38ccb5f7a..529561878f 100644 --- a/Source/Charts/Renderers/CombinedChartRenderer.swift +++ b/Source/Charts/Renderers/CombinedChartRenderer.swift @@ -12,8 +12,11 @@ import Foundation import CoreGraphics -open class CombinedChartRenderer: DataRenderer +open class CombinedChartRenderer: NSObject, DataRenderer { + public let viewPortHandler: ViewPortHandler + public let animator: Animator + @objc open weak var chart: CombinedChartView? /// if set to true, all values are drawn above their bars, instead of below their top @@ -28,9 +31,11 @@ open class CombinedChartRenderer: DataRenderer @objc public init(chart: CombinedChartView, animator: Animator, viewPortHandler: ViewPortHandler) { - super.init(animator: animator, viewPortHandler: viewPortHandler) - self.chart = chart + self.viewPortHandler = viewPortHandler + self.animator = animator + + super.init() createRenderers() } @@ -85,7 +90,7 @@ open class CombinedChartRenderer: DataRenderer } - open override func initBuffers() + open func initBuffers() { for renderer in _renderers { @@ -93,7 +98,7 @@ open class CombinedChartRenderer: DataRenderer } } - open override func drawData(context: CGContext) + open func drawData(context: CGContext) { for renderer in _renderers { @@ -101,7 +106,7 @@ open class CombinedChartRenderer: DataRenderer } } - open override func drawValues(context: CGContext) + open func drawValues(context: CGContext) { for renderer in _renderers { @@ -109,7 +114,7 @@ open class CombinedChartRenderer: DataRenderer } } - open override func drawExtras(context: CGContext) + open func drawExtras(context: CGContext) { for renderer in _renderers { @@ -117,7 +122,7 @@ open class CombinedChartRenderer: DataRenderer } } - open override func drawHighlighted(context: CGContext, indices: [Highlight]) + open func drawHighlighted(context: CGContext, indices: [Highlight]) { for renderer in _renderers { @@ -152,6 +157,12 @@ open class CombinedChartRenderer: DataRenderer } } + open func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool + { + guard let data = dataProvider?.data else { return false } + return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX) + } + /// - returns: The sub-renderer object at the specified index. @objc open func getSubRenderer(index: Int) -> DataRenderer? { diff --git a/Source/Charts/Renderers/DataRenderer.swift b/Source/Charts/Renderers/DataRenderer.swift new file mode 100644 index 0000000000..bea371e428 --- /dev/null +++ b/Source/Charts/Renderers/DataRenderer.swift @@ -0,0 +1,36 @@ +// +// DataRenderer.swift +// Charts +// +// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda +// A port of MPAndroidChart for iOS +// Licensed under Apache License 2.0 +// +// https://github.com/danielgindi/Charts +// + +import Foundation +import CoreGraphics + +@objc(ChartDataRenderer) +public protocol DataRenderer: Renderer +{ + var animator: Animator { get } + + func drawData(context: CGContext) + + func drawValues(context: CGContext) + + func drawExtras(context: CGContext) + + /// Draws all highlight indicators for the values that are currently highlighted. + /// + /// - parameter indices: the highlighted values + func drawHighlighted(context: CGContext, indices: [Highlight]) + + /// An opportunity for initializing internal buffers used for rendering with a new size. + /// Since this might do memory allocations, it should only be called if necessary. + func initBuffers() + + func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool +} diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index 93537cd09b..a32344c3aa 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -17,16 +17,19 @@ import CoreGraphics #endif @objc(ChartLegendRenderer) -open class LegendRenderer: Renderer +open class LegendRenderer: NSObject, Renderer { + @objc public let viewPortHandler: ViewPortHandler + /// the legend object this renderer renders @objc open var legend: Legend? @objc public init(viewPortHandler: ViewPortHandler, legend: Legend?) { - super.init(viewPortHandler: viewPortHandler) - + self.viewPortHandler = viewPortHandler self.legend = legend + + super.init() } /// Prepares the legend and calculates all needed forms, labels and colors. diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index 3f5fecb30e..c71959e8e1 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -17,18 +17,23 @@ import CoreGraphics #endif -open class PieChartRenderer: DataRenderer +open class PieChartRenderer: NSObject, DataRenderer { + public let viewPortHandler: ViewPortHandler + public let animator: Animator + @objc open weak var chart: PieChartView? @objc public init(chart: PieChartView, animator: Animator, viewPortHandler: ViewPortHandler) { - super.init(animator: animator, viewPortHandler: viewPortHandler) - + self.viewPortHandler = viewPortHandler + self.animator = animator self.chart = chart + + super.init() } - open override func drawData(context: CGContext) + open func drawData(context: CGContext) { guard let chart = chart else { return } @@ -254,7 +259,7 @@ open class PieChartRenderer: DataRenderer context.restoreGState() } - open override func drawValues(context: CGContext) + open func drawValues(context: CGContext) { guard let chart = chart, @@ -545,12 +550,20 @@ open class PieChartRenderer: DataRenderer } } - open override func drawExtras(context: CGContext) + open func drawExtras(context: CGContext) { drawHole(context: context) drawCenterText(context: context) } - + + open func initBuffers() { } + + open func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool + { + guard let data = dataProvider?.data else { return false } + return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX) + } + /// draws the hole in the center of the chart and the transparent circle / hole private func drawHole(context: CGContext) { @@ -656,7 +669,7 @@ open class PieChartRenderer: DataRenderer } } - open override func drawHighlighted(context: CGContext, indices: [Highlight]) + open func drawHighlighted(context: CGContext, indices: [Highlight]) { guard let chart = chart, diff --git a/Source/Charts/Renderers/Renderer.swift b/Source/Charts/Renderers/Renderer.swift index 5c929f28e0..dbdcb8ae3b 100644 --- a/Source/Charts/Renderers/Renderer.swift +++ b/Source/Charts/Renderers/Renderer.swift @@ -13,14 +13,8 @@ import Foundation import CoreGraphics @objc(ChartRenderer) -open class Renderer: NSObject -{ - /// the component that handles the drawing area of the chart and it's offsets - @objc open let viewPortHandler: ViewPortHandler +public protocol Renderer { - @objc public init(viewPortHandler: ViewPortHandler) - { - self.viewPortHandler = viewPortHandler - super.init() - } + /// the component that handles the drawing area of the chart and it's offsets + var viewPortHandler: ViewPortHandler { get } } diff --git a/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift b/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift index 152c44ab80..1dab1cc46b 100644 --- a/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift @@ -11,7 +11,7 @@ import Foundation import CoreGraphics -open class ChevronDownShapeRenderer : NSObject, IShapeRenderer +open class ChevronDownShapeRenderer : NSObject, ShapeRenderer { open func renderShape( context: CGContext, diff --git a/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift b/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift index 8b416684d8..0d077707f7 100644 --- a/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift @@ -11,7 +11,7 @@ import Foundation import CoreGraphics -open class ChevronUpShapeRenderer : NSObject, IShapeRenderer +open class ChevronUpShapeRenderer : NSObject, ShapeRenderer { open func renderShape( context: CGContext, diff --git a/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift b/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift index 27dd6a8dea..fc0c4dfef1 100644 --- a/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift @@ -11,7 +11,7 @@ import Foundation import CoreGraphics -open class CircleShapeRenderer : NSObject, IShapeRenderer +open class CircleShapeRenderer : NSObject, ShapeRenderer { open func renderShape( context: CGContext, diff --git a/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift b/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift index c4f5c5f059..7961da25aa 100644 --- a/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift @@ -11,7 +11,7 @@ import Foundation import CoreGraphics -open class CrossShapeRenderer : NSObject, IShapeRenderer +open class CrossShapeRenderer : NSObject, ShapeRenderer { open func renderShape( context: CGContext, diff --git a/Source/Charts/Renderers/Scatter/IShapeRenderer.swift b/Source/Charts/Renderers/Scatter/ShapeRenderer.swift similarity index 93% rename from Source/Charts/Renderers/Scatter/IShapeRenderer.swift rename to Source/Charts/Renderers/Scatter/ShapeRenderer.swift index b8fd5e7c4a..9b7be2d0ba 100644 --- a/Source/Charts/Renderers/Scatter/IShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/ShapeRenderer.swift @@ -1,5 +1,5 @@ // -// IShapeRenderer.swift +// ShapeRenderer.swift // Charts // // Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda @@ -13,7 +13,7 @@ import Foundation import CoreGraphics @objc -public protocol IShapeRenderer: class +public protocol ShapeRenderer: class { /// Renders the provided ScatterDataSet with a shape. /// diff --git a/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift b/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift index 76646c68e2..948c1ff2eb 100644 --- a/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift @@ -11,7 +11,7 @@ import Foundation import CoreGraphics -open class SquareShapeRenderer : NSObject, IShapeRenderer +open class SquareShapeRenderer : NSObject, ShapeRenderer { open func renderShape( context: CGContext, diff --git a/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift b/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift index c73a8b8d09..1f4bdca0d7 100644 --- a/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift @@ -11,7 +11,7 @@ import Foundation import CoreGraphics -open class TriangleShapeRenderer : NSObject, IShapeRenderer +open class TriangleShapeRenderer : NSObject, ShapeRenderer { open func renderShape( context: CGContext, diff --git a/Source/Charts/Renderers/Scatter/XShapeRenderer.swift b/Source/Charts/Renderers/Scatter/XShapeRenderer.swift index 67b8a8a9d5..73e2efdd4b 100644 --- a/Source/Charts/Renderers/Scatter/XShapeRenderer.swift +++ b/Source/Charts/Renderers/Scatter/XShapeRenderer.swift @@ -11,7 +11,7 @@ import Foundation import CoreGraphics -open class XShapeRenderer : NSObject, IShapeRenderer +open class XShapeRenderer : NSObject, ShapeRenderer { open func renderShape( context: CGContext, diff --git a/Source/Charts/Renderers/ScatterChartRenderer.swift b/Source/Charts/Renderers/ScatterChartRenderer.swift index 756a6c81a5..d7b1afa3a5 100644 --- a/Source/Charts/Renderers/ScatterChartRenderer.swift +++ b/Source/Charts/Renderers/ScatterChartRenderer.swift @@ -94,7 +94,7 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer } else { - print("There's no IShapeRenderer specified for ScatterDataSet", terminator: "\n") + print("There's no ShapeRenderer specified for ScatterDataSet", terminator: "\n") } } diff --git a/Source/Charts/Renderers/XAxisRenderer.swift b/Source/Charts/Renderers/XAxisRenderer.swift index 534e606dcf..08811d9a05 100644 --- a/Source/Charts/Renderers/XAxisRenderer.swift +++ b/Source/Charts/Renderers/XAxisRenderer.swift @@ -17,14 +17,22 @@ import CoreGraphics #endif @objc(ChartXAxisRenderer) -open class XAxisRenderer: AxisRendererBase +open class XAxisRenderer: NSObject, AxisRenderer { - @objc public init(viewPortHandler: ViewPortHandler, xAxis: XAxis?, transformer: Transformer?) + public let viewPortHandler: ViewPortHandler + public let axis: XAxis + public let transformer: Transformer? + + @objc public init(viewPortHandler: ViewPortHandler, axis: XAxis, transformer: Transformer?) { - super.init(viewPortHandler: viewPortHandler, transformer: transformer, axis: xAxis) + self.viewPortHandler = viewPortHandler + self.axis = axis + self.transformer = transformer + + super.init() } - open override func computeAxis(min: Double, max: Double, inverted: Bool) + open func computeAxis(min: Double, max: Double, inverted: Bool) { var min = min, max = max @@ -53,60 +61,171 @@ open class XAxisRenderer: AxisRendererBase computeAxisValues(min: min, max: max) } - open override func computeAxisValues(min: Double, max: Double) + open func computeAxisValues(min: Double, max: Double) { - super.computeAxisValues(min: min, max: max) + let yMin = min + let yMax = max + + let labelCount = axis.labelCount + let range = abs(yMax - yMin) + + if labelCount == 0 || range <= 0 || range.isInfinite + { + axis.entries = [Double]() + axis.centeredEntries = [Double]() + return + } + + // Find out how much spacing (in y value space) between axis values + let rawInterval = range / Double(labelCount) + var interval = ChartUtils.roundToNextSignificant(number: Double(rawInterval)) + + // If granularity is enabled, then do not allow the interval to go below specified granularity. + // This is used to avoid repeated values when rounding values for display. + if axis.granularityEnabled + { + interval = interval < axis.granularity ? axis.granularity : interval + } + + // Normalize interval + let intervalMagnitude = ChartUtils.roundToNextSignificant(number: pow(10.0, Double(Int(log10(interval))))) + let intervalSigDigit = Int(interval / intervalMagnitude) + if intervalSigDigit > 5 + { + // Use one order of magnitude higher, to avoid intervals like 0.9 or 90 + interval = floor(10.0 * Double(intervalMagnitude)) + } + + var n = axis.centerAxisLabelsEnabled ? 1 : 0 + + // force label count + if axis.isForceLabelsEnabled + { + interval = Double(range) / Double(labelCount - 1) + + // Ensure stops contains at least n elements. + axis.entries.removeAll(keepingCapacity: true) + axis.entries.reserveCapacity(labelCount) + + var v = yMin + + for _ in 0 ..< labelCount + { + axis.entries.append(v) + v += interval + } + + n = labelCount + } + else + { + // no forced count + + var first = interval == 0.0 ? 0.0 : ceil(yMin / interval) * interval + + if axis.centerAxisLabelsEnabled + { + first -= interval + } + + let last = interval == 0.0 ? 0.0 : ChartUtils.nextUp(floor(yMax / interval) * interval) + + if interval != 0.0 && last != first + { + for _ in stride(from: first, through: last, by: interval) + { + n += 1 + } + } + + // Ensure stops contains at least n elements. + axis.entries.removeAll(keepingCapacity: true) + axis.entries.reserveCapacity(labelCount) + + var f = first + var i = 0 + while i < n + { + if f == 0.0 + { + // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) + f = 0.0 + } + + axis.entries.append(Double(f)) + + f += interval + i += 1 + } + } + + // set decimals + if interval < 1 + { + axis.decimals = Int(ceil(-log10(interval))) + } + else + { + axis.decimals = 0 + } + + if axis.centerAxisLabelsEnabled + { + axis.centeredEntries.reserveCapacity(n) + axis.centeredEntries.removeAll() + + let offset: Double = interval / 2.0 + + for i in 0 ..< n + { + axis.centeredEntries.append(axis.entries[i] + offset) + } + } computeSize() } @objc open func computeSize() { - guard let - xAxis = self.axis as? XAxis - else { return } - - let longest = xAxis.getLongestLabel() + let longest = axis.getLongestLabel() - let labelSize = longest.size(withAttributes: [NSAttributedStringKey.font: xAxis.labelFont]) + let labelSize = longest.size(withAttributes: [NSAttributedStringKey.font: axis.labelFont]) let labelWidth = labelSize.width let labelHeight = labelSize.height - let labelRotatedSize = labelSize.rotatedBy(degrees: xAxis.labelRotationAngle) + let labelRotatedSize = labelSize.rotatedBy(degrees: axis.labelRotationAngle) - xAxis.labelWidth = labelWidth - xAxis.labelHeight = labelHeight - xAxis.labelRotatedWidth = labelRotatedSize.width - xAxis.labelRotatedHeight = labelRotatedSize.height + axis.labelWidth = labelWidth + axis.labelHeight = labelHeight + axis.labelRotatedWidth = labelRotatedSize.width + axis.labelRotatedHeight = labelRotatedSize.height } - open override func renderAxisLabels(context: CGContext) + open func renderAxisLabels(context: CGContext) { - guard let xAxis = self.axis as? XAxis else { return } - - if !xAxis.isEnabled || !xAxis.isDrawLabelsEnabled + if !axis.isEnabled || !axis.isDrawLabelsEnabled { return } - let yOffset = xAxis.yOffset + let yOffset = axis.yOffset - if xAxis.labelPosition == .top + if axis.labelPosition == .top { drawLabels(context: context, pos: viewPortHandler.contentTop - yOffset, anchor: CGPoint(x: 0.5, y: 1.0)) } - else if xAxis.labelPosition == .topInside + else if axis.labelPosition == .topInside { - drawLabels(context: context, pos: viewPortHandler.contentTop + yOffset + xAxis.labelRotatedHeight, anchor: CGPoint(x: 0.5, y: 1.0)) + drawLabels(context: context, pos: viewPortHandler.contentTop + yOffset + axis.labelRotatedHeight, anchor: CGPoint(x: 0.5, y: 1.0)) } - else if xAxis.labelPosition == .bottom + else if axis.labelPosition == .bottom { drawLabels(context: context, pos: viewPortHandler.contentBottom + yOffset, anchor: CGPoint(x: 0.5, y: 0.0)) } - else if xAxis.labelPosition == .bottomInside + else if axis.labelPosition == .bottomInside { - drawLabels(context: context, pos: viewPortHandler.contentBottom - yOffset - xAxis.labelRotatedHeight, anchor: CGPoint(x: 0.5, y: 0.0)) + drawLabels(context: context, pos: viewPortHandler.contentBottom - yOffset - axis.labelRotatedHeight, anchor: CGPoint(x: 0.5, y: 0.0)) } else { // BOTH SIDED @@ -117,31 +236,29 @@ open class XAxisRenderer: AxisRendererBase private var _axisLineSegmentsBuffer = [CGPoint](repeating: CGPoint(), count: 2) - open override func renderAxisLine(context: CGContext) - { - guard let xAxis = self.axis as? XAxis else { return } - - if !xAxis.isEnabled || !xAxis.isDrawAxisLineEnabled + open func renderAxisLine(context: CGContext) + { + if !axis.isEnabled || !axis.isDrawAxisLineEnabled { return } context.saveGState() - context.setStrokeColor(xAxis.axisLineColor.cgColor) - context.setLineWidth(xAxis.axisLineWidth) - if xAxis.axisLineDashLengths != nil + context.setStrokeColor(axis.axisLineColor.cgColor) + context.setLineWidth(axis.axisLineWidth) + if axis.axisLineDashLengths != nil { - context.setLineDash(phase: xAxis.axisLineDashPhase, lengths: xAxis.axisLineDashLengths) + context.setLineDash(phase: axis.axisLineDashPhase, lengths: axis.axisLineDashLengths) } else { context.setLineDash(phase: 0.0, lengths: []) } - if xAxis.labelPosition == .top - || xAxis.labelPosition == .topInside - || xAxis.labelPosition == .bothSided + if axis.labelPosition == .top + || axis.labelPosition == .topInside + || axis.labelPosition == .bothSided { _axisLineSegmentsBuffer[0].x = viewPortHandler.contentLeft _axisLineSegmentsBuffer[0].y = viewPortHandler.contentTop @@ -150,9 +267,9 @@ open class XAxisRenderer: AxisRendererBase context.strokeLineSegments(between: _axisLineSegmentsBuffer) } - if xAxis.labelPosition == .bottom - || xAxis.labelPosition == .bottomInside - || xAxis.labelPosition == .bothSided + if axis.labelPosition == .bottom + || axis.labelPosition == .bottomInside + || axis.labelPosition == .bothSided { _axisLineSegmentsBuffer[0].x = viewPortHandler.contentLeft _axisLineSegmentsBuffer[0].y = viewPortHandler.contentBottom @@ -167,10 +284,7 @@ open class XAxisRenderer: AxisRendererBase /// draws the x-labels on the specified y-position @objc open func drawLabels(context: CGContext, pos: CGFloat, anchor: CGPoint) { - guard - let xAxis = self.axis as? XAxis, - let transformer = self.transformer - else { return } + guard let transformer = self.transformer else { return } #if os(OSX) let paraStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle @@ -179,12 +293,12 @@ open class XAxisRenderer: AxisRendererBase #endif paraStyle.alignment = .center - let labelAttrs: [NSAttributedStringKey : Any] = [NSAttributedStringKey.font: xAxis.labelFont, - NSAttributedStringKey.foregroundColor: xAxis.labelTextColor, + let labelAttrs: [NSAttributedStringKey : Any] = [NSAttributedStringKey.font: axis.labelFont, + NSAttributedStringKey.foregroundColor: axis.labelTextColor, NSAttributedStringKey.paragraphStyle: paraStyle] - let labelRotationAngleRadians = xAxis.labelRotationAngle.DEG2RAD + let labelRotationAngleRadians = axis.labelRotationAngle.DEG2RAD - let centeringEnabled = xAxis.isCenterAxisLabelsEnabled + let centeringEnabled = axis.isCenterAxisLabelsEnabled let valueToPixelMatrix = transformer.valueToPixelMatrix @@ -192,18 +306,18 @@ open class XAxisRenderer: AxisRendererBase var labelMaxSize = CGSize() - if xAxis.isWordWrapEnabled + if axis.isWordWrapEnabled { - labelMaxSize.width = xAxis.wordWrapWidthPercent * valueToPixelMatrix.a + labelMaxSize.width = axis.wordWrapWidthPercent * valueToPixelMatrix.a } - let entries = xAxis.entries + let entries = axis.entries for i in stride(from: 0, to: entries.count, by: 1) { if centeringEnabled { - position.x = CGFloat(xAxis.centeredEntries[i]) + position.x = CGFloat(axis.centeredEntries[i]) } else { @@ -215,14 +329,14 @@ open class XAxisRenderer: AxisRendererBase if viewPortHandler.isInBoundsX(position.x) { - let label = xAxis.valueFormatter?.stringForValue(xAxis.entries[i], axis: xAxis) ?? "" + let label = axis.valueFormatter?.stringForValue(axis.entries[i], axis: axis) ?? "" let labelns = label as NSString - if xAxis.isAvoidFirstLastClippingEnabled + if axis.isAvoidFirstLastClippingEnabled { // avoid clipping of the last - if i == xAxis.entryCount - 1 && xAxis.entryCount > 1 + if i == axis.entryCount - 1 && axis.entryCount > 1 { let width = labelns.boundingRect(with: labelMaxSize, options: .usesLineFragmentOrigin, attributes: labelAttrs, context: nil).size.width @@ -271,14 +385,11 @@ open class XAxisRenderer: AxisRendererBase angleRadians: angleRadians) } - open override func renderGridLines(context: CGContext) + open func renderGridLines(context: CGContext) { - guard - let xAxis = self.axis as? XAxis, - let transformer = self.transformer - else { return } + guard let transformer = self.transformer else { return } - if !xAxis.isDrawGridLinesEnabled || !xAxis.isEnabled + if !axis.isDrawGridLinesEnabled || !axis.isEnabled { return } @@ -287,14 +398,14 @@ open class XAxisRenderer: AxisRendererBase defer { context.restoreGState() } context.clip(to: self.gridClippingRect) - context.setShouldAntialias(xAxis.gridAntialiasEnabled) - context.setStrokeColor(xAxis.gridColor.cgColor) - context.setLineWidth(xAxis.gridLineWidth) - context.setLineCap(xAxis.gridLineCap) + context.setShouldAntialias(axis.gridAntialiasEnabled) + context.setStrokeColor(axis.gridColor.cgColor) + context.setLineWidth(axis.gridLineWidth) + context.setLineCap(axis.gridLineCap) - if xAxis.gridLineDashLengths != nil + if axis.gridLineDashLengths != nil { - context.setLineDash(phase: xAxis.gridLineDashPhase, lengths: xAxis.gridLineDashLengths) + context.setLineDash(phase: axis.gridLineDashPhase, lengths: axis.gridLineDashLengths) } else { @@ -305,7 +416,7 @@ open class XAxisRenderer: AxisRendererBase var position = CGPoint(x: 0.0, y: 0.0) - let entries = xAxis.entries + let entries = axis.entries for i in stride(from: 0, to: entries.count, by: 1) { @@ -320,7 +431,7 @@ open class XAxisRenderer: AxisRendererBase @objc open var gridClippingRect: CGRect { var contentRect = viewPortHandler.contentRect - let dx = self.axis?.gridLineWidth ?? 0.0 + let dx = self.axis.gridLineWidth contentRect.origin.x -= dx / 2.0 contentRect.size.width += dx return contentRect @@ -338,14 +449,11 @@ open class XAxisRenderer: AxisRendererBase } } - open override func renderLimitLines(context: CGContext) + open func renderLimitLines(context: CGContext) { - guard - let xAxis = self.axis as? XAxis, - let transformer = self.transformer - else { return } + guard let transformer = self.transformer else { return } - var limitLines = xAxis.limitLines + var limitLines = axis.limitLines if limitLines.count == 0 { diff --git a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift index d2e0c29306..23f2dd75d9 100644 --- a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift @@ -20,9 +20,9 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer { internal weak var chart: BarChartView? - @objc public init(viewPortHandler: ViewPortHandler, xAxis: XAxis?, transformer: Transformer?, chart: BarChartView) + @objc public init(viewPortHandler: ViewPortHandler, axis: XAxis, transformer: Transformer?, chart: BarChartView) { - super.init(viewPortHandler: viewPortHandler, xAxis: xAxis, transformer: transformer) + super.init(viewPortHandler: viewPortHandler, axis: axis, transformer: transformer) self.chart = chart } @@ -58,50 +58,42 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer open override func computeSize() { - guard let - xAxis = self.axis as? XAxis - else { return } - - let longest = xAxis.getLongestLabel() as NSString + let longest = axis.getLongestLabel() as NSString - let labelSize = longest.size(withAttributes: [NSAttributedStringKey.font: xAxis.labelFont]) + let labelSize = longest.size(withAttributes: [NSAttributedStringKey.font: axis.labelFont]) - let labelWidth = floor(labelSize.width + xAxis.xOffset * 3.5) + let labelWidth = floor(labelSize.width + axis.xOffset * 3.5) let labelHeight = labelSize.height - let labelRotatedSize = CGSize(width: labelSize.width, height: labelHeight).rotatedBy(degrees: xAxis.labelRotationAngle) + let labelRotatedSize = CGSize(width: labelSize.width, height: labelHeight).rotatedBy(degrees: axis.labelRotationAngle) - xAxis.labelWidth = labelWidth - xAxis.labelHeight = labelHeight - xAxis.labelRotatedWidth = round(labelRotatedSize.width + xAxis.xOffset * 3.5) - xAxis.labelRotatedHeight = round(labelRotatedSize.height) + axis.labelWidth = labelWidth + axis.labelHeight = labelHeight + axis.labelRotatedWidth = round(labelRotatedSize.width + axis.xOffset * 3.5) + axis.labelRotatedHeight = round(labelRotatedSize.height) } open override func renderAxisLabels(context: CGContext) { - guard - let xAxis = self.axis as? XAxis - else { return } - - if !xAxis.isEnabled || !xAxis.isDrawLabelsEnabled || chart?.data === nil + if !axis.isEnabled || !axis.isDrawLabelsEnabled || chart?.data === nil { return } - let xoffset = xAxis.xOffset + let xoffset = axis.xOffset - if xAxis.labelPosition == .top + if axis.labelPosition == .top { drawLabels(context: context, pos: viewPortHandler.contentRight + xoffset, anchor: CGPoint(x: 0.0, y: 0.5)) } - else if xAxis.labelPosition == .topInside + else if axis.labelPosition == .topInside { drawLabels(context: context, pos: viewPortHandler.contentRight - xoffset, anchor: CGPoint(x: 1.0, y: 0.5)) } - else if xAxis.labelPosition == .bottom + else if axis.labelPosition == .bottom { drawLabels(context: context, pos: viewPortHandler.contentLeft - xoffset, anchor: CGPoint(x: 1.0, y: 0.5)) } - else if xAxis.labelPosition == .bottomInside + else if axis.labelPosition == .bottomInside { drawLabels(context: context, pos: viewPortHandler.contentLeft + xoffset, anchor: CGPoint(x: 0.0, y: 0.5)) } @@ -115,21 +107,18 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer /// draws the x-labels on the specified y-position open override func drawLabels(context: CGContext, pos: CGFloat, anchor: CGPoint) { - guard - let xAxis = self.axis as? XAxis, - let transformer = self.transformer - else { return } + guard let transformer = self.transformer else { return } - let labelFont = xAxis.labelFont - let labelTextColor = xAxis.labelTextColor - let labelRotationAngleRadians = xAxis.labelRotationAngle.DEG2RAD + let labelFont = axis.labelFont + let labelTextColor = axis.labelTextColor + let labelRotationAngleRadians = axis.labelRotationAngle.DEG2RAD - let centeringEnabled = xAxis.isCenterAxisLabelsEnabled + let centeringEnabled = axis.isCenterAxisLabelsEnabled // pre allocate to save performance (dont allocate in loop) var position = CGPoint(x: 0.0, y: 0.0) - for i in stride(from: 0, to: xAxis.entryCount, by: 1) + for i in stride(from: 0, to: axis.entryCount, by: 1) { // only fill x values @@ -137,18 +126,18 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer if centeringEnabled { - position.y = CGFloat(xAxis.centeredEntries[i]) + position.y = CGFloat(axis.centeredEntries[i]) } else { - position.y = CGFloat(xAxis.entries[i]) + position.y = CGFloat(axis.entries[i]) } transformer.pointValueToPixel(&position) if viewPortHandler.isInBoundsY(position.y) { - if let label = xAxis.valueFormatter?.stringForValue(xAxis.entries[i], axis: xAxis) + if let label = axis.valueFormatter?.stringForValue(axis.entries[i], axis: axis) { drawLabel( context: context, @@ -184,7 +173,7 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer open override var gridClippingRect: CGRect { var contentRect = viewPortHandler.contentRect - let dy = self.axis?.gridLineWidth ?? 0.0 + let dy = self.axis.gridLineWidth contentRect.origin.y -= dy / 2.0 contentRect.size.height += dy return contentRect @@ -205,29 +194,27 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer open override func renderAxisLine(context: CGContext) { - guard let xAxis = self.axis as? XAxis else { return } - - if !xAxis.isEnabled || !xAxis.isDrawAxisLineEnabled + if !axis.isEnabled || !axis.isDrawAxisLineEnabled { return } context.saveGState() - context.setStrokeColor(xAxis.axisLineColor.cgColor) - context.setLineWidth(xAxis.axisLineWidth) - if xAxis.axisLineDashLengths != nil + context.setStrokeColor(axis.axisLineColor.cgColor) + context.setLineWidth(axis.axisLineWidth) + if axis.axisLineDashLengths != nil { - context.setLineDash(phase: xAxis.axisLineDashPhase, lengths: xAxis.axisLineDashLengths) + context.setLineDash(phase: axis.axisLineDashPhase, lengths: axis.axisLineDashLengths) } else { context.setLineDash(phase: 0.0, lengths: []) } - if xAxis.labelPosition == .top || - xAxis.labelPosition == .topInside || - xAxis.labelPosition == .bothSided + if axis.labelPosition == .top || + axis.labelPosition == .topInside || + axis.labelPosition == .bothSided { context.beginPath() context.move(to: CGPoint(x: viewPortHandler.contentRight, y: viewPortHandler.contentTop)) @@ -235,9 +222,9 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer context.strokePath() } - if xAxis.labelPosition == .bottom || - xAxis.labelPosition == .bottomInside || - xAxis.labelPosition == .bothSided + if axis.labelPosition == .bottom || + axis.labelPosition == .bottomInside || + axis.labelPosition == .bothSided { context.beginPath() context.move(to: CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) @@ -250,12 +237,9 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer open override func renderLimitLines(context: CGContext) { - guard - let xAxis = self.axis as? XAxis, - let transformer = self.transformer - else { return } + guard let transformer = self.transformer else { return } - var limitLines = xAxis.limitLines + var limitLines = axis.limitLines if limitLines.count == 0 { diff --git a/Source/Charts/Renderers/XAxisRendererRadarChart.swift b/Source/Charts/Renderers/XAxisRendererRadarChart.swift index ab57149cce..8b92a10b8b 100644 --- a/Source/Charts/Renderers/XAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererRadarChart.swift @@ -20,28 +20,25 @@ open class XAxisRendererRadarChart: XAxisRenderer { @objc open weak var chart: RadarChartView? - @objc public init(viewPortHandler: ViewPortHandler, xAxis: XAxis?, chart: RadarChartView) + @objc public init(viewPortHandler: ViewPortHandler, axis: XAxis, chart: RadarChartView) { - super.init(viewPortHandler: viewPortHandler, xAxis: xAxis, transformer: nil) + super.init(viewPortHandler: viewPortHandler, axis: axis, transformer: nil) self.chart = chart } open override func renderAxisLabels(context: CGContext) { - guard let - xAxis = axis as? XAxis, - let chart = chart - else { return } + guard let chart = chart else { return } - if !xAxis.isEnabled || !xAxis.isDrawLabelsEnabled + if !axis.isEnabled || !axis.isDrawLabelsEnabled { return } - let labelFont = xAxis.labelFont - let labelTextColor = xAxis.labelTextColor - let labelRotationAngleRadians = xAxis.labelRotationAngle.RAD2DEG + let labelFont = axis.labelFont + let labelTextColor = axis.labelTextColor + let labelRotationAngleRadians = axis.labelRotationAngle.RAD2DEG let drawLabelAnchor = CGPoint(x: 0.5, y: 0.25) let sliceangle = chart.sliceAngle @@ -54,16 +51,16 @@ open class XAxisRendererRadarChart: XAxisRenderer for i in stride(from: 0, to: chart.data?.maxEntryCountSet?.entryCount ?? 0, by: 1) { - let label = xAxis.valueFormatter?.stringForValue(Double(i), axis: xAxis) ?? "" + let label = axis.valueFormatter?.stringForValue(Double(i), axis: axis) ?? "" let angle = (sliceangle * CGFloat(i) + chart.rotationAngle).truncatingRemainder(dividingBy: 360.0) - let p = ChartUtils.getPosition(center: center, dist: CGFloat(chart.yRange) * factor + xAxis.labelRotatedWidth / 2.0, angle: angle) + let p = ChartUtils.getPosition(center: center, dist: CGFloat(chart.yRange) * factor + axis.labelRotatedWidth / 2.0, angle: angle) drawLabel(context: context, formattedLabel: label, x: p.x, - y: p.y - xAxis.labelRotatedHeight / 2.0, + y: p.y - axis.labelRotatedHeight / 2.0, attributes: [NSAttributedStringKey.font: labelFont, NSAttributedStringKey.foregroundColor: labelTextColor], anchor: drawLabelAnchor, angleRadians: labelRotationAngleRadians) diff --git a/Source/Charts/Renderers/YAxisRenderer.swift b/Source/Charts/Renderers/YAxisRenderer.swift index e5b0802575..8ffbf55965 100644 --- a/Source/Charts/Renderers/YAxisRenderer.swift +++ b/Source/Charts/Renderers/YAxisRenderer.swift @@ -17,28 +17,34 @@ import CoreGraphics #endif @objc(ChartYAxisRenderer) -open class YAxisRenderer: AxisRendererBase +open class YAxisRenderer: NSObject, AxisRenderer { - @objc public init(viewPortHandler: ViewPortHandler, yAxis: YAxis?, transformer: Transformer?) + public let viewPortHandler: ViewPortHandler + public let axis: YAxis + public let transformer: Transformer? + + @objc public init(viewPortHandler: ViewPortHandler, axis: YAxis, transformer: Transformer?) { - super.init(viewPortHandler: viewPortHandler, transformer: transformer, axis: yAxis) + self.viewPortHandler = viewPortHandler + self.axis = axis + self.transformer = transformer + + super.init() } /// draws the y-axis labels to the screen - open override func renderAxisLabels(context: CGContext) + open func renderAxisLabels(context: CGContext) { - guard let yAxis = self.axis as? YAxis else { return } - - if !yAxis.isEnabled || !yAxis.isDrawLabelsEnabled + if !axis.isEnabled || !axis.isDrawLabelsEnabled { return } - let xoffset = yAxis.xOffset - let yoffset = yAxis.labelFont.lineHeight / 2.5 + yAxis.yOffset + let xoffset = axis.xOffset + let yoffset = axis.labelFont.lineHeight / 2.5 + axis.yOffset - let dependency = yAxis.axisDependency - let labelPosition = yAxis.labelPosition + let dependency = axis.axisDependency + let labelPosition = axis.labelPosition var xPos = CGFloat(0.0) @@ -76,33 +82,31 @@ open class YAxisRenderer: AxisRendererBase context: context, fixedPosition: xPos, positions: transformedPositions(), - offset: yoffset - yAxis.labelFont.lineHeight, + offset: yoffset - axis.labelFont.lineHeight, textAlign: textAlign) } - open override func renderAxisLine(context: CGContext) + open func renderAxisLine(context: CGContext) { - guard let yAxis = self.axis as? YAxis else { return } - - if !yAxis.isEnabled || !yAxis.drawAxisLineEnabled + if !axis.isEnabled || !axis.drawAxisLineEnabled { return } context.saveGState() - context.setStrokeColor(yAxis.axisLineColor.cgColor) - context.setLineWidth(yAxis.axisLineWidth) - if yAxis.axisLineDashLengths != nil + context.setStrokeColor(axis.axisLineColor.cgColor) + context.setLineWidth(axis.axisLineWidth) + if axis.axisLineDashLengths != nil { - context.setLineDash(phase: yAxis.axisLineDashPhase, lengths: yAxis.axisLineDashLengths) + context.setLineDash(phase: axis.axisLineDashPhase, lengths: axis.axisLineDashLengths) } else { context.setLineDash(phase: 0.0, lengths: []) } - if yAxis.axisDependency == .left + if axis.axisDependency == .left { context.beginPath() context.move(to: CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) @@ -128,19 +132,15 @@ open class YAxisRenderer: AxisRendererBase offset: CGFloat, textAlign: NSTextAlignment) { - guard - let yAxis = self.axis as? YAxis - else { return } + let labelFont = axis.labelFont + let labelTextColor = axis.labelTextColor - let labelFont = yAxis.labelFont - let labelTextColor = yAxis.labelTextColor - - let from = yAxis.isDrawBottomYLabelEntryEnabled ? 0 : 1 - let to = yAxis.isDrawTopYLabelEntryEnabled ? yAxis.entryCount : (yAxis.entryCount - 1) + let from = axis.isDrawBottomYLabelEntryEnabled ? 0 : 1 + let to = axis.isDrawTopYLabelEntryEnabled ? axis.entryCount : (axis.entryCount - 1) for i in stride(from: from, to: to, by: 1) { - let text = yAxis.getFormattedLabel(i) + let text = axis.getFormattedLabel(i) ChartUtils.drawText( context: context, @@ -151,18 +151,14 @@ open class YAxisRenderer: AxisRendererBase } } - open override func renderGridLines(context: CGContext) + open func renderGridLines(context: CGContext) { - guard let - yAxis = self.axis as? YAxis - else { return } - - if !yAxis.isEnabled + if !axis.isEnabled { return } - if yAxis.drawGridLinesEnabled + if axis.drawGridLinesEnabled { let positions = transformedPositions() @@ -170,14 +166,14 @@ open class YAxisRenderer: AxisRendererBase defer { context.restoreGState() } context.clip(to: self.gridClippingRect) - context.setShouldAntialias(yAxis.gridAntialiasEnabled) - context.setStrokeColor(yAxis.gridColor.cgColor) - context.setLineWidth(yAxis.gridLineWidth) - context.setLineCap(yAxis.gridLineCap) + context.setShouldAntialias(axis.gridAntialiasEnabled) + context.setStrokeColor(axis.gridColor.cgColor) + context.setLineWidth(axis.gridLineWidth) + context.setLineCap(axis.gridLineCap) - if yAxis.gridLineDashLengths != nil + if axis.gridLineDashLengths != nil { - context.setLineDash(phase: yAxis.gridLineDashPhase, lengths: yAxis.gridLineDashLengths) + context.setLineDash(phase: axis.gridLineDashPhase, lengths: axis.gridLineDashLengths) } else @@ -192,7 +188,7 @@ open class YAxisRenderer: AxisRendererBase } } - if yAxis.drawZeroLineEnabled + if axis.drawZeroLineEnabled { // draw zero line drawZeroLine(context: context) @@ -202,7 +198,7 @@ open class YAxisRenderer: AxisRendererBase @objc open var gridClippingRect: CGRect { var contentRect = viewPortHandler.contentRect - let dy = self.axis?.gridLineWidth ?? 0.0 + let dy = self.axis.gridLineWidth contentRect.origin.y -= dy / 2.0 contentRect.size.height += dy return contentRect @@ -220,17 +216,14 @@ open class YAxisRenderer: AxisRendererBase @objc open func transformedPositions() -> [CGPoint] { - guard - let yAxis = self.axis as? YAxis, - let transformer = self.transformer - else { return [CGPoint]() } + guard let transformer = self.transformer else { return [] } var positions = [CGPoint]() - positions.reserveCapacity(yAxis.entryCount) + positions.reserveCapacity(axis.entryCount) - let entries = yAxis.entries + let entries = axis.entries - for i in stride(from: 0, to: yAxis.entryCount, by: 1) + for i in stride(from: 0, to: axis.entryCount, by: 1) { positions.append(CGPoint(x: 0.0, y: entries[i])) } @@ -244,27 +237,26 @@ open class YAxisRenderer: AxisRendererBase @objc open func drawZeroLine(context: CGContext) { guard - let yAxis = self.axis as? YAxis, let transformer = self.transformer, - let zeroLineColor = yAxis.zeroLineColor + let zeroLineColor = axis.zeroLineColor else { return } context.saveGState() defer { context.restoreGState() } var clippingRect = viewPortHandler.contentRect - clippingRect.origin.y -= yAxis.zeroLineWidth / 2.0 - clippingRect.size.height += yAxis.zeroLineWidth + clippingRect.origin.y -= axis.zeroLineWidth / 2.0 + clippingRect.size.height += axis.zeroLineWidth context.clip(to: clippingRect) context.setStrokeColor(zeroLineColor.cgColor) - context.setLineWidth(yAxis.zeroLineWidth) + context.setLineWidth(axis.zeroLineWidth) let pos = transformer.pixelForValues(x: 0.0, y: 0.0) - - if yAxis.zeroLineDashLengths != nil + + if axis.zeroLineDashLengths != nil { - context.setLineDash(phase: yAxis.zeroLineDashPhase, lengths: yAxis.zeroLineDashLengths!) + context.setLineDash(phase: axis.zeroLineDashPhase, lengths: axis.zeroLineDashLengths!) } else { @@ -276,14 +268,11 @@ open class YAxisRenderer: AxisRendererBase context.drawPath(using: CGPathDrawingMode.stroke) } - open override func renderLimitLines(context: CGContext) + open func renderLimitLines(context: CGContext) { - guard - let yAxis = self.axis as? YAxis, - let transformer = self.transformer - else { return } + guard let transformer = self.transformer else { return } - var limitLines = yAxis.limitLines + var limitLines = axis.limitLines if limitLines.count == 0 { @@ -347,46 +336,196 @@ open class YAxisRenderer: AxisRendererBase if l.labelPosition == .rightTop { ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentRight - xOffset, - y: position.y - yOffset), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) + text: label, + point: CGPoint( + x: viewPortHandler.contentRight - xOffset, + y: position.y - yOffset), + align: .right, + attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) } else if l.labelPosition == .rightBottom { ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentRight - xOffset, - y: position.y + yOffset - labelLineHeight), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) + text: label, + point: CGPoint( + x: viewPortHandler.contentRight - xOffset, + y: position.y + yOffset - labelLineHeight), + align: .right, + attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) } else if l.labelPosition == .leftTop { ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentLeft + xOffset, - y: position.y - yOffset), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) + text: label, + point: CGPoint( + x: viewPortHandler.contentLeft + xOffset, + y: position.y - yOffset), + align: .left, + attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) } else { ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentLeft + xOffset, - y: position.y + yOffset - labelLineHeight), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) + text: label, + point: CGPoint( + x: viewPortHandler.contentLeft + xOffset, + y: position.y + yOffset - labelLineHeight), + align: .left, + attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) } } } context.restoreGState() } + + @objc open func computeAxis(min: Double, max: Double, inverted: Bool) + { + var min = min, max = max + + if let transformer = self.transformer + { + // calculate the starting and entry point of the y-labels (depending on zoom / contentrect bounds) + if viewPortHandler.contentWidth > 10.0 && !viewPortHandler.isFullyZoomedOutY + { + let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) + let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) + + if !inverted + { + min = Double(p2.y) + max = Double(p1.y) + } + else + { + min = Double(p1.y) + max = Double(p2.y) + } + } + } + + computeAxisValues(min: min, max: max) + } + + @objc open func computeAxisValues(min: Double, max: Double) + { + let yMin = min + let yMax = max + + let labelCount = axis.labelCount + let range = abs(yMax - yMin) + + if labelCount == 0 || range <= 0 || range.isInfinite + { + axis.entries = [Double]() + axis.centeredEntries = [Double]() + return + } + + // Find out how much spacing (in y value space) between axis values + let rawInterval = range / Double(labelCount) + var interval = ChartUtils.roundToNextSignificant(number: Double(rawInterval)) + + // If granularity is enabled, then do not allow the interval to go below specified granularity. + // This is used to avoid repeated values when rounding values for display. + if axis.granularityEnabled + { + interval = interval < axis.granularity ? axis.granularity : interval + } + + // Normalize interval + let intervalMagnitude = ChartUtils.roundToNextSignificant(number: pow(10.0, Double(Int(log10(interval))))) + let intervalSigDigit = Int(interval / intervalMagnitude) + if intervalSigDigit > 5 + { + // Use one order of magnitude higher, to avoid intervals like 0.9 or 90 + interval = floor(10.0 * Double(intervalMagnitude)) + } + + var n = axis.centerAxisLabelsEnabled ? 1 : 0 + + // force label count + if axis.isForceLabelsEnabled + { + interval = Double(range) / Double(labelCount - 1) + + // Ensure stops contains at least n elements. + axis.entries.removeAll(keepingCapacity: true) + axis.entries.reserveCapacity(labelCount) + + var v = yMin + + for _ in 0 ..< labelCount + { + axis.entries.append(v) + v += interval + } + + n = labelCount + } + else + { + // no forced count + + var first = interval == 0.0 ? 0.0 : ceil(yMin / interval) * interval + + if axis.centerAxisLabelsEnabled + { + first -= interval + } + + let last = interval == 0.0 ? 0.0 : ChartUtils.nextUp(floor(yMax / interval) * interval) + + if interval != 0.0 && last != first + { + for _ in stride(from: first, through: last, by: interval) + { + n += 1 + } + } + + // Ensure stops contains at least n elements. + axis.entries.removeAll(keepingCapacity: true) + axis.entries.reserveCapacity(labelCount) + + var f = first + var i = 0 + while i < n + { + if f == 0.0 + { + // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) + f = 0.0 + } + + axis.entries.append(Double(f)) + + f += interval + i += 1 + } + } + + // set decimals + if interval < 1 + { + axis.decimals = Int(ceil(-log10(interval))) + } + else + { + axis.decimals = 0 + } + + if axis.centerAxisLabelsEnabled + { + axis.centeredEntries.reserveCapacity(n) + axis.centeredEntries.removeAll() + + let offset: Double = interval / 2.0 + + for i in 0 ..< n + { + axis.centeredEntries.append(axis.entries[i] + offset) + } + } + } } diff --git a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift index ba7c51f17f..163a74d146 100644 --- a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift @@ -18,9 +18,9 @@ import CoreGraphics open class YAxisRendererHorizontalBarChart: YAxisRenderer { - public override init(viewPortHandler: ViewPortHandler, yAxis: YAxis?, transformer: Transformer?) + public override init(viewPortHandler: ViewPortHandler, axis: YAxis, transformer: Transformer?) { - super.init(viewPortHandler: viewPortHandler, yAxis: yAxis, transformer: transformer) + super.init(viewPortHandler: viewPortHandler, axis: axis, transformer: transformer) } /// Computes the axis values. @@ -54,18 +54,16 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer /// draws the y-axis labels to the screen open override func renderAxisLabels(context: CGContext) { - guard let yAxis = axis as? YAxis else { return } - - if !yAxis.isEnabled || !yAxis.isDrawLabelsEnabled + if !axis.isEnabled || !axis.isDrawLabelsEnabled { return } - let lineHeight = yAxis.labelFont.lineHeight + let lineHeight = axis.labelFont.lineHeight let baseYOffset: CGFloat = 2.5 - let dependency = yAxis.axisDependency - let labelPosition = yAxis.labelPosition + let dependency = axis.axisDependency + let labelPosition = axis.labelPosition var yPos: CGFloat = 0.0 @@ -100,32 +98,30 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer context: context, fixedPosition: yPos, positions: transformedPositions(), - offset: yAxis.yOffset) + offset: axis.yOffset) } open override func renderAxisLine(context: CGContext) { - guard let yAxis = axis as? YAxis else { return } - - if !yAxis.isEnabled || !yAxis.drawAxisLineEnabled + if !axis.isEnabled || !axis.drawAxisLineEnabled { return } context.saveGState() - context.setStrokeColor(yAxis.axisLineColor.cgColor) - context.setLineWidth(yAxis.axisLineWidth) - if yAxis.axisLineDashLengths != nil + context.setStrokeColor(axis.axisLineColor.cgColor) + context.setLineWidth(axis.axisLineWidth) + if axis.axisLineDashLengths != nil { - context.setLineDash(phase: yAxis.axisLineDashPhase, lengths: yAxis.axisLineDashLengths) + context.setLineDash(phase: axis.axisLineDashPhase, lengths: axis.axisLineDashLengths) } else { context.setLineDash(phase: 0.0, lengths: []) } - if yAxis.axisDependency == .left + if axis.axisDependency == .left { context.beginPath() context.move(to: CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) @@ -149,19 +145,15 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer positions: [CGPoint], offset: CGFloat) { - guard let - yAxis = axis as? YAxis - else { return } - - let labelFont = yAxis.labelFont - let labelTextColor = yAxis.labelTextColor + let labelFont = axis.labelFont + let labelTextColor = axis.labelTextColor - let from = yAxis.isDrawBottomYLabelEntryEnabled ? 0 : 1 - let to = yAxis.isDrawTopYLabelEntryEnabled ? yAxis.entryCount : (yAxis.entryCount - 1) + let from = axis.isDrawBottomYLabelEntryEnabled ? 0 : 1 + let to = axis.isDrawTopYLabelEntryEnabled ? axis.entryCount : (axis.entryCount - 1) for i in stride(from: from, to: to, by: 1) { - let text = yAxis.getFormattedLabel(i) + let text = axis.getFormattedLabel(i) ChartUtils.drawText( context: context, @@ -175,7 +167,7 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer open override var gridClippingRect: CGRect { var contentRect = viewPortHandler.contentRect - let dx = self.axis?.gridLineWidth ?? 0.0 + let dx = self.axis.gridLineWidth contentRect.origin.x -= dx / 2.0 contentRect.size.width += dx return contentRect @@ -193,17 +185,14 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer open override func transformedPositions() -> [CGPoint] { - guard - let yAxis = self.axis as? YAxis, - let transformer = self.transformer - else { return [CGPoint]() } + guard let transformer = self.transformer else { return [] } var positions = [CGPoint]() - positions.reserveCapacity(yAxis.entryCount) + positions.reserveCapacity(axis.entryCount) - let entries = yAxis.entries + let entries = axis.entries - for i in stride(from: 0, to: yAxis.entryCount, by: 1) + for i in stride(from: 0, to: axis.entryCount, by: 1) { positions.append(CGPoint(x: entries[i], y: 0.0)) } @@ -217,27 +206,26 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer open override func drawZeroLine(context: CGContext) { guard - let yAxis = self.axis as? YAxis, let transformer = self.transformer, - let zeroLineColor = yAxis.zeroLineColor + let zeroLineColor = axis.zeroLineColor else { return } context.saveGState() defer { context.restoreGState() } var clippingRect = viewPortHandler.contentRect - clippingRect.origin.x -= yAxis.zeroLineWidth / 2.0 - clippingRect.size.width += yAxis.zeroLineWidth + clippingRect.origin.x -= axis.zeroLineWidth / 2.0 + clippingRect.size.width += axis.zeroLineWidth context.clip(to: clippingRect) context.setStrokeColor(zeroLineColor.cgColor) - context.setLineWidth(yAxis.zeroLineWidth) + context.setLineWidth(axis.zeroLineWidth) let pos = transformer.pixelForValues(x: 0.0, y: 0.0) - if yAxis.zeroLineDashLengths != nil + if axis.zeroLineDashLengths != nil { - context.setLineDash(phase: yAxis.zeroLineDashPhase, lengths: yAxis.zeroLineDashLengths!) + context.setLineDash(phase: axis.zeroLineDashPhase, lengths: axis.zeroLineDashLengths!) } else { @@ -253,12 +241,9 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer open override func renderLimitLines(context: CGContext) { - guard - let yAxis = axis as? YAxis, - let transformer = self.transformer - else { return } + guard let transformer = self.transformer else { return } - var limitLines = yAxis.limitLines + var limitLines = axis.limitLines if limitLines.count <= 0 { diff --git a/Source/Charts/Renderers/YAxisRendererRadarChart.swift b/Source/Charts/Renderers/YAxisRendererRadarChart.swift index b23b987556..3ba9787c9e 100644 --- a/Source/Charts/Renderers/YAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererRadarChart.swift @@ -20,19 +20,15 @@ open class YAxisRendererRadarChart: YAxisRenderer { private weak var chart: RadarChartView? - @objc public init(viewPortHandler: ViewPortHandler, yAxis: YAxis?, chart: RadarChartView) + @objc public init(viewPortHandler: ViewPortHandler, axis: YAxis, chart: RadarChartView) { - super.init(viewPortHandler: viewPortHandler, yAxis: yAxis, transformer: nil) + super.init(viewPortHandler: viewPortHandler, axis: axis, transformer: nil) self.chart = chart } open override func computeAxisValues(min yMin: Double, max yMax: Double) { - guard let - axis = axis as? YAxis - else { return } - let labelCount = axis.labelCount let range = abs(yMax - yMin) @@ -161,34 +157,31 @@ open class YAxisRendererRadarChart: YAxisRenderer open override func renderAxisLabels(context: CGContext) { - guard let - yAxis = axis as? YAxis, - let chart = chart - else { return } + guard let chart = chart else { return } - if !yAxis.isEnabled || !yAxis.isDrawLabelsEnabled + if !axis.isEnabled || !axis.isDrawLabelsEnabled { return } - let labelFont = yAxis.labelFont - let labelTextColor = yAxis.labelTextColor + let labelFont = axis.labelFont + let labelTextColor = axis.labelTextColor let center = chart.centerOffsets let factor = chart.factor - let labelLineHeight = yAxis.labelFont.lineHeight + let labelLineHeight = axis.labelFont.lineHeight - let from = yAxis.isDrawBottomYLabelEntryEnabled ? 0 : 1 - let to = yAxis.isDrawTopYLabelEntryEnabled ? yAxis.entryCount : (yAxis.entryCount - 1) + let from = axis.isDrawBottomYLabelEntryEnabled ? 0 : 1 + let to = axis.isDrawTopYLabelEntryEnabled ? axis.entryCount : (axis.entryCount - 1) for j in stride(from: from, to: to, by: 1) { - let r = CGFloat(yAxis.entries[j] - yAxis._axisMinimum) * factor + let r = CGFloat(axis.entries[j] - axis._axisMinimum) * factor let p = ChartUtils.getPosition(center: center, dist: r, angle: chart.rotationAngle) - let label = yAxis.getFormattedLabel(j) + let label = axis.getFormattedLabel(j) ChartUtils.drawText( context: context, @@ -205,12 +198,11 @@ open class YAxisRendererRadarChart: YAxisRenderer open override func renderLimitLines(context: CGContext) { guard - let yAxis = axis as? YAxis, let chart = chart, let data = chart.data else { return } - var limitLines = yAxis.limitLines + var limitLines = axis.limitLines if limitLines.count == 0 { From 85573eec894e4bc09d37bb87bd5826da3fe139d3 Mon Sep 17 00:00:00 2001 From: jjatie Date: Sat, 6 Jan 2018 00:25:32 -0400 Subject: [PATCH 03/84] Chartviewbase redundant ivar (#3045) * Fixed using wrong axis (Issue #2257) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 (#2874) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 * add combined chart unit tests for iOS, tvOS (macOS only have build process) * use iterater rather than index * Removed redundant ivars in BarLineChartViewBase (#3043) * Removed redundant ivars in favour of proper access control * Moved initialization of axes to their declaration to keep the same optionality exposed. * Update 4.0.0 with master (#3135) * Replaced relevant `ChartUtils` methods with `Double` extensions (#2994) * Replaced relevant `ChartUtils` methods with `Double` extensions Improves readability. `nextUp` is built in and provides the same functionality. * Updated `ChartUtilsTests` to match changes * add option to build demo projects unit tests on iOS (#3121) * add option to build demo projects unit tests on iOS * add ChartsDemo-OSX build test. * Update ViewPortHandler.swift (#3143) fix a small bug * Refactored ChartUtils method into CGPoint extension (#3087) * Refactored ChartUtils method into CGPoint extension * Replaced ChartUtils.defaultValueFormatter() * Codestyle fixes * ChartViewBase cleanup For the most part, condensing logic and using `guard` where appropriate Removed optionality of many internal variables as they were only optional to allow for deferred initialization. This is now replaced with lazy vars. Removed empty initializer overrides. `fileprivate` is now `private` * Removed redundant ivars In favour of proper access control * Fixes after merge * Renamed `animator` to `chartAnimator` on `ChartViewBase` to no conflict with `NSView`'s `animator()` method. * pulled latest master * Code style fix * Removed AxisRendererBase.swift * Fixed demos --- Charts.xcodeproj/project.pbxproj | 4 + .../Demos/BarDemoViewController.swift | 2 +- .../Demos/LineDemoViewController.swift | 2 +- .../Demos/PieDemoViewController.swift | 2 +- .../Demos/RadarDemoViewController.swift | 2 +- .../Demos/CombinedChartViewController.m | 4 +- ChartsDemo/Swift/DemoBaseViewController.swift | 6 +- .../Demos/AnotherBarChartViewController.swift | 2 +- .../Demos/BubbleChartViewController.swift | 2 +- .../CandleStickChartViewController.swift | 2 +- .../ColoredLineChartViewController.swift | 2 +- .../Demos/CombinedChartViewController.swift | 2 +- .../Demos/LineChart1ViewController.swift | 2 +- .../Demos/LineChart2ViewController.swift | 2 +- .../Demos/LineChartFilledViewController.swift | 2 +- .../Demos/LineChartTimeViewController.swift | 2 +- .../MultipleBarChartViewController.swift | 2 +- .../MultipleLinesChartViewController.swift | 2 +- ...egativeStackedBarChartViewController.swift | 2 +- ...sitiveNegativeBarChartViewController.swift | 2 +- .../Demos/RadarChartViewController.swift | 2 +- .../Demos/ScatterChartViewController.swift | 4 +- .../Demos/SinusBarChartViewController.swift | 2 +- .../Demos/StackedBarChartViewController.swift | 2 +- Rakefile | 64 ++- Source/Charts/Charts/BarChartView.swift | 18 +- .../Charts/Charts/BarLineChartViewBase.swift | 368 +++++++-------- Source/Charts/Charts/BubbleChartView.swift | 4 +- .../Charts/Charts/CandleStickChartView.swift | 4 +- Source/Charts/Charts/ChartViewBase.swift | 418 +++++++----------- Source/Charts/Charts/CombinedChartView.swift | 16 +- .../Charts/HorizontalBarChartView.swift | 44 +- Source/Charts/Charts/LineChartView.swift | 4 +- Source/Charts/Charts/PieChartView.swift | 36 +- .../Charts/Charts/PieRadarChartViewBase.swift | 44 +- Source/Charts/Charts/RadarChartView.swift | 39 +- Source/Charts/Charts/ScatterChartView.swift | 4 +- .../Implementations/ChartBaseDataSet.swift | 2 - .../Standard/CombinedChartData.swift | 42 +- .../Charts/Highlight/RadarHighlighter.swift | 6 +- .../Charts/Renderers/RadarChartRenderer.swift | 34 +- Source/Charts/Renderers/XAxisRenderer.swift | 6 +- .../XAxisRendererHorizontalBarChart.swift | 2 +- .../Renderers/XAxisRendererRadarChart.swift | 4 +- Source/Charts/Renderers/YAxisRenderer.swift | 6 +- .../Renderers/YAxisRendererRadarChart.swift | 10 +- Source/Charts/Utils/ChartUtils.swift | 108 +++-- Source/Charts/Utils/ViewPortHandler.swift | 2 +- Tests/Charts/ChartUtilsTests.swift | 12 +- Tests/Charts/CombinedChartTests.swift | 104 +++++ ...RightAxisDependency_iOS_375.0_667.0@2x.png | Bin 0 -> 104196 bytes ...RightAxisDependency_tvOS_1920.0_1080.0.png | Bin 0 -> 40166 bytes ...faultAxisDependency_iOS_375.0_667.0@2x.png | Bin 0 -> 104196 bytes ...faultAxisDependency_tvOS_1920.0_1080.0.png | Bin 0 -> 40166 bytes ...RightAxisDependency_iOS_375.0_667.0@2x.png | Bin 0 -> 102654 bytes ...RightAxisDependency_tvOS_1920.0_1080.0.png | Bin 0 -> 40624 bytes 56 files changed, 723 insertions(+), 736 deletions(-) create mode 100644 Tests/Charts/CombinedChartTests.swift create mode 100644 Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testAllRightAxisDependency_iOS_375.0_667.0@2x.png create mode 100644 Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testAllRightAxisDependency_tvOS_1920.0_1080.0.png create mode 100644 Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testDefaultAxisDependency_iOS_375.0_667.0@2x.png create mode 100644 Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testDefaultAxisDependency_tvOS_1920.0_1080.0.png create mode 100644 Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testLeftRightAxisDependency_iOS_375.0_667.0@2x.png create mode 100644 Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testLeftRightAxisDependency_tvOS_1920.0_1080.0.png diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index ef673fe70e..7bd02ef15b 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -110,6 +110,7 @@ B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */; }; B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */; }; B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */; }; + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */; }; B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */; }; B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */; }; BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9922F0641F7955DC6CD324 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -267,6 +268,7 @@ B137428B41C143D5115726C4 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Source/Charts/Components/Description.swift; sourceTree = ""; }; B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift; sourceTree = ""; }; B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift; sourceTree = ""; }; + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CombinedChartTests.swift; path = Tests/Charts/CombinedChartTests.swift; sourceTree = ""; }; BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedMoveViewJob.swift; path = Source/Charts/Jobs/AnimatedMoveViewJob.swift; sourceTree = ""; }; BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartView.swift; path = Source/Charts/Charts/CandleStickChartView.swift; sourceTree = ""; }; BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererRadarChart.swift; path = Source/Charts/Renderers/XAxisRendererRadarChart.swift; sourceTree = ""; }; @@ -549,6 +551,7 @@ 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */, 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */, 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */, + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */, D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */, 064989451F5C99C7006E8BB3 /* Snapshot.swift */, ); @@ -964,6 +967,7 @@ 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */, 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */, 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */, + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */, 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */, 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */, 224EFF991FBAAC4700CF9B3B /* (null) in Sources */, diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift index 5f872a22d3..88d3b91087 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift @@ -51,7 +51,7 @@ open class BarDemoViewController: NSViewController self.barChartView.gridBackgroundColor = NSUIColor.white - self.barChartView.chartDescription?.text = "Barchart Demo" + self.barChartView.chartDescription.text = "Barchart Demo" } @IBAction func save(_ sender: AnyObject) diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift index 7168f4de4c..ea78112cc6 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift @@ -39,7 +39,7 @@ open class LineDemoViewController: NSViewController self.lineChartView.gridBackgroundColor = NSUIColor.white - self.lineChartView.chartDescription?.text = "Linechart Demo" + self.lineChartView.chartDescription.text = "Linechart Demo" } override open func viewWillAppear() diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift index fd2df98598..5ace6f32da 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift @@ -44,7 +44,7 @@ open class PieDemoViewController: NSViewController self.pieChartView.data = data - self.pieChartView.chartDescription?.text = "Piechart Demo" + self.pieChartView.chartDescription.text = "Piechart Demo" } override open func viewWillAppear() diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift index d9a0f0c43a..8f60f97629 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift @@ -36,7 +36,7 @@ open class RadarDemoViewController: NSViewController ds2.colors = [NSUIColor.blue] data.addDataSet(ds2) self.radarChartView.data = data - self.radarChartView.chartDescription?.text = "Radarchart Demo" + self.radarChartView.chartDescription.text = "Radarchart Demo" } diff --git a/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m b/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m index 0466263f30..4605c0e7fa 100644 --- a/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m @@ -206,7 +206,7 @@ - (BarChartData *)generateBarData [set1 setColor:[UIColor colorWithRed:60/255.f green:220/255.f blue:78/255.f alpha:1.f]]; set1.valueTextColor = [UIColor colorWithRed:60/255.f green:220/255.f blue:78/255.f alpha:1.f]; set1.valueFont = [UIFont systemFontOfSize:10.f]; - set1.axisDependency = AxisDependencyLeft; + set1.axisDependency = AxisDependencyRight; BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithValues:entries2 label:@""]; set2.stackLabels = @[@"Stack 1", @"Stack 2"]; @@ -216,7 +216,7 @@ - (BarChartData *)generateBarData ]; set2.valueTextColor = [UIColor colorWithRed:61/255.f green:165/255.f blue:255/255.f alpha:1.f]; set2.valueFont = [UIFont systemFontOfSize:10.f]; - set2.axisDependency = AxisDependencyLeft; + set2.axisDependency = AxisDependencyRight; float groupSpace = 0.06f; float barSpace = 0.02f; // x2 dataset diff --git a/ChartsDemo/Swift/DemoBaseViewController.swift b/ChartsDemo/Swift/DemoBaseViewController.swift index c19c174ee9..dcbd28026b 100644 --- a/ChartsDemo/Swift/DemoBaseViewController.swift +++ b/ChartsDemo/Swift/DemoBaseViewController.swift @@ -234,7 +234,7 @@ class DemoBaseViewController: UIViewController, ChartViewDelegate { chartView.drawSlicesUnderHoleEnabled = false chartView.holeRadiusPercent = 0.58 chartView.transparentCircleRadiusPercent = 0.61 - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.setExtraOffsets(left: 5, top: 10, right: 5, bottom: 5) chartView.drawCenterTextEnabled = true @@ -269,11 +269,11 @@ class DemoBaseViewController: UIViewController, ChartViewDelegate { } func setup(radarChartView chartView: RadarChartView) { - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false } func setup(barLineChartView chartView: BarLineChartViewBase) { - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.dragEnabled = true chartView.setScaleEnabled(true) diff --git a/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift b/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift index abe86cd94a..878c5f011f 100644 --- a/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift @@ -33,7 +33,7 @@ class AnotherBarChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.maxVisibleCount = 60 chartView.pinchZoomEnabled = false chartView.drawBarShadowEnabled = false diff --git a/ChartsDemo/Swift/Demos/BubbleChartViewController.swift b/ChartsDemo/Swift/Demos/BubbleChartViewController.swift index 61d944b735..39af2f5b5f 100644 --- a/ChartsDemo/Swift/Demos/BubbleChartViewController.swift +++ b/ChartsDemo/Swift/Demos/BubbleChartViewController.swift @@ -35,7 +35,7 @@ class BubbleChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.dragEnabled = false chartView.setScaleEnabled(true) diff --git a/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift b/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift index 082ba9d269..ef4dc5ac4c 100644 --- a/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift +++ b/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift @@ -36,7 +36,7 @@ class CandleStickChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.dragEnabled = false chartView.setScaleEnabled(true) diff --git a/ChartsDemo/Swift/Demos/ColoredLineChartViewController.swift b/ChartsDemo/Swift/Demos/ColoredLineChartViewController.swift index a5309ea707..7a8e443502 100644 --- a/ChartsDemo/Swift/Demos/ColoredLineChartViewController.swift +++ b/ChartsDemo/Swift/Demos/ColoredLineChartViewController.swift @@ -36,7 +36,7 @@ class ColoredLineChartViewController: DemoBaseViewController { chart.delegate = self chart.backgroundColor = color - chart.chartDescription?.enabled = false + chart.chartDescription.enabled = false chart.dragEnabled = true chart.setScaleEnabled(true) diff --git a/ChartsDemo/Swift/Demos/CombinedChartViewController.swift b/ChartsDemo/Swift/Demos/CombinedChartViewController.swift index e884cd042b..f4e2dc3dd9 100644 --- a/ChartsDemo/Swift/Demos/CombinedChartViewController.swift +++ b/ChartsDemo/Swift/Demos/CombinedChartViewController.swift @@ -34,7 +34,7 @@ class CombinedChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.drawBarShadowEnabled = false chartView.highlightFullBarEnabled = false diff --git a/ChartsDemo/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo/Swift/Demos/LineChart1ViewController.swift index bf5eb7f67d..3ec69908bf 100644 --- a/ChartsDemo/Swift/Demos/LineChart1ViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChart1ViewController.swift @@ -40,7 +40,7 @@ class LineChart1ViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.dragEnabled = true chartView.setScaleEnabled(true) chartView.pinchZoomEnabled = true diff --git a/ChartsDemo/Swift/Demos/LineChart2ViewController.swift b/ChartsDemo/Swift/Demos/LineChart2ViewController.swift index 564d50f66d..63bdfe06c3 100644 --- a/ChartsDemo/Swift/Demos/LineChart2ViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChart2ViewController.swift @@ -39,7 +39,7 @@ class LineChart2ViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.dragEnabled = true chartView.setScaleEnabled(true) chartView.pinchZoomEnabled = true diff --git a/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift b/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift index 11726e4e4f..76cdd6aadc 100644 --- a/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift @@ -31,7 +31,7 @@ class LineChartFilledViewController: DemoBaseViewController { chartView.drawBordersEnabled = true - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.pinchZoomEnabled = false chartView.dragEnabled = true diff --git a/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift b/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift index 1b4c425ba6..cf5654a12d 100644 --- a/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift @@ -36,7 +36,7 @@ class LineChartTimeViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.dragEnabled = true chartView.setScaleEnabled(true) diff --git a/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift b/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift index 93c9f4654b..0390ac97bf 100644 --- a/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift @@ -36,7 +36,7 @@ class MultipleBarChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.pinchZoomEnabled = false chartView.drawBarShadowEnabled = false diff --git a/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift b/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift index 4b11f73d28..bbf42bbdf1 100644 --- a/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift +++ b/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift @@ -38,7 +38,7 @@ class MultipleLinesChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.leftAxis.enabled = false chartView.rightAxis.drawAxisLineEnabled = false diff --git a/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift b/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift index 3598d64602..67c5617800 100644 --- a/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift @@ -43,7 +43,7 @@ class NegativeStackedBarChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.drawBarShadowEnabled = false chartView.drawValueAboveBarEnabled = true diff --git a/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift b/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift index 85aeb9d129..78876a3317 100644 --- a/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift @@ -44,7 +44,7 @@ class PositiveNegativeBarChartViewController: DemoBaseViewController { chartView.drawBarShadowEnabled = false chartView.drawValueAboveBarEnabled = true - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.rightAxis.enabled = false diff --git a/ChartsDemo/Swift/Demos/RadarChartViewController.swift b/ChartsDemo/Swift/Demos/RadarChartViewController.swift index 5c7f8599a4..ac4a7599d8 100644 --- a/ChartsDemo/Swift/Demos/RadarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/RadarChartViewController.swift @@ -39,7 +39,7 @@ class RadarChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.webLineWidth = 1 chartView.innerWebLineWidth = 1 chartView.webColor = .lightGray diff --git a/ChartsDemo/Swift/Demos/ScatterChartViewController.swift b/ChartsDemo/Swift/Demos/ScatterChartViewController.swift index 2dea8e3627..19479670ee 100644 --- a/ChartsDemo/Swift/Demos/ScatterChartViewController.swift +++ b/ChartsDemo/Swift/Demos/ScatterChartViewController.swift @@ -33,8 +33,8 @@ class ScatterChartViewController: DemoBaseViewController { .toggleData] chartView.delegate = self - - chartView.chartDescription?.enabled = false + + chartView.chartDescription.enabled = false chartView.dragEnabled = true chartView.setScaleEnabled(true) diff --git a/ChartsDemo/Swift/Demos/SinusBarChartViewController.swift b/ChartsDemo/Swift/Demos/SinusBarChartViewController.swift index 790d5c6721..c3fc11d411 100644 --- a/ChartsDemo/Swift/Demos/SinusBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/SinusBarChartViewController.swift @@ -32,7 +32,7 @@ class SinusBarChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.drawBarShadowEnabled = false chartView.drawValueAboveBarEnabled = false diff --git a/ChartsDemo/Swift/Demos/StackedBarChartViewController.swift b/ChartsDemo/Swift/Demos/StackedBarChartViewController.swift index 718a5a1b07..3572958a17 100644 --- a/ChartsDemo/Swift/Demos/StackedBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/StackedBarChartViewController.swift @@ -46,7 +46,7 @@ class StackedBarChartViewController: DemoBaseViewController { chartView.delegate = self - chartView.chartDescription?.enabled = false + chartView.chartDescription.enabled = false chartView.maxVisibleCount = 40 chartView.drawBarShadowEnabled = false diff --git a/Rakefile b/Rakefile index 3b9aa0f515..516b385a96 100644 --- a/Rakefile +++ b/Rakefile @@ -3,7 +3,11 @@ def type end def project_name - 'Charts.xcodeproj' + 'ChartsDemo/ChartsDemo.xcodeproj' +end + +def macos_project_name + 'ChartsDemo-OSX/ChartsDemo-OSX.xcodeproj' end def configuration @@ -29,6 +33,19 @@ def build_schemes ] end +def build_demo_schemes + %i[ + ChartsDemo + ChartsDemo-Swift + ] +end + +def build_macos_demo_schemes + [ + 'ChartsDemo-OSX' + ] +end + def test_schemes [ 'ChartsTests' @@ -74,33 +91,43 @@ def xcodebuild(type, name, scheme, configuration, sdk, destination, tasks, xcpre sh "set -o pipefail && xcodebuild #{project_type} '#{name}' -scheme '#{scheme}' -configuration '#{configuration}' -sdk #{sdk} -destination #{destination} #{tasks} | bundle exec xcpretty -c #{xcprety_args}" end -def run_xcodebuild(schemes_to_execute, tasks, destination, is_test, xcprety_args) +def run_xcodebuild(tasks, destination, is_build_demo, xcprety_args) sdk = destination[:sdk] device = destination[:device] uuid = destination[:uuid] + is_test = tasks.include?('test') + is_macos = sdk == 'macosx' + + project = is_macos ? macos_project_name : project_name + + schemes_to_execute = [] + if is_test + schemes_to_execute = test_schemes + elsif is_build_demo + schemes_to_execute = is_macos ? build_macos_demo_schemes : build_demo_schemes + else + schemes_to_execute = build_schemes + end + open_simulator_and_sleep uuid if is_test schemes_to_execute.each do |scheme| - xcodebuild type, project_name, scheme, configuration, sdk, device, tasks, xcprety_args + xcodebuild type, project, scheme, configuration, sdk, device, tasks, xcprety_args end end -def execute(tasks, platform, xcprety_args: '') - is_test = tasks.include?('test') - +def execute(tasks, platform, is_build_demo = false, xcprety_args: '') # platform specific settings destination = devices[platform] - schemes = is_test ? test_schemes : build_schemes - # check if xcodebuild needs to be run on multiple devices if destination.is_a?(Array) destination.each do |destination| - run_xcodebuild schemes, tasks, destination, is_test, xcprety_args + run_xcodebuild tasks, destination, is_build_demo, xcprety_args end else - run_xcodebuild schemes, tasks, destination, is_test, xcprety_args + run_xcodebuild tasks, destination, is_build_demo, xcprety_args end end @@ -122,11 +149,18 @@ end desc 'Run CI tasks. Build and test or build depending on the platform.' task :ci, [:platform] do |_task, args| platform = arg_to_key(args[:platform]) if args.key?(:platform) - - if test_platforms.include?(platform) - execute 'clean test', platform - elsif build_platforms.include?(platform) - execute 'clean build', platform + is_build_demo = test_platforms.include?(platform) || build_platforms.include?(platform) + + if test_platforms.include?(platform) # iOS and tvOS + if platform == :iOS + execute 'clean', platform, is_build_demo + execute 'build', platform, is_build_demo + execute 'test', platform # not use demo specifically + else + execute 'clean test', platform + end + elsif build_platforms.include?(platform) # macOS + execute 'clean build', platform, is_build_demo else test_platforms.each do |platform| execute 'clean test', platform diff --git a/Source/Charts/Charts/BarChartView.swift b/Source/Charts/Charts/BarChartView.swift index 0fd0e511d0..3e71e1212a 100644 --- a/Source/Charts/Charts/BarChartView.swift +++ b/Source/Charts/Charts/BarChartView.swift @@ -25,7 +25,7 @@ open class BarChartView: BarLineChartViewBase, BarChartDataProvider { super.initialize() - renderer = BarChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler) + renderer = BarChartRenderer(dataProvider: self, animator: chartAnimator, viewPortHandler: viewPortHandler) self.highlighter = BarHighlighter(chart: self) @@ -40,20 +40,20 @@ open class BarChartView: BarLineChartViewBase, BarChartDataProvider if fitBars { - _xAxis.calculate( + xAxis.calculate( min: data.xMin - data.barWidth / 2.0, max: data.xMax + data.barWidth / 2.0) } else { - _xAxis.calculate(min: data.xMin, max: data.xMax) + xAxis.calculate(min: data.xMin, max: data.xMax) } // calculate axis range (min / max) according to provided data - _leftAxis.calculate( + leftAxis.calculate( min: data.getYMin(axis: .left), max: data.getYMax(axis: .left)) - _rightAxis.calculate( + rightAxis.calculate( min: data.getYMin(axis: .right), max: data.getYMax(axis: .right)) } @@ -61,7 +61,7 @@ open class BarChartView: BarLineChartViewBase, BarChartDataProvider /// - returns: The Highlight object (contains x-index and DataSet index) of the selected value at the given touch point inside the BarChart. open override func getHighlightByTouchPoint(_ pt: CGPoint) -> Highlight? { - if _data === nil + if data === nil { Swift.print("Can't select by touch. No data set.") return nil @@ -86,9 +86,9 @@ open class BarChartView: BarLineChartViewBase, BarChartDataProvider @objc open func getBarBounds(entry e: BarChartDataEntry) -> CGRect { guard let - data = _data as? BarChartData, + data = data as? BarChartData, let set = data.getDataSetForEntry(e) as? BarChartDataSetProtocol - else { return CGRect.null } + else { return .null } let y = e.y let x = e.x @@ -173,7 +173,7 @@ open class BarChartView: BarLineChartViewBase, BarChartDataProvider // MARK: - BarChartDataProvider - open var barData: BarChartData? { return _data as? BarChartData } + open var barData: BarChartData? { return data as? BarChartData } /// - returns: `true` if drawing values above bars is enabled, `false` ifnot open var isDrawValueAboveBarEnabled: Bool { return drawValueAboveBarEnabled } diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index 1a438f00c5..efb5536d88 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -57,19 +57,28 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// **default**: false @objc open var keepPositionOnRotation: Bool = false - /// the object representing the left y-axis - internal var _leftAxis: YAxis! + /// The left y-axis object. In the horizontal bar-chart, this is the + /// top axis. + @objc open internal(set) var leftAxis = YAxis(position: .left) - /// the object representing the right y-axis - internal var _rightAxis: YAxis! + /// The right y-axis object. In the horizontal bar-chart, this is the + /// bottom axis. + @objc open internal(set) var rightAxis = YAxis(position: .right) - internal var _leftYAxisRenderer: YAxisRenderer! - internal var _rightYAxisRenderer: YAxisRenderer! + /// The left Y axis renderer. This is a read-write property so you can set your own custom renderer here. + /// **default**: An instance of YAxisRenderer + @objc open lazy var leftYAxisRenderer = YAxisRenderer(viewPortHandler: viewPortHandler, axis: leftAxis, transformer: _leftAxisTransformer) + + /// The right Y axis renderer. This is a read-write property so you can set your own custom renderer here. + /// **default**: An instance of YAxisRenderer + @objc open lazy var rightYAxisRenderer = YAxisRenderer(viewPortHandler: viewPortHandler, axis: rightAxis, transformer: _rightAxisTransformer) internal var _leftAxisTransformer: Transformer! internal var _rightAxisTransformer: Transformer! - internal var _xAxisRenderer: XAxisRenderer! + /// The X axis renderer. This is a read-write property so you can set your own custom renderer here. + /// **default**: An instance of XAxisRenderer + @objc open lazy var xAxisRenderer = XAxisRenderer(viewPortHandler: viewPortHandler, axis: xAxis, transformer: _leftAxisTransformer) internal var _tapGestureRecognizer: NSUITapGestureRecognizer! internal var _doubleTapGestureRecognizer: NSUITapGestureRecognizer! @@ -99,17 +108,9 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD internal override func initialize() { super.initialize() - - _leftAxis = YAxis(position: .left) - _rightAxis = YAxis(position: .right) - - _leftAxisTransformer = Transformer(viewPortHandler: _viewPortHandler) - _rightAxisTransformer = Transformer(viewPortHandler: _viewPortHandler) - - _leftYAxisRenderer = YAxisRenderer(viewPortHandler: _viewPortHandler, axis: _leftAxis, transformer: _leftAxisTransformer) - _rightYAxisRenderer = YAxisRenderer(viewPortHandler: _viewPortHandler, axis: _rightAxis, transformer: _rightAxisTransformer) - - _xAxisRenderer = XAxisRenderer(viewPortHandler: _viewPortHandler, axis: _xAxis, transformer: _leftAxisTransformer) + + _leftAxisTransformer = Transformer(viewPortHandler: viewPortHandler) + _rightAxisTransformer = Transformer(viewPortHandler: viewPortHandler) self.highlighter = ChartHighlighter(chart: self) @@ -178,83 +179,83 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD autoScale() } - if _leftAxis.isEnabled + if leftAxis.isEnabled { - _leftYAxisRenderer?.computeAxis(min: _leftAxis._axisMinimum, max: _leftAxis._axisMaximum, inverted: _leftAxis.isInverted) + leftYAxisRenderer.computeAxis(min: leftAxis._axisMinimum, max: leftAxis._axisMaximum, inverted: leftAxis.isInverted) } - if _rightAxis.isEnabled + if rightAxis.isEnabled { - _rightYAxisRenderer?.computeAxis(min: _rightAxis._axisMinimum, max: _rightAxis._axisMaximum, inverted: _rightAxis.isInverted) + rightYAxisRenderer.computeAxis(min: rightAxis._axisMinimum, max: rightAxis._axisMaximum, inverted: rightAxis.isInverted) } - if _xAxis.isEnabled + if xAxis.isEnabled { - _xAxisRenderer?.computeAxis(min: _xAxis._axisMinimum, max: _xAxis._axisMaximum, inverted: false) + xAxisRenderer.computeAxis(min: xAxis._axisMinimum, max: xAxis._axisMaximum, inverted: false) } - _xAxisRenderer?.renderAxisLine(context: context) - _leftYAxisRenderer?.renderAxisLine(context: context) - _rightYAxisRenderer?.renderAxisLine(context: context) + xAxisRenderer.renderAxisLine(context: context) + leftYAxisRenderer.renderAxisLine(context: context) + rightYAxisRenderer.renderAxisLine(context: context) // The renderers are responsible for clipping, to account for line-width center etc. - _xAxisRenderer?.renderGridLines(context: context) - _leftYAxisRenderer?.renderGridLines(context: context) - _rightYAxisRenderer?.renderGridLines(context: context) + xAxisRenderer.renderGridLines(context: context) + leftYAxisRenderer.renderGridLines(context: context) + rightYAxisRenderer.renderGridLines(context: context) - if _xAxis.isEnabled && _xAxis.isDrawLimitLinesBehindDataEnabled + if xAxis.isEnabled && xAxis.isDrawLimitLinesBehindDataEnabled { - _xAxisRenderer?.renderLimitLines(context: context) + xAxisRenderer.renderLimitLines(context: context) } - if _leftAxis.isEnabled && _leftAxis.isDrawLimitLinesBehindDataEnabled + if leftAxis.isEnabled && leftAxis.isDrawLimitLinesBehindDataEnabled { - _leftYAxisRenderer?.renderLimitLines(context: context) + leftYAxisRenderer.renderLimitLines(context: context) } - if _rightAxis.isEnabled && _rightAxis.isDrawLimitLinesBehindDataEnabled + if rightAxis.isEnabled && rightAxis.isDrawLimitLinesBehindDataEnabled { - _rightYAxisRenderer?.renderLimitLines(context: context) + rightYAxisRenderer.renderLimitLines(context: context) } // make sure the data cannot be drawn outside the content-rect context.saveGState() - context.clip(to: _viewPortHandler.contentRect) + context.clip(to: viewPortHandler.contentRect) renderer.drawData(context: context) // if highlighting is enabled if (valuesToHighlight()) { - renderer.drawHighlighted(context: context, indices: _indicesToHighlight) + renderer.drawHighlighted(context: context, indices: highlighted) } context.restoreGState() renderer.drawExtras(context: context) - if _xAxis.isEnabled && !_xAxis.isDrawLimitLinesBehindDataEnabled + if xAxis.isEnabled && !xAxis.isDrawLimitLinesBehindDataEnabled { - _xAxisRenderer?.renderLimitLines(context: context) + xAxisRenderer.renderLimitLines(context: context) } - if _leftAxis.isEnabled && !_leftAxis.isDrawLimitLinesBehindDataEnabled + if leftAxis.isEnabled && !leftAxis.isDrawLimitLinesBehindDataEnabled { - _leftYAxisRenderer?.renderLimitLines(context: context) + leftYAxisRenderer.renderLimitLines(context: context) } - if _rightAxis.isEnabled && !_rightAxis.isDrawLimitLinesBehindDataEnabled + if rightAxis.isEnabled && !rightAxis.isDrawLimitLinesBehindDataEnabled { - _rightYAxisRenderer?.renderLimitLines(context: context) + rightYAxisRenderer.renderLimitLines(context: context) } - _xAxisRenderer.renderAxisLabels(context: context) - _leftYAxisRenderer.renderAxisLabels(context: context) - _rightYAxisRenderer.renderAxisLabels(context: context) + xAxisRenderer.renderAxisLabels(context: context) + leftYAxisRenderer.renderAxisLabels(context: context) + rightYAxisRenderer.renderAxisLabels(context: context) if clipValuesToContentEnabled { context.saveGState() - context.clip(to: _viewPortHandler.contentRect) + context.clip(to: viewPortHandler.contentRect) renderer.drawValues(context: context) @@ -265,7 +266,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD renderer.drawValues(context: context) } - _legendRenderer.renderLegend(context: context) + legendRenderer.renderLegend(context: context) drawDescription(context: context) @@ -278,23 +279,23 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// Performs auto scaling of the axis by recalculating the minimum and maximum y-values based on the entries currently in view. internal func autoScale() { - guard let data = _data + guard let data = data else { return } data.calcMinMaxY(fromX: self.lowestVisibleX, toX: self.highestVisibleX) - _xAxis.calculate(min: data.xMin, max: data.xMax) + xAxis.calculate(min: data.xMin, max: data.xMax) // calculate axis range (min / max) according to provided data - if _leftAxis.isEnabled + if leftAxis.isEnabled { - _leftAxis.calculate(min: data.getYMin(axis: .left), max: data.getYMax(axis: .left)) + leftAxis.calculate(min: data.getYMin(axis: .left), max: data.getYMax(axis: .left)) } - if _rightAxis.isEnabled + if rightAxis.isEnabled { - _rightAxis.calculate(min: data.getYMin(axis: .right), max: data.getYMax(axis: .right)) + rightAxis.calculate(min: data.getYMin(axis: .right), max: data.getYMax(axis: .right)) } calculateOffsets() @@ -302,14 +303,14 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD internal func prepareValuePxMatrix() { - _rightAxisTransformer.prepareMatrixValuePx(chartXMin: _xAxis._axisMinimum, deltaX: CGFloat(xAxis.axisRange), deltaY: CGFloat(_rightAxis.axisRange), chartYMin: _rightAxis._axisMinimum) - _leftAxisTransformer.prepareMatrixValuePx(chartXMin: xAxis._axisMinimum, deltaX: CGFloat(xAxis.axisRange), deltaY: CGFloat(_leftAxis.axisRange), chartYMin: _leftAxis._axisMinimum) + _rightAxisTransformer.prepareMatrixValuePx(chartXMin: xAxis._axisMinimum, deltaX: CGFloat(xAxis.axisRange), deltaY: CGFloat(rightAxis.axisRange), chartYMin: rightAxis._axisMinimum) + _leftAxisTransformer.prepareMatrixValuePx(chartXMin: xAxis._axisMinimum, deltaX: CGFloat(xAxis.axisRange), deltaY: CGFloat(leftAxis.axisRange), chartYMin: leftAxis._axisMinimum) } internal func prepareOffsetMatrix() { - _rightAxisTransformer.prepareMatrixOffset(inverted: _rightAxis.isInverted) - _leftAxisTransformer.prepareMatrixOffset(inverted: _leftAxis.isInverted) + _rightAxisTransformer.prepareMatrixOffset(inverted: rightAxis.isInverted) + _leftAxisTransformer.prepareMatrixOffset(inverted: leftAxis.isInverted) } open override func notifyDataSetChanged() @@ -318,20 +319,17 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD calcMinMax() - _leftYAxisRenderer?.computeAxis(min: _leftAxis._axisMinimum, max: _leftAxis._axisMaximum, inverted: _leftAxis.isInverted) - _rightYAxisRenderer?.computeAxis(min: _rightAxis._axisMinimum, max: _rightAxis._axisMaximum, inverted: _rightAxis.isInverted) + leftYAxisRenderer.computeAxis(min: leftAxis._axisMinimum, max: leftAxis._axisMaximum, inverted: leftAxis.isInverted) + rightYAxisRenderer.computeAxis(min: rightAxis._axisMinimum, max: rightAxis._axisMaximum, inverted: rightAxis.isInverted) - if let data = _data + if let data = data { - _xAxisRenderer?.computeAxis( - min: _xAxis._axisMinimum, - max: _xAxis._axisMaximum, + xAxisRenderer.computeAxis( + min: xAxis._axisMinimum, + max: xAxis._axisMaximum, inverted: false) - if _legend !== nil - { - _legendRenderer?.computeLegend(data: data) - } + legendRenderer.computeLegend(data: data) } calculateOffsets() @@ -342,39 +340,39 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD internal override func calcMinMax() { // calculate / set x-axis range - _xAxis.calculate(min: _data?.xMin ?? 0.0, max: _data?.xMax ?? 0.0) + xAxis.calculate(min: data?.xMin ?? 0.0, max: data?.xMax ?? 0.0) // calculate axis range (min / max) according to provided data - _leftAxis.calculate(min: _data?.getYMin(axis: .left) ?? 0.0, max: _data?.getYMax(axis: .left) ?? 0.0) - _rightAxis.calculate(min: _data?.getYMin(axis: .right) ?? 0.0, max: _data?.getYMax(axis: .right) ?? 0.0) + leftAxis.calculate(min: data?.getYMin(axis: .left) ?? 0.0, max: data?.getYMax(axis: .left) ?? 0.0) + rightAxis.calculate(min: data?.getYMin(axis: .right) ?? 0.0, max: data?.getYMax(axis: .right) ?? 0.0) } internal func calculateLegendOffsets(offsetLeft: inout CGFloat, offsetTop: inout CGFloat, offsetRight: inout CGFloat, offsetBottom: inout CGFloat) { // setup offsets for legend - if _legend !== nil && _legend.isEnabled && !_legend.drawInside + if legend.isEnabled, !legend.drawInside { - switch _legend.orientation + switch legend.orientation { case .vertical: - switch _legend.horizontalAlignment + switch legend.horizontalAlignment { case .left: - offsetLeft += min(_legend.neededWidth, _viewPortHandler.chartWidth * _legend.maxSizePercent) + _legend.xOffset + offsetLeft += min(legend.neededWidth, viewPortHandler.chartWidth * legend.maxSizePercent) + legend.xOffset case .right: - offsetRight += min(_legend.neededWidth, _viewPortHandler.chartWidth * _legend.maxSizePercent) + _legend.xOffset + offsetRight += min(legend.neededWidth, viewPortHandler.chartWidth * legend.maxSizePercent) + legend.xOffset case .center: - switch _legend.verticalAlignment + switch legend.verticalAlignment { case .top: - offsetTop += min(_legend.neededHeight, _viewPortHandler.chartHeight * _legend.maxSizePercent) + _legend.yOffset + offsetTop += min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) + legend.yOffset case .bottom: - offsetBottom += min(_legend.neededHeight, _viewPortHandler.chartHeight * _legend.maxSizePercent) + _legend.yOffset + offsetBottom += min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) + legend.yOffset default: break @@ -383,17 +381,17 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD case .horizontal: - switch _legend.verticalAlignment + switch legend.verticalAlignment { case .top: - offsetTop += min(_legend.neededHeight, _viewPortHandler.chartHeight * _legend.maxSizePercent) + _legend.yOffset + offsetTop += min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) + legend.yOffset if xAxis.isEnabled && xAxis.isDrawLabelsEnabled { offsetTop += xAxis.labelRotatedHeight } case .bottom: - offsetBottom += min(_legend.neededHeight, _viewPortHandler.chartHeight * _legend.maxSizePercent) + _legend.yOffset + offsetBottom += min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) + legend.yOffset if xAxis.isEnabled && xAxis.isDrawLabelsEnabled { offsetBottom += xAxis.labelRotatedHeight @@ -456,7 +454,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD offsetBottom += self.extraBottomOffset offsetLeft += self.extraLeftOffset - _viewPortHandler.restrainViewPort( + viewPortHandler.restrainViewPort( offsetLeft: max(self.minOffset, offsetLeft), offsetTop: max(self.minOffset, offsetTop), offsetRight: max(self.minOffset, offsetRight), @@ -479,14 +477,14 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { // draw the grid background context.setFillColor(gridBackgroundColor.cgColor) - context.fill(_viewPortHandler.contentRect) + context.fill(viewPortHandler.contentRect) } if drawBordersEnabled { context.setLineWidth(borderLineWidth) context.setStrokeColor(borderColor.cgColor) - context.stroke(_viewPortHandler.contentRect) + context.stroke(viewPortHandler.contentRect) } if drawGridBackgroundEnabled || drawBordersEnabled @@ -519,7 +517,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD @objc private func tapGestureRecognized(_ recognizer: NSUITapGestureRecognizer) { - if _data === nil + if data === nil { return } @@ -545,25 +543,25 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD @objc private func doubleTapGestureRecognized(_ recognizer: NSUITapGestureRecognizer) { - if _data === nil + if data === nil { return } if recognizer.state == NSUIGestureRecognizerState.ended { - if _data !== nil && _doubleTapToZoomEnabled && (data?.entryCount ?? 0) > 0 + if data !== nil && _doubleTapToZoomEnabled && (data?.entryCount ?? 0) > 0 { var location = recognizer.location(in: self) - location.x = location.x - _viewPortHandler.offsetLeft + location.x = location.x - viewPortHandler.offsetLeft if isTouchInverted() { - location.y = -(location.y - _viewPortHandler.offsetTop) + location.y = -(location.y - viewPortHandler.offsetTop) } else { - location.y = -(self.bounds.size.height - location.y - _viewPortHandler.offsetBottom) + location.y = -(self.bounds.size.height - location.y - viewPortHandler.offsetBottom) } self.zoom(scaleX: isScaleXEnabled ? 1.4 : 1.0, scaleY: isScaleYEnabled ? 1.4 : 1.0, x: location.x, y: location.y) @@ -578,7 +576,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { stopDeceleration() - if _data !== nil && + if data !== nil && (_pinchZoomEnabled || _scaleXEnabled || _scaleYEnabled) { _isScaling = true @@ -618,8 +616,8 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD else if recognizer.state == NSUIGestureRecognizerState.changed { let isZoomingOut = (recognizer.nsuiScale < 1) - var canZoomMoreX = isZoomingOut ? _viewPortHandler.canZoomOutMoreX : _viewPortHandler.canZoomInMoreX - var canZoomMoreY = isZoomingOut ? _viewPortHandler.canZoomOutMoreY : _viewPortHandler.canZoomInMoreY + var canZoomMoreX = isZoomingOut ? viewPortHandler.canZoomOutMoreX : viewPortHandler.canZoomInMoreX + var canZoomMoreY = isZoomingOut ? viewPortHandler.canZoomOutMoreY : viewPortHandler.canZoomInMoreY if _isScaling { @@ -628,15 +626,15 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD if canZoomMoreX || canZoomMoreY { var location = recognizer.location(in: self) - location.x = location.x - _viewPortHandler.offsetLeft + location.x = location.x - viewPortHandler.offsetLeft if isTouchInverted() { - location.y = -(location.y - _viewPortHandler.offsetTop) + location.y = -(location.y - viewPortHandler.offsetTop) } else { - location.y = -(_viewPortHandler.chartHeight - location.y - _viewPortHandler.offsetBottom) + location.y = -(viewPortHandler.chartHeight - location.y - viewPortHandler.offsetBottom) } let scaleX = canZoomMoreX ? recognizer.nsuiScale : 1.0 @@ -646,10 +644,10 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD matrix = matrix.scaledBy(x: scaleX, y: scaleY) matrix = matrix.translatedBy(x: -location.x, y: -location.y) - matrix = _viewPortHandler.touchMatrix.concatenating(matrix) - - _viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: true) + matrix = viewPortHandler.touchMatrix.concatenating(matrix) + viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: true) + if delegate !== nil { delegate?.chartScaled?(self, scaleX: scaleX, scaleY: scaleY) @@ -668,7 +666,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { stopDeceleration() - if _data === nil || !self.isDragEnabled + if data === nil || !self.isDragEnabled { // If we have no data, we have nothing to pan and no data to highlight return } @@ -797,12 +795,12 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD } } - let originalMatrix = _viewPortHandler.touchMatrix + let originalMatrix = viewPortHandler.touchMatrix var matrix = CGAffineTransform(translationX: translation.x, y: translation.y) matrix = originalMatrix.concatenating(matrix) - matrix = _viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: true) + matrix = viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: true) if delegate !== nil { @@ -867,7 +865,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD if gestureRecognizer == _panGestureRecognizer { let velocity = _panGestureRecognizer.velocity(in: self) - if _data === nil || !isDragEnabled || + if data === nil || !isDragEnabled || (self.hasNoDragOffset && self.isFullyZoomedOut && !self.isHighlightPerDragEnabled) || (!_dragYEnabled && fabs(velocity.y) > fabs(velocity.x)) || (!_dragXEnabled && fabs(velocity.y) < fabs(velocity.x)) @@ -880,7 +878,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD #if !os(tvOS) if gestureRecognizer == _pinchGestureRecognizer { - if _data === nil || (!_pinchZoomEnabled && !_scaleXEnabled && !_scaleYEnabled) + if data === nil || (!_pinchZoomEnabled && !_scaleXEnabled && !_scaleYEnabled) { return false } @@ -965,10 +963,10 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// Zooms in by 1.4, into the charts center. @objc open func zoomIn() { - let center = _viewPortHandler.contentCenter + let center = viewPortHandler.contentCenter - let matrix = _viewPortHandler.zoomIn(x: center.x, y: -center.y) - _viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) + let matrix = viewPortHandler.zoomIn(x: center.x, y: -center.y) + viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) // Range might have changed, which means that Y-axis labels could have changed in size, affecting Y-axis size. So we need to recalculate offsets. calculateOffsets() @@ -978,10 +976,10 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// Zooms out by 0.7, from the charts center. @objc open func zoomOut() { - let center = _viewPortHandler.contentCenter + let center = viewPortHandler.contentCenter - let matrix = _viewPortHandler.zoomOut(x: center.x, y: -center.y) - _viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) + let matrix = viewPortHandler.zoomOut(x: center.x, y: -center.y) + viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) // Range might have changed, which means that Y-axis labels could have changed in size, affecting Y-axis size. So we need to recalculate offsets. calculateOffsets() @@ -991,9 +989,9 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// Zooms out to original size. @objc open func resetZoom() { - let matrix = _viewPortHandler.resetZoom() - _viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) - + let matrix = viewPortHandler.resetZoom() + viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) + // Range might have changed, which means that Y-axis labels could have changed in size, affecting Y-axis size. So we need to recalculate offsets. calculateOffsets() setNeedsDisplay() @@ -1012,9 +1010,9 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD x: CGFloat, y: CGFloat) { - let matrix = _viewPortHandler.zoom(scaleX: scaleX, scaleY: scaleY, x: x, y: -y) - _viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) - + let matrix = viewPortHandler.zoom(scaleX: scaleX, scaleY: scaleY, x: x, y: -y) + viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) + // Range might have changed, which means that Y-axis labels could have changed in size, affecting Y-axis size. So we need to recalculate offsets. calculateOffsets() setNeedsDisplay() @@ -1094,7 +1092,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD transformer: getTransformer(forAxis: axis), view: self, yAxis: getAxis(axis), - xAxisRange: _xAxis.axisRange, + xAxisRange: xAxis.axisRange, scaleX: scaleX, scaleY: scaleY, xOrigin: viewPortHandler.scaleX, @@ -1153,8 +1151,8 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// Resets all zooming and dragging and makes the chart fit exactly it's bounds. @objc open func fitScreen() { - let matrix = _viewPortHandler.fitScreen() - _viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) + let matrix = viewPortHandler.fitScreen() + viewPortHandler.refresh(newMatrix: matrix, chart: self, invalidate: false) calculateOffsets() setNeedsDisplay() @@ -1163,8 +1161,8 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// Sets the minimum scale value to which can be zoomed out. 1 = fitScreen @objc open func setScaleMinima(_ scaleX: CGFloat, scaleY: CGFloat) { - _viewPortHandler.setMinimumScaleX(scaleX) - _viewPortHandler.setMinimumScaleY(scaleY) + viewPortHandler.setMinimumScaleX(scaleX) + viewPortHandler.setMinimumScaleY(scaleY) } @objc open var visibleXRange: Double @@ -1179,8 +1177,8 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// If you call this method, chart must have data or it has no effect. @objc open func setVisibleXRangeMaximum(_ maxXRange: Double) { - let xScale = _xAxis.axisRange / maxXRange - _viewPortHandler.setMinimumScaleX(CGFloat(xScale)) + let xScale = xAxis.axisRange / maxXRange + viewPortHandler.setMinimumScaleX(CGFloat(xScale)) } /// Sets the size of the area (range on the x-axis) that should be minimum visible at once (no further zooming in allowed). @@ -1190,8 +1188,8 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// If you call this method, chart must have data or it has no effect. @objc open func setVisibleXRangeMinimum(_ minXRange: Double) { - let xScale = _xAxis.axisRange / minXRange - _viewPortHandler.setMaximumScaleX(CGFloat(xScale)) + let xScale = xAxis.axisRange / minXRange + viewPortHandler.setMaximumScaleX(CGFloat(xScale)) } /// Limits the maximum and minimum value count that can be visible by pinching and zooming. @@ -1202,9 +1200,9 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// If you call this method, chart must have data or it has no effect. @objc open func setVisibleXRange(minXRange: Double, maxXRange: Double) { - let minScale = _xAxis.axisRange / maxXRange - let maxScale = _xAxis.axisRange / minXRange - _viewPortHandler.setMinMaxScaleX( + let minScale = xAxis.axisRange / maxXRange + let maxScale = xAxis.axisRange / minXRange + viewPortHandler.setMinMaxScaleX( minScaleX: CGFloat(minScale), maxScaleX: CGFloat(maxScale)) } @@ -1216,7 +1214,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD @objc open func setVisibleYRangeMaximum(_ maxYRange: Double, axis: YAxis.AxisDependency) { let yScale = getAxisRange(axis: axis) / maxYRange - _viewPortHandler.setMinimumScaleY(CGFloat(yScale)) + viewPortHandler.setMinimumScaleY(CGFloat(yScale)) } /// Sets the size of the area (range on the y-axis) that should be minimum visible at once, no further zooming in possible. @@ -1226,7 +1224,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD @objc open func setVisibleYRangeMinimum(_ minYRange: Double, axis: YAxis.AxisDependency) { let yScale = getAxisRange(axis: axis) / minYRange - _viewPortHandler.setMaximumScaleY(CGFloat(yScale)) + viewPortHandler.setMaximumScaleY(CGFloat(yScale)) } /// Limits the maximum and minimum y range that can be visible by pinching and zooming. @@ -1238,7 +1236,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { let minScale = getAxisRange(axis: axis) / minYRange let maxScale = getAxisRange(axis: axis) / maxYRange - _viewPortHandler.setMinMaxScaleY(minScaleY: CGFloat(minScale), maxScaleY: CGFloat(maxScale)) + viewPortHandler.setMinMaxScaleY(minScaleY: CGFloat(minScale), maxScaleY: CGFloat(maxScale)) } /// Moves the left side of the current viewport to the specified x-value. @@ -1262,7 +1260,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// - parameter axis: - which axis should be used as a reference for the y-axis @objc open func moveViewToY(_ yValue: Double, axis: YAxis.AxisDependency) { - let yInView = getAxisRange(axis: axis) / Double(_viewPortHandler.scaleY) + let yInView = getAxisRange(axis: axis) / Double(viewPortHandler.scaleY) let job = MoveViewJob( viewPortHandler: viewPortHandler, @@ -1282,7 +1280,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// - parameter axis: - which axis should be used as a reference for the y-axis @objc open func moveViewTo(xValue: Double, yValue: Double, axis: YAxis.AxisDependency) { - let yInView = getAxisRange(axis: axis) / Double(_viewPortHandler.scaleY) + let yInView = getAxisRange(axis: axis) / Double(viewPortHandler.scaleY) let job = MoveViewJob( viewPortHandler: viewPortHandler, @@ -1313,7 +1311,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD point: CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop), axis: axis) - let yInView = getAxisRange(axis: axis) / Double(_viewPortHandler.scaleY) + let yInView = getAxisRange(axis: axis) / Double(viewPortHandler.scaleY) let job = AnimatedMoveViewJob( viewPortHandler: viewPortHandler, @@ -1375,8 +1373,8 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD yValue: Double, axis: YAxis.AxisDependency) { - let yInView = getAxisRange(axis: axis) / Double(_viewPortHandler.scaleY) - let xInView = xAxis.axisRange / Double(_viewPortHandler.scaleX) + let yInView = getAxisRange(axis: axis) / Double(viewPortHandler.scaleY) + let xInView = xAxis.axisRange / Double(viewPortHandler.scaleX) let job = MoveViewJob( viewPortHandler: viewPortHandler, @@ -1406,8 +1404,8 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD point: CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop), axis: axis) - let yInView = getAxisRange(axis: axis) / Double(_viewPortHandler.scaleY) - let xInView = xAxis.axisRange / Double(_viewPortHandler.scaleX) + let yInView = getAxisRange(axis: axis) / Double(viewPortHandler.scaleY) + let xInView = xAxis.axisRange / Double(viewPortHandler.scaleX) let job = AnimatedMoveViewJob( viewPortHandler: viewPortHandler, @@ -1464,7 +1462,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD if Thread.isMainThread { - self._viewPortHandler.restrainViewPort(offsetLeft: left, offsetTop: top, offsetRight: right, offsetBottom: bottom) + self.viewPortHandler.restrainViewPort(offsetLeft: left, offsetTop: top, offsetRight: right, offsetBottom: bottom) prepareOffsetMatrix() prepareValuePxMatrix() } @@ -1677,7 +1675,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if let h = getHighlightByTouchPoint(pt) { - return _data!.entryForHighlight(h) + return data!.entryForHighlight(h) } return nil } @@ -1688,7 +1686,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD let h = getHighlightByTouchPoint(pt) if h !== nil { - return _data?.getDataSetByIndex(h!.dataSetIndex) as! BarLineScatterCandleBubbleChartDataSetProtocol! + return data?.getDataSetByIndex(h!.dataSetIndex) as! BarLineScatterCandleBubbleChartDataSetProtocol } return nil } @@ -1696,36 +1694,17 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// - returns: The current x-scale factor @objc open var scaleX: CGFloat { - if _viewPortHandler === nil - { - return 1.0 - } - return _viewPortHandler.scaleX + return viewPortHandler.scaleX } /// - returns: The current y-scale factor @objc open var scaleY: CGFloat { - if _viewPortHandler === nil - { - return 1.0 - } - return _viewPortHandler.scaleY + return viewPortHandler.scaleY } /// if the chart is fully zoomed out, return true - @objc open var isFullyZoomedOut: Bool { return _viewPortHandler.isFullyZoomedOut } - - /// - returns: The left y-axis object. In the horizontal bar-chart, this is the - /// top axis. - @objc open var leftAxis: YAxis - { - return _leftAxis - } - - /// - returns: The right y-axis object. In the horizontal bar-chart, this is the - /// bottom axis. - @objc open var rightAxis: YAxis { return _rightAxis } + @objc open var isFullyZoomedOut: Bool { return viewPortHandler.isFullyZoomedOut } /// - returns: The y-axis object to the corresponding AxisDependency. In the /// horizontal bar-chart, LEFT == top, RIGHT == BOTTOM @@ -1733,11 +1712,11 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if axis == .left { - return _leftAxis + return leftAxis } else { - return _rightAxis + return rightAxis } } @@ -1768,46 +1747,19 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// bounds on the x-axis. @objc open func setDragOffsetX(_ offset: CGFloat) { - _viewPortHandler.setDragOffsetX(offset) + viewPortHandler.setDragOffsetX(offset) } /// Set an offset in dp that allows the user to drag the chart over it's /// bounds on the y-axis. @objc open func setDragOffsetY(_ offset: CGFloat) { - _viewPortHandler.setDragOffsetY(offset) + viewPortHandler.setDragOffsetY(offset) } /// - returns: `true` if both drag offsets (x and y) are zero or smaller. - @objc open var hasNoDragOffset: Bool { return _viewPortHandler.hasNoDragOffset } + @objc open var hasNoDragOffset: Bool { return viewPortHandler.hasNoDragOffset } - /// The X axis renderer. This is a read-write property so you can set your own custom renderer here. - /// **default**: An instance of XAxisRenderer - /// - returns: The current set X axis renderer - @objc open var xAxisRenderer: XAxisRenderer - { - get { return _xAxisRenderer } - set { _xAxisRenderer = newValue } - } - - /// The left Y axis renderer. This is a read-write property so you can set your own custom renderer here. - /// **default**: An instance of YAxisRenderer - /// - returns: The current set left Y axis renderer - @objc open var leftYAxisRenderer: YAxisRenderer - { - get { return _leftYAxisRenderer } - set { _leftYAxisRenderer = newValue } - } - - /// The right Y axis renderer. This is a read-write property so you can set your own custom renderer here. - /// **default**: An instance of YAxisRenderer - /// - returns: The current set right Y axis renderer - @objc open var rightYAxisRenderer: YAxisRenderer - { - get { return _rightYAxisRenderer } - set { _rightYAxisRenderer = newValue } - } - open override var chartYMax: Double { return max(leftAxis._axisMaximum, rightAxis._axisMaximum) @@ -1821,7 +1773,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// - returns: `true` if either the left or the right or both axes are inverted. @objc open var isAnyAxisInverted: Bool { - return _leftAxis.isInverted || _rightAxis.isInverted + return leftAxis.isInverted || rightAxis.isInverted } /// flag that indicates if auto scaling on the y axis is enabled. @@ -1841,11 +1793,11 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if axis == .left { - _leftAxis.minWidth = width + leftAxis.minWidth = width } else { - _rightAxis.minWidth = width + rightAxis.minWidth = width } } @@ -1855,11 +1807,11 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if axis == .left { - return _leftAxis.minWidth + return leftAxis.minWidth } else { - return _rightAxis.minWidth + return rightAxis.minWidth } } /// Sets a maximum width to the specified y axis. @@ -1868,11 +1820,11 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if axis == .left { - _leftAxis.maxWidth = width + leftAxis.maxWidth = width } else { - _rightAxis.maxWidth = width + rightAxis.maxWidth = width } } @@ -1884,11 +1836,11 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if axis == .left { - return _leftAxis.maxWidth + return leftAxis.maxWidth } else { - return _rightAxis.maxWidth + return rightAxis.maxWidth } } @@ -1897,11 +1849,11 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if axis == .left { - return _leftAxis.requiredSize().width + return leftAxis.requiredSize().width } else { - return _rightAxis.requiredSize().width + return rightAxis.requiredSize().width } } diff --git a/Source/Charts/Charts/BubbleChartView.swift b/Source/Charts/Charts/BubbleChartView.swift index 1b13677564..14e8b462aa 100644 --- a/Source/Charts/Charts/BubbleChartView.swift +++ b/Source/Charts/Charts/BubbleChartView.swift @@ -18,10 +18,10 @@ open class BubbleChartView: BarLineChartViewBase, BubbleChartDataProvider { super.initialize() - renderer = BubbleChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler) + renderer = BubbleChartRenderer(dataProvider: self, animator: chartAnimator, viewPortHandler: viewPortHandler) } // MARK: - BubbleChartDataProvider - open var bubbleData: BubbleChartData? { return _data as? BubbleChartData } + open var bubbleData: BubbleChartData? { return data as? BubbleChartData } } diff --git a/Source/Charts/Charts/CandleStickChartView.swift b/Source/Charts/Charts/CandleStickChartView.swift index 0366e8b873..33c2174ae5 100644 --- a/Source/Charts/Charts/CandleStickChartView.swift +++ b/Source/Charts/Charts/CandleStickChartView.swift @@ -19,7 +19,7 @@ open class CandleStickChartView: BarLineChartViewBase, CandleChartDataProvider { super.initialize() - renderer = CandleStickChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler) + renderer = CandleStickChartRenderer(dataProvider: self, animator: chartAnimator, viewPortHandler: viewPortHandler) self.xAxis.spaceMin = 0.5 self.xAxis.spaceMax = 0.5 @@ -29,6 +29,6 @@ open class CandleStickChartView: BarLineChartViewBase, CandleChartDataProvider open var candleData: CandleChartData? { - return _data as? CandleChartData + return data as? CandleChartData } } diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index a939bc590d..c7967535f3 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -39,43 +39,53 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate { // MARK: - Properties - /// - returns: The object representing all x-labels, this method can be used to - /// acquire the XAxis object and modify it (e.g. change the position of the - /// labels) - @objc open var xAxis: XAxis - { - return _xAxis - } - /// The default IValueFormatter that has been determined by the chart considering the provided minimum and maximum values. internal var _defaultValueFormatter: ValueFormatter? = DefaultValueFormatter(decimals: 0) - - /// object that holds all data that was originally set for the chart, before it was modified or any filtering algorithms had been applied - internal var _data: ChartData? + /// The data for the chart + @objc open var data: ChartData? + { + didSet + { + offsetsCalculated = false + + guard let data = data else { return } + + // calculate how many digits are needed + setupDefaultFormatter(min: data.getYMin(), max: data.getYMax()) + + for set in data.dataSets + { + if set.needsFormatter || set.valueFormatter === _defaultValueFormatter + { + set.valueFormatter = _defaultValueFormatter + } + } + + // let the chart know there is new data + notifyDataSetChanged() + } + } + /// Flag that indicates if highlighting per tap (touch) is enabled private var _highlightPerTapEnabled = true /// If set to true, chart continues to scroll after touch up @objc open var dragDecelerationEnabled = true - - /// Deceleration friction coefficient in [0 ; 1] interval, higher values indicate that speed will decrease slowly, for example if it set to 0, it will stop immediately. - /// 1 is an invalid value, and will be converted to 0.999 automatically. - private var _dragDecelerationFrictionCoef: CGFloat = 0.9 - + /// if true, units are drawn next to the values in the chart + // TODO: This is used nowhere and can't be used by a consumer. Can we remove this property? internal var _drawUnitInChart = false - + /// The object representing the labels on the x-axis - internal var _xAxis: XAxis! + @objc open internal(set) lazy var xAxis = XAxis() /// The `Description` object of the chart. - /// This should have been called just "description", but - @objc open var chartDescription: Description? - + @objc open lazy var chartDescription = Description() + /// The legend object containing all data associated with the legend - internal var _legend: Legend! - + @objc open internal(set) lazy var legend = Legend() + /// delegate to receive chart events @objc open weak var delegate: ChartViewDelegate? @@ -86,26 +96,32 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate @objc open var noDataFont: NSUIFont! = NSUIFont(name: "HelveticaNeue", size: 12.0) /// color of the no data text - @objc open var noDataTextColor: NSUIColor = NSUIColor.black - - internal var _legendRenderer: LegendRenderer! - + @objc open var noDataTextColor: NSUIColor = .black + + /// The renderer object responsible for rendering / drawing the Legend. + @objc open internal(set) lazy var legendRenderer = LegendRenderer(viewPortHandler: viewPortHandler, legend: legend) + /// object responsible for rendering the data @objc open var renderer: DataRenderer? @objc open var highlighter: Highlighter? - - /// object that manages the bounds and drawing constraints of the chart - internal var _viewPortHandler: ViewPortHandler! - - /// object responsible for animations - internal var _animator: Animator! - + + /// The ViewPortHandler of the chart that is responsible for the + /// content area of the chart and its offsets and dimensions. + @objc open internal(set) lazy var viewPortHandler = ViewPortHandler(width: bounds.size.width, height: bounds.size.height) + + /// The animator responsible for animating chart values. + @objc open internal(set) lazy var chartAnimator: Animator = { + let animator = Animator() + animator.delegate = self + return animator + }() + /// flag that indicates if offsets calculation has already been done or not - private var _offsetsCalculated = false - - /// array of Highlight objects that reference the highlighted slices in the chart - internal var _indicesToHighlight = [Highlight]() + private var offsetsCalculated = false + + /// The array of currently highlighted values. This might an empty if nothing is highlighted. + @objc open internal(set) var highlighted = [Highlight]() /// `true` if drawing the marker is enabled when tapping on values /// (use the `marker` property to specify a marker) @@ -117,9 +133,10 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// The marker that is displayed when a value is clicked on the chart @objc open var marker: Marker? - - private var _interceptTouchEvents = false - + + // TODO: There is no way to modify this value. Should it exist? + private let interceptTouchEvents = false + /// An extra offset to be appended to the viewport's top @objc open var extraTopOffset: CGFloat = 0.0 @@ -131,7 +148,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// An extra offset to be appended to the viewport's left @objc open var extraLeftOffset: CGFloat = 0.0 - + @objc open func setExtraOffsets(left: CGFloat, top: CGFloat, right: CGFloat, bottom: CGFloat) { extraLeftOffset = left @@ -156,73 +173,28 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate deinit { - self.removeObserver(self, forKeyPath: "bounds") - self.removeObserver(self, forKeyPath: "frame") + removeObserver(self, forKeyPath: "bounds") + removeObserver(self, forKeyPath: "frame") } internal func initialize() { #if os(iOS) - self.backgroundColor = NSUIColor.clear + self.backgroundColor = .clear #endif - _animator = Animator() - _animator.delegate = self - - _viewPortHandler = ViewPortHandler(width: bounds.size.width, height: bounds.size.height) - - chartDescription = Description() - - _legend = Legend() - _legendRenderer = LegendRenderer(viewPortHandler: _viewPortHandler, legend: _legend) - - _xAxis = XAxis() - - self.addObserver(self, forKeyPath: "bounds", options: .new, context: nil) - self.addObserver(self, forKeyPath: "frame", options: .new, context: nil) + addObserver(self, forKeyPath: "bounds", options: .new, context: nil) + addObserver(self, forKeyPath: "frame", options: .new, context: nil) } // MARK: - ChartViewBase - /// The data for the chart - open var data: ChartData? - { - get - { - return _data - } - set - { - _data = newValue - _offsetsCalculated = false - - guard let _data = _data else - { - return - } - - // calculate how many digits are needed - setupDefaultFormatter(min: _data.getYMin(), max: _data.getYMax()) - - for set in _data.dataSets - { - if set.needsFormatter || set.valueFormatter === _defaultValueFormatter - { - set.valueFormatter = _defaultValueFormatter - } - } - - // let the chart know there is new data - notifyDataSetChanged() - } - } - /// Clears the chart from all data (sets it to null) and refreshes it (by calling setNeedsDisplay()). @objc open func clear() { - _data = nil - _offsetsCalculated = false - _indicesToHighlight.removeAll() + data = nil + offsetsCalculated = false + highlighted.removeAll() lastHighlighted = nil setNeedsDisplay() @@ -231,23 +203,15 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// Removes all DataSets (and thereby Entries) from the chart. Does not set the data object to nil. Also refreshes the chart by calling setNeedsDisplay(). @objc open func clearValues() { - _data?.clearValues() + data?.clearValues() setNeedsDisplay() } /// - returns: `true` if the chart is empty (meaning it's data object is either null or contains no entries). @objc open func isEmpty() -> Bool { - guard let data = _data else { return true } - - if data.entryCount <= 0 - { - return true - } - else - { - return false - } + guard let data = data else { return true } + return data.entryCount <= 0 } /// Lets the chart know its underlying data has changed and should perform all necessary recalculations. @@ -273,9 +237,9 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate internal func setupDefaultFormatter(min: Double, max: Double) { // check if a custom formatter is set or not - var reference = Double(0.0) + var reference = 0.0 - if let data = _data , data.entryCount >= 2 + if let data = data , data.entryCount >= 2 { reference = fabs(max - min) } @@ -290,7 +254,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate if _defaultValueFormatter is DefaultValueFormatter { // setup the formatter with a new number of digits - let digits = ChartUtils.decimals(reference) + let digits = reference.decimalPlaces (_defaultValueFormatter as? DefaultValueFormatter)?.decimals = digits @@ -304,7 +268,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate let frame = self.bounds - if _data === nil && noDataText.count > 0 + if data === nil && !noDataText.isEmpty { context.saveGState() defer { context.restoreGState() } @@ -314,8 +278,8 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate text: noDataText, point: CGPoint(x: frame.width / 2.0, y: frame.height / 2.0), attributes: - [NSAttributedStringKey.font: noDataFont, - NSAttributedStringKey.foregroundColor: noDataTextColor], + [.font: noDataFont, + .foregroundColor: noDataTextColor], constrainedToSize: self.bounds.size, anchor: CGPoint(x: 0.5, y: 0.5), angleRadians: 0.0) @@ -323,31 +287,32 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate return } - if !_offsetsCalculated + if !offsetsCalculated { calculateOffsets() - _offsetsCalculated = true + offsetsCalculated = true } } /// Draws the description text in the bottom right corner of the chart (per default) internal func drawDescription(context: CGContext) { + let description = chartDescription + // check if description should be drawn guard - let description = chartDescription, description.isEnabled, let descriptionText = description.text, descriptionText.count > 0 else { return } - let position = description.position ?? CGPoint(x: bounds.width - _viewPortHandler.offsetRight - description.xOffset, - y: bounds.height - _viewPortHandler.offsetBottom - description.yOffset - description.font.lineHeight) - - var attrs = [NSAttributedStringKey : Any]() + let position = description.position ?? CGPoint(x: bounds.width - viewPortHandler.offsetRight - description.xOffset, + y: bounds.height - viewPortHandler.offsetBottom - description.yOffset - description.font.lineHeight) - attrs[NSAttributedStringKey.font] = description.font - attrs[NSAttributedStringKey.foregroundColor] = description.textColor + let attrs: [NSAttributedStringKey : Any] = [ + .font: description.font, + .foregroundColor: description.textColor + ] ChartUtils.drawText( context: context, @@ -358,13 +323,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate } // MARK: - Highlighting - - /// - returns: The array of currently highlighted values. This might an empty if nothing is highlighted. - @objc open var highlighted: [Highlight] - { - return _indicesToHighlight - } - + /// Set this to false to prevent values from being highlighted by tap gesture. /// Values can still be highlighted via drag or programmatically. /// **default**: true @@ -384,7 +343,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - returns: `true` if there are values to highlight, `false` ifthere are no values to highlight. @objc open func valuesToHighlight() -> Bool { - return _indicesToHighlight.count > 0 + return highlighted.count > 0 } /// Highlights the values at the given indices in the given DataSets. Provide @@ -394,16 +353,12 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate @objc open func highlightValues(_ highs: [Highlight]?) { // set the indices to highlight - _indicesToHighlight = highs ?? [Highlight]() - - if _indicesToHighlight.isEmpty - { - self.lastHighlighted = nil - } - else - { - self.lastHighlighted = _indicesToHighlight[0] - } + highlighted = highs ?? [] + + lastHighlighted = highlighted.isEmpty + ? nil + : highlighted[0] + // redraw the chart setNeedsDisplay() @@ -448,7 +403,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter callDelegate: Should the delegate be called for this change @objc open func highlightValue(x: Double, y: Double, dataSetIndex: Int, callDelegate: Bool) { - guard let data = _data else + guard let data = data else { Swift.print("Value not highlighted because data is nil") return @@ -475,41 +430,30 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// Highlights the value selected by touch gesture. @objc open func highlightValue(_ highlight: Highlight?, callDelegate: Bool) { - var entry: ChartDataEntry? - var h = highlight - - if h == nil - { - _indicesToHighlight.removeAll(keepingCapacity: false) - } - else - { - // set the indices to highlight - entry = _data?.entryForHighlight(h!) - if entry == nil - { - h = nil - _indicesToHighlight.removeAll(keepingCapacity: false) - } + var high = highlight + guard + let h = high, + let entry = data?.entryForHighlight(h) else - { - _indicesToHighlight = [h!] - } + { + high = nil + highlighted.removeAll(keepingCapacity: false) + if callDelegate + { + delegate?.chartValueNothingSelected?(self) + } + return } - - if callDelegate, let delegate = delegate + + // set the indices to highlight + highlighted = [h] + + if callDelegate { - if let h = h - { - // notify the listener - delegate.chartValueSelected?(self, entry: entry!, highlight: h) - } - else - { - delegate.chartValueNothingSelected?(self) - } + // notify the listener + delegate?.chartValueSelected?(self, entry: entry, highlight: h) } - + // redraw the chart setNeedsDisplay() } @@ -519,7 +463,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// CandleStick-Chart. @objc open func getHighlightByTouchPoint(_ pt: CGPoint) -> Highlight? { - if _data === nil + guard data != nil else { Swift.print("Can't select by touch. No data set.") return nil @@ -538,33 +482,25 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate { // if there is no marker view or drawing marker is disabled guard - let marker = marker - , isDrawMarkersEnabled && - valuesToHighlight() + let marker = marker, + isDrawMarkersEnabled, + valuesToHighlight() else { return } - for i in 0 ..< _indicesToHighlight.count + for highlight in highlighted { - let highlight = _indicesToHighlight[i] - - guard let - set = data?.getDataSetByIndex(highlight.dataSetIndex), - let e = _data?.entryForHighlight(highlight) + guard + let set = data?.getDataSetByIndex(highlight.dataSetIndex), + let e = data?.entryForHighlight(highlight) else { continue } let entryIndex = set.entryIndex(entry: e) - if entryIndex > Int(Double(set.entryCount) * _animator.phaseX) - { - continue - } + guard entryIndex <= Int(Double(set.entryCount) * chartAnimator.phaseX) else { continue } let pos = getMarkerPosition(highlight: highlight) // check bounds - if !_viewPortHandler.isInBounds(x: pos.x, y: pos.y) - { - continue - } + guard viewPortHandler.isInBounds(x: pos.x, y: pos.y) else { continue } // callbacks to update the content marker.refreshContent(entry: e, highlight: highlight) @@ -581,13 +517,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate } // MARK: - Animation - - /// - returns: The animator responsible for animating chart values. - @objc open var chartAnimator: Animator! - { - return _animator - } - + /// Animates the drawing / rendering of the chart on both x- and y-axis with the specified animation time. /// If `animate(...)` is called, no further calling of `invalidate()` is necessary to refresh the chart. /// - parameter xAxisDuration: duration for animating the x axis @@ -596,7 +526,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easingY: an easing function for the animation on the y axis @objc open func animate(xAxisDuration: TimeInterval, yAxisDuration: TimeInterval, easingX: ChartEasingFunctionBlock?, easingY: ChartEasingFunctionBlock?) { - _animator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easingX: easingX, easingY: easingY) + chartAnimator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easingX: easingX, easingY: easingY) } /// Animates the drawing / rendering of the chart on both x- and y-axis with the specified animation time. @@ -607,7 +537,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easingOptionY: the easing function for the animation on the y axis @objc open func animate(xAxisDuration: TimeInterval, yAxisDuration: TimeInterval, easingOptionX: ChartEasingOption, easingOptionY: ChartEasingOption) { - _animator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easingOptionX: easingOptionX, easingOptionY: easingOptionY) + chartAnimator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easingOptionX: easingOptionX, easingOptionY: easingOptionY) } /// Animates the drawing / rendering of the chart on both x- and y-axis with the specified animation time. @@ -617,7 +547,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easing: an easing function for the animation @objc open func animate(xAxisDuration: TimeInterval, yAxisDuration: TimeInterval, easing: ChartEasingFunctionBlock?) { - _animator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easing: easing) + chartAnimator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easing: easing) } /// Animates the drawing / rendering of the chart on both x- and y-axis with the specified animation time. @@ -627,7 +557,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easingOption: the easing function for the animation @objc open func animate(xAxisDuration: TimeInterval, yAxisDuration: TimeInterval, easingOption: ChartEasingOption) { - _animator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easingOption: easingOption) + chartAnimator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration, easingOption: easingOption) } /// Animates the drawing / rendering of the chart on both x- and y-axis with the specified animation time. @@ -636,7 +566,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter yAxisDuration: duration for animating the y axis @objc open func animate(xAxisDuration: TimeInterval, yAxisDuration: TimeInterval) { - _animator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration) + chartAnimator.animate(xAxisDuration: xAxisDuration, yAxisDuration: yAxisDuration) } /// Animates the drawing / rendering of the chart the x-axis with the specified animation time. @@ -645,7 +575,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easing: an easing function for the animation @objc open func animate(xAxisDuration: TimeInterval, easing: ChartEasingFunctionBlock?) { - _animator.animate(xAxisDuration: xAxisDuration, easing: easing) + chartAnimator.animate(xAxisDuration: xAxisDuration, easing: easing) } /// Animates the drawing / rendering of the chart the x-axis with the specified animation time. @@ -654,7 +584,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easingOption: the easing function for the animation @objc open func animate(xAxisDuration: TimeInterval, easingOption: ChartEasingOption) { - _animator.animate(xAxisDuration: xAxisDuration, easingOption: easingOption) + chartAnimator.animate(xAxisDuration: xAxisDuration, easingOption: easingOption) } /// Animates the drawing / rendering of the chart the x-axis with the specified animation time. @@ -662,7 +592,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter xAxisDuration: duration for animating the x axis @objc open func animate(xAxisDuration: TimeInterval) { - _animator.animate(xAxisDuration: xAxisDuration) + chartAnimator.animate(xAxisDuration: xAxisDuration) } /// Animates the drawing / rendering of the chart the y-axis with the specified animation time. @@ -671,7 +601,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easing: an easing function for the animation @objc open func animate(yAxisDuration: TimeInterval, easing: ChartEasingFunctionBlock?) { - _animator.animate(yAxisDuration: yAxisDuration, easing: easing) + chartAnimator.animate(yAxisDuration: yAxisDuration, easing: easing) } /// Animates the drawing / rendering of the chart the y-axis with the specified animation time. @@ -680,7 +610,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter easingOption: the easing function for the animation @objc open func animate(yAxisDuration: TimeInterval, easingOption: ChartEasingOption) { - _animator.animate(yAxisDuration: yAxisDuration, easingOption: easingOption) + chartAnimator.animate(yAxisDuration: yAxisDuration, easingOption: easingOption) } /// Animates the drawing / rendering of the chart the y-axis with the specified animation time. @@ -688,7 +618,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - parameter yAxisDuration: duration for animating the y axis @objc open func animate(yAxisDuration: TimeInterval) { - _animator.animate(yAxisDuration: yAxisDuration) + chartAnimator.animate(yAxisDuration: yAxisDuration) } // MARK: - Accessors @@ -696,28 +626,28 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - returns: The current y-max value across all DataSets open var chartYMax: Double { - return _data?.yMax ?? 0.0 + return data?.yMax ?? 0.0 } /// - returns: The current y-min value across all DataSets open var chartYMin: Double { - return _data?.yMin ?? 0.0 + return data?.yMin ?? 0.0 } open var chartXMax: Double { - return _xAxis._axisMaximum + return xAxis._axisMaximum } open var chartXMin: Double { - return _xAxis._axisMinimum + return xAxis._axisMinimum } open var xRange: Double { - return _xAxis.axisRange + return xAxis.axisRange } /// * @@ -732,34 +662,15 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - returns: The center of the chart taking offsets under consideration. (returns the center of the content rectangle) open var centerOffsets: CGPoint { - return _viewPortHandler.contentCenter - } - - /// - returns: The Legend object of the chart. This method can be used to get an instance of the legend in order to customize the automatically generated Legend. - @objc open var legend: Legend - { - return _legend - } - - /// - returns: The renderer object responsible for rendering / drawing the Legend. - @objc open var legendRenderer: LegendRenderer! - { - return _legendRenderer + return viewPortHandler.contentCenter } - + /// - returns: The rectangle that defines the borders of the chart-value surface (into which the actual values are drawn). @objc open var contentRect: CGRect { - return _viewPortHandler.contentRect - } - - /// - returns: The ViewPortHandler of the chart that is responsible for the - /// content area of the chart and its offsets and dimensions. - @objc open var viewPortHandler: ViewPortHandler! - { - return _viewPortHandler + return viewPortHandler.contentRect } - + /// - returns: The bitmap that represents the chart. @objc open func getChartImage(transparent: Bool) -> NSUIImage? { @@ -768,7 +679,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate guard let context = NSUIGraphicsGetCurrentContext() else { return nil } - let rect = CGRect(origin: CGPoint(x: 0, y: 0), size: bounds.size) + let rect = CGRect(origin: .zero, size: bounds.size) if isOpaque || !transparent { @@ -841,11 +752,10 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate { let bounds = self.bounds - if (_viewPortHandler !== nil && - (bounds.size.width != _viewPortHandler.chartWidth || - bounds.size.height != _viewPortHandler.chartHeight)) + if ((bounds.size.width != viewPortHandler.chartWidth || + bounds.size.height != viewPortHandler.chartHeight)) { - _viewPortHandler.setChartDimens(width: bounds.size.width, height: bounds.size.height) + viewPortHandler.setChartDimens(width: bounds.size.width, height: bounds.size.height) // This may cause the chart view to mutate properties affecting the view port -- lets do this // before we try to run any pending jobs on the view port itself @@ -876,7 +786,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate @objc open func addViewportJob(_ job: ViewPortJob) { - if _viewPortHandler.hasChartDimens + if viewPortHandler.hasChartDimens { job.doJob() } @@ -895,8 +805,6 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// Deceleration friction coefficient in [0 ; 1] interval, higher values indicate that speed will decrease slowly, for example if it set to 0, it will stop immediately. /// 1 is an invalid value, and will be converted to 0.999 automatically. - /// - /// **default**: true @objc open var dragDecelerationFrictionCoef: CGFloat { get @@ -905,19 +813,15 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate } set { - var val = newValue - if val < 0.0 - { - val = 0.0 - } - if val >= 1.0 + switch newValue { - val = 0.999 + case ..<0.0: _dragDecelerationFrictionCoef = 0 + case 1.0...: _dragDecelerationFrictionCoef = 0.999 + default: _dragDecelerationFrictionCoef = newValue } - - _dragDecelerationFrictionCoef = val } } + private var _dragDecelerationFrictionCoef: CGFloat = 0.9 /// The maximum distance in screen pixels away from an entry causing it to highlight. /// **default**: 500.0 @@ -926,7 +830,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// the number of maximum visible drawn values on the chart only active when `drawValuesEnabled` is enabled open var maxVisibleCount: Int { - return Int(INT_MAX) + return .max } // MARK: - AnimatorDelegate @@ -945,7 +849,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate open override func nsuiTouchesBegan(_ touches: Set, withEvent event: NSUIEvent?) { - if !_interceptTouchEvents + if !interceptTouchEvents { super.nsuiTouchesBegan(touches, withEvent: event) } @@ -953,7 +857,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate open override func nsuiTouchesMoved(_ touches: Set, withEvent event: NSUIEvent?) { - if !_interceptTouchEvents + if !interceptTouchEvents { super.nsuiTouchesMoved(touches, withEvent: event) } @@ -961,7 +865,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate open override func nsuiTouchesEnded(_ touches: Set, withEvent event: NSUIEvent?) { - if !_interceptTouchEvents + if !interceptTouchEvents { super.nsuiTouchesEnded(touches, withEvent: event) } @@ -969,7 +873,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate open override func nsuiTouchesCancelled(_ touches: Set?, withEvent event: NSUIEvent?) { - if !_interceptTouchEvents + if !interceptTouchEvents { super.nsuiTouchesCancelled(touches, withEvent: event) } diff --git a/Source/Charts/Charts/CombinedChartView.swift b/Source/Charts/Charts/CombinedChartView.swift index 6ec831a026..7a5af57ecc 100644 --- a/Source/Charts/Charts/CombinedChartView.swift +++ b/Source/Charts/Charts/CombinedChartView.swift @@ -40,7 +40,7 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider _fillFormatter = DefaultFillFormatter() - renderer = CombinedChartRenderer(chart: self, animator: _animator, viewPortHandler: _viewPortHandler) + renderer = CombinedChartRenderer(chart: self, animator: chartAnimator, viewPortHandler: viewPortHandler) } open override var data: ChartData? @@ -79,7 +79,7 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider /// - returns: The Highlight object (contains x-index and DataSet index) of the selected value at the given touch point inside the CombinedChart. open override func getHighlightByTouchPoint(_ pt: CGPoint) -> Highlight? { - if _data === nil + if data === nil { Swift.print("Can't select by touch. No data set.") return nil @@ -106,7 +106,7 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider { get { - return _data as? CombinedChartData + return data as? CombinedChartData } } @@ -213,17 +213,17 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider isDrawMarkersEnabled && valuesToHighlight() else { return } - for i in 0 ..< _indicesToHighlight.count + for i in 0 ..< highlighted.count { - let highlight = _indicesToHighlight[i] + let highlight = highlighted[i] guard let set = combinedData?.getDataSetByHighlight(highlight), - let e = _data?.entryForHighlight(highlight) + let e = data?.entryForHighlight(highlight) else { continue } let entryIndex = set.entryIndex(entry: e) - if entryIndex > Int(Double(set.entryCount) * _animator.phaseX) + if entryIndex > Int(Double(set.entryCount) * chartAnimator.phaseX) { continue } @@ -231,7 +231,7 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider let pos = getMarkerPosition(highlight: highlight) // check bounds - if !_viewPortHandler.isInBounds(x: pos.x, y: pos.y) + if !viewPortHandler.isInBounds(x: pos.x, y: pos.y) { continue } diff --git a/Source/Charts/Charts/HorizontalBarChartView.swift b/Source/Charts/Charts/HorizontalBarChartView.swift index e36567bb8c..e766471f62 100644 --- a/Source/Charts/Charts/HorizontalBarChartView.swift +++ b/Source/Charts/Charts/HorizontalBarChartView.swift @@ -23,14 +23,14 @@ open class HorizontalBarChartView: BarChartView { super.initialize() - _leftAxisTransformer = TransformerHorizontalBarChart(viewPortHandler: _viewPortHandler) - _rightAxisTransformer = TransformerHorizontalBarChart(viewPortHandler: _viewPortHandler) - - renderer = HorizontalBarChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler) - _leftYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, axis: _leftAxis, transformer: _leftAxisTransformer) - _rightYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, axis: _rightAxis, transformer: _rightAxisTransformer) - _xAxisRenderer = XAxisRendererHorizontalBarChart(viewPortHandler: _viewPortHandler, axis: _xAxis, transformer: _leftAxisTransformer, chart: self) + _leftAxisTransformer = TransformerHorizontalBarChart(viewPortHandler: viewPortHandler) + _rightAxisTransformer = TransformerHorizontalBarChart(viewPortHandler: viewPortHandler) + renderer = HorizontalBarChartRenderer(dataProvider: self, animator: chartAnimator, viewPortHandler: viewPortHandler) + leftYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: viewPortHandler, axis: leftAxis, transformer: _leftAxisTransformer) + rightYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: viewPortHandler, axis: rightAxis, transformer: _rightAxisTransformer) + xAxisRenderer = XAxisRendererHorizontalBarChart(viewPortHandler: viewPortHandler, axis: xAxis, transformer: _leftAxisTransformer, chart: self) + self.highlighter = HorizontalBarHighlighter(chart: self) } @@ -47,30 +47,30 @@ open class HorizontalBarChartView: BarChartView offsetBottom: &offsetBottom) // offsets for y-labels - if _leftAxis.needsOffset + if leftAxis.needsOffset { - offsetTop += _leftAxis.getRequiredHeightSpace() + offsetTop += leftAxis.getRequiredHeightSpace() } - if _rightAxis.needsOffset + if rightAxis.needsOffset { - offsetBottom += _rightAxis.getRequiredHeightSpace() + offsetBottom += rightAxis.getRequiredHeightSpace() } - let xlabelwidth = _xAxis.labelRotatedWidth + let xlabelwidth = xAxis.labelRotatedWidth - if _xAxis.isEnabled + if xAxis.isEnabled { // offsets for x-labels - if _xAxis.labelPosition == .bottom + if xAxis.labelPosition == .bottom { offsetLeft += xlabelwidth } - else if _xAxis.labelPosition == .top + else if xAxis.labelPosition == .top { offsetRight += xlabelwidth } - else if _xAxis.labelPosition == .bothSided + else if xAxis.labelPosition == .bothSided { offsetLeft += xlabelwidth offsetRight += xlabelwidth @@ -82,7 +82,7 @@ open class HorizontalBarChartView: BarChartView offsetBottom += self.extraBottomOffset offsetLeft += self.extraLeftOffset - _viewPortHandler.restrainViewPort( + viewPortHandler.restrainViewPort( offsetLeft: max(self.minOffset, offsetLeft), offsetTop: max(self.minOffset, offsetTop), offsetRight: max(self.minOffset, offsetRight), @@ -94,8 +94,8 @@ open class HorizontalBarChartView: BarChartView internal override func prepareValuePxMatrix() { - _rightAxisTransformer.prepareMatrixValuePx(chartXMin: _rightAxis._axisMinimum, deltaX: CGFloat(_rightAxis.axisRange), deltaY: CGFloat(_xAxis.axisRange), chartYMin: _xAxis._axisMinimum) - _leftAxisTransformer.prepareMatrixValuePx(chartXMin: _leftAxis._axisMinimum, deltaX: CGFloat(_leftAxis.axisRange), deltaY: CGFloat(_xAxis.axisRange), chartYMin: _xAxis._axisMinimum) + _rightAxisTransformer.prepareMatrixValuePx(chartXMin: rightAxis._axisMinimum, deltaX: CGFloat(rightAxis.axisRange), deltaY: CGFloat(xAxis.axisRange), chartYMin: xAxis._axisMinimum) + _leftAxisTransformer.prepareMatrixValuePx(chartXMin: leftAxis._axisMinimum, deltaX: CGFloat(leftAxis.axisRange), deltaY: CGFloat(xAxis.axisRange), chartYMin: xAxis._axisMinimum) } open override func getMarkerPosition(highlight: Highlight) -> CGPoint @@ -106,9 +106,9 @@ open class HorizontalBarChartView: BarChartView open override func getBarBounds(entry e: BarChartDataEntry) -> CGRect { guard - let data = _data as? BarChartData, + let data = data as? BarChartData, let set = data.getDataSetForEntry(e) as? BarChartDataSetProtocol - else { return CGRect.null } + else { return .null } let y = e.y let x = e.x @@ -138,7 +138,7 @@ open class HorizontalBarChartView: BarChartView open override func getHighlightByTouchPoint(_ pt: CGPoint) -> Highlight? { - if _data === nil + if data === nil { Swift.print("Can't select by touch. No data set.", terminator: "\n") return nil diff --git a/Source/Charts/Charts/LineChartView.swift b/Source/Charts/Charts/LineChartView.swift index c5fbecfacf..e7918266b2 100644 --- a/Source/Charts/Charts/LineChartView.swift +++ b/Source/Charts/Charts/LineChartView.swift @@ -19,10 +19,10 @@ open class LineChartView: BarLineChartViewBase, LineChartDataProvider { super.initialize() - renderer = LineChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler) + renderer = LineChartRenderer(dataProvider: self, animator: chartAnimator, viewPortHandler: viewPortHandler) } // MARK: - LineChartDataProvider - open var lineData: LineChartData? { return _data as? LineChartData } + open var lineData: LineChartData? { return data as? LineChartData } } diff --git a/Source/Charts/Charts/PieChartView.swift b/Source/Charts/Charts/PieChartView.swift index e0b2d699a0..e8b653bc1e 100644 --- a/Source/Charts/Charts/PieChartView.swift +++ b/Source/Charts/Charts/PieChartView.swift @@ -86,9 +86,8 @@ open class PieChartView: PieRadarChartViewBase { super.initialize() - renderer = PieChartRenderer(chart: self, animator: _animator, viewPortHandler: _viewPortHandler) - _xAxis = nil - + renderer = PieChartRenderer(chart: self, animator: chartAnimator, viewPortHandler: viewPortHandler) + self.highlighter = PieHighlighter(chart: self) } @@ -96,7 +95,7 @@ open class PieChartView: PieRadarChartViewBase { super.draw(rect) - if _data === nil + if data === nil { return } @@ -111,14 +110,14 @@ open class PieChartView: PieRadarChartViewBase if (valuesToHighlight()) { - renderer.drawHighlighted(context: context, indices: _indicesToHighlight) + renderer.drawHighlighted(context: context, indices: highlighted) } renderer.drawExtras(context: context) renderer.drawValues(context: context) - _legendRenderer.renderLegend(context: context) + legendRenderer.renderLegend(context: context) drawDescription(context: context) @@ -130,7 +129,7 @@ open class PieChartView: PieRadarChartViewBase super.calculateOffsets() // prevent nullpointer when no data set - if _data === nil + if data === nil { return } @@ -175,9 +174,9 @@ open class PieChartView: PieRadarChartViewBase let offset = drawAngles[entryIndex] / 2.0 // calculate the text position - let x: CGFloat = (r * cos(((rotationAngle + absoluteAngles[entryIndex] - offset) * CGFloat(_animator.phaseY)).DEG2RAD) + center.x) - let y: CGFloat = (r * sin(((rotationAngle + absoluteAngles[entryIndex] - offset) * CGFloat(_animator.phaseY)).DEG2RAD) + center.y) - + let x = (r * cos(((rotationAngle + absoluteAngles[entryIndex] - offset) * CGFloat(chartAnimator.phaseY)).DEG2RAD) + center.x) + let y = (r * sin(((rotationAngle + absoluteAngles[entryIndex] - offset) * CGFloat(chartAnimator.phaseY)).DEG2RAD) + center.y) + return CGPoint(x: x, y: y) } @@ -187,14 +186,14 @@ open class PieChartView: PieRadarChartViewBase _drawAngles = [CGFloat]() _absoluteAngles = [CGFloat]() - guard let data = _data else { return } + guard let data = data else { return } let entryCount = data.entryCount _drawAngles.reserveCapacity(entryCount) _absoluteAngles.reserveCapacity(entryCount) - let yValueSum = (_data as! PieChartData).yValueSum + let yValueSum = (data as! PieChartData).yValueSum var dataSets = data.dataSets @@ -234,10 +233,10 @@ open class PieChartView: PieRadarChartViewBase return false } - for i in 0 ..< _indicesToHighlight.count + for i in 0 ..< highlighted.count { // check if the xvalue for the given dataset needs highlight - if Int(_indicesToHighlight[i].x) == index + if Int(highlighted[i].x) == index { return true } @@ -249,7 +248,7 @@ open class PieChartView: PieRadarChartViewBase /// calculates the needed angle for a given value private func calcAngle(_ value: Double) -> CGFloat { - return calcAngle(value: value, yValueSum: (_data as! PieChartData).yValueSum) + return calcAngle(value: value, yValueSum: (data as! PieChartData).yValueSum) } /// calculates the needed angle for a given value @@ -261,7 +260,8 @@ open class PieChartView: PieRadarChartViewBase /// This will throw an exception, PieChart has no XAxis object. open override var xAxis: XAxis { - fatalError("PieChart has no XAxis") + get { fatalError("PieChart has no XAxis") } + set { fatalError("PieChart has no XAxis") } } open override func indexForAngle(_ angle: CGFloat) -> Int @@ -282,7 +282,7 @@ open class PieChartView: PieRadarChartViewBase /// - returns: The index of the DataSet this x-index belongs to. @objc open func dataSetIndexForIndex(_ xValue: Double) -> Int { - var dataSets = _data?.dataSets ?? [] + var dataSets = data?.dataSets ?? [] for i in 0 ..< dataSets.count { @@ -460,7 +460,7 @@ open class PieChartView: PieRadarChartViewBase internal override var requiredLegendOffset: CGFloat { - return _legend.font.pointSize * 2.0 + return legend.font.pointSize * 2.0 } internal override var requiredBaseOffset: CGFloat diff --git a/Source/Charts/Charts/PieRadarChartViewBase.swift b/Source/Charts/Charts/PieRadarChartViewBase.swift index 5d6f22fac8..bb01e11242 100644 --- a/Source/Charts/Charts/PieRadarChartViewBase.swift +++ b/Source/Charts/Charts/PieRadarChartViewBase.swift @@ -71,7 +71,7 @@ open class PieRadarChartViewBase: ChartViewBase internal override func calcMinMax() { - /*_xAxis.axisRange = Double((_data?.xVals.count ?? 0) - 1)*/ + /*_xAxis.axisRange = Double((data?.xVals.count ?? 0) - 1)*/ } open override var maxVisibleCount: Int @@ -86,9 +86,9 @@ open class PieRadarChartViewBase: ChartViewBase { calcMinMax() - if let data = _data , _legend !== nil + if let data = data { - _legendRenderer.computeLegend(data: data) + legendRenderer.computeLegend(data: data) } calculateOffsets() @@ -103,20 +103,20 @@ open class PieRadarChartViewBase: ChartViewBase var legendBottom = CGFloat(0.0) var legendTop = CGFloat(0.0) - if _legend != nil && _legend.enabled && !_legend.drawInside + if legend.enabled && !legend.drawInside { - let fullLegendWidth = min(_legend.neededWidth, _viewPortHandler.chartWidth * _legend.maxSizePercent) + let fullLegendWidth = min(legend.neededWidth, viewPortHandler.chartWidth * legend.maxSizePercent) - switch _legend.orientation + switch legend.orientation { case .vertical: var xLegendOffset: CGFloat = 0.0 - if _legend.horizontalAlignment == .left - || _legend.horizontalAlignment == .right + if legend.horizontalAlignment == .left + || legend.horizontalAlignment == .right { - if _legend.verticalAlignment == .center + if legend.verticalAlignment == .center { // this is the space between the legend and the chart let spacing = CGFloat(13.0) @@ -129,11 +129,11 @@ open class PieRadarChartViewBase: ChartViewBase let spacing = CGFloat(8.0) let legendWidth = fullLegendWidth + spacing - let legendHeight = _legend.neededHeight + _legend.textHeightMax + let legendHeight = legend.neededHeight + legend.textHeightMax let c = self.midPoint - let bottomX = _legend.horizontalAlignment == .right + let bottomX = legend.horizontalAlignment == .right ? self.bounds.width - legendWidth + 15.0 : legendWidth - 15.0 let bottomY = legendHeight + 15 @@ -158,7 +158,7 @@ open class PieRadarChartViewBase: ChartViewBase } } - switch _legend.horizontalAlignment + switch legend.horizontalAlignment { case .left: legendLeft = xLegendOffset @@ -168,13 +168,13 @@ open class PieRadarChartViewBase: ChartViewBase case .center: - switch _legend.verticalAlignment + switch legend.verticalAlignment { case .top: - legendTop = min(_legend.neededHeight, _viewPortHandler.chartHeight * _legend.maxSizePercent) + legendTop = min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) case .bottom: - legendBottom = min(_legend.neededHeight, _viewPortHandler.chartHeight * _legend.maxSizePercent) + legendBottom = min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) default: break @@ -185,8 +185,8 @@ open class PieRadarChartViewBase: ChartViewBase var yLegendOffset: CGFloat = 0.0 - if _legend.verticalAlignment == .top - || _legend.verticalAlignment == .bottom + if legend.verticalAlignment == .top + || legend.verticalAlignment == .bottom { // It's possible that we do not need this offset anymore as it // is available through the extraOffsets, but changing it can mean @@ -194,11 +194,11 @@ open class PieRadarChartViewBase: ChartViewBase let yOffset = self.requiredLegendOffset yLegendOffset = min( - _legend.neededHeight + yOffset, - _viewPortHandler.chartHeight * _legend.maxSizePercent) + legend.neededHeight + yOffset, + viewPortHandler.chartHeight * legend.maxSizePercent) } - switch _legend.verticalAlignment + switch legend.verticalAlignment { case .top: @@ -241,7 +241,7 @@ open class PieRadarChartViewBase: ChartViewBase let offsetRight = max(minOffset, legendRight) let offsetBottom = max(minOffset, max(self.requiredBaseOffset, legendBottom)) - _viewPortHandler.restrainViewPort(offsetLeft: offsetLeft, offsetTop: offsetTop, offsetRight: offsetRight, offsetBottom: offsetBottom) + viewPortHandler.restrainViewPort(offsetLeft: offsetLeft, offsetTop: offsetTop, offsetRight: offsetRight, offsetBottom: offsetBottom) } /// - returns: The angle relative to the chart center for the given point on the chart in degrees. @@ -351,7 +351,7 @@ open class PieRadarChartViewBase: ChartViewBase /// - returns: The diameter of the pie- or radar-chart @objc open var diameter: CGFloat { - var content = _viewPortHandler.contentRect + var content = viewPortHandler.contentRect content.origin.x += extraLeftOffset content.origin.y += extraTopOffset content.size.width -= extraLeftOffset + extraRightOffset diff --git a/Source/Charts/Charts/RadarChartView.swift b/Source/Charts/Charts/RadarChartView.swift index 0d1143bead..7b46449585 100644 --- a/Source/Charts/Charts/RadarChartView.swift +++ b/Source/Charts/Charts/RadarChartView.swift @@ -60,11 +60,11 @@ open class RadarChartView: PieRadarChartViewBase _yAxis = YAxis(position: .left) - renderer = RadarChartRenderer(chart: self, animator: _animator, viewPortHandler: _viewPortHandler) - - _yAxisRenderer = YAxisRendererRadarChart(viewPortHandler: _viewPortHandler, axis: _yAxis, chart: self) - _xAxisRenderer = XAxisRendererRadarChart(viewPortHandler: _viewPortHandler, axis: _xAxis, chart: self) + renderer = RadarChartRenderer(chart: self, animator: chartAnimator, viewPortHandler: viewPortHandler) + _yAxisRenderer = YAxisRendererRadarChart(viewPortHandler: viewPortHandler, axis: _yAxis, chart: self) + _xAxisRenderer = XAxisRendererRadarChart(viewPortHandler: viewPortHandler, axis: xAxis, chart: self) + self.highlighter = RadarHighlighter(chart: self) } @@ -72,10 +72,10 @@ open class RadarChartView: PieRadarChartViewBase { super.calcMinMax() - guard let data = _data else { return } + guard let data = data else { return } _yAxis.calculate(min: data.getYMin(axis: .left), max: data.getYMax(axis: .left)) - _xAxis.calculate(min: 0.0, max: Double(data.maxEntryCountSet?.entryCount ?? 0)) + xAxis.calculate(min: 0.0, max: Double(data.maxEntryCountSet?.entryCount ?? 0)) } open override func notifyDataSetChanged() @@ -83,13 +83,12 @@ open class RadarChartView: PieRadarChartViewBase calcMinMax() _yAxisRenderer?.computeAxis(min: _yAxis._axisMinimum, max: _yAxis._axisMaximum, inverted: _yAxis.isInverted) - _xAxisRenderer?.computeAxis(min: _xAxis._axisMinimum, max: _xAxis._axisMaximum, inverted: false) + _xAxisRenderer?.computeAxis(min: xAxis._axisMinimum, max: xAxis._axisMaximum, inverted: false) - if let data = _data, - let legend = _legend, + if let data = data, !legend.isLegendCustom { - _legendRenderer?.computeLegend(data: data) + legendRenderer.computeLegend(data: data) } calculateOffsets() @@ -106,9 +105,9 @@ open class RadarChartView: PieRadarChartViewBase let optionalContext = NSUIGraphicsGetCurrentContext() guard let context = optionalContext else { return } - if _xAxis.isEnabled + if xAxis.isEnabled { - _xAxisRenderer.computeAxis(min: _xAxis._axisMinimum, max: _xAxis._axisMaximum, inverted: false) + _xAxisRenderer.computeAxis(min: xAxis._axisMinimum, max: xAxis._axisMaximum, inverted: false) } _xAxisRenderer?.renderAxisLabels(context: context) @@ -127,7 +126,7 @@ open class RadarChartView: PieRadarChartViewBase if valuesToHighlight() { - renderer.drawHighlighted(context: context, indices: _indicesToHighlight) + renderer.drawHighlighted(context: context, indices: highlighted) } if _yAxis.isEnabled && !_yAxis.isDrawLimitLinesBehindDataEnabled @@ -139,7 +138,7 @@ open class RadarChartView: PieRadarChartViewBase renderer.drawValues(context: context) - _legendRenderer.renderLegend(context: context) + legendRenderer.renderLegend(context: context) drawDescription(context: context) @@ -149,7 +148,7 @@ open class RadarChartView: PieRadarChartViewBase /// - returns: The factor that is needed to transform values into pixels. @objc open var factor: CGFloat { - let content = _viewPortHandler.contentRect + let content = viewPortHandler.contentRect return min(content.width / 2.0, content.height / 2.0) / CGFloat(_yAxis.axisRange) } @@ -157,7 +156,7 @@ open class RadarChartView: PieRadarChartViewBase /// - returns: The angle that each slice in the radar chart occupies. @objc open var sliceAngle: CGFloat { - return 360.0 / CGFloat(_data?.maxEntryCountSet?.entryCount ?? 0) + return 360.0 / CGFloat(data?.maxEntryCountSet?.entryCount ?? 0) } open override func indexForAngle(_ angle: CGFloat) -> Int @@ -167,7 +166,7 @@ open class RadarChartView: PieRadarChartViewBase let sliceAngle = self.sliceAngle - let max = _data?.maxEntryCountSet?.entryCount ?? 0 + let max = data?.maxEntryCountSet?.entryCount ?? 0 var index = 0 @@ -207,17 +206,17 @@ open class RadarChartView: PieRadarChartViewBase internal override var requiredLegendOffset: CGFloat { - return _legend.font.pointSize * 4.0 + return legend.font.pointSize * 4.0 } internal override var requiredBaseOffset: CGFloat { - return _xAxis.isEnabled && _xAxis.isDrawLabelsEnabled ? _xAxis.labelRotatedWidth : 10.0 + return xAxis.isEnabled && xAxis.isDrawLabelsEnabled ? xAxis.labelRotatedWidth : 10.0 } open override var radius: CGFloat { - let content = _viewPortHandler.contentRect + let content = viewPortHandler.contentRect return min(content.width / 2.0, content.height / 2.0) } diff --git a/Source/Charts/Charts/ScatterChartView.swift b/Source/Charts/Charts/ScatterChartView.swift index 22c710ad83..070acc68e0 100644 --- a/Source/Charts/Charts/ScatterChartView.swift +++ b/Source/Charts/Charts/ScatterChartView.swift @@ -19,7 +19,7 @@ open class ScatterChartView: BarLineChartViewBase, ScatterChartDataProvider { super.initialize() - renderer = ScatterChartRenderer(dataProvider: self, animator: _animator, viewPortHandler: _viewPortHandler) + renderer = ScatterChartRenderer(dataProvider: self, animator: chartAnimator, viewPortHandler: viewPortHandler) xAxis.spaceMin = 0.5 xAxis.spaceMax = 0.5 @@ -27,5 +27,5 @@ open class ScatterChartView: BarLineChartViewBase, ScatterChartDataProvider // MARK: - ScatterChartDataProvider - open var scatterData: ScatterChartData? { return _data as? ScatterChartData } + open var scatterData: ScatterChartData? { return data as? ScatterChartData } } diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index 5e59660d21..8e769d7988 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -422,5 +422,3 @@ open class ChartBaseDataSet: NSObject, ChartDataSetProtocol return copy } } - - diff --git a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift index c0e1b71974..59e1f2327b 100644 --- a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift @@ -136,25 +136,31 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData { _xMin = data.xMin } - - if data.yMax > _leftAxisMax - { - _leftAxisMax = data.yMax - } - - if data.yMin < _leftAxisMin - { - _leftAxisMin = data.yMin - } - - if data.yMax > _rightAxisMax - { - _rightAxisMax = data.yMax - } - - if data.yMin < _rightAxisMin + + for dataset in sets { - _rightAxisMin = data.yMin + if dataset.axisDependency == .left + { + if dataset.yMax > _leftAxisMax + { + _leftAxisMax = dataset.yMax + } + if dataset.yMin < _leftAxisMin + { + _leftAxisMin = dataset.yMin + } + } + else + { + if dataset.yMax > _rightAxisMax + { + _rightAxisMax = dataset.yMax + } + if dataset.yMin < _rightAxisMin + { + _rightAxisMin = dataset.yMin + } + } } } } diff --git a/Source/Charts/Highlight/RadarHighlighter.swift b/Source/Charts/Highlight/RadarHighlighter.swift index 8df2d3195a..bedd95037c 100644 --- a/Source/Charts/Highlight/RadarHighlighter.swift +++ b/Source/Charts/Highlight/RadarHighlighter.swift @@ -66,10 +66,8 @@ open class RadarHighlighter: PieRadarHighlighter let y = (entry.y - chart.chartYMin) - let p = ChartUtils.getPosition( - center: chart.centerOffsets, - dist: CGFloat(y) * factor * CGFloat(phaseY), - angle: sliceangle * CGFloat(index) * CGFloat(phaseX) + chart.rotationAngle) + let p = chart.centerOffsets.moving(distance: CGFloat(y) * factor * CGFloat(phaseY), + atAngle: sliceangle * CGFloat(index) * CGFloat(phaseX) + chart.rotationAngle) vals.append(Highlight(x: Double(index), y: entry.y, xPx: p.x, yPx: p.y, dataSetIndex: i, axis: dataSet.axisDependency)) } diff --git a/Source/Charts/Renderers/RadarChartRenderer.swift b/Source/Charts/Renderers/RadarChartRenderer.swift index 941d70948e..d603a0aad1 100644 --- a/Source/Charts/Renderers/RadarChartRenderer.swift +++ b/Source/Charts/Renderers/RadarChartRenderer.swift @@ -76,10 +76,8 @@ open class RadarChartRenderer: LineRadarRenderer { guard let e = dataSet.entryForIndex(j) else { continue } - let p = ChartUtils.getPosition( - center: center, - dist: CGFloat((e.y - chart.chartYMin) * Double(factor) * phaseY), - angle: sliceangle * CGFloat(j) * CGFloat(phaseX) + chart.rotationAngle) + let p = center.moving(distance: CGFloat((e.y - chart.chartYMin) * Double(factor) * phaseY), + atAngle: sliceangle * CGFloat(j) * CGFloat(phaseX) + chart.rotationAngle) if p.x.isNaN { @@ -170,10 +168,8 @@ open class RadarChartRenderer: LineRadarRenderer { guard let e = dataSet.entryForIndex(j) else { continue } - let p = ChartUtils.getPosition( - center: center, - dist: CGFloat(e.y - chart.chartYMin) * factor * CGFloat(phaseY), - angle: sliceangle * CGFloat(j) * CGFloat(phaseX) + chart.rotationAngle) + let p = center.moving(distance: CGFloat(e.y - chart.chartYMin) * factor * CGFloat(phaseY), + atAngle: sliceangle * CGFloat(j) * CGFloat(phaseX) + chart.rotationAngle) let valueFont = dataSet.valueFont @@ -197,10 +193,8 @@ open class RadarChartRenderer: LineRadarRenderer if let icon = e.icon, dataSet.isDrawIconsEnabled { - var pIcon = ChartUtils.getPosition( - center: center, - dist: CGFloat(e.y) * factor * CGFloat(phaseY) + iconsOffset.y, - angle: sliceangle * CGFloat(j) * CGFloat(phaseX) + chart.rotationAngle) + var pIcon = center.moving(distance: CGFloat(e.y) * factor * CGFloat(phaseY) + iconsOffset.y, + atAngle: sliceangle * CGFloat(j) * CGFloat(phaseX) + chart.rotationAngle) pIcon.y += iconsOffset.x ChartUtils.drawImage(context: context, @@ -248,10 +242,8 @@ open class RadarChartRenderer: LineRadarRenderer for i in stride(from: 0, to: maxEntryCount, by: xIncrements) { - let p = ChartUtils.getPosition( - center: center, - dist: CGFloat(chart.yRange) * factor, - angle: sliceangle * CGFloat(i) + rotationangle) + let p = center.moving(distance: CGFloat(chart.yRange) * factor, + atAngle: sliceangle * CGFloat(i) + rotationangle) _webLineSegmentsBuffer[0].x = center.x _webLineSegmentsBuffer[0].y = center.y @@ -274,8 +266,8 @@ open class RadarChartRenderer: LineRadarRenderer { let r = CGFloat(chart.yAxis.entries[j] - chart.chartYMin) * factor - let p1 = ChartUtils.getPosition(center: center, dist: r, angle: sliceangle * CGFloat(i) + rotationangle) - let p2 = ChartUtils.getPosition(center: center, dist: r, angle: sliceangle * CGFloat(i + 1) + rotationangle) + let p1 = center.moving(distance: r, atAngle: sliceangle * CGFloat(i) + rotationangle) + let p2 = center.moving(distance: r, atAngle: sliceangle * CGFloat(i + 1) + rotationangle) _webLineSegmentsBuffer[0].x = p1.x _webLineSegmentsBuffer[0].y = p1.y @@ -336,10 +328,8 @@ open class RadarChartRenderer: LineRadarRenderer let y = e.y - chart.chartYMin - _highlightPointBuffer = ChartUtils.getPosition( - center: center, - dist: CGFloat(y) * factor * CGFloat(animator.phaseY), - angle: sliceangle * CGFloat(high.x) * CGFloat(animator.phaseX) + chart.rotationAngle) + _highlightPointBuffer = center.moving(distance: CGFloat(y) * factor * CGFloat(animator.phaseY), + atAngle: sliceangle * CGFloat(high.x) * CGFloat(animator.phaseX) + chart.rotationAngle) high.setDraw(pt: _highlightPointBuffer) diff --git a/Source/Charts/Renderers/XAxisRenderer.swift b/Source/Charts/Renderers/XAxisRenderer.swift index 08811d9a05..6cc566aac3 100644 --- a/Source/Charts/Renderers/XAxisRenderer.swift +++ b/Source/Charts/Renderers/XAxisRenderer.swift @@ -78,7 +78,7 @@ open class XAxisRenderer: NSObject, AxisRenderer // Find out how much spacing (in y value space) between axis values let rawInterval = range / Double(labelCount) - var interval = ChartUtils.roundToNextSignificant(number: Double(rawInterval)) + var interval = rawInterval.roundedToNextSignificant() // If granularity is enabled, then do not allow the interval to go below specified granularity. // This is used to avoid repeated values when rounding values for display. @@ -88,7 +88,7 @@ open class XAxisRenderer: NSObject, AxisRenderer } // Normalize interval - let intervalMagnitude = ChartUtils.roundToNextSignificant(number: pow(10.0, Double(Int(log10(interval))))) + let intervalMagnitude = pow(10.0, Double(Int(log10(interval)))).roundedToNextSignificant() let intervalSigDigit = Int(interval / intervalMagnitude) if intervalSigDigit > 5 { @@ -128,7 +128,7 @@ open class XAxisRenderer: NSObject, AxisRenderer first -= interval } - let last = interval == 0.0 ? 0.0 : ChartUtils.nextUp(floor(yMax / interval) * interval) + let last = interval == 0.0 ? 0.0 : (floor(yMax / interval) * interval).nextUp if interval != 0.0 && last != first { diff --git a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift index 23f2dd75d9..dc9580d4db 100644 --- a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift @@ -35,7 +35,7 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) - if viewPortHandler.contentWidth > 10 && !viewPortHandler.isFullyZoomedOutX + if viewPortHandler.contentWidth > 10 && !viewPortHandler.isFullyZoomedOutY { let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) diff --git a/Source/Charts/Renderers/XAxisRendererRadarChart.swift b/Source/Charts/Renderers/XAxisRendererRadarChart.swift index 8b92a10b8b..80cab48fe4 100644 --- a/Source/Charts/Renderers/XAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererRadarChart.swift @@ -55,8 +55,8 @@ open class XAxisRendererRadarChart: XAxisRenderer let angle = (sliceangle * CGFloat(i) + chart.rotationAngle).truncatingRemainder(dividingBy: 360.0) - let p = ChartUtils.getPosition(center: center, dist: CGFloat(chart.yRange) * factor + axis.labelRotatedWidth / 2.0, angle: angle) - + let p = center.moving(distance: CGFloat(chart.yRange) * factor + axis.labelRotatedWidth / 2.0, atAngle: angle) + drawLabel(context: context, formattedLabel: label, x: p.x, diff --git a/Source/Charts/Renderers/YAxisRenderer.swift b/Source/Charts/Renderers/YAxisRenderer.swift index 8ffbf55965..e8a684b49b 100644 --- a/Source/Charts/Renderers/YAxisRenderer.swift +++ b/Source/Charts/Renderers/YAxisRenderer.swift @@ -424,7 +424,7 @@ open class YAxisRenderer: NSObject, AxisRenderer // Find out how much spacing (in y value space) between axis values let rawInterval = range / Double(labelCount) - var interval = ChartUtils.roundToNextSignificant(number: Double(rawInterval)) + var interval = rawInterval.roundedToNextSignificant() // If granularity is enabled, then do not allow the interval to go below specified granularity. // This is used to avoid repeated values when rounding values for display. @@ -434,7 +434,7 @@ open class YAxisRenderer: NSObject, AxisRenderer } // Normalize interval - let intervalMagnitude = ChartUtils.roundToNextSignificant(number: pow(10.0, Double(Int(log10(interval))))) + let intervalMagnitude = pow(10.0, Double(Int(log10(interval)))).roundedToNextSignificant() let intervalSigDigit = Int(interval / intervalMagnitude) if intervalSigDigit > 5 { @@ -474,7 +474,7 @@ open class YAxisRenderer: NSObject, AxisRenderer first -= interval } - let last = interval == 0.0 ? 0.0 : ChartUtils.nextUp(floor(yMax / interval) * interval) + let last = interval == 0.0 ? 0.0 : (floor(yMax / interval) * interval).nextUp if interval != 0.0 && last != first { diff --git a/Source/Charts/Renderers/YAxisRendererRadarChart.swift b/Source/Charts/Renderers/YAxisRendererRadarChart.swift index 3ba9787c9e..f8597d6f49 100644 --- a/Source/Charts/Renderers/YAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererRadarChart.swift @@ -41,7 +41,7 @@ open class YAxisRendererRadarChart: YAxisRenderer // Find out how much spacing (in yValue space) between axis values let rawInterval = range / Double(labelCount) - var interval = ChartUtils.roundToNextSignificant(number: Double(rawInterval)) + var interval = rawInterval.roundedToNextSignificant() // If granularity is enabled, then do not allow the interval to go below specified granularity. // This is used to avoid repeated values when rounding values for display. @@ -51,7 +51,7 @@ open class YAxisRendererRadarChart: YAxisRenderer } // Normalize interval - let intervalMagnitude = ChartUtils.roundToNextSignificant(number: pow(10.0, floor(log10(interval)))) + let intervalMagnitude = pow(10.0, floor(log10(interval))).roundedToNextSignificant() let intervalSigDigit = Int(interval / intervalMagnitude) if intervalSigDigit > 5 @@ -94,7 +94,7 @@ open class YAxisRendererRadarChart: YAxisRenderer first -= interval } - let last = interval == 0.0 ? 0.0 : ChartUtils.nextUp(floor(yMax / interval) * interval) + let last = interval == 0.0 ? 0.0 : (floor(yMax / interval) * interval).nextUp if interval != 0.0 { @@ -179,7 +179,7 @@ open class YAxisRendererRadarChart: YAxisRenderer { let r = CGFloat(axis.entries[j] - axis._axisMinimum) * factor - let p = ChartUtils.getPosition(center: center, dist: r, angle: chart.rotationAngle) + let p = center.moving(distance: r, atAngle: chart.rotationAngle) let label = axis.getFormattedLabel(j) @@ -244,7 +244,7 @@ open class YAxisRendererRadarChart: YAxisRenderer for j in 0 ..< (data.maxEntryCountSet?.entryCount ?? 0) { - let p = ChartUtils.getPosition(center: center, dist: r, angle: sliceangle * CGFloat(j) + chart.rotationAngle) + let p = center.moving(distance: r, atAngle: sliceangle * CGFloat(j) + chart.rotationAngle) if j == 0 { diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index 435fcb70a7..5049d879b0 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -12,34 +12,37 @@ import Foundation import CoreGraphics -#if !os(OSX) - import UIKit -#endif - -extension FloatingPoint { - var DEG2RAD: Self { +extension FloatingPoint +{ + var DEG2RAD: Self + { return self * .pi / 180 } - var RAD2DEG: Self { + var RAD2DEG: Self + { return self * 180 / .pi } /// - returns: An angle between 0.0 < 360.0 (not less than zero, less than 360) /// NOTE: Value must be in degrees - var normalizedAngle: Self { + var normalizedAngle: Self + { let angle = truncatingRemainder(dividingBy: 360) return (sign == .minus) ? angle + 360 : angle } } -extension CGSize { - func rotatedBy(degrees: CGFloat) -> CGSize { +extension CGSize +{ + func rotatedBy(degrees: CGFloat) -> CGSize + { let radians = degrees.DEG2RAD return rotatedBy(radians: radians) } - func rotatedBy(radians: CGFloat) -> CGSize { + func rotatedBy(radians: CGFloat) -> CGSize + { return CGSize( width: abs(width * cos(radians)) + abs(height * sin(radians)), height: abs(width * sin(radians)) + abs(height * cos(radians)) @@ -47,61 +50,56 @@ extension CGSize { } } -open class ChartUtils +extension Double { - private static var _defaultValueFormatter: ValueFormatter = ChartUtils.generateDefaultValueFormatter() - - internal class func roundToNextSignificant(number: Double) -> Double + /// Rounds the number to the nearest multiple of it's order of magnitude, rounding away from zero if halfway. + func roundedToNextSignificant() -> Double { - if number.isInfinite || number.isNaN || number == 0 - { - return number - } - - let d = ceil(log10(number < 0.0 ? -number : number)) + guard + !isInfinite, + !isNaN, + self != 0 + else { return self } + + let d = ceil(log10(self < 0 ? -self : self)) let pw = 1 - Int(d) - let magnitude = pow(Double(10.0), Double(pw)) - let shifted = round(number * magnitude) + let magnitude = pow(10.0, Double(pw)) + let shifted = (self * magnitude).rounded() return shifted / magnitude } - - internal class func decimals(_ number: Double) -> Int + + var decimalPlaces: Int { - if number.isNaN || number.isInfinite || number == 0.0 - { - return 0 - } - - let i = roundToNextSignificant(number: Double(number)) - - if i.isInfinite || i.isNaN - { - return 0 - } - + guard + !isNaN, + !isInfinite, + self != 0.0 + else { return 0 } + + let i = self.roundedToNextSignificant() + + guard + !i.isInfinite, + !i.isNaN + else { return 0 } + return Int(ceil(-log10(i))) + 2 } - - internal class func nextUp(_ number: Double) -> Double - { - if number.isInfinite || number.isNaN - { - return number - } - else - { - return number + Double.ulpOfOne - } - } - +} + +extension CGPoint +{ /// Calculates the position around a center point, depending on the distance from the center, and the angle of the position around the center. - internal class func getPosition(center: CGPoint, dist: CGFloat, angle: CGFloat) -> CGPoint + func moving(distance: CGFloat, atAngle angle: CGFloat) -> CGPoint { - return CGPoint( - x: center.x + dist * cos(angle.DEG2RAD), - y: center.y + dist * sin(angle.DEG2RAD) - ) + return CGPoint(x: x + distance * cos(angle.DEG2RAD), + y: y + distance * sin(angle.DEG2RAD)) } +} + +open class ChartUtils +{ + private static var _defaultValueFormatter: ValueFormatter = ChartUtils.generateDefaultValueFormatter() open class func drawImage( context: CGContext, diff --git a/Source/Charts/Utils/ViewPortHandler.swift b/Source/Charts/Utils/ViewPortHandler.swift index db45d61cb3..4fde6eca50 100755 --- a/Source/Charts/Utils/ViewPortHandler.swift +++ b/Source/Charts/Utils/ViewPortHandler.swift @@ -332,7 +332,7 @@ open class ViewPortHandler: NSObject @objc open func setMinMaxScaleX(minScaleX: CGFloat, maxScaleX: CGFloat) { var newMin = minScaleX - var newMax = minScaleY + var newMax = maxScaleX if newMin < 1.0 { diff --git a/Tests/Charts/ChartUtilsTests.swift b/Tests/Charts/ChartUtilsTests.swift index d464a25220..9e5da3a07b 100644 --- a/Tests/Charts/ChartUtilsTests.swift +++ b/Tests/Charts/ChartUtilsTests.swift @@ -17,7 +17,7 @@ class ChartUtilsTests: XCTestCase { let number = Double.nan - let actual = ChartUtils.decimals(number) + let actual = number.decimalPlaces let expected = 0 XCTAssertEqual(expected, actual) @@ -27,7 +27,7 @@ class ChartUtilsTests: XCTestCase { let number = Double.infinity - let actual = ChartUtils.decimals(number) + let actual = number.decimalPlaces let expected = 0 XCTAssertEqual(expected, actual) @@ -37,7 +37,7 @@ class ChartUtilsTests: XCTestCase { let number = 0.0 - let actual = ChartUtils.decimals(number) + let actual = number.decimalPlaces let expected = 0 XCTAssertEqual(expected, actual) @@ -47,7 +47,7 @@ class ChartUtilsTests: XCTestCase { let number = Double.greatestFiniteMagnitude - let actual = ChartUtils.decimals(number) + let actual = number.decimalPlaces let expected = 0 XCTAssertEqual(expected, actual) @@ -57,7 +57,7 @@ class ChartUtilsTests: XCTestCase { let number = Double.leastNormalMagnitude - let actual = ChartUtils.decimals(number) + let actual = number.decimalPlaces let expected = 310 // Don't think this is supposed to be this value maybe 0? XCTAssertEqual(expected, actual) @@ -67,7 +67,7 @@ class ChartUtilsTests: XCTestCase { let number = 13.123123 - let actual = ChartUtils.decimals(number) + let actual = number.decimalPlaces let expected = 1 // Don't think this is supposed to be this value maybe 6? XCTAssertEqual(expected, actual) diff --git a/Tests/Charts/CombinedChartTests.swift b/Tests/Charts/CombinedChartTests.swift new file mode 100644 index 0000000000..269ced6880 --- /dev/null +++ b/Tests/Charts/CombinedChartTests.swift @@ -0,0 +1,104 @@ +// +// CombinedChartTests.swift +// ChartsTests +// +// Created by Xuan Liu on 14/10/2017. +// + +import XCTest +import FBSnapshotTestCase +@testable import Charts + +class CombinedChartTests: FBSnapshotTestCase +{ + var chart: CombinedChartView! + var lineDataSet: LineChartDataSet! + var barDataSet: BarChartDataSet! + + override func setUp() + { + super.setUp() + + // Set to `true` to re-capture all snapshots + self.recordMode = false + + // Sample data + let combinedData = CombinedChartData() + combinedData.barData = generateBarData() + combinedData.lineData = generateLineData() + chart = CombinedChartView(frame: CGRect(x: 0, y: 0, width: 480, height: 350)) + chart.backgroundColor = NSUIColor.clear + chart.leftAxis.axisMinimum = 0.0 + chart.rightAxis.axisMinimum = 0.0 + chart.data = combinedData + } + + func generateBarData() -> BarChartData + { + let values: [Double] = [8, 104, 81, 93, 52, 44, 97, 101, 75, 28, + 76, 25, 20, 13, 52, 44, 57, 23, 45, 91, + 99, 14, 84, 48, 40, 71, 106, 41, 45, 61] + + var entries: [ChartDataEntry] = Array() + + for (i, value) in values.enumerated() + { + entries.append(BarChartDataEntry(x: Double(i), y: value, icon: UIImage(named: "icon", in: Bundle(for: self.classForCoder), compatibleWith: nil))) + } + + barDataSet = BarChartDataSet(values: entries, label: "Bar chart unit test data") + barDataSet.drawIconsEnabled = false + + let data = BarChartData(dataSet: barDataSet) + data.barWidth = 0.85 + return data + } + + func generateLineData() -> LineChartData + { + let values: [Double] = [0, 254, 81, 93, 52, 44, 97, 101, 75, 28, + 76, 25, 20, 13, 52, 44, 57, 23, 45, 91, + 99, 14, 84, 48, 40, 71, 106, 41, 45, 61] + + var entries: [ChartDataEntry] = Array() + + for (i, value) in values.enumerated() + { + entries.append(ChartDataEntry(x: Double(i), y: value, icon: UIImage(named: "icon", in: Bundle(for: self.classForCoder), compatibleWith: nil))) + } + + lineDataSet = LineChartDataSet(values: entries, label: "Line chart unit test data") + lineDataSet.drawIconsEnabled = false + return LineChartData(dataSet: lineDataSet) + } + + override func tearDown() + { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testDefaultAxisDependency() + { + FBSnapshotVerifyView(chart, identifier: Snapshot.identifier(UIScreen.main.bounds.size), tolerance: Snapshot.tolerance) + } + + func testLeftRightAxisDependency() + { + lineDataSet.axisDependency = .left + barDataSet.axisDependency = .right + chart.data?.notifyDataChanged() + chart.notifyDataSetChanged() + FBSnapshotVerifyView(chart, identifier: Snapshot.identifier(UIScreen.main.bounds.size), tolerance: Snapshot.tolerance) + } + + func testAllRightAxisDependency() + { + lineDataSet.axisDependency = .right + barDataSet.axisDependency = .right + chart.data?.notifyDataChanged() + chart.notifyDataSetChanged() + FBSnapshotVerifyView(chart, identifier: Snapshot.identifier(UIScreen.main.bounds.size), tolerance: Snapshot.tolerance) + } +} + diff --git a/Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testAllRightAxisDependency_iOS_375.0_667.0@2x.png b/Tests/ReferenceImages_64/ChartsTests.CombinedChartTests/testAllRightAxisDependency_iOS_375.0_667.0@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4dfe1df093846433068f1f4d98b467c9fabe07a GIT binary patch literal 104196 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

KQ!M+F&he36Mje%{+mW0O$D( zj1oq;M6wb9EP@q-WnH^XwrmwZut)>xtkSrgXQCB#|#s_`)d0j!5T1g_sE7|-y-PEjbTyOs*@W&F~^hyr{@${coosKQ-b1@#P zJk=U$g}V^Ku+8N6RpyX;N^4$qtifhSW?Zb#GA|GNSnkfQ|*4-6*Wa{t2NPTuwc-c6B@>c%`p0+0<)^_nlnG z?dEHE%*6+_?jN4rO=oYu68aho^`$TZMlrwXULRQmCE@`;+h>tbendj@NnLkB`T)kJ z*Lg&P0-L->bbH<3aCxyFj4*$c-SOe(fpL}isn(5>X_L{T6WeRFL{fpe zd)}L>JcUB~U;fYTM-^;-_}`Lny9*+SPZ(SB&X=r(dDBmY>SP4yU|96` zyQ`1di^d$0JD+E7>AX~&Mmvi5b)>#-iCJAo(30#dFND07ebW&0H=MvwBF>XoKVP0v z);?*6fdCc-0zefA0LQK3CxL)GfG7su2vRd=YYp6EuN{5;L+2b!yVHY|bM9dD(T`uJ z(g!T*5%J-_cy{D=>Ow(^2jw#&*{wmWm8KNdiR=r0V8)4CZleG&M%?rG24Ktt`-hV+ zK+hBl4Ymd#fP4Q4x%ykAvv{v=kN?A74Uqf&evi6(xv!>chNGmE(}fRMcfIHsNosn` z2qa4%+3LtaKZ$-yIJX=@PC6DUKD_R5E|`qTtRPYEkpip=2BWM{r4 zJ2!|k9*>^O^O1^`LDt8M!t6RB)%CRzxOM!mOTr3>t@Fn5CDvQshMAc=*F{bH3UyHi z7T{xehZj)ac}bq#-K~egGs02Gg~nIiJo{K--9~#NSaNy`IFq!udJj~3(ZLGyIj_1` zNQD6s9^JhA{g~Hr;$FWZeAhg>mz5TqyJN+@cB8!}JiBN2V~PmiSn-|DDr!1jz@_+< zN{uwx-J4&k214SiRCmQyS2s^^%m zCI-Jp27I$;4w&n>J$7}e46~OFtmpWX3_r%+GsiDrWoZ@aqi;hM>Gm+$2w)4mJXAl;b%8i&BBC~d@!<3 z#cu!H{hQ+D*=#3zRE^=+jN=K}?}mz(=VZg1DN!k_jk7zi6?a#h2zRoYF9)7Fct|00haR~b-X)ywG!S5UTh-EY%iWw@>hnbqnL+{S0F_1T7Ihh%K+fN? z+0OB=rJDjfYA{T}zJGCm2i1s^3kv*s=&4Le48Qtl*&;}60Tb=J4x*P`2>LTBQ!XZ^ zkERXO>xMa@IfxDvm~P6$+Mcu3T0EAcC7YX%m}{EXQx^-038DStQ1&K2u;HXyU$HvX zJXu6WR4mD<)6Ej7;B@6%HW)UoI2t9;GNaOH$$u_JfLt@W^@M#30FM@E!U#+<`0MeUXU6HrM6$nUU)ZkNcGnyxMimu z{&eq05{kc*DD3^6QR&xz|JP~CSEFp~)WwhG!6v4$r~kG8z-g$^MLn4hkGkS2S9?_`gQc4$cz)z7-HQCrt%y

i8WFhr@xn(Zhl93lhq)NF8qNP=;eR^k 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

cV4A7`mRc=RdN6_T-94}AaxkXED=3X! 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

KQ!M+F&he36Mje%{+mW0O$D( zj1oq;M6wb9EP@q-WnH^XwrmwZut)>xtkSrgXQCB#|#s_`)d0j!5T1g_sE7|-y-PEjbTyOs*@W&F~^hyr{@${coosKQ-b1@#P zJk=U$g}V^Ku+8N6RpyX;N^4$qtifhSW?Zb#GA|GNSnkfQ|*4-6*Wa{t2NPTuwc-c6B@>c%`p0+0<)^_nlnG z?dEHE%*6+_?jN4rO=oYu68aho^`$TZMlrwXULRQmCE@`;+h>tbendj@NnLkB`T)kJ z*Lg&P0-L->bbH<3aCxyFj4*$c-SOe(fpL}isn(5>X_L{T6WeRFL{fpe zd)}L>JcUB~U;fYTM-^;-_}`Lny9*+SPZ(SB&X=r(dDBmY>SP4yU|96` zyQ`1di^d$0JD+E7>AX~&Mmvi5b)>#-iCJAo(30#dFND07ebW&0H=MvwBF>XoKVP0v z);?*6fdCc-0zefA0LQK3CxL)GfG7su2vRd=YYp6EuN{5;L+2b!yVHY|bM9dD(T`uJ z(g!T*5%J-_cy{D=>Ow(^2jw#&*{wmWm8KNdiR=r0V8)4CZleG&M%?rG24Ktt`-hV+ zK+hBl4Ymd#fP4Q4x%ykAvv{v=kN?A74Uqf&evi6(xv!>chNGmE(}fRMcfIHsNosn` z2qa4%+3LtaKZ$-yIJX=@PC6DUKD_R5E|`qTtRPYEkpip=2BWM{r4 zJ2!|k9*>^O^O1^`LDt8M!t6RB)%CRzxOM!mOTr3>t@Fn5CDvQshMAc=*F{bH3UyHi z7T{xehZj)ac}bq#-K~egGs02Gg~nIiJo{K--9~#NSaNy`IFq!udJj~3(ZLGyIj_1` zNQD6s9^JhA{g~Hr;$FWZeAhg>mz5TqyJN+@cB8!}JiBN2V~PmiSn-|DDr!1jz@_+< zN{uwx-J4&k214SiRCmQyS2s^^%m zCI-Jp27I$;4w&n>J$7}e46~OFtmpWX3_r%+GsiDrWoZ@aqi;hM>Gm+$2w)4mJXAl;b%8i&BBC~d@!<3 z#cu!H{hQ+D*=#3zRE^=+jN=K}?}mz(=VZg1DN!k_jk7zi6?a#h2zRoYF9)7Fct|00haR~b-X)ywG!S5UTh-EY%iWw@>hnbqnL+{S0F_1T7Ihh%K+fN? z+0OB=rJDjfYA{T}zJGCm2i1s^3kv*s=&4Le48Qtl*&;}60Tb=J4x*P`2>LTBQ!XZ^ zkERXO>xMa@IfxDvm~P6$+Mcu3T0EAcC7YX%m}{EXQx^-038DStQ1&K2u;HXyU$HvX zJXu6WR4mD<)6Ej7;B@6%HW)UoI2t9;GNaOH$$u_JfLt@W^@M#30FM@E!U#+<`0MeUXU6HrM6$nUU)ZkNcGnyxMimu z{&eq05{kc*DD3^6QR&xz|JP~CSEFp~)WwhG!6v4$r~kG8z-g$^MLn4hkGkS2S9?_`gQc4$cz)z7-HQCrt%y

i8WFhr@xn(Zhl93lhq)NF8qNP=;eR^k z|AlwV7(>~Z@b2dw(tE2%0V&wV?Nz>eOBsbi@cFmpO? zB{KQqx8$)O>)=rfnFGe_H)5vB?++G(`@cKZqpzZIgP`oaQY#ZJpGq+RO$E_ zchryaA{tEgi$ZAqrF^(H`-4)ku2-sF21Zx9B`?R(YUesO_%rzsN(_D__?*wu16hYY zwy>zmGij!_<+rBAF%6D|2dd6+&=cq|0;U|3wT8Xn{kosbhOifo!QTagRBQQP`~A+g z57CsF4Insr%;ri#8=O(V(Kj{JCDk@tP^uhn3XkJimd*pMp6Yi_JNL|Hp)E0}N9>;B zIny{h_80!SS)ZKu->=!1y3`(;=j*;D+Mbd49XUOz%2J%IJX6OBG;8-bx9}h~3k}?wA@#I1| zF*1kA^6_OPdLh>R+S-EF4U7THfdHOCl`v}cFG-0^%~-L7F%;SS8BXGg&1wJ z{}Z7O;Wv)RccW<$TUpzs-P<(s#p}j7r{#C$JFPKaBG?U=LWt+fl1stQQNpbge1j5mf6mrEe3c6Px8LQq_EwF<=x)!rXbbS#>Nt}r@DyX zltGQZ^X5wp)`xgf)jdNLi)v;o54F!I!EaE439vCGZtUbo?`FtD zmvnHt@Q(hEO<&Q_Ag1b9E7wb^b+ianu2+{mOf0zKDHR-&6C)0VDRvsdvb_VjQfqh* z(F#;uI#E608#0I-v`mTF9Z#)H;%a=DQ0p%4EOgl=b-}#?uJ+v1%`DiTS}JDu@> zN1Db567M0?HkMc;aiPedziDjq{7_Z~$co{`#SYD;dlCsNEosEc;P*7P{I+Jt$sH`q z-3hI^A(BkJZuI#2zRVzUQpO#Q*J=WNLx@SHiDt7PRgOt-`b7vg$K37Mbvn~UXOG$| zC}?m>>hHYKXG2?~N2XP|dm)~r;rJ57OEdE_odK zCo^;G<-j_zi_-!J>cci%1kZ5x5t8}^nmESdHh5&EcyP#wa+@NrGy`_Bt&h*=QoIu? zsv%ECnoC#Tn>${xl_i@UmKk@*%Z4+hL}dD`Q&p6HHYxd13#LocKM|CsKA)@yK2}Pd zF*^@MYdiUi-b>A}0WODWK4-+yt{CNJf4)+I8ygI-Sk8h<=dUm*l$qsJ&Dt;Ndyhnr zrwcl8b2)O#R%^0tT!|-bEs}XrkYv@-3ccyMp-#DBl1P?x@TIX!i6km{R;=f=s>=?Y zDHWnr5ylzf2!69+>00bOPqxE8ce?6F?Z6%-xzX=hDwIRxWh6b6IT5{~>?IwwvHGRQ zdAL9?kP{#MowaSN$pch zcsT`7+ByY1zb@AvnyLX3cB3(JccPuDS?OtRpHxQ z#QKqE%X57@vD&@mK99!gey&^eibjQGMZI#{zP*K@qY~BnJj7aA@{{_oU6~=>I9m&u zYrt?dyf{*nqFR*vhLe0nE-c&f3fVm@zO<{nxLx!x+&j$|(8kb`xd zg~Z~Lp>|d@UKCX8-Ej4=?ZMU4RrFJ4LG9wuUg^e5D&YFN?{a7~_Ww4n&5g43cZs7M zC(x%#wJvoI;m;sKqr)P9@KyAKWOJteVJ8)H4e4~+#}Qq!FQNV>Q_5L&_c1U{R|WDJ zWrdPl_~^u&Yd6R5xZmt<6^#QSu_9?%u$9)`H|IjCYjzgi;x44meZ@KZ$9WEav8h#& zejXk57O7U*b2W%8yFj9%@2%XMp13`YC}6r|sd@#?Gkr`oqf~|VArkm?Ia~eUUMM$n zOo>`H*l*(I%&iM13C_5R4)aXik5@uEZWL_LnFezD8_ToAZULctcEH^%Uzc`i`JWmu z)Is~@3x=r~GF12k48m;G{zdV7-1q|untqhgIL_~OX4`7xjl;O-mI-tE6_&89wqt7B zqj9|&(8Le1k{YB)YRPRDN9*g~5*;eKmw}nQ+@6qWsn3^<8#goqd|N%TFQ28Xw((OK zJkl$*P|6v{yAIo7eu~L-N-r(aPkC476i5j8KR}vp+8~qiGU%X#+a_GHR@kTa>(6Rp z^?6VXI0h`?P?>9H2?~EZm^Oax_%R?!BhchL3E}E>D~HE@o%moT9V@(i|MP*M#9Doi z^Sncn;yF!A^Bmn67p@h~zf0LrhubG+@`AD{YK2`WNt`?_T-Z<)|E~3c7<85K!CA6E z#b@@smtBw6c?9cwnY6mQPjZ0Khh+XxfhfOa})Vy2p3QLf7%LnU!M%Tc_^ zw*%^KPxyB12Ka*;!S7xy6?hEou`qsBZX8=iPN2K5T99R`X&gJNXU006_3>m>(r)nYrBUIIj8{+Nck$iza@6AKNtY zm9up)@z;%G*+Q*MZ-b+s>alJ}A+DlEt>^ zx65jE{*DAXs&#&S$=teY`^=tmg>fGdXTC7)*o1E=80&^_G-WadaA0@k(!uYx?Pauw zPa=YN__iy7pAJl$#TY<->zPdJnBG&{vt(oJ+y&c~C29u0b9LJa$n2kp;81z_gc3rd zJFq;@To3t{;*WK(K$^o`=3aWi(Y{_L%Lek%(Sqi5uljvg@#Ycp4VnPMv}dfI9tl zk;cy++}+D^rucIe^{l=?L8HhJd6O!O#&++}@zZ$4btp1MWJtGng&h|7tRLTd?8Ov+ z^klAqoGYsc$nUoYE^D{gSXJiHQ9(=_qP>G8ZhL$Y8q$TZxuSO2dm+DKX#5ZN7pM_b={%KNc zE|K%}4F>gNbc%FH$9Z_a zfBon8<9*+AT+AAtS@-OF?`vN>?tM#ysWFCAOqoabK7!iMc z1-?OC)ny+6WdjuJ-~)yA6BSMH9SMBh{3{1v%>VNa{?0_bO;O_w0E`=QPoy-xAe)&O zsgzo2p&5+m=fX*jz^kL_4aZW3a!W~tM-qiv_)QRwAnP@Vn5v=owggMP z0LbsQr}wbZq7$fcqatM<3WUGI4*K-w^lIBc&i!}k`K7yvTz11{=GtlF2jxq5$IN55 zx!S>^hGPN#qHs9+?Vl2TB>G*aM!GShYP=s@aW!}K_s2BthPXHk_;K{^;Z+8#<_NSO z^(f9b%}sNmAg)$NS~Y6Kru&!xSUiW1zrI|@)mV*5{bXbQcmeh+9{Y5!Y}v2UqCun) zs_QB+61xYFr;Q>M&UdKB435qZ&=*6ALvkxxC_Vz*B3crLI$P8=Son@KV?~mw@Ri)~ zWzS!`@|R9Viqh?CG@I^L`j{_`v$fkMsEZE>#_6`D?1C%ajTeaHzQ34^tQ4 zjVG}R<*6a({yv1JqX*iDXWzPM&kxu&CnQ?_ddPV#u_aAwl%?co)tmyqEU>;#-3$_< z;-=2|lpv{(Kzrx2+H0g#W1lOQbVWZe0(r*T7En+o8!cPN$8Us=J}3WTXhQ>2#^N`? zZr>oDrZl`UDk<~6sGi!=W;8^*=JE7!V?K2?`gB;P$e29o^Yam;*}L{C*SM5nTe)Fm zaZRiFvWRsG^CQ&;v(z#b$wvEUDGz-7y3xc0uq=+oMNuk-67L6I|!Nuq4oHaAo z5U-_)PBcQ(){~=QoBufRJ)$B|^LeS_y(8Oof?Zk3_JEYlZ8I?Yz5S5QL+6YSCcgY)9=T#A zGhWYfVM$Zan!;uSUn$9Ql@=4^X7N)Y76s@N$^XAU+SD&Jl!Yx)R##U!Svn+Jk{be{(P3V*^6EV&RoAoBFh>C}P<>r@rK#@RNPihVR-kD7cIS@~P z8$~m~V&#zT(xXAL-VtzFYDQvXqeq{8UC#2Bf(tkN(+e$gbWt{2Hp{a`P-t9`;X+zbN+$|N5)|0_1lT<#?F=VtIzs1W)mv|4g;|tY`hx=1L zsCT;A<;H|POCgjC@hXN(YX)C!eF4nAM11NeUms7rKBRlXW7cJJibcBakI1{n2tz9T zWZ<&!rlY6xDbi}{;-C|{7g3cN#v(nQ87!CjPov?qVn_A=i#Fh|4GJ zFCngk^d$5cspgRq?X>evG81kG6?MG&NCW40boDqP<_Ol_yMyqZ zE@BL%Etw&%uL!v;pOGbCtue?vkRjyiCJqdRem#GRYSbslkp%OB#);oThA^!c74=Cm_M zWMZ^=$nNE|tBO0gJ1o+nf5;(%&Vn!23^Pn5j+l#;re8xsZ{6fZf~^Eb7HV9 z@fahu610H6@0Fp@eQuWTR=6@ zg1cK~MuP*bIv{aMqs)J194hig0hN_X}kxyTr4wHf7xT?~+@ z_#i+f9@BN}9n~bedIdOltb27y59-$-_3SSjn+kwlon_;qp%{oXHxj8e)!Jb-?CKo^7p4c8V(Lgd*Ff0`Qh$E-$ z@tUHchh%-`tQ%|Q^_CW5%@gSLF<|$GUG*?E$xL6?^&mBn4_YEO4?0I_5E|VKt)T_gIDt3 zadfFdxdf+Z_*w45I-iFox^QY^`bU3ayv8(jozVVz;z@fXMG==8SK&fq_IyWw4(~_J zH6|)?laq0f$%)4PyDd*6m1m58WZR)F*DLsU7xPPg>>AIz@;FL8y2?nj>=)ooGKfWSdt=!C_=^g3G4^SQ7{N`fDB z+fTPdaW`ZOYII5#Lk?IwQuY_470N_ie7bEppEDZTHm*b*O?t=abopF-$__GFbbP%x zJ^oF2sdHWg#^A^-%jj2t|YD60C#DA0_-?w1ben`Nyq9@N;^-Y@6*=JjTs)w29$g*2yB4NWyAim}fg23T;gIdkTBCE>1UP}i!Y8qFP>!&RKUjw0CoZ7*h;-2o;*w!bs4OOT#2vN1c*rZfm1 z7(Kk}x#(zpc>{*W->nXH>XvFE(c9o6%o5FIQw(o?|2sPe`gQWJ8vgXbo5cTZVB9fJ zo}izw+fvH3cboG0IsB_}M;uS_cNuIclg+v4S{_~{j|GN;yWjsmW&S^n+BcT@O4?bX z68AdDMkW64^ofD~^$oQ$|IQiCGsg)vWlpcF%c|)&V_1HM?A2CX@xF!&i`*u)GQ0TzEVz9znZQGs!OdpC+KbHR12VKu9Q0D9r_ucp2 zoXIy#;LTB zXWEm^rXLc8pW6PjWOwuv55MCb$YiqVGruf<28)^&f*LRmqHf0lB~k!B(v?+>Me56} zXC}R`N*#l5+QxUcV_fql;mbvP%q7{U`BTy|i1HfDq5l9QLHc$i6vAmI*Pgot*IF8c zZnTEYKisYUXKkfXqHFJ6dQZ8UR@(LHH?|eftTp~K5RsUqxzmC&CM08DYOu#c=CB}~ zy<>uHH6U-*Zu6FIUO)SEx`Ev;Zg}t0iGkrw<3FJIU+c83yQaLVwp^+9C=2KEdc`wX zsr23lNNW*5mSl=cor$!^BZD;9`UgXQf86=5snuQrhAG=06qy%S^fsn=F#`_yN+0nK zrf8|3f7m3-U!~tM_V$XS>Z3Z^Eh0&W1K)v7?Z7!01Lk|v3K*+EBKFg=BFOc zN8Abaic+o9(?kib3Lg|&!K6X*C%crCyp8$xrpA{B{+j(&sQ0D#lL<>WKDrc0^1pBH zt!Uxz$X+g05;B2gN~hdQulw<)V~2I`#FDB;qLX?`?1b1N;&8oQ$)iA<-1IF;(`s8w zeuMrK{=9`91VA3?T##9uZnU0Ix7}Q^f zk$*7dlDepC3^E~zW}2(dmO_8DWwdebENyWv$v#RQY5HT09`!XHQkOwY3jq0Xpu>@x z1x8m#c4XgAnruUA*+->c+G-T%X6%%_Rw!e=B;t~TZO z#dwEz(BMpX*m#F)(y1`wXAw{Kb-Iuz_hNZBtP0(EBmHL_de+kPoi_41_5P>`G!9>p zCyQ+*Xrtc9)WTYoSYumf4m@+2n?4fSWwI0DUbaup$SY?2su|lJh|Wb%;BdbMwk?oZ zU0HYa2Ir(Nm@Pet^4}H*=r|b%=>7VubN=*ZNA=D9lg;QrOdtiozPNkpY#gI(Iwo&b;Cs)+sMe$vMfJqC>7m1B&b^||-wgG>=9D^ciOF7tI zsEhr{cl9TT)Btge(XSpa8f`u+=@N0H_&@)i$yf%GZ|%<}wR029+|Ke~*IcIWd1y6{fj#0Hpg9{-VXoa_~k252$@YAk9% z_hi(b)kdL{?qAZjV0_swEYs&Yql{6jP>K-LjE8%B{>lEEF--_`n({$6-ywl_sm&I4 zHsZ?L`@Bz|6LOGsyNd-GpZnt;SN}y)lXkURh$sD8MAM~3X$stX@K4Kb1WQAs?^SHW z;S!1CA6OLH1@J3oPQKq7e*C8^A|~KkK4bGE?G8K8=XWqAeZlf`eE%q=8a&gB-R_}? ziFY+PG8as2sxfy^0*Wl;o{FQEXxmsH$swAGZ#R>VkhU?l5>wF5->gr+RNLnrZD<#9 zC6cdujI^5hH+7Dn!qP2@BEz~J}jg5&t6HPyR~tudtb z0bb)Gd4+$4d;iGT9p%n$E#=ZQ%}<$N_;URbzJHDEIObz31ffl@s?n*(xN+&{qjZha zj=-8+dkZb>aya*gO9rSPo-F~?j|=KY-^Vr@02Z(0KT^)k*=OO7ldb0oVaFNo7~M3a znR7e%it%3-bIH`0)6VOaNFT}R_4r1vBw4qDS$>LWO1X_!ExfTkiF7ic zeUuLUgjP`}up`kRlmY}S;TB+Ok_f>mUq3O9mxYd9uYXJZvrzCx z><2hht$j56Yu(dZow+z9teOku^0`Lh&S>e)N!Xcw>~gPm_OEX9Z>)k&pPg55Z@;|C zsO8rXX>&+@dDSc^aRip8<5#zUT_C71Im&c%Xh7@nbaC5I^#5k~B15kDr0kmx4i@%z}r{c#oSmMm|RF%Is0c|1q^?I5ZOb)s_P2I4)1OD$RclW#6)eOU!GO&rCRBpQCL`ftYJuha8BY)1oS*NfT3E*Z1`iTKIo~R+=3Bd$({yo64JmeJ(u`hxPXtGv1PD zMS%|-X>hi=t@G#A=6aN~4Q?g|vJ+t|oh>&z{uyA$rk{4+m`F%}rAYNKI}=%#g=PCc zHd!3}X4>+-oVMS=?qO9z3s!O;zNgOOh?3yBiQ|(28BGpF#Ld8|4)sF)dypI> z)Q?DJ(1gi)cn3VUk^Gq){CWJLRSr)HDz`eqYW#dHvLlYYI}AH`!{fsrtrYiM(JmT3 zp_}*rD2}35IuS8}K5>OyQBF8b$^DiKqGC+tfzWh0ha*$o!9VV-L-nho=l=y>(Rs%G zA2f!YNOrs4@=-gZ({aqBRT!04z1yGfjpf$OGUh1KHsWcXewp_KQB#GM1zvrBq;2cP z4gcXgeilFx)miuLC{l|F));C#?xI7X3VWY5`0By#t}VM3(kgh-@&C>WLL1>*GyL@U zzO;mpAK&(a!guJH=n{rGwS6}PKi+w5kMH@r?E4-)$GkZ!UKL()H~lJo2}OA7WaHRz zdrfgbCQZO(;6ref-FL7U%~n?b{x=@y;qq3wmc;LYu)B)B^Iz`UuDmv-CY^~oxR4_o za7Q29Lv?DfMbEz8=MfdWQqxlnJ)r1yCCs?3SQYgb2H;UO3o2c7l~{4`CbI$+m0Mn7O@X& zvhucDHystZa(0}((*Hdg@WcJ$@JOe;JV_(epXk1_=-s^*o;Mq+ne-={L38ivLw}w2 z?KgSlh*q+%J=9!dkvT2zmdl>s*;>XRVv3fpx#t}*p2VyEpsy?+<;~17b)is>y0=8K zhum1CobXonto%+~6}zRf(LPxfkX#G?XQMF^DU3zbi2Lv2UnZ z$7#^8Q}#<`n)fJ8!mNQ=n~0I;{t_CK%Dx9rzfBUm8!=u=ZY&Y3(l|&>M^$VfV72%BBf)~lQEP}n|Cey@@cM8z zd=H{eNtyTx_^V$E2m~~mdLwa46YtAQ6wcIHlaq8TN-q!rGmvDBUPrRu>>n+)v`Tb=!i1}FM1OI z>Hpu!pfg(vWtvi-b~y2uJ;p57h0j3~tTrsA22_6I59Mzr+Sp96>EPe=!Oi6#%3j(c zjKIO_Mgwl_G7Ts=`2WP!%{6*w_Gc*e3*(rLx}z_&?sq7z8OrEei_3!Og~9t#O4?fq zj0<9Z=B;e2bMmN}?+_azihS#CHDP^?r9H}DPu76uLIGE;6?I!(Y4whHsTX@KDKvaAm*oE5G z1yU)p(ahsXF2-T6a)+Mjg83hQ%QN5wE(fKlEc(gm=PD#YSTpkIkbB_i9xTgOi;@lE zn(%k>f85uV%2L72zf;Mh1ZE>y%D?M*xrnZvNZXrV&PyQYW=+ z)lhz>z@s8&dpbEewmVbw!R!%MNxvs&Lp2i~S(9vOVp>-}iJ&uh7C1ZFnjqG9(K>gq zJ-zx>Y%R+*<#@Y!r{7Q9)pDS|@@iG^K#cbwW9~JxS~wF2$CgFyX6R~UL%T~SMeX%v z3w84SD@-%-fQeis zNqS@i72o0{mZ*4gE zJ#y|~2#MoEGV;@R@!%s5V_>)wfIYN{yX*IGOrIu3?y+kJ<;VQQ!V^#j7Dr$rLk8Ov z(V3wfD${bKY=+_&YC3jcEwV*7l#1AvqvGO1G&zSloImqPry#JY`3=4yeg;|_hS{LfYYAL5?~0aWSt#Rq2D(>wH| zyfW{{R#Oaj-DofTr}nv4kh;9bzm#_x*&Ro^P3=t66Y#xC~EVF(z!0#dS<5*X^^1H<#kPu=wVu7Q#1lI!di%JZS z=}q|dkr6ud@AE4>+o+)D#O(d}6YZwuVa+Httebija@Jfmd5jjH7uA@*aZmu)$?^9m zgt*BzAt}hfPB=?ER0cH$B*hS@Gq5Q|e`OCk`RR?5m(k#9L)8_~d0tcMkoVSD2526@ zCRRnJsW6tZe9%Wm4i>DtagTBw762ihPa$>K>XcMZ(;6saUo!3rU^cmSzCc`KxZWtqe(-XD)ZLZQPgIJ?7qNln zNIaeRR2Z3@5ec5C&-KXh$q>j3W#TYPHZu)+O zBLX*c3pe96s=0!``dxOakVi8V5TPvvHF8#l<4$_Kdy?DsVAI4%x)r4T)zwCWBgxynDSc zN11ckUh*2>K><_-d+&^Qur;?SqVcg>0ooyqy8QC2E~tLoo6Qwkrp4_oP*ABGkaI1t z>*@$u>K1c{m`?`ywYe{m`6BPaHDb*`(duPG0a(!u!bnasv4zkf!zDq=a;H?K)|kuX z#-=vLrRy7=xr#YL7=KdtQK!=AX6nou(D#pS974!V?;n z{izbUWpd#VSPV_k*-un3J`UbC|623-y7%4FXL z1N*|A`=-}HGSBfQ(0=0pB7_mtr5CEr*fk2}#?2F9%0Z=AKd6tM=$aE_ohTl-0njxn zz;pKcPaeST_2amdP`FwOypRv?`+A7hPco(_Jb z##KmcXRa&2iX#;gintJEZ>{KU4<+UEqyGxG48Dj*;sjAQS9{-E!EY)H{UD36`t*70 z3#+0fQs8J@8x?M}?pAmqo1?ayc`;abN*oS_4>s*jWuo>C0$_IO+?R_7y-QU;0Xt?+a}rcl(JyOp};dfe}hfbia3Ip@AI*iuDs)Zdq^nt{rG_Z ztkM8&4D$;}%vZuHJaX3gMS8bAY%{Cnne8h;_qAQR_BCxLK{p`Z62UF`-)NipSLlG}wyIweQJB!qSi-{M*kV*r)x zhAiRF@N`I$xgv!ytE7oi>cHALb?>Hjt_i~w-)7MceGqVMr~1Kr-KX0)>J!GD?Ykpq z$#s>_Xq2<4Mf0s6B$0X7S$IMm6t=zRA|tE%npc#JortQN%xP+8Q8lmD05uwsw6es5 zaU6{9P>r;Q(M$Y*S(OL{kk!vBCU`+D;E75nj+4SWA7#1|Qi|DUVMmXGLznl71$CbA zpjV0et=d<1Z1NBk7_*qo2c+`DxXZ`kwbz7;D0TapZjgy{+T!-O>pY&$JMeCROC;Dj z;^}iQZJv|1sTZgZNSKrgT7~-Tkwx&ek%rWET?5l!lA}0aLg0F6+rTJCQoq}=vFx$}Lm=P+Uqgh|@F;8gn z&U11VQ~)RQF0wVjyFX_5$puX?_5F|MyDRU`4T<ieNW(QI zw49!*(@6;5L-~ynOQ*Id?0{;0^>j6y>$3;?;HB|K_#>JJmzOY;U@_+1GQ=BZh|s(8 zW44E4=^o>*%I z*LKGl@X#-%(`pi@ut(VQnR@f83jtkdzJhl&3+!+fOLNysCHV0N?({b+sCv;xG6LqO zr$088-UWz$iPoE0ORHaOU>&Kp$+I5FV5{SOORtD2adXXq$%KX(1P!*vWt0p zy`zTQ=SKuf9a=L!kv>~g#Qt~7Y7z6F&Z+QmsDCk*`Lip%Y*(KhT1{2u_9MfEb7xKG z$FjWkoApEx_;zkz=DgI^%aG1|MpuLe9B4)lxH{Cy=16Ac5ATh7y6?#JNSN+mcFYIR zBqa^L=zpPQnXu}f>_tPbm8+$iFM#=3<+Pm2-zcOwE@y*F znWF(8Mn&SDy*vLQ0YoL>1y&ax5LN1w_%9b{qa+WNd|ukqQ|QEL9;x@cFt{3jU(u`F zDzETz#|K{K;PE!G=|bXMhZXMo$gP?sRTmY0Ib2N&RB%4Z^JkF{3Tu6Rk^Rvj1v>S% zxb^Y1UP86v?lVbIrJNZ0J$5%CK-qvLwqxRx!ASBpA3HDgkfax9mc+>q@iLm()ha$I zRRwY)R5(Wdf$5wE=0>P5b|dZ)@5J|tBp5x9Ck@{nlilb-C@hO;# z0LH6SYDBMvn%6aN8Sv)*Rg!Ov)$2NdYs4GK47UuY=N7>DBH00P;)S8fCa6}KO3|xG zQ&?v_(fhVFbAPS;F3HTWyy4^uxAWXaV(I5Rhl~NU-4CUoU!W|^Vtfs_UzoYP!KEO* z!DlUvZ5$|Tko__ojhu{@ojRBwc%#C=e7at;FMcV?da&g|dv}M>40k%EDo#06YVOOS z)N=_b^kq@1BwU5&tr5*2OX1DoeQBPC1t4{$^9280@RB>a!DW?3_?*+lPqdPf`k@p9 zD>)0WLJ1RxZyn!Zk8}6{Y=-*kq2CYb({G!@6QFa|rQst}McQrOCE9y`ikf8(Qwg~= zYzh8>QxmjLarn-GR$*v51(LfH|6&mZF@=K1o&4)NIsg2}J|I_lm1KnIs z#(3hN*?UfuLt%!e?W5Ulp%HfZCDYn_(TO_m2veOJBIJ=An&kV9UF1Hx%IAly#BJw! zT*kngkJ_)%(0A0WH`nLruDU-;u&@>qBbh6t?=v@39M|Xh5tKmZo$3VdEi4PzqnubG zWGplRsyJeD=AtG-uNH!B<`uE*Y>liS<8Mkx(}6nz5laAmU=N8i@_he0+EiG+;&_1w z>B1BOmtF0{x4!8x@uDjnL-MupVtrZByU~!CHY6_6OYzM5`ZpH@$)0uD3Mqp=q@q7i zX=^KeTvSJnU!s+h+$T|tp;x(c(})Mzfzj-Uh7tOCzdbdG0b zM5ox@oI6r^iU11SV{KdOi!!nE08L1ph}lee#|3TxkFvBbPYR!p&}j?wmjH&xCmS?T z5g(bObbFEIMpNPQBX9n!v%s^%dIbx^@02HPb(~>WM{C-@GgDeO=;QkRVBb!@<0+mz z^Bw)VhU;WfxOUtckyBjj(D*^?Tw=<7>nu};{Nq)el&jSB)un`|!hPSZBTAb~lg^RJ zG5@25;KA~r3N{&AZbrc?w1Vv?HdO5{coaV+oaTvZdF~wf4y|EL>|lw^Y4+jq=_lA& z92v~oeE(2tF>$`rdL4!JpbjS89ZPA6kT@u*9QZWb=N8%|@mn@2MWO@EMu?Y)`lHQB z^tx+6lC|{4Sh0?ybFp@5%kv9Xtq&yyzSGX#m)^79YnL9IAG@#gY8__s9PaN9(@m(f zeV4G+o6TmOX}ZvpxNPAz^uf5;S*L-8_-F#SVZMa-(va>yU=#Wj|2`Tf=+x8_(tcFDG*i|C0YlpgD zJWTc;p-iTCuo8DW6fk;}Fp@AXE-v}4z7{!_ee*}?{!DRKR4p~1OD4o}C47q2Tq362 zo6>J(zU}zJ1gHG0dtM=1JwkbvXsZxtacGV36f>8@uyHduc4uHB%8lhv^-j&hl2X^jNgiFB7D}4RY{guK$NNTS>6Ayx7+ah? z4oyZwJ$K+z8Mv(GzSfy(B@mWHeNVSuJ|W-PyiF8GWUGz&zKU0TjwCxiT?te-CwVkT z6b~RMch7mn-%-)K=(5AQbyn2rWNv=c{X$jrGNEs^_!rKwWx7H@L0=!FEluUOcu=vr z|Enp-SDylqnKXoU)h7B#b+w1;g^()lZEHc~v_HEnexf+yo2W}8dNq=RTcqX`RSDBs zLPrQM%D7Q%$LKOC17Dkeak7q=)z;cv-W$MRPy)M=%JC?h6Y@%qjZe9_Vg6LT?L|K{ zw-AtP@vqaI8Y3|of)v0;*epvY*??azN5PAMO3Ghm-xGPw3a)n@j6N0R@d2B0Gm&%v zTCjlZ%+rx%-d3o-Phxhu z<6dkI*Xi(dL2-a{dYBqA%$T=VuWZ=>Y&%Y=jiNcmBJZ8`8~(mz_S4;{{k^=1^ul>c zmU*#MuEzDlmA-gO4mQx8l7*qrj{%3&Q6hetKg(H!A~NHRr#d~WC;f&g?H_)rT9^Vz zDbK9jtbTlAA4GXb7M3CUWK706Il;rQi3%{(p?u0bTt8z$oznN^OcvSQym;^O1cE4C zRR1W%WCl!7b4QT_=5M?@@dl^bmLubay6c}%Ui2gfV6v(+M_FpGh!Gr8J`sf7vJ_B79rfq9{_dRk87iE+P# zDS!i8ic?3`zFkyQJj&qH5>FEn&RDhawvfX$5T^E|fZIN&rInr;SYY}*o=7%YrG4w!+WJ5W9v#-TeL)5js zLW5?`-2o?SeTx!iEu&wZ6=Gq?FjR)0#TIX`$*><1Q>BIM53f{Gq3%8Gz<>{0awB;# z^+9?d8FLP4#hm^pV{8z3?-6Nt!%UPQF4xB!G*C_ z$LsZRIVF12y1kr{V0v2e$r5BNhus{=CGX~m$H-Dly`R5g4h)2QYq-c$lB{H8g$njL#_ zF{@NC>@#wJX#sOo2*O3~KmmXC)jCZG$w|)m8<6jmnY3WIrNug`D#2d8AVl`Ta`_`A zzi98ThmFa&7zkNv|HBeVG^S}vUSSx8tnxuzv$U|FBF-}vThV6 zA(p#+N9?1E$K|BXT&hv?a7^u@QLk;A{2apv^N2uD_gV7<2&}aA?ny2dpaKOnzEoR) zfi+I|aiPFi^*m#HG=PTr^@|l+uLsB|IGk``)J}_R4J*as=PTqhAwg{TT6{?zxdaeh z-aYu8$M?*&(~|ue9}wNdzB|VHWwPweB_Vu8t=xE5XRNJjBR)urmq`X_IUG?q|13i8 zLA?3CqRWbynFomOlhvdua55EYUwUHWwY&T436j&~lFH`jSvB4qVxnf{*Z((+(EOF%^bh^-1imW&j5h57|RXwU_S3N$fH9zc0gQ+`4G!y8}I{ z%Xo$ibIaOF%jmGym#%l~nk?s|pO*`IZ!jMUL`%Ks8-QL1VT!gB_rEO!xW2?)9Z9&; ztX+P0ShcjrAfG>Xe+LMO$ntp|W^@LQISd;cj=R39yZZ9E=Hu#zGL`TbY*)*ZEA=0c z;-8t-I{|h^zf;*<)ULwar0xOAl30zvu4kI}qKn=eA&3)l-m&y#Zk*o9#G92NGKwZw z9w^+K7{hyNyHZo6A(1-MyBwMM3v0(R(>(xhhE5!c^XTWQ>X&wk**iUKC~z!>%XbM@ z@kp?(rYoo)gNV_^K-AqstUE)k=im?;!sGt^qx5)TK^zD3(x-X z&a_(`yt2@fw{i`Mp~i0*<0uZOU&IM4HL%L*`n^6{U_SZD!tqJ0l4;P75OzoxYF1?n zUKs>N$dDF81R!6GRRs08>YA+EcHH3r+jp091xhOT&iv{8acUlTyTRRDBHC3rFePko4Ma*-IiVfOA@ya`wA*K` z_7Waed*LGOzA|*C`*|kV73P8pC;Ij%{@Df;VO4isl+rAVg@EiDv8JWj{PNOk_VaKO z%uV!DUVU*M+kU<697PQz%6O*Cg}voni#PHNGaS^eUMmbM@9s za%_wb^=&^x@4=OKMLoA&K*G5r>OPN(IH~idaI1zI-~c361|9dE?*lT(+grOqZ(o11 zc!vVZJ1FYi9iiUdAT{-Z!uy6$;VinVFkxiep`WHh>;A>@ga<^^i9G2Q7yOb0(0PM5 zUVPJy(T2{Uovk54$g3d)Hfe<>0R>ULx-WUEy^9vOQ3rO%+fc|^y?!BZ;A*QYq(r|y z5u?JfsyG%C>u?ccr{d_6MMbj62vHqNa~RhJbQ911+i}>Vq|zO-8o4(PfbKnjm?jyZ z5Q?f_??t0pB76;PPkT|rn_i*Gq)gZffqjJ&0f->MNR97%;g3ugzTVxM=IP2cNeB)p zF=GZO*zb0Q_!KUwpSA%Nc~1x%AA<9#V<=aK(wYsJzW8Rf$i(R|zVyF~18))mCWD+& zchu5+RNd%Ddi(57Iac7zMK1^!r|~yM#^t#Lr&dY8cCxw$$A6~2x-ZK}xg!Zh zqRt#qxCqjr;+*a*v5Fek^`l;YFf~JTHR@W(}l;SGDoY(qfU)?1{A0&P>a)JG7PS0TOCPA z<|cix+W0h2drq7wEn5TPh#4QgjnOc}NayPodajXKk3=}-u*%DPt=7%??O^4ZjUXjl zt;L0TN4ri+`UwHDQ`yObv|r49>Lq}Xd2Stme5Ueg-;EvxM&U;NmWQ)dpq&hjL%5X; zsKEnR#a0Nb?C9B#Ek)0^66^&J>;2LCVn;*W%rn|tJli8-1M-tevEP^!cf=9H zKcio2$rPkFgdcXSViA(kvRjN5k7%I4+?tF}b|hy6GCSwB41!>~t&cr7CP<9Bq%%q) zy45h3jqt4Nf2A^>SgvhiB?oygA?L*Os&q~|0z%F}blec{=eYBp#1R*}^w`M7@nJ3}xMZHQ*wa9ia;2!m~f2-;`BG)-9XJe-I;`_$t)yKQx5iAuxXlj~_n z@8!Az1f(enjC5;7ekBzLGCYAG1QvcU6joNdYnK3|$SY!2LK(^{%#aiJq%?2aVJftb zfe$1$JVWSOW$94oML!qsVs^kG`faGk+HZIuGcB4M8|!fkJg7)qjB@eatv=#ANI+|l z%ZoIjB_WwaE=yfMLun4H7Y}FOuho+BqRo_aci*k0tg3kY=BM`bEE%B84pi<~`4t^l z_waHm%F&58ug}x>&GExFZJT*l%Ms3HBjZNLCx|$%=g-$IIvT_IOkX?@(Lz!5@d-IG zyz6bzjvKN?4$R+MFoE9l^uC*yCKS{=8H@$^X}X@g)29=aEy2KA|Ms2i(gMEAgFW#B zXfQAhY)eoL9I#r@d94cGxfat~a|eKBeIUg$z^wU6 ziUtH=2QjvazGNZ?oPN4Jd0UK5!Q4o0L{uA4( zFL(JRSaF?rrhV54xcJ#0PQJBz3T-)&RI^$j4#iP?3oGFDonE-?${9eihKbHdP|#gzW5n=uvwLq^1N z5u)554zoMXE%ui`&W#ITm$=C{?1O>ravBUPY;P-|vobHLOdegGksVpIW~z-nerkHj+x0Xrje05()un|{QmJB4TIB@#nU zMa`y`dHi_oLQTmsre?V`*;M4{{CmZG&NHIja5UQ|Z)Adj5?fx|5Ns9<5%Mv8mdHB5 zITkQhOmjt)_^@t441V$EBz_)?+Bd|1xAfy{U zFIiE$5QKeMnu)pxv<54G$GwA>P7IlsW?t)se%S_lJ1^F?N0&kZm_HZ7J<_Qr@;WmI z<`GmCIJ=p7@so1(e3wjaPQ@#bn2~omO4_k?@=9R=xaik(c-AMh2zogmpPS5^_yLK>wJE+XCCaA}cNN;;&w8!p`-ox-I{y8Aib-~Y|? z+Tj@I?z7I`Yp?m4la(_|YSGJTT|L5OY_2JdJ#IWrLCbdvB;6UgTM80anG)S6`OJF3 znLoT9{NnhcNo3!pn5lgyp#z3=Y&rkHe?-C-iTHI)Uo-rf$=EwMxUdGXp`3BUD9zn| zijB^{%Nxhzcdnm+2pzD6`+Wna&jp`sEYH9w{=GUHc(YRwBGMQ-TuZFROl&_W?}Ajg z3}Lh(1$%hmCl5h z+3zU->(8^3XI8`zfcF|>t_Fsk->p_LHvW?>ghtC!@9qR7sBBw7mVh!oLEjY5Y{trw znzXt-5)DSzuS;ViJlh-;OxU?+*nn>AqCG0tIEm^KwH!LE|JQ9QxnFX(Q?{$hMMh0F1>!kLmunl#60L|-X{o%_^qIQ2R(n4vMT8BT4xhnaB#R4{Q_2bdgfE| z2C)~b*SNHdKS0dXn{4;{ZGV!kqW3ArH+>L*yLv6Un{JTMcMmE#34d-HJ*;wa^~C#0SD;B8?(&MfQZpA zM7`=FnJI=^TH87v>@abzhRvKdP9(saz5fr+<(pv2S(JMlgh5#g{(dA9tSc|EU*cr- z2IXJhe~Sus;Qdx=B^Tf_j@Rq`?=g`H|1@iOZVBsC(wX(d^{94b4|78GzsnK5Sko>x z{#GxjYa$jqGs)n6qS5UybI)pAnn~*ZCsWF`C~|+Z54M;Ri+w>#m=x)e9XKuRk*hms zc3i~!k8~~^n!7sOb0w}T2%xdgs0}njpm#v#soXOFk%u5D`+W|JzhdvwTQk=lh53xV z_)ZG=MLwD~-zeI+3HadvEdlSMd)}eKlWp&{PorOPhznZZ?U#d-(fXGV_Kw7ALuw`U z-H~vzF971?+aleMs$QXg!0)S0BU$Rdt=_pT<#@hkgRFm;9c;tYb9+~Pp3MdYvu>R0 zsIx%qp=6#!QqLkaSmC782=QmfP6VwSh^x&8@L%{F!oo=ZYxnk`swhAMVR8~wp-T!D zqR@r1^6eajgc!(+Apq8BYR+u_ThBfKzAt~Rtr!Q~tB97Lo$L83Ld(W?N$4ZC%0Kc^Bt;9Ns~OD!vZE7ZUGp2gm)d{1q>m#%Qw#(8bz-`scg)ow|^ z;8f);7Riw!grmb)PF2_-0b0Brs|(<81wE%J-<1}7tt>&B&{SFsUq)#rNT~j$T+tRm z0nlf-LVpPS`UXL~#Dy>QlHx01-rYeh3<5WQPhIF7Ua+C70u4&_4O*i2?F^Ek1!)BUsY11Q^!R(WxNVJRfBN(8d(k6< zM0)}pM4A|OC>=1@98=job%oKyF^h@V_hhUE=;?hcZoYaUfKLwIo)*{_!a;G%qjrxv zsx?@*Az)Au70NX)PkV1FR{jYYx@>_X^O>Lk9rf#%JyKf$r>Vu?zd-Da8_@p^Nm5dz ze#zPM^(6{4z{W*8&5x!-gxQ?*qepfmj;|l?{YqgB#NDfAGyWtSydu3zA;K^rha?tT z4jF9@%F$fkWOd_LHT*KtdxtNPSsb!^9Qe8mDbpt#3A*=lD`~~J6~UsCMRq(@Y$--r z_7OLLyNk}d?=7pol*w0Q#6>naM!Wi0cw`n~?@+Yze2T@ZFZf9}>Le`WO!%7x!`s@C ztiU?bK4R9Jjz;=RnyLhS5V6(z3&(p5;2QdzotfC7!p}%?u9Mz97!wY3JX99RN1(wb zK}ERVOKeY<9?o%3yJqn{ADY`TTgd|akWoH`oK z9tnEL9Vj(3a1OZ+_QXrNAqNtsRHy_9fwqnGx=6Uz1BJ8i#ud|6$sEl0+AEMFy43b= zCZ8S+RN$D3W(bZ81FN(HqQGb0v1>MNE$1f(wtV3IUKneR?*sDKt;MvloIU`f0Z%^K zNGDPi4&0c?(AT#ed&|-eg+a0}XMFiwZde1pPPw$IHQGdyKe!hv_KU4It|3Qn{JgUx z{*T#W9Y+}MGAO?XdTAZ__IOmv72b@2n!+Z&_RX|aLT3DEj_a#iAvsy;t8CIfe87nl z=Z!-9{iE$&nMX}~!Ae$h?K%HWeS43IP4fn4*GZ0hHN48q|MjRJP~#_^)o#N{UL7xW zy7sdZ1$w^S9(#51q4DLV3^sgTo9dn47%oP^s8lb?`VmM^ilOooC4>xRx4GbGb9dgq z!T~3;KBQL~)EFN>%(j16&A5WZs&QON=$a$uz!1tWSqK8rhEKX>!;#Ye?vKz2 z&Kzn`I2UlYN?#>M@CON?++ZJ&nAo%ie7M}}W}Iknn!MI=I?XcKmd1V~vfog01$vDm z9#H=qrakKP1F6V}ZRU^yr5a!uhZ}FSv!o*Ihme%kD6H|7Qj?lCr>$2$CNjdCfpuv; zswd{?M(Sns8{L|q6z`LG)VoV4-MWhjo$74v0Rn~iECeV zd--l#qtx#r@pzE4?E7(b&h>Z@@mFf3Ii1R@atHf)nprZz#Zbvq(fqE zu+o_|$S3LCcCrcjNmCMz*anZ9Yf9~8gDaKmh=p>l{ZWBnQRGKr4?p&^sNP6a7^aMQ zN@-Jew)x_tF8|XG^BIK zEg~1sl{n@Dd?~wWSFIT}APw&d17((ZHs+~_$As*94^*PZB>z(P5>EULrSU>yARepJ zn0SO5r`!H*s+HKu4BVo}Fq2%FZMnI;>Hs(k)o_4Ck@vB?v^SAU&qt5fi&KR*NDt>#&=Cf0AHwr zI{Z*B+{qKvlAj&_?ue2UKkBNB^Lx$%Jbi09`?@^dPzi9INmD3EE=mw6EmJ#C*7L@! zV8k=sU$4`l+D!9l;q>uS*sZXj4iRV0c;h?Kvq}7+92y3`uPTBCuGaw`eZ{02Q1(FX z#!}sKt%`2NELNs!s$_VBY)Obp_FcG1{CzVEkW-1ijqN(Op8pb5t1jBKnA#&kZm+@` zS-T^BcuHlOEf62q9_uA?{1{Cs6X&eRPrq{Go53se1M&v`-8qfQ?$LH9g5>}$HSSmb zF=1F>zSwN&UTm^Z#V%1PUVCI=cJl1Xw2(COsl4$?y4|C*&n5gtCi7eEJ@~s9Ytz0% z3?n=0i0%=4&61G!WLr96&zHuGL}|WzKjwX^7|v6Lkk+5mKKXt5<^S^0hvo16_4KX! zz@T>RJb$9U}H)3YHP@z?8^4IH0R$C&%fQfs7L0q)gL5&8q#HA zDO&xG4Vc+IBUuoJVeb?fsguA;>qhs^CWRq{9AM=jLWog z3G4eH&fhO2*J>6!TUwAgVdTiOCoR`~Co!xFN`CeClxDPe!L=I(uEy7mJyKm_6Pc@Z zNP{(hOZ9D!)=}Y^PVolVGq&&i(K?H~8rh7&EwX_Q&3MnfRow3F6<@u+=9={R9o1V^ z+$ipr}=~cdRyMiP{^QmJvRAAyr4I!_Zb}Im1zcM7dog= z9La5e8P=(%-M+iHBuHP;WP%y8#=^}BZKyC~A4G0NfZ!o0 zisV`}uXq@e0$ZE^>Ua=26`2-TZ8ZM37n)}sXY6&3*VnYzEahRU#0(3@9RFAi9yHi9 z4rQr&-|HF>!+sfPjy?`s;+E+EDbAO~^SF@R@P8x&yK_1*7$?wIyFP4h5 zUd01RE`KPZ?o2YIYaSHXtQ7wwa$&%eJXDLL4eV}8kSb6m@qQ%9(K7&~ys+l4t=SGz ziv+iO=dSK`2Z^#j?Tq?XFH!a!B+Ic;CEJi_e6Zw)x9iMlF$~^5t!DnST!N4){86pR z+LAT7vz3v+$9!B**Y_v)b^nqX7w|^YAQ%s>eTW{(9R4gGl9pHe=5l=&($MKaa=CZD zny6QSl;Y8utCi6|U7?;kRH1m(MfeThky-znBG9SUmT5#QnwZ6o+;nQN{PdpJIGPE_ z!I{jY38;4V8G2O)41Wl0pSiKX50RSls8nWTd&_hyiwY&A7-mnD4tU>n7xyP9c+@3* z8HTdlx}X>^>$Xd-L6B&e7bSxV4Z0&pqetmJ7Uu)B)u`9B=PNkh%TGClD;v{{NdzhJ zV?Mn@$4~Duc}Pc}J4GX(KDKPQda4WL+NlmL!v0(I`~{5ezZ}=uvE7!T`zu&RVYUkH zKI*;grh`ZMp&CzrH@$L+ARc*R-R>$j6^wh`ba7|%_%5P>^;6T$$v)t%y32F6U%P)g zHo#|jU_0Sguv2Z{+EBDlgc59Wad>n&Aa6GN66!(5ywS_>Z`%kHv7}dv)4PNYS2&^@ z2`b3ONkArtt46)Kq0G|5T5Swv3$FLEKGDlvO3h`s$l4Ank64)j*0jZ%_i|1DeN%RZ$n ze-s4#am-NK5jC1;9>+Y95QwPjHZXEt_$hcNC8l*pR%2~+3}I>?w0Wm65n2n*P}@IkG(DQd=RRcI)y_QPZ605}tRmugSSd2>an+@S{39p_64R?tb##-n$|JVbaUtNOifF;ZN>g$X5Ee~cdJ8&xu zQA(PoW~q-F{KfGvKWoe8K#mESHfNZT;eXb0`4NP$l9c)A4(s1_K?RuODDBIyfR#Cs zvxL)pjRoAdA3DNml|G_@O{eCmZBz&~^^vomo_};dAf^X|kLMcs5+`(woT7#(; zqS4`w#`k=p!DO{qC}wdG0Pi&6MbywA!?}r0#OU_33Ki7*+b7Zn{k!_~wrI05l;GEE z=1T%jCl2w&zL8JY<1}xAap4eLH!neRbnMkhV@$KHuo2;hmUIRHJ!&Y(TA}}1+IOYw zw8P(?=F95$2wzvR-k%wyjNme*t-n?@50}|5)N=XI)2d zB&U@k501uiqV0t(O^YLjkk@?UiF>&5y1huw<(=gDcMXg)ZL&{M6MuD)v4m-L1>&!$ zv$&w$caWI?u)vnwpz0QaCNfinAynsSuHF5fTu)&&@mUVFstqkrHSlu0`KbIvlqk+N zpk41JUvIJU@!Dcce%eYM{;m3ZCNnrT>P6%m*0zzesR-gPT-g4(@``u$y+?tTD5t8B z@2uXay(1$^jLz}n1s!6Y@dLXO8@$A{OCe8LWtg7>OvzNYmDFB)4v61h6EUUxs-?Zp zpDB8fD0zOru(_@ykz-q4PszKRrJk!GVKE(T`P!-HN?*O#FBXaGrt-z)_;8QADa}UT z8hGxnA#pE-4+m_nZrwqLIww-G?ix3To_5jl|D#Zg0GzjWF6v?lEC7ya?FdYWtBEY1 ztirKoXG1zlkmauKnemdt`vtQ)07OE@AOCtMf>KMq4 z{qSDqBK7Gme!8sTmg)E1>Q6&XT_5@Iy7nc$y^E|q&7#u=!l)nTEeLuQrJ-nvWGRCY zt=qy2jF!qD9tI1ikI*!CG8E3>hWp1*!8@<87TWb!D6mF>WctGxljHq>y7`Ku>#RcZ z5O84No!7Shy&K=$&Er!9N5+i-Zm9d@eM0oA`w+Q@;2`b*N)> z;NKOWTl}>;BTn5nYSF>s{8qc+gBRWh36PC^t@MaNi69-rW585yGu|1p$mPn=6mGgU1Tylsz0jpSQ4awSa%V8CNS z7KnBvxU|>ESF?ltW%E<#qV9J~tv7^$S~kS_pFhb;V!TiFl(KQ?TDNFMYZtdj_>l9j zhl1*gbLzC{wEr(%qq_0&9aD(K-m3su-NX+B-S&H zzjTwPoMOeJn~UUpmR}=9lv4Q9^xC{{N~?w~=W70CeXRDon_QrG8`Kkd;YsVWC5p|O zBy(BR{^;uI7p@}2eiPo^gqZ+8E2flZH2VMp4a%M|3Km!v%G6BSP!33dNW8;b$h`$ zse!_INvCYD0Wq{==0@J4Cg0;h9dd9JuB}}Zk(-Z_p`zI$QW<43G8EzAb#Mk9^%S4@ohkLxuhQF{(ClXt1O@%Mi;R5Jyt@^4lpzA+hf9Z8 z8Onu%78%D38J8XZmqrs$U;R3!;2Xj>$hMdZ%HQIQB#kZE!`XMEDJyTax2Qs$;22Io z#4+EJ)_DW<*xg1Y`yUPyfYjtL;sGFFfqurof};)(Mha<7Qj)spbF&N|oXI-ztIJmY)R z>Y`V1DeeIK_EUk7)`W`!^`jy?wes2BM8;%%G>7MOm2|Y|o)St8gll;vcUuY~bBcfS?YO3QFrmrP7q7X@ zTJB$GW+6!SJ5NuHWsrDVPWa+9Q*rLN{|Qtqp(kt^xMLKcnCRsU0?rJ;#}=A*I%SVc z4}~c3z_aQ4d2($VYm%o|Tpgpl9yfdzJmZ4DvRo} z=%%2${5%M}dXpd`UG6z`0h#TVII1*KL>mC`yZo00pd>G`+iJeppP*I$&9B<=oefU1 z-;Vbs1m;DC_L7?Z_SxRWd5!`O{%uV+i&WMqEbWxOd_SbGl+l8w{Poe&JAmtyEwsgr z`F?*ufsJWl^QSp@37Igk^g3OCl}guNuo^31_H`nHMeQWJYEz~39J0Lfv32$0sFqZu zlEK8Tg1u5nA}dA?$Wt7?0ihN$;W3*H~-yzA`Y2^WO$~ejaG`VO`aK- z(Jj1D2gz|0BCxpO7FcWAjQjF|E*;TuC`FN*CjNChPDvB|YxY}5x=4eup z@(2MU9F483_4*`Ht(L5iO`s9Cessr_4=q22QxGEv<^d{Z^SuSdqEYX*hGCnt^b$K! zFe>yEyhZW^GqGm6mJ1g$b^tx0?dh#96W7QmF4B_FLebT(b|L%ROdAlqjIwR;Rw6^y zOa5e{GY8;wysE{ak?u-NS&jc@seO$PJJPc}I_IJr+n}qHxc%ELxAwBU@rNCOn-6GH zewERx->oE_+A$8;&%79a%g)q?hUFkk)u@woAzLrrkUoN?X5A@q;33@-}uv{>uH}cT7=^i@<;%Ze;qp!Hf#|)6`KSe z^0(qDuau-OldTRDr+mzr_cpDq-|DsXZ-7mn_~mno>p)}NzM2g_Lf8!|64IzMi-iLK zastJO1*4pmGDjBSt&|B!xN)>>xOaqX=z}WH9yM=s zP@$|;B#X&KAPH?ekBqjm@H-$eL`Vqkx${Ai z;K@kBZh6#lDSbHZ`q(LkGTvB1{?*MxQy<;(3abh^nA-b=#R#&V_=P#4w z3i7>?obTgE6^8tBZT48e%3DSk79%xugpuDIx)RHd{m*p9kEQ5>#lvX5zi?C3!B-h$ z^{1>F>A>fW{-`}>)47w-_Q$ywGdH3bL<8#<+z>7l=pP-SW@StwTp$p?x1i;OC?Tbb z4C}mLbv63BDm)3$7HPUl={l{}^=)lQs+7ozH!N4_cM=7X29=>+*Cwyx9H`DfozDXY z^We6{K*g3-we;YrqFw%f?i)@@fA5Z~4(ux+DZl~Kd>%ynXK)|C1^0eQfk;k~$_602v2i*P4J zUZ_E8WQ}j4MF;L7FYD2dUJ6hu^{p$7uwR(#H$Jimy(?&b4*OL3cO;04u@Fpx4sU%8@zlp ze|Avk*0AB)qq|5*5sqKXxjYBuq-3knBbuCMj27DwKE<|-8$8bDWsn1PEZF?$&eBg6 z!81xMZq+aLf^5O$MO}n3ckoM@){x@l>My?_^kRo%c1>AsnpEx?p;VYd40g!|6>MEx zbJb8HTTssW6W;0F(GgsYCeS4nsT((SoaxdH3lWuwNYGB|SkBrSTlcW_a*KP^=z6&_ zy|nUa<>sUh8AkWdmH0ZbW#6J1$a9AbOJ{x%0%Xwf-6#v$ZeVEvf!{X5v>~Lstut#k^=PzW2Ih2Q zk~}xob03YEQ4*drvH&wc7&7jaXWB3ln@X`L`jcT-VdMvhea55Bl9@AYa$9Gn#L(H3 zlo7>NAMcp{%eVj;kz?);11m9A8{d6F9RLoNUZ`+r%Ucm~Jgd({m;!5J&_ZnT^~?in zcMP!_*Yza8ipX)@rQp_D{WJtQlbzifkV$({aIxl^k}{vWBA>=|S?I8vf!7xMlWfL| z`1(6*M4f$u5qoB6_B9fhu)6S=Wr#he!EjdbrNGy)a_) zwt4iQtN-b@6J99%`8N0a@jffg{SI9#I_oMM=eqF8IPbMPEvd*usGFZ&VBTfND&b6m zjHoG`P4IdrBce9D#en94Y?U!H>gv=737B(j3`s#_kK%4IRnI_`7H$fqNiH(_0&bI> zr5cltckXe<*}hr0gI0^!2^O)@{VJzAF5`^8C^AomGTiQkao-^_#6;c5Z~^16c%Vs= z?vv8>G%*^rTHLu0?qgtFMFNQrw7hdN3OV;y!kjnx84(|H-Dz(T@u1pRkz^9hlnvRS zPM{P)o2nTc5uBmXw7W3%Dn?!_gGxQRiF_qm;sqdct2PE3kVdSi`3@EY&9kQ9`DBug z!LrCO-&KzKd{q{lg zIO(k-90#~^GsiWp3chP>(b!KDhvXbb5$;4eQh#gj!fzkq!dOZ4ctr{`lzKeS#uEs9 z8meU97*qkjRmm{&%Yb$C+}yu7S~72gmK=L>EWITjlK{b4-@mU>dzK=6F);`0fb+wH z{D=-NbBcLaMBx`)_)(x*io%xy+uwnh6#geCCd+T+%!4tzTBVl;Bf@(t(o}Fr`fl-& z@FPef30?>f1V)5A>w0bFOb4R>AtTvTYGl}vY@{%;6X#0to!0+#X=3r`0b?EaY7l3Cr}L4BoFPkf%IqK>CaR#E2%@Cgf=rx!s4;aJ3P9gPFw#*Xn|jIo&OT zyoh!XPo8q~y$6+}>+;IG2eV8;?jb@e`TNIrrYWB?k1h)p6JF3Q)MPEBC4SIQKz-B8y2U5ob$hyAusM=#}}G zWY1=dqW$%^D~63P%l3lk5yyIyn&0Vhf#$00Ga5qJ_@A?az8U5?2qGIBZf-|Cp5)z8 z%FbLvG!+!zW;7eayY~h`Ys-5Aa+P){DmFh2_v&!&#V8}8OJ1C~L+k4KT@%NjmvGSH zHEtz0PExr5(_F|KnlAuO{VOZ^x_uNZSp5NMx~y1XCG#pU-0ajLTYP?7Fjml~@Y+iD zrmO;zbd&8D{JJia4Q@Tmwhf8!=#a%|t^X$0BAI;*AvLt|d&d!mf0HGp`FVt}<}06H z848pOuFmqo{<{e;riv)wJjYgLn zLkDwb8%U2uk6@pR@ZV66VWL9!KM0%~4+mIXGavya&-QLbmf{wXO{vrl87j7grW0A& zuI)&s3kRQwAaMV1thZ*3Sv2;Rqzbe%Km|e1Iw|4klmo6IPZ1dQ!{G^7V-`!rue`5c zVI6JW<#%|WANs$9hUhWf@5Q|f;rpI=gtHPtNytccE%HCj{MS+7e2dEW|7N6EpYjk( zlMsV&jc0uwEMvWUvaM#>%QT)qnJ{!BLlrPhgK!}?xRDmLbNn&&+8Tc5Eh=6u+Y@sGO_ejJ#hmGCG@-JY4jXL|1-Lj8L;WPq#L!l%yx zGG<=vlnuYj=Z%m_yu;4EskWHH83b9gj#cCYWs(bTs#(OBUX*+ZGfMqWID=T$m?HtTbkcJvj&9JJIwRk%*PqIaH(#? z>7o?^y{g2i0WoqO1*24ydm?257t*1&>MNh5G~SJS&;p;*A#QX=l)e)e=h`|!y(%*)-a&1 zhREnhj_|D;xDoKG7D4P660_fs`jigth<=H|=1VEkK@WzESrx4l95ri01g&xei+jR} zW^~`v}B{6HHuHcyavqL79YF)xmqMQxMvd49^+7;az}1$`;D_&IaqGG#LQ}I zI1OfmzO3?jKcS%UBK85kc$8s(BFuK}Q`#9Ij%?NNV{LgM1{QQP?rw0vGRjx-x0 z1@I0gt0X`=N?-k3SuINBS^G{woSe%WG}zx?{L=ub&CR!e_RbQxIhIkpYxNFZ;pEiF z+GZE?(HX$70#;1@dZR82?H^7?)rs2QQpCLx8bk>wP)3Us;!{+!Wzui2HI)4G;`9Qx zEN9Z_4R7QPjS6NDr5p~{kxPg}N>Y8i3MG5bS|jWM92Rf6>)!mN1&hjjR30XX;WJbT@VQy=kPnb=?<*(WUQrq-MmD2%r# zE8^lCglP+jLXzNldD0RchRb5jB%bzu!Jf@(3snN0HZR>-TgZwT*)ZX$3>uifDL##1 z7#M!j%Pu(^CQKRA-m?ByX%bHZL;^-A6s9 z{$1G~zlR$GbITbFc7IS?ae#fCkAKD>fNh9>-;WUILGY>nR|LoyHYCbH&0Oh{C04tT zBv&nwQW^;eDJvW6RK+K&?XT{eIb|`__p|z&LyUpxg|34hBtAbYZLdBi)|o$bNoR~v z^l+ia3%R$DkM?jvlKd8@c+u*z9S`NdZ@yA@JFj)G@|Tpw6Q+w2#HM^Z(nZ;*b$aYnm=xTViRcKEh-M-DQDB zmoLWu&*NQ@MjmBRbj7ys@o}YuociAE0QKigpx>R>KL+-NgU~esR>c%8aRRE9yUx?u z*77r3*dLhB0}fJgYP}Hmk); zN_~+wI@qZ+PsX)S$U8W;ZY726sknZ#g$Rd%U)D@L9QlWxq%<$`3|U@gMkyKBbXp^J ziz-V^{|dUIaNsjN1=I6=@EbF;sfd$-N_1HgTpz z>4s&ddH86jTCukIJ^J^u;b({b%y_@BCL7^!v^1J$SFPegeq0@hp`kVU1Cf5Kn+i&Y zu!uw!Kon(`AUoPt)8bx8lN8U~=0h^)jO~&UrTOi1~uxmDT& z_y39p)R6hqcWph$zzd?(jin+VfVVR?G9|JqI2=?+`ACBEXQh)W(o78JI`boFX;bK- z(VX-gL53v?0bFRID^qWr{kB5H>P}zYhdMIPN0v`twJ0Qd%q{1BBY1Ip^!Eq#1Bu;> zXr&C!t>F~Tt+A)EGW|yNe=E`DEJTA z+27EJqNieupr7lm#reicphrCX#PPOJBj_0i%Mr){FhC;7$@SZ1lsWu;-`ubMw|CVrVMo3`>AK_`jMF>ZX={ux6|Hw2Qyfqud+))9lx62DOk0W zq)AZRpwzzOmMa>DabKe{EEWz?ymzY!rS>c+&?rtYe~?p&t#mbu=`Fazn38zuD|sDc z*h^sEt5I^~A+Yjj*Q=|Rel*&aH?UJpZqQD5+&%)P9{d%*GZ5vvp@>bZ=9Hs2)s=kK z=lJTY{Ez*Xol6{Y;@1F;<8`d22)_1ZXlV=Bf!dx_wDoC}nJO%nmW?AF!*V@Ppj)*_ z=PcvNs6;~00sinhwDs91!%ah=$X2j}x~tr9+0(LvESWTV*+{;%dS)lp$; zqX@!w6h!ryxL%FTBELC>fGwM{#DlY1)z<+8e8J?j{za?mQEY)<5z;Z0dHK1iPL3uF z?*bvQexK*&qgHFsg<3_WL1JW06Ufp|sd4ftoL^eguKGj`fT^@S6gps^$G_lfJ49Ck z2U0Y9&T3$w<2H@7Cl#$%`CviO3b@S?<+1_m3&OSZ?l+K3q5&dq;Mm8L`jgKMMM4Vm zt9MHJD^SL}xEZ6^BN@JBg`}H3gaRUOHI`9Ke5m-iD(590PRqy2hcxhd7Qsap;px&+aut(u1LzWg*@;l@u z9!8YE@>7g5ATcxS0~wE`cn@Tbu1M~sunxsb-hI>bcjjSQV}fI zp^Q{S`&Mh$q#PHzq;1Bm)Gu}xJ8a6TmDBh>RjfDjq9pn$sh3!$aHke%1Pr-9%xMt!rSJ49DUawTlY+vwYeRnwdllm|; zIeWN(nl{-SdpQWU_mA~DGds3Csm`%(mcX%$1H}A7boUh`DY@J|)yk`FDgK&7;qv!i zUjJw^SQxy~0^45IkOCn3%3-zmK91$H%%fdnyyYwrpd_S?4k2aX?1^Pcv&Qz?c_tfX zMWfJ_Syu1@cjI%8yb}wcgGCYXv1&?cZ6e_c+ehLob>FtGlOS`n`Gy~B{~um=3QX8+ z*3wnL)`69d+;yJ}g^w&$a$zkPvsfXXV`PZ@s{wk2tTl26QBfNEQ+1=p-e;3sG5{g) z3r$L4Q?^K@wZ%suK0%XwQ$^_Wl8EbscQ@t-sWamci_GD*ft%tUkZ!8kbXy`b)71(< zo3I;cxUO)F4~TjWyNPu=Nh_5e9IUfC>C`I&6zR$p4sBT*zI2{WPOQA~`5N7fQK`JY_JJDJ6vrHEV5i34ybI+`U$izLyV;<u*7CobMxOu?Wx$<%9p?#7r{@t)0T;EoA+U)}eBX`dS^25&T8b4O(x4hmA zG1$%4oNNZk+^S3=pRWx{9nZfCI~NKpC

cV4A7`mRc=RdN6_T-94}AaxkXED=3X! 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৸SG97D_^jRdnxkv5Isc5;BS7y8lx(xf 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ⅈ3iX)yaQgFcMS3wlsQAOyxB60^qr#m+9o9M4^J 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

^UDzP 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 JA^#yN;6IMCUuOUS literal 0 HcmV?d00001 From 11ff3491f9696b2db3ec53c4c4be92e0df8ae24b Mon Sep 17 00:00:00 2001 From: jjatie Date: Sat, 6 Jan 2018 10:13:42 -0400 Subject: [PATCH 04/84] BarChartRenderer Logic cleanup (#3008) * Logic cleanup Mostly using guard where appropriate Few very minor performance improvements * Made use of `==` where appropriate to simplify logic * Returned fatalError message * Replaced `Buffer` class with simple typealias. There was only one instance where reference semantics might have be helpful, but was easily reimplemented with value semantics. --- Charts.xcodeproj/project.pbxproj | 2416 ++++++++--------- .../Charts/Renderers/BarChartRenderer.swift | 390 ++- 2 files changed, 1365 insertions(+), 1441 deletions(-) diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 7bd02ef15b..0970eb5a57 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -1,1253 +1,1253 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { /* Begin PBXBuildFile section */ - 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */; }; - 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */; }; - 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */; }; - 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 596963A429D485E3894C4666 /* Marker.swift */; }; - 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */; }; - 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */; }; - 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */; }; - 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */; }; - 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 064989451F5C99C7006E8BB3 /* Snapshot.swift */; }; - 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */; }; - 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */; }; - 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */; }; - 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */; }; - 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */; }; - 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */; }; - 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */; }; - 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */; }; - 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998F2BFE318471AFC05B50AC /* Highlighter.swift */; }; - 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */; }; - 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */; }; - 224EFF991FBAAC4700CF9B3B /* (null) in Sources */ = {isa = PBXBuildFile; }; - 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */; }; - 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F279974FE650E57A061B09 /* BarChartRenderer.swift */; }; - 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */; }; - 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DCD13D558BA177D5952AD66 /* PieChartView.swift */; }; - 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */; }; - 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */; }; - 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */; }; - 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F715DB2C56C9E0615542625B /* LegendRenderer.swift */; }; - 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */; }; - 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */; }; - 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */; }; - 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E03A4987F72414A02A0631B /* PieChartData.swift */; }; - 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB92A80F861C1362EED8D946 /* YAxis.swift */; }; - 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */; }; - 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */; }; - 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */; }; - 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0108D5925E21A47DA36A66AA /* BarChartData.swift */; }; - 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */; }; - 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 274116834B1B0345D622E027 /* CandleChartDataSet.swift */; }; - 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */; }; - 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 543729805D897CC03E5F78D3 /* BarHighlighter.swift */; }; - 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6227A646166E248F90F86AD /* ChartColorTemplates.swift */; }; - 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */; }; - 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */; }; - 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */; }; - 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */; }; - 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */; }; - 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */; }; - 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */; }; - 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */; }; - 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */; }; - 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */; }; - 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */; }; - 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */; }; - 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */; }; - 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */; }; - 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */; }; - 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */; }; - 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */; }; - 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */; }; - 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */; }; - 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A140F644332704916947B58C /* CombinedChartDataProvider.swift */; }; - 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */; }; - 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */; }; - 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7036F11832C017E26AC750A4 /* PieHighlighter.swift */; }; - 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D64616883374310C505EC39 /* Highlight.swift */; }; - 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */; }; - 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */; }; - 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D8013D44629521B1746364 /* PieChartRenderer.swift */; }; - 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */; }; - 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */; }; - 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */; }; - 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */; }; - 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0619A877C69A95ECCC440A44 /* LineChartView.swift */; }; - 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */; }; - 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A4CFFFB65819121595F06F1 /* Fill.swift */; }; - 81892994002C0640AD858748 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E120E76C6F1B5877D56126DD /* ChartData.swift */; }; - 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */; }; - 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */; }; - 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */; }; - 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */; }; - 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */; }; - 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */; }; - 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */; }; - 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */; }; - 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48164CCD83C51B496533CB77 /* MarkerView.swift */; }; - 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */; }; - 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */; }; - 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */; }; - 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */; }; - 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */; }; - 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */; }; - 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F099502DA50C56204E7B744 /* Range.swift */; }; - 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */; }; - A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */; }; - A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */; }; - AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */; }; - AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */; }; - B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */; }; - B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */; }; - B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */; }; - B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */; }; - B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */; }; - B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */; }; - B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */; }; - BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9922F0641F7955DC6CD324 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */; }; - C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */; }; - C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */; }; - C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */; }; - C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */; }; - C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */; }; - C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; }; - CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA09EF973925A110506799 /* ChartUtils.swift */; }; - CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */; }; - CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */; }; - D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E783CFB4889A767C76510917 /* BarChartView.swift */; }; - D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5983826927D825EF5F855C28 /* ChartHighlighter.swift */; }; - D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */; }; - D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3976E5F9D60E30CD94CE6156 /* Animator.swift */; }; - DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = B137428B41C143D5115726C4 /* Description.swift */; }; - DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4785FEACAE4367F36FB8868 /* CandleChartData.swift */; }; - DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF475B9593B9898853814340 /* Transformer.swift */; }; - E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */; }; - E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */; }; - E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */; }; - E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */; }; - E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */; }; - E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ED23C354AFE81818D78E645 /* Platform.swift */; }; - EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22750328058DEC2F019646F /* ChartDataEntry.swift */; }; - EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */; }; - ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */ = {isa = PBXBuildFile; fileRef = E64A75540C627E09080B402A /* Legend.swift */; }; - ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75935E899183DDFA181E2CC /* AxisRenderer.swift */; }; - F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */; }; - F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */; }; - F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */; }; - F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */; }; - F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */; }; - F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */; }; - FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */; }; - FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */; }; - FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */; }; - FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */; }; + 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */; }; + 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */; }; + 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */; }; + 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 596963A429D485E3894C4666 /* Marker.swift */; }; + 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */; }; + 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */; }; + 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */; }; + 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */; }; + 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 064989451F5C99C7006E8BB3 /* Snapshot.swift */; }; + 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */; }; + 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */; }; + 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */; }; + 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */; }; + 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */; }; + 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */; }; + 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */; }; + 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */; }; + 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998F2BFE318471AFC05B50AC /* Highlighter.swift */; }; + 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */; }; + 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */; }; + 224EFF991FBAAC4700CF9B3B /* (null) in Sources */ = {isa = PBXBuildFile; }; + 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */; }; + 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F279974FE650E57A061B09 /* BarChartRenderer.swift */; }; + 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */; }; + 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DCD13D558BA177D5952AD66 /* PieChartView.swift */; }; + 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */; }; + 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */; }; + 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */; }; + 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F715DB2C56C9E0615542625B /* LegendRenderer.swift */; }; + 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */; }; + 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */; }; + 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */; }; + 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E03A4987F72414A02A0631B /* PieChartData.swift */; }; + 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB92A80F861C1362EED8D946 /* YAxis.swift */; }; + 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */; }; + 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */; }; + 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */; }; + 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0108D5925E21A47DA36A66AA /* BarChartData.swift */; }; + 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */; }; + 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 274116834B1B0345D622E027 /* CandleChartDataSet.swift */; }; + 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */; }; + 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 543729805D897CC03E5F78D3 /* BarHighlighter.swift */; }; + 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6227A646166E248F90F86AD /* ChartColorTemplates.swift */; }; + 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */; }; + 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */; }; + 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */; }; + 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */; }; + 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */; }; + 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */; }; + 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */; }; + 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */; }; + 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */; }; + 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */; }; + 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */; }; + 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */; }; + 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */; }; + 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */; }; + 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */; }; + 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */; }; + 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */; }; + 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */; }; + 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */; }; + 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A140F644332704916947B58C /* CombinedChartDataProvider.swift */; }; + 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */; }; + 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */; }; + 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7036F11832C017E26AC750A4 /* PieHighlighter.swift */; }; + 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D64616883374310C505EC39 /* Highlight.swift */; }; + 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */; }; + 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */; }; + 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D8013D44629521B1746364 /* PieChartRenderer.swift */; }; + 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */; }; + 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */; }; + 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */; }; + 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */; }; + 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0619A877C69A95ECCC440A44 /* LineChartView.swift */; }; + 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */; }; + 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A4CFFFB65819121595F06F1 /* Fill.swift */; }; + 81892994002C0640AD858748 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E120E76C6F1B5877D56126DD /* ChartData.swift */; }; + 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */; }; + 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */; }; + 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */; }; + 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */; }; + 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */; }; + 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */; }; + 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */; }; + 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */; }; + 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48164CCD83C51B496533CB77 /* MarkerView.swift */; }; + 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */; }; + 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */; }; + 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */; }; + 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */; }; + 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */; }; + 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */; }; + 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F099502DA50C56204E7B744 /* Range.swift */; }; + 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */; }; + A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */; }; + A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */; }; + AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */; }; + AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */; }; + B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */; }; + B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */; }; + B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */; }; + B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */; }; + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */; }; + B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */; }; + B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */; }; + BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9922F0641F7955DC6CD324 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */; }; + C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */; }; + C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */; }; + C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */; }; + C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */; }; + C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */; }; + C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; }; + CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA09EF973925A110506799 /* ChartUtils.swift */; }; + CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */; }; + CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */; }; + D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E783CFB4889A767C76510917 /* BarChartView.swift */; }; + D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5983826927D825EF5F855C28 /* ChartHighlighter.swift */; }; + D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */; }; + D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3976E5F9D60E30CD94CE6156 /* Animator.swift */; }; + DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = B137428B41C143D5115726C4 /* Description.swift */; }; + DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4785FEACAE4367F36FB8868 /* CandleChartData.swift */; }; + DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF475B9593B9898853814340 /* Transformer.swift */; }; + E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */; }; + E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */; }; + E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */; }; + E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */; }; + E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */; }; + E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ED23C354AFE81818D78E645 /* Platform.swift */; }; + EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22750328058DEC2F019646F /* ChartDataEntry.swift */; }; + EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */; }; + ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */ = {isa = PBXBuildFile; fileRef = E64A75540C627E09080B402A /* Legend.swift */; }; + ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75935E899183DDFA181E2CC /* AxisRenderer.swift */; }; + F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */; }; + F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */; }; + F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */; }; + F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */; }; + F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */; }; + F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */; }; + FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */; }; + FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */; }; + FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */; }; + FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - C2005F425A98942473657ED2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 193FC8DF32D250560C5F5D77 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A58A4ED274A941CA248EA921; - remoteInfo = Charts; - }; + C2005F425A98942473657ED2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 193FC8DF32D250560C5F5D77 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A58A4ED274A941CA248EA921; + remoteInfo = Charts; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0108D5925E21A47DA36A66AA /* BarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarChartData.swift; sourceTree = ""; }; - 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRenderer.swift; path = Source/Charts/Renderers/DataRenderer.swift; sourceTree = ""; }; - 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarHighlighter.swift; path = Source/Charts/Highlight/PieRadarHighlighter.swift; sourceTree = ""; }; - 0619A877C69A95ECCC440A44 /* LineChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartView.swift; path = Source/Charts/Charts/LineChartView.swift; sourceTree = ""; }; - 064989451F5C99C7006E8BB3 /* Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Snapshot.swift; path = Tests/Charts/Snapshot.swift; sourceTree = ""; }; - 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisValueFormatter.swift; path = Source/Charts/Formatters/AxisValueFormatter.swift; sourceTree = ""; }; - 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartRenderer.swift; path = Source/Charts/Renderers/LineChartRenderer.swift; sourceTree = ""; }; - 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartData.swift; path = Source/Charts/Data/Implementations/Standard/CombinedChartData.swift; sourceTree = ""; }; - 0F099502DA50C56204E7B744 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = Source/Charts/Highlight/Range.swift; sourceTree = ""; }; - 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarRenderer.swift; path = Source/Charts/Renderers/LineRadarRenderer.swift; sourceTree = ""; }; - 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultValueFormatter.swift; path = Source/Charts/Formatters/DefaultValueFormatter.swift; sourceTree = ""; }; - 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IndexAxisValueFormatter.swift; path = Source/Charts/Formatters/IndexAxisValueFormatter.swift; sourceTree = ""; }; - 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartView.swift; path = Source/Charts/Charts/CombinedChartView.swift; sourceTree = ""; }; - 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntryBase.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntryBase.swift; sourceTree = ""; }; - 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartView.swift; path = Source/Charts/Charts/ScatterChartView.swift; sourceTree = ""; }; - 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift; sourceTree = ""; }; - 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRenderer.swift; path = Source/Charts/Renderers/XAxisRenderer.swift; sourceTree = ""; }; - 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChartsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; - 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartRenderer.swift; path = Source/Charts/Renderers/BubbleChartRenderer.swift; sourceTree = ""; }; - 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift; sourceTree = ""; }; - 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EquatableTests.swift; path = Tests/Charts/EquatableTests.swift; sourceTree = ""; }; - 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/XShapeRenderer.swift; sourceTree = ""; }; - 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartView.swift; path = Source/Charts/Charts/RadarChartView.swift; sourceTree = ""; }; - 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedHighlighter.swift; path = Source/Charts/Highlight/CombinedHighlighter.swift; sourceTree = ""; }; - 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MoveViewJob.swift; path = Source/Charts/Jobs/MoveViewJob.swift; sourceTree = ""; }; - 274116834B1B0345D622E027 /* CandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift; sourceTree = ""; }; - 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift; sourceTree = ""; }; - 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataProvider.swift; path = Source/Charts/Interfaces/ScatterChartDataProvider.swift; sourceTree = ""; }; - 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartViewBase.swift; path = Source/Charts/Charts/ChartViewBase.swift; sourceTree = ""; }; - 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformerHorizontalBarChart.swift; path = Source/Charts/Utils/TransformerHorizontalBarChart.swift; sourceTree = ""; }; - 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SquareShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift; sourceTree = ""; }; - 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarHighlighter.swift; path = Source/Charts/Highlight/HorizontalBarHighlighter.swift; sourceTree = ""; }; - 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerImage.swift; path = Source/Charts/Components/MarkerImage.swift; sourceTree = ""; }; - 3976E5F9D60E30CD94CE6156 /* Animator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Animator.swift; path = Source/Charts/Animation/Animator.swift; sourceTree = ""; }; - 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift; sourceTree = ""; }; - 3D64616883374310C505EC39 /* Highlight.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlight.swift; path = Source/Charts/Highlight/Highlight.swift; sourceTree = ""; }; - 3ED23C354AFE81818D78E645 /* Platform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.swift; path = Source/Charts/Utils/Platform.swift; sourceTree = ""; }; - 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataProvider.swift; path = Source/Charts/Interfaces/CandleChartDataProvider.swift; sourceTree = ""; }; - 3FDA09EF973925A110506799 /* ChartUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtils.swift; path = Source/Charts/Utils/ChartUtils.swift; sourceTree = ""; }; - 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = "Tests/Supporting Files/Media.xcassets"; sourceTree = ""; }; - 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift; sourceTree = ""; }; - 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineChartViewBase.swift; path = Source/Charts/Charts/BarLineChartViewBase.swift; sourceTree = ""; }; - 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift; sourceTree = ""; }; - 46D8013D44629521B1746364 /* PieChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartRenderer.swift; path = Source/Charts/Renderers/PieChartRenderer.swift; sourceTree = ""; }; - 48164CCD83C51B496533CB77 /* MarkerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerView.swift; path = Source/Charts/Components/MarkerView.swift; sourceTree = ""; }; - 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarChartViewBase.swift; path = Source/Charts/Charts/PieRadarChartViewBase.swift; sourceTree = ""; }; - 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisBase.swift; path = Source/Charts/Components/AxisBase.swift; sourceTree = ""; }; - 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartData.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartData.swift; sourceTree = ""; }; - 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedZoomViewJob.swift; path = Source/Charts/Jobs/AnimatedZoomViewJob.swift; sourceTree = ""; }; - 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartData.swift; path = Source/Charts/Data/Implementations/Standard/LineChartData.swift; sourceTree = ""; }; - 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ValueFormatter.swift; path = Source/Charts/Formatters/ValueFormatter.swift; sourceTree = ""; }; - 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartView.swift; path = Source/Charts/Charts/BubbleChartView.swift; sourceTree = ""; }; - 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift; sourceTree = ""; }; - 4F9922F0641F7955DC6CD324 /* Charts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Charts.h; path = "Source/Supporting Files/Charts.h"; sourceTree = ""; }; - 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxis.swift; path = Source/Charts/Components/XAxis.swift; sourceTree = ""; }; - 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartRenderer.swift; path = Source/Charts/Renderers/CombinedChartRenderer.swift; sourceTree = ""; }; - 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartRenderer.swift; path = Source/Charts/Renderers/HorizontalBarChartRenderer.swift; sourceTree = ""; }; - 543729805D897CC03E5F78D3 /* BarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarHighlighter.swift; path = Source/Charts/Highlight/BarHighlighter.swift; sourceTree = ""; }; - 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift; sourceTree = ""; }; - 596963A429D485E3894C4666 /* Marker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Marker.swift; path = Source/Charts/Components/Marker.swift; sourceTree = ""; }; - 5983826927D825EF5F855C28 /* ChartHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartHighlighter.swift; path = Source/Charts/Highlight/ChartHighlighter.swift; sourceTree = ""; }; - 5A4CFFFB65819121595F06F1 /* Fill.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fill.swift; path = Source/Charts/Utils/Fill.swift; sourceTree = ""; }; - 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleRenderer.swift; path = Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift; sourceTree = ""; }; - 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartTests.swift; path = Tests/Charts/BarChartTests.swift; sourceTree = ""; }; - 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartView.swift; path = Source/Charts/Charts/HorizontalBarChartView.swift; sourceTree = ""; }; - 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataProvider.swift; path = Source/Charts/Interfaces/ChartDataProvider.swift; sourceTree = ""; }; - 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Charts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRenderer.swift; path = Source/Charts/Renderers/YAxisRenderer.swift; sourceTree = ""; }; - 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultAxisValueFormatter.swift; path = Source/Charts/Formatters/DefaultAxisValueFormatter.swift; sourceTree = ""; }; - 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataSet.swift; sourceTree = ""; }; - 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; - 6E03A4987F72414A02A0631B /* PieChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartData.swift; path = Source/Charts/Data/Implementations/Standard/PieChartData.swift; sourceTree = ""; }; - 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Renderer.swift; path = Source/Charts/Renderers/Renderer.swift; sourceTree = ""; }; - 7036F11832C017E26AC750A4 /* PieHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieHighlighter.swift; path = Source/Charts/Highlight/PieHighlighter.swift; sourceTree = ""; }; - 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedViewPortJob.swift; path = Source/Charts/Jobs/AnimatedViewPortJob.swift; sourceTree = ""; }; - 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortHandler.swift; path = Source/Charts/Utils/ViewPortHandler.swift; sourceTree = ""; }; - 75F279974FE650E57A061B09 /* BarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartRenderer.swift; path = Source/Charts/Renderers/BarChartRenderer.swift; sourceTree = ""; }; - 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift; sourceTree = ""; }; - 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtilsTests.swift; path = Tests/Charts/ChartUtilsTests.swift; sourceTree = ""; }; - 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartRenderer.swift; path = Source/Charts/Renderers/RadarChartRenderer.swift; sourceTree = ""; }; - 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartData.swift; sourceTree = ""; }; - 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartRenderer.swift; path = Source/Charts/Renderers/ScatterChartRenderer.swift; sourceTree = ""; }; - 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FillFormatter.swift; path = Source/Charts/Formatters/FillFormatter.swift; sourceTree = ""; }; - 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CrossShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift; sourceTree = ""; }; - 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BarLineScatterCandleBubbleChartDataProvider.swift; sourceTree = ""; }; - 910DBFE1DA1B2CA237A736DF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Source/Supporting Files/Info.plist"; sourceTree = ""; }; - 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift; sourceTree = ""; }; - 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarRenderer.swift; path = Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift; sourceTree = ""; }; - 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift; sourceTree = ""; }; - 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataApproximator.swift; path = Source/Charts/Filters/DataApproximator.swift; sourceTree = ""; }; - 998F2BFE318471AFC05B50AC /* Highlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlighter.swift; path = Source/Charts/Highlight/Highlighter.swift; sourceTree = ""; }; - 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataProvider.swift; path = Source/Charts/Interfaces/BarChartDataProvider.swift; sourceTree = ""; }; - 9DCD13D558BA177D5952AD66 /* PieChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartView.swift; path = Source/Charts/Charts/PieChartView.swift; sourceTree = ""; }; - 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendEntry.swift; path = Source/Charts/Components/LegendEntry.swift; sourceTree = ""; }; - A140F644332704916947B58C /* CombinedChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartDataProvider.swift; path = Source/Charts/Interfaces/CombinedChartDataProvider.swift; sourceTree = ""; }; - A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift; sourceTree = ""; }; - A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift; sourceTree = ""; }; - A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift; sourceTree = ""; }; - AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererRadarChart.swift; path = Source/Charts/Renderers/YAxisRendererRadarChart.swift; sourceTree = ""; }; - AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronUpShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift; sourceTree = ""; }; - B137428B41C143D5115726C4 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Source/Charts/Components/Description.swift; sourceTree = ""; }; - B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift; sourceTree = ""; }; - B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift; sourceTree = ""; }; - B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CombinedChartTests.swift; path = Tests/Charts/CombinedChartTests.swift; sourceTree = ""; }; - BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedMoveViewJob.swift; path = Source/Charts/Jobs/AnimatedMoveViewJob.swift; sourceTree = ""; }; - BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartView.swift; path = Source/Charts/Charts/CandleStickChartView.swift; sourceTree = ""; }; - BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererRadarChart.swift; path = Source/Charts/Renderers/XAxisRendererRadarChart.swift; sourceTree = ""; }; - BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataEntry.swift; sourceTree = ""; }; - BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartRenderer.swift; path = Source/Charts/Renderers/CandleStickChartRenderer.swift; sourceTree = ""; }; - BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataProvider.swift; path = Source/Charts/Interfaces/LineChartDataProvider.swift; sourceTree = ""; }; - C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift; sourceTree = ""; }; - C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronDownShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift; sourceTree = ""; }; - C574E1BC7E12D937A5471EF8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = ""; }; - C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; - C75935E899183DDFA181E2CC /* AxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisRenderer.swift; path = Source/Charts/Renderers/AxisRenderer.swift; sourceTree = ""; }; - C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ComponentBase.swift; path = Source/Charts/Components/ComponentBase.swift; sourceTree = ""; }; - C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TriangleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift; sourceTree = ""; }; - C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartBaseDataSet.swift; path = Source/Charts/Data/Implementations/ChartBaseDataSet.swift; sourceTree = ""; }; - CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift; sourceTree = ""; }; - D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartTests.swift; path = Tests/Charts/LineChartTests.swift; sourceTree = ""; }; - D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataEntry.swift; sourceTree = ""; }; - D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultFillFormatter.swift; path = Source/Charts/Formatters/DefaultFillFormatter.swift; sourceTree = ""; }; - DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift; sourceTree = ""; }; - DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataEntry.swift; sourceTree = ""; }; - DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartAnimationEasing.swift; path = Source/Charts/Animation/ChartAnimationEasing.swift; sourceTree = ""; }; - E120E76C6F1B5877D56126DD /* ChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartData.swift; path = Source/Charts/Data/Implementations/Standard/ChartData.swift; sourceTree = ""; }; - E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift; sourceTree = ""; }; - E64A75540C627E09080B402A /* Legend.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Legend.swift; path = Source/Charts/Components/Legend.swift; sourceTree = ""; }; - E783CFB4889A767C76510917 /* BarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartView.swift; path = Source/Charts/Charts/BarChartView.swift; sourceTree = ""; }; - E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartData.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartData.swift; sourceTree = ""; }; - EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; - ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CircleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift; sourceTree = ""; }; - EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BubbleChartDataProvider.swift; sourceTree = ""; }; - F22750328058DEC2F019646F /* ChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntry.swift; sourceTree = ""; }; - F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarHighlighter.swift; path = Source/Charts/Highlight/RadarHighlighter.swift; sourceTree = ""; }; - F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift; sourceTree = ""; }; - F4785FEACAE4367F36FB8868 /* CandleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartData.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartData.swift; sourceTree = ""; }; - F6227A646166E248F90F86AD /* ChartColorTemplates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartColorTemplates.swift; path = Source/Charts/Utils/ChartColorTemplates.swift; sourceTree = ""; }; - F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartLimitLine.swift; path = Source/Charts/Components/ChartLimitLine.swift; sourceTree = ""; }; - F715DB2C56C9E0615542625B /* LegendRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendRenderer.swift; path = Source/Charts/Renderers/LegendRenderer.swift; sourceTree = ""; }; - FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ShapeRenderer.swift; sourceTree = ""; }; - FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortJob.swift; path = Source/Charts/Jobs/ViewPortJob.swift; sourceTree = ""; }; - FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZoomViewJob.swift; path = Source/Charts/Jobs/ZoomViewJob.swift; sourceTree = ""; }; - FB92A80F861C1362EED8D946 /* YAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxis.swift; path = Source/Charts/Components/YAxis.swift; sourceTree = ""; }; - FF475B9593B9898853814340 /* Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transformer.swift; path = Source/Charts/Utils/Transformer.swift; sourceTree = ""; }; + 0108D5925E21A47DA36A66AA /* BarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarChartData.swift; sourceTree = ""; }; + 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRenderer.swift; path = Source/Charts/Renderers/DataRenderer.swift; sourceTree = ""; }; + 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarHighlighter.swift; path = Source/Charts/Highlight/PieRadarHighlighter.swift; sourceTree = ""; }; + 0619A877C69A95ECCC440A44 /* LineChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartView.swift; path = Source/Charts/Charts/LineChartView.swift; sourceTree = ""; }; + 064989451F5C99C7006E8BB3 /* Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Snapshot.swift; path = Tests/Charts/Snapshot.swift; sourceTree = ""; }; + 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisValueFormatter.swift; path = Source/Charts/Formatters/AxisValueFormatter.swift; sourceTree = ""; }; + 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartRenderer.swift; path = Source/Charts/Renderers/LineChartRenderer.swift; sourceTree = ""; }; + 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartData.swift; path = Source/Charts/Data/Implementations/Standard/CombinedChartData.swift; sourceTree = ""; }; + 0F099502DA50C56204E7B744 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = Source/Charts/Highlight/Range.swift; sourceTree = ""; }; + 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarRenderer.swift; path = Source/Charts/Renderers/LineRadarRenderer.swift; sourceTree = ""; }; + 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultValueFormatter.swift; path = Source/Charts/Formatters/DefaultValueFormatter.swift; sourceTree = ""; }; + 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IndexAxisValueFormatter.swift; path = Source/Charts/Formatters/IndexAxisValueFormatter.swift; sourceTree = ""; }; + 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartView.swift; path = Source/Charts/Charts/CombinedChartView.swift; sourceTree = ""; }; + 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntryBase.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntryBase.swift; sourceTree = ""; }; + 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartView.swift; path = Source/Charts/Charts/ScatterChartView.swift; sourceTree = ""; }; + 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift; sourceTree = ""; }; + 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRenderer.swift; path = Source/Charts/Renderers/XAxisRenderer.swift; sourceTree = ""; }; + 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChartsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; + 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartRenderer.swift; path = Source/Charts/Renderers/BubbleChartRenderer.swift; sourceTree = ""; }; + 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift; sourceTree = ""; }; + 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EquatableTests.swift; path = Tests/Charts/EquatableTests.swift; sourceTree = ""; }; + 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/XShapeRenderer.swift; sourceTree = ""; }; + 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartView.swift; path = Source/Charts/Charts/RadarChartView.swift; sourceTree = ""; }; + 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedHighlighter.swift; path = Source/Charts/Highlight/CombinedHighlighter.swift; sourceTree = ""; }; + 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MoveViewJob.swift; path = Source/Charts/Jobs/MoveViewJob.swift; sourceTree = ""; }; + 274116834B1B0345D622E027 /* CandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift; sourceTree = ""; }; + 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift; sourceTree = ""; }; + 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataProvider.swift; path = Source/Charts/Interfaces/ScatterChartDataProvider.swift; sourceTree = ""; }; + 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartViewBase.swift; path = Source/Charts/Charts/ChartViewBase.swift; sourceTree = ""; }; + 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformerHorizontalBarChart.swift; path = Source/Charts/Utils/TransformerHorizontalBarChart.swift; sourceTree = ""; }; + 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SquareShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift; sourceTree = ""; }; + 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarHighlighter.swift; path = Source/Charts/Highlight/HorizontalBarHighlighter.swift; sourceTree = ""; }; + 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerImage.swift; path = Source/Charts/Components/MarkerImage.swift; sourceTree = ""; }; + 3976E5F9D60E30CD94CE6156 /* Animator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Animator.swift; path = Source/Charts/Animation/Animator.swift; sourceTree = ""; }; + 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift; sourceTree = ""; }; + 3D64616883374310C505EC39 /* Highlight.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlight.swift; path = Source/Charts/Highlight/Highlight.swift; sourceTree = ""; }; + 3ED23C354AFE81818D78E645 /* Platform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.swift; path = Source/Charts/Utils/Platform.swift; sourceTree = ""; }; + 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataProvider.swift; path = Source/Charts/Interfaces/CandleChartDataProvider.swift; sourceTree = ""; }; + 3FDA09EF973925A110506799 /* ChartUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtils.swift; path = Source/Charts/Utils/ChartUtils.swift; sourceTree = ""; }; + 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = "Tests/Supporting Files/Media.xcassets"; sourceTree = ""; }; + 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift; sourceTree = ""; }; + 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineChartViewBase.swift; path = Source/Charts/Charts/BarLineChartViewBase.swift; sourceTree = ""; }; + 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift; sourceTree = ""; }; + 46D8013D44629521B1746364 /* PieChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartRenderer.swift; path = Source/Charts/Renderers/PieChartRenderer.swift; sourceTree = ""; }; + 48164CCD83C51B496533CB77 /* MarkerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerView.swift; path = Source/Charts/Components/MarkerView.swift; sourceTree = ""; }; + 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarChartViewBase.swift; path = Source/Charts/Charts/PieRadarChartViewBase.swift; sourceTree = ""; }; + 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisBase.swift; path = Source/Charts/Components/AxisBase.swift; sourceTree = ""; }; + 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartData.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartData.swift; sourceTree = ""; }; + 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedZoomViewJob.swift; path = Source/Charts/Jobs/AnimatedZoomViewJob.swift; sourceTree = ""; }; + 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartData.swift; path = Source/Charts/Data/Implementations/Standard/LineChartData.swift; sourceTree = ""; }; + 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ValueFormatter.swift; path = Source/Charts/Formatters/ValueFormatter.swift; sourceTree = ""; }; + 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartView.swift; path = Source/Charts/Charts/BubbleChartView.swift; sourceTree = ""; }; + 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift; sourceTree = ""; }; + 4F9922F0641F7955DC6CD324 /* Charts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Charts.h; path = "Source/Supporting Files/Charts.h"; sourceTree = ""; }; + 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxis.swift; path = Source/Charts/Components/XAxis.swift; sourceTree = ""; }; + 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartRenderer.swift; path = Source/Charts/Renderers/CombinedChartRenderer.swift; sourceTree = ""; }; + 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartRenderer.swift; path = Source/Charts/Renderers/HorizontalBarChartRenderer.swift; sourceTree = ""; }; + 543729805D897CC03E5F78D3 /* BarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarHighlighter.swift; path = Source/Charts/Highlight/BarHighlighter.swift; sourceTree = ""; }; + 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift; sourceTree = ""; }; + 596963A429D485E3894C4666 /* Marker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Marker.swift; path = Source/Charts/Components/Marker.swift; sourceTree = ""; }; + 5983826927D825EF5F855C28 /* ChartHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartHighlighter.swift; path = Source/Charts/Highlight/ChartHighlighter.swift; sourceTree = ""; }; + 5A4CFFFB65819121595F06F1 /* Fill.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fill.swift; path = Source/Charts/Utils/Fill.swift; sourceTree = ""; }; + 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleRenderer.swift; path = Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift; sourceTree = ""; }; + 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartTests.swift; path = Tests/Charts/BarChartTests.swift; sourceTree = ""; }; + 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartView.swift; path = Source/Charts/Charts/HorizontalBarChartView.swift; sourceTree = ""; }; + 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataProvider.swift; path = Source/Charts/Interfaces/ChartDataProvider.swift; sourceTree = ""; }; + 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Charts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRenderer.swift; path = Source/Charts/Renderers/YAxisRenderer.swift; sourceTree = ""; }; + 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultAxisValueFormatter.swift; path = Source/Charts/Formatters/DefaultAxisValueFormatter.swift; sourceTree = ""; }; + 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataSet.swift; sourceTree = ""; }; + 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; + 6E03A4987F72414A02A0631B /* PieChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartData.swift; path = Source/Charts/Data/Implementations/Standard/PieChartData.swift; sourceTree = ""; }; + 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Renderer.swift; path = Source/Charts/Renderers/Renderer.swift; sourceTree = ""; }; + 7036F11832C017E26AC750A4 /* PieHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieHighlighter.swift; path = Source/Charts/Highlight/PieHighlighter.swift; sourceTree = ""; }; + 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedViewPortJob.swift; path = Source/Charts/Jobs/AnimatedViewPortJob.swift; sourceTree = ""; }; + 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortHandler.swift; path = Source/Charts/Utils/ViewPortHandler.swift; sourceTree = ""; }; + 75F279974FE650E57A061B09 /* BarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartRenderer.swift; path = Source/Charts/Renderers/BarChartRenderer.swift; sourceTree = ""; }; + 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift; sourceTree = ""; }; + 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtilsTests.swift; path = Tests/Charts/ChartUtilsTests.swift; sourceTree = ""; }; + 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartRenderer.swift; path = Source/Charts/Renderers/RadarChartRenderer.swift; sourceTree = ""; }; + 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartData.swift; sourceTree = ""; }; + 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartRenderer.swift; path = Source/Charts/Renderers/ScatterChartRenderer.swift; sourceTree = ""; }; + 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FillFormatter.swift; path = Source/Charts/Formatters/FillFormatter.swift; sourceTree = ""; }; + 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CrossShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift; sourceTree = ""; }; + 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BarLineScatterCandleBubbleChartDataProvider.swift; sourceTree = ""; }; + 910DBFE1DA1B2CA237A736DF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Source/Supporting Files/Info.plist"; sourceTree = ""; }; + 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift; sourceTree = ""; }; + 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarRenderer.swift; path = Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift; sourceTree = ""; }; + 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift; sourceTree = ""; }; + 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataApproximator.swift; path = Source/Charts/Filters/DataApproximator.swift; sourceTree = ""; }; + 998F2BFE318471AFC05B50AC /* Highlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlighter.swift; path = Source/Charts/Highlight/Highlighter.swift; sourceTree = ""; }; + 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataProvider.swift; path = Source/Charts/Interfaces/BarChartDataProvider.swift; sourceTree = ""; }; + 9DCD13D558BA177D5952AD66 /* PieChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartView.swift; path = Source/Charts/Charts/PieChartView.swift; sourceTree = ""; }; + 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendEntry.swift; path = Source/Charts/Components/LegendEntry.swift; sourceTree = ""; }; + A140F644332704916947B58C /* CombinedChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartDataProvider.swift; path = Source/Charts/Interfaces/CombinedChartDataProvider.swift; sourceTree = ""; }; + A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift; sourceTree = ""; }; + A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift; sourceTree = ""; }; + A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift; sourceTree = ""; }; + AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererRadarChart.swift; path = Source/Charts/Renderers/YAxisRendererRadarChart.swift; sourceTree = ""; }; + AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronUpShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift; sourceTree = ""; }; + B137428B41C143D5115726C4 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Source/Charts/Components/Description.swift; sourceTree = ""; }; + B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift; sourceTree = ""; }; + B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift; sourceTree = ""; }; + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CombinedChartTests.swift; path = Tests/Charts/CombinedChartTests.swift; sourceTree = ""; }; + BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedMoveViewJob.swift; path = Source/Charts/Jobs/AnimatedMoveViewJob.swift; sourceTree = ""; }; + BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartView.swift; path = Source/Charts/Charts/CandleStickChartView.swift; sourceTree = ""; }; + BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererRadarChart.swift; path = Source/Charts/Renderers/XAxisRendererRadarChart.swift; sourceTree = ""; }; + BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataEntry.swift; sourceTree = ""; }; + BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartRenderer.swift; path = Source/Charts/Renderers/CandleStickChartRenderer.swift; sourceTree = ""; }; + BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataProvider.swift; path = Source/Charts/Interfaces/LineChartDataProvider.swift; sourceTree = ""; }; + C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift; sourceTree = ""; }; + C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronDownShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift; sourceTree = ""; }; + C574E1BC7E12D937A5471EF8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = ""; }; + C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; + C75935E899183DDFA181E2CC /* AxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisRenderer.swift; path = Source/Charts/Renderers/AxisRenderer.swift; sourceTree = ""; }; + C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ComponentBase.swift; path = Source/Charts/Components/ComponentBase.swift; sourceTree = ""; }; + C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TriangleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift; sourceTree = ""; }; + C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartBaseDataSet.swift; path = Source/Charts/Data/Implementations/ChartBaseDataSet.swift; sourceTree = ""; }; + CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift; sourceTree = ""; }; + D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartTests.swift; path = Tests/Charts/LineChartTests.swift; sourceTree = ""; }; + D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataEntry.swift; sourceTree = ""; }; + D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultFillFormatter.swift; path = Source/Charts/Formatters/DefaultFillFormatter.swift; sourceTree = ""; }; + DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift; sourceTree = ""; }; + DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataEntry.swift; sourceTree = ""; }; + DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartAnimationEasing.swift; path = Source/Charts/Animation/ChartAnimationEasing.swift; sourceTree = ""; }; + E120E76C6F1B5877D56126DD /* ChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartData.swift; path = Source/Charts/Data/Implementations/Standard/ChartData.swift; sourceTree = ""; }; + E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift; sourceTree = ""; }; + E64A75540C627E09080B402A /* Legend.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Legend.swift; path = Source/Charts/Components/Legend.swift; sourceTree = ""; }; + E783CFB4889A767C76510917 /* BarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartView.swift; path = Source/Charts/Charts/BarChartView.swift; sourceTree = ""; }; + E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartData.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartData.swift; sourceTree = ""; }; + EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; + ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CircleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift; sourceTree = ""; }; + EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BubbleChartDataProvider.swift; sourceTree = ""; }; + F22750328058DEC2F019646F /* ChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntry.swift; sourceTree = ""; }; + F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarHighlighter.swift; path = Source/Charts/Highlight/RadarHighlighter.swift; sourceTree = ""; }; + F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift; sourceTree = ""; }; + F4785FEACAE4367F36FB8868 /* CandleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartData.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartData.swift; sourceTree = ""; }; + F6227A646166E248F90F86AD /* ChartColorTemplates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartColorTemplates.swift; path = Source/Charts/Utils/ChartColorTemplates.swift; sourceTree = ""; }; + F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartLimitLine.swift; path = Source/Charts/Components/ChartLimitLine.swift; sourceTree = ""; }; + F715DB2C56C9E0615542625B /* LegendRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendRenderer.swift; path = Source/Charts/Renderers/LegendRenderer.swift; sourceTree = ""; }; + FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ShapeRenderer.swift; sourceTree = ""; }; + FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortJob.swift; path = Source/Charts/Jobs/ViewPortJob.swift; sourceTree = ""; }; + FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZoomViewJob.swift; path = Source/Charts/Jobs/ZoomViewJob.swift; sourceTree = ""; }; + FB92A80F861C1362EED8D946 /* YAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxis.swift; path = Source/Charts/Components/YAxis.swift; sourceTree = ""; }; + FF475B9593B9898853814340 /* Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transformer.swift; path = Source/Charts/Utils/Transformer.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 77997192275C47C45A0A2E9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C16A09321DC2DCF289FF0E3B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 77997192275C47C45A0A2E9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C16A09321DC2DCF289FF0E3B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 031D7C33F3BF172E30664862 /* DataProviders */ = { - isa = PBXGroup; - children = ( - 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */, - 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */, - EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */, - 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */, - 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */, - A140F644332704916947B58C /* CombinedChartDataProvider.swift */, - BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */, - 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */, - ); - name = DataProviders; - sourceTree = ""; - }; - 033FD152BB2F906750106A85 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; - 098621EDFBF928494B94BEA1 /* Data */ = { - isa = PBXGroup; - children = ( - 3B9DD76FCE8D873300A822C7 /* Implementations */, - DB2D9648877455028EBEAA8F /* DataSet Protocols */, - ); - name = Data; - sourceTree = ""; - }; - 20C350D33133A4D89BB365B1 /* Source */ = { - isa = PBXGroup; - children = ( - E9F158C8C566B26AFD775911 /* Supporting Files */, - 2647844720BC6574A544A337 /* Charts */, - ); - name = Source; - sourceTree = ""; - }; - 2227EA571FF1F219007D98D9 /* AxisRenderers */ = { - isa = PBXGroup; - children = ( - C75935E899183DDFA181E2CC /* AxisRenderer.swift */, - 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */, - 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */, - BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */, - 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */, - EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */, - AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */, - ); - name = AxisRenderers; - sourceTree = ""; - }; - 2227EA581FF1F224007D98D9 /* ChartRenderers */ = { - isa = PBXGroup; - children = ( - 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */, - 75F279974FE650E57A061B09 /* BarChartRenderer.swift */, - 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */, - 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */, - BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */, - 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */, - 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */, - 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */, - 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */, - 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */, - 46D8013D44629521B1746364 /* PieChartRenderer.swift */, - 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */, - 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */, - ); - name = ChartRenderers; - sourceTree = ""; - }; - 2647844720BC6574A544A337 /* Charts */ = { - isa = PBXGroup; - children = ( - A49C1F0F9CCD6E5C143C29F4 /* Animation */, - 8C531E3F3C3DE5843C93C3DA /* Charts */, - 51EF1986C9884C25EED1C2CB /* Components */, - 098621EDFBF928494B94BEA1 /* Data */, - AA79AB82B0ADCA926510B73E /* Filters */, - 74A391010038924F637D6752 /* Formatters */, - 42824E1F334B0C484AF4C594 /* Highlight */, - 031D7C33F3BF172E30664862 /* DataProviders */, - AD1224C45A29A5C88D6B7450 /* Jobs */, - E7589D3E7C2BD2449960AD59 /* Renderers */, - D047819AB7170595896D6FE8 /* Utils */, - ); - name = Charts; - sourceTree = ""; - }; - 3B9DD76FCE8D873300A822C7 /* Implementations */ = { - isa = PBXGroup; - children = ( - C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */, - 740017197A160047EBB8A9A0 /* Standard */, - ); - name = Implementations; - sourceTree = ""; - }; - 42824E1F334B0C484AF4C594 /* Highlight */ = { - isa = PBXGroup; - children = ( - 543729805D897CC03E5F78D3 /* BarHighlighter.swift */, - 5983826927D825EF5F855C28 /* ChartHighlighter.swift */, - 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */, - 3D64616883374310C505EC39 /* Highlight.swift */, - 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */, - 998F2BFE318471AFC05B50AC /* Highlighter.swift */, - 7036F11832C017E26AC750A4 /* PieHighlighter.swift */, - 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */, - F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */, - 0F099502DA50C56204E7B744 /* Range.swift */, - ); - name = Highlight; - sourceTree = ""; - }; - 51EF1986C9884C25EED1C2CB /* Components */ = { - isa = PBXGroup; - children = ( - 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */, - F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */, - C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */, - B137428B41C143D5115726C4 /* Description.swift */, - 596963A429D485E3894C4666 /* Marker.swift */, - E64A75540C627E09080B402A /* Legend.swift */, - 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */, - 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */, - 48164CCD83C51B496533CB77 /* MarkerView.swift */, - 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */, - FB92A80F861C1362EED8D946 /* YAxis.swift */, - ); - name = Components; - sourceTree = ""; - }; - 740017197A160047EBB8A9A0 /* Standard */ = { - isa = PBXGroup; - children = ( - 0108D5925E21A47DA36A66AA /* BarChartData.swift */, - E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */, - C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */, - 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */, - 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */, - 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */, - DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */, - B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */, - F4785FEACAE4367F36FB8868 /* CandleChartData.swift */, - D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */, - 274116834B1B0345D622E027 /* CandleChartDataSet.swift */, - E120E76C6F1B5877D56126DD /* ChartData.swift */, - F22750328058DEC2F019646F /* ChartDataEntry.swift */, - 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */, - 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */, - 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */, - 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */, - A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */, - 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */, - C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */, - 6E03A4987F72414A02A0631B /* PieChartData.swift */, - BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */, - A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */, - 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */, - 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */, - B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */, - E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */, - CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */, - ); - name = Standard; - sourceTree = ""; - }; - 74A391010038924F637D6752 /* Formatters */ = { - isa = PBXGroup; - children = ( - 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */, - D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */, - 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */, - 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */, - 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */, - 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */, - 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */, - ); - name = Formatters; - sourceTree = ""; - }; - 865A1CF149F52850CAB7F177 = { - isa = PBXGroup; - children = ( - AB2D554102718F209377399E /* Products */, - 033FD152BB2F906750106A85 /* Frameworks */, - 20C350D33133A4D89BB365B1 /* Source */, - D2C26AC015E753014C7571E4 /* Tests */, - ); - sourceTree = ""; - }; - 8C531E3F3C3DE5843C93C3DA /* Charts */ = { - isa = PBXGroup; - children = ( - E783CFB4889A767C76510917 /* BarChartView.swift */, - 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */, - 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */, - BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */, - 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */, - 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */, - 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */, - 0619A877C69A95ECCC440A44 /* LineChartView.swift */, - 9DCD13D558BA177D5952AD66 /* PieChartView.swift */, - 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */, - 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */, - 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */, - ); - name = Charts; - sourceTree = ""; - }; - 9613A7C800C7F065A823D587 /* Charts */ = { - isa = PBXGroup; - children = ( - 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */, - 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */, - 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */, - B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */, - D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */, - 064989451F5C99C7006E8BB3 /* Snapshot.swift */, - ); - name = Charts; - sourceTree = ""; - }; - A49C1F0F9CCD6E5C143C29F4 /* Animation */ = { - isa = PBXGroup; - children = ( - 3976E5F9D60E30CD94CE6156 /* Animator.swift */, - DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */, - ); - name = Animation; - sourceTree = ""; - }; - AA79AB82B0ADCA926510B73E /* Filters */ = { - isa = PBXGroup; - children = ( - 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */, - ); - name = Filters; - sourceTree = ""; - }; - AB2D554102718F209377399E /* Products */ = { - isa = PBXGroup; - children = ( - 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */, - 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - AD1224C45A29A5C88D6B7450 /* Jobs */ = { - isa = PBXGroup; - children = ( - BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */, - 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */, - 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */, - 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */, - FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */, - FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */, - ); - name = Jobs; - sourceTree = ""; - }; - BF662941E21BC049994B2598 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - C574E1BC7E12D937A5471EF8 /* Info.plist */, - 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D047819AB7170595896D6FE8 /* Utils */ = { - isa = PBXGroup; - children = ( - F6227A646166E248F90F86AD /* ChartColorTemplates.swift */, - 3FDA09EF973925A110506799 /* ChartUtils.swift */, - 5A4CFFFB65819121595F06F1 /* Fill.swift */, - 3ED23C354AFE81818D78E645 /* Platform.swift */, - FF475B9593B9898853814340 /* Transformer.swift */, - 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */, - 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */, - ); - name = Utils; - sourceTree = ""; - }; - D2C26AC015E753014C7571E4 /* Tests */ = { - isa = PBXGroup; - children = ( - BF662941E21BC049994B2598 /* Supporting Files */, - 9613A7C800C7F065A823D587 /* Charts */, - ); - name = Tests; - sourceTree = ""; - }; - DB2D9648877455028EBEAA8F /* DataSet Protocols */ = { - isa = PBXGroup; - children = ( - 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */, - A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */, - F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */, - 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */, - 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */, - 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */, - 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */, - 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */, - DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */, - 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */, - 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */, - ); - name = "DataSet Protocols"; - sourceTree = ""; - }; - E7589D3E7C2BD2449960AD59 /* Renderers */ = { - isa = PBXGroup; - children = ( - F715DB2C56C9E0615542625B /* LegendRenderer.swift */, - 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */, - 2227EA571FF1F219007D98D9 /* AxisRenderers */, - 2227EA581FF1F224007D98D9 /* ChartRenderers */, - F7059584CB30EF419CFB3335 /* ShapeRenderer */, - ); - name = Renderers; - sourceTree = ""; - }; - E9F158C8C566B26AFD775911 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 910DBFE1DA1B2CA237A736DF /* Info.plist */, - 4F9922F0641F7955DC6CD324 /* Charts.h */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - F7059584CB30EF419CFB3335 /* ShapeRenderer */ = { - isa = PBXGroup; - children = ( - C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */, - AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */, - ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */, - 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */, - FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */, - 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */, - C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */, - 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */, - ); - name = ShapeRenderer; - sourceTree = ""; - }; + 031D7C33F3BF172E30664862 /* DataProviders */ = { + isa = PBXGroup; + children = ( + 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */, + 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */, + EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */, + 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */, + 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */, + A140F644332704916947B58C /* CombinedChartDataProvider.swift */, + BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */, + 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */, + ); + name = DataProviders; + sourceTree = ""; + }; + 033FD152BB2F906750106A85 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + 098621EDFBF928494B94BEA1 /* Data */ = { + isa = PBXGroup; + children = ( + 3B9DD76FCE8D873300A822C7 /* Implementations */, + DB2D9648877455028EBEAA8F /* DataSet Protocols */, + ); + name = Data; + sourceTree = ""; + }; + 20C350D33133A4D89BB365B1 /* Source */ = { + isa = PBXGroup; + children = ( + E9F158C8C566B26AFD775911 /* Supporting Files */, + 2647844720BC6574A544A337 /* Charts */, + ); + name = Source; + sourceTree = ""; + }; + 2227EA571FF1F219007D98D9 /* AxisRenderers */ = { + isa = PBXGroup; + children = ( + C75935E899183DDFA181E2CC /* AxisRenderer.swift */, + 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */, + 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */, + BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */, + 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */, + EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */, + AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */, + ); + name = AxisRenderers; + sourceTree = ""; + }; + 2227EA581FF1F224007D98D9 /* ChartRenderers */ = { + isa = PBXGroup; + children = ( + 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */, + 75F279974FE650E57A061B09 /* BarChartRenderer.swift */, + 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */, + 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */, + BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */, + 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */, + 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */, + 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */, + 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */, + 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */, + 46D8013D44629521B1746364 /* PieChartRenderer.swift */, + 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */, + 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */, + ); + name = ChartRenderers; + sourceTree = ""; + }; + 2647844720BC6574A544A337 /* Charts */ = { + isa = PBXGroup; + children = ( + A49C1F0F9CCD6E5C143C29F4 /* Animation */, + 8C531E3F3C3DE5843C93C3DA /* Charts */, + 51EF1986C9884C25EED1C2CB /* Components */, + 098621EDFBF928494B94BEA1 /* Data */, + AA79AB82B0ADCA926510B73E /* Filters */, + 74A391010038924F637D6752 /* Formatters */, + 42824E1F334B0C484AF4C594 /* Highlight */, + 031D7C33F3BF172E30664862 /* DataProviders */, + AD1224C45A29A5C88D6B7450 /* Jobs */, + E7589D3E7C2BD2449960AD59 /* Renderers */, + D047819AB7170595896D6FE8 /* Utils */, + ); + name = Charts; + sourceTree = ""; + }; + 3B9DD76FCE8D873300A822C7 /* Implementations */ = { + isa = PBXGroup; + children = ( + C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */, + 740017197A160047EBB8A9A0 /* Standard */, + ); + name = Implementations; + sourceTree = ""; + }; + 42824E1F334B0C484AF4C594 /* Highlight */ = { + isa = PBXGroup; + children = ( + 543729805D897CC03E5F78D3 /* BarHighlighter.swift */, + 5983826927D825EF5F855C28 /* ChartHighlighter.swift */, + 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */, + 3D64616883374310C505EC39 /* Highlight.swift */, + 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */, + 998F2BFE318471AFC05B50AC /* Highlighter.swift */, + 7036F11832C017E26AC750A4 /* PieHighlighter.swift */, + 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */, + F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */, + 0F099502DA50C56204E7B744 /* Range.swift */, + ); + name = Highlight; + sourceTree = ""; + }; + 51EF1986C9884C25EED1C2CB /* Components */ = { + isa = PBXGroup; + children = ( + 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */, + F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */, + C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */, + B137428B41C143D5115726C4 /* Description.swift */, + 596963A429D485E3894C4666 /* Marker.swift */, + E64A75540C627E09080B402A /* Legend.swift */, + 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */, + 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */, + 48164CCD83C51B496533CB77 /* MarkerView.swift */, + 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */, + FB92A80F861C1362EED8D946 /* YAxis.swift */, + ); + name = Components; + sourceTree = ""; + }; + 740017197A160047EBB8A9A0 /* Standard */ = { + isa = PBXGroup; + children = ( + 0108D5925E21A47DA36A66AA /* BarChartData.swift */, + E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */, + C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */, + 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */, + 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */, + 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */, + DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */, + B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */, + F4785FEACAE4367F36FB8868 /* CandleChartData.swift */, + D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */, + 274116834B1B0345D622E027 /* CandleChartDataSet.swift */, + E120E76C6F1B5877D56126DD /* ChartData.swift */, + F22750328058DEC2F019646F /* ChartDataEntry.swift */, + 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */, + 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */, + 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */, + 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */, + A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */, + 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */, + C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */, + 6E03A4987F72414A02A0631B /* PieChartData.swift */, + BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */, + A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */, + 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */, + 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */, + B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */, + E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */, + CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */, + ); + name = Standard; + sourceTree = ""; + }; + 74A391010038924F637D6752 /* Formatters */ = { + isa = PBXGroup; + children = ( + 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */, + D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */, + 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */, + 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */, + 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */, + 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */, + 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */, + ); + name = Formatters; + sourceTree = ""; + }; + 865A1CF149F52850CAB7F177 = { + isa = PBXGroup; + children = ( + AB2D554102718F209377399E /* Products */, + 033FD152BB2F906750106A85 /* Frameworks */, + 20C350D33133A4D89BB365B1 /* Source */, + D2C26AC015E753014C7571E4 /* Tests */, + ); + sourceTree = ""; + }; + 8C531E3F3C3DE5843C93C3DA /* Charts */ = { + isa = PBXGroup; + children = ( + E783CFB4889A767C76510917 /* BarChartView.swift */, + 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */, + 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */, + BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */, + 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */, + 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */, + 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */, + 0619A877C69A95ECCC440A44 /* LineChartView.swift */, + 9DCD13D558BA177D5952AD66 /* PieChartView.swift */, + 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */, + 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */, + 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */, + ); + name = Charts; + sourceTree = ""; + }; + 9613A7C800C7F065A823D587 /* Charts */ = { + isa = PBXGroup; + children = ( + 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */, + 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */, + 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */, + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */, + D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */, + 064989451F5C99C7006E8BB3 /* Snapshot.swift */, + ); + name = Charts; + sourceTree = ""; + }; + A49C1F0F9CCD6E5C143C29F4 /* Animation */ = { + isa = PBXGroup; + children = ( + 3976E5F9D60E30CD94CE6156 /* Animator.swift */, + DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */, + ); + name = Animation; + sourceTree = ""; + }; + AA79AB82B0ADCA926510B73E /* Filters */ = { + isa = PBXGroup; + children = ( + 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */, + ); + name = Filters; + sourceTree = ""; + }; + AB2D554102718F209377399E /* Products */ = { + isa = PBXGroup; + children = ( + 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */, + 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + AD1224C45A29A5C88D6B7450 /* Jobs */ = { + isa = PBXGroup; + children = ( + BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */, + 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */, + 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */, + 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */, + FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */, + FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */, + ); + name = Jobs; + sourceTree = ""; + }; + BF662941E21BC049994B2598 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C574E1BC7E12D937A5471EF8 /* Info.plist */, + 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + D047819AB7170595896D6FE8 /* Utils */ = { + isa = PBXGroup; + children = ( + F6227A646166E248F90F86AD /* ChartColorTemplates.swift */, + 3FDA09EF973925A110506799 /* ChartUtils.swift */, + 5A4CFFFB65819121595F06F1 /* Fill.swift */, + 3ED23C354AFE81818D78E645 /* Platform.swift */, + FF475B9593B9898853814340 /* Transformer.swift */, + 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */, + 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */, + ); + name = Utils; + sourceTree = ""; + }; + D2C26AC015E753014C7571E4 /* Tests */ = { + isa = PBXGroup; + children = ( + BF662941E21BC049994B2598 /* Supporting Files */, + 9613A7C800C7F065A823D587 /* Charts */, + ); + name = Tests; + sourceTree = ""; + }; + DB2D9648877455028EBEAA8F /* DataSet Protocols */ = { + isa = PBXGroup; + children = ( + 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */, + A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */, + F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */, + 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */, + 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */, + 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */, + 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */, + 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */, + DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */, + 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */, + 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */, + ); + name = "DataSet Protocols"; + sourceTree = ""; + }; + E7589D3E7C2BD2449960AD59 /* Renderers */ = { + isa = PBXGroup; + children = ( + F715DB2C56C9E0615542625B /* LegendRenderer.swift */, + 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */, + 2227EA571FF1F219007D98D9 /* AxisRenderers */, + 2227EA581FF1F224007D98D9 /* ChartRenderers */, + F7059584CB30EF419CFB3335 /* ShapeRenderer */, + ); + name = Renderers; + sourceTree = ""; + }; + E9F158C8C566B26AFD775911 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 910DBFE1DA1B2CA237A736DF /* Info.plist */, + 4F9922F0641F7955DC6CD324 /* Charts.h */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + F7059584CB30EF419CFB3335 /* ShapeRenderer */ = { + isa = PBXGroup; + children = ( + C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */, + AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */, + ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */, + 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */, + FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */, + 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */, + C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */, + 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */, + ); + name = ShapeRenderer; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - B2B2DD73E237562739EE1F83 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + B2B2DD73E237562739EE1F83 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - A58A4ED274A941CA248EA921 /* Charts */ = { - isa = PBXNativeTarget; - buildConfigurationList = F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */; - buildPhases = ( - B2B2DD73E237562739EE1F83 /* Headers */, - B5996DB2D9B6F0DB0E9D3F3E /* Sources */, - E257C254E738A8AE047C6FB6 /* Resources */, - C16A09321DC2DCF289FF0E3B /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Charts; - productName = Charts; - productReference = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; - productType = "com.apple.product-type.framework"; - }; - F2749BD5443C1CB5FE2080C2 /* ChartsTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */; - buildPhases = ( - D6BF00523905132F162A7710 /* Build Dependencies */, - E356A2384A2368AB3D2C7912 /* Sources */, - 5B102E31AA8399941CC6248D /* Resources */, - 77997192275C47C45A0A2E9A /* Frameworks */, - 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 8676F8A013D87F9961E92465 /* PBXTargetDependency */, - ); - name = ChartsTests; - productName = ChartsTests; - productReference = 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; + A58A4ED274A941CA248EA921 /* Charts */ = { + isa = PBXNativeTarget; + buildConfigurationList = F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */; + buildPhases = ( + B2B2DD73E237562739EE1F83 /* Headers */, + B5996DB2D9B6F0DB0E9D3F3E /* Sources */, + E257C254E738A8AE047C6FB6 /* Resources */, + C16A09321DC2DCF289FF0E3B /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Charts; + productName = Charts; + productReference = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; + productType = "com.apple.product-type.framework"; + }; + F2749BD5443C1CB5FE2080C2 /* ChartsTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */; + buildPhases = ( + D6BF00523905132F162A7710 /* Build Dependencies */, + E356A2384A2368AB3D2C7912 /* Sources */, + 5B102E31AA8399941CC6248D /* Resources */, + 77997192275C47C45A0A2E9A /* Frameworks */, + 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 8676F8A013D87F9961E92465 /* PBXTargetDependency */, + ); + name = ChartsTests; + productName = ChartsTests; + productReference = 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 193FC8DF32D250560C5F5D77 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; - TargetAttributes = { - A58A4ED274A941CA248EA921 = { - LastSwiftMigration = 0900; - }; - F2749BD5443C1CB5FE2080C2 = { - LastSwiftMigration = 0900; - }; - }; - }; - buildConfigurationList = 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 865A1CF149F52850CAB7F177; - productRefGroup = AB2D554102718F209377399E /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A58A4ED274A941CA248EA921 /* Charts */, - F2749BD5443C1CB5FE2080C2 /* ChartsTests */, - ); - }; + 193FC8DF32D250560C5F5D77 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0700; + TargetAttributes = { + A58A4ED274A941CA248EA921 = { + LastSwiftMigration = 0900; + }; + F2749BD5443C1CB5FE2080C2 = { + LastSwiftMigration = 0900; + }; + }; + }; + buildConfigurationList = 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 865A1CF149F52850CAB7F177; + productRefGroup = AB2D554102718F209377399E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A58A4ED274A941CA248EA921 /* Charts */, + F2749BD5443C1CB5FE2080C2 /* ChartsTests */, + ); + }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 5B102E31AA8399941CC6248D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E257C254E738A8AE047C6FB6 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 5B102E31AA8399941CC6248D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E257C254E738A8AE047C6FB6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - FBSnapshotTestCase.framework, - ); - name = "Copy Carthage Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = " exec \"${SRCROOT}/scripts/copy-carthage-frameworks.sh\""; - }; - D6BF00523905132F162A7710 /* Build Dependencies */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - name = "Build Dependencies"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "exec \"${SRCROOT}/scripts/build-dependencies.sh\""; - }; + 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + FBSnapshotTestCase.framework, + ); + name = "Copy Carthage Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = " exec \"${SRCROOT}/scripts/copy-carthage-frameworks.sh\""; + }; + D6BF00523905132F162A7710 /* Build Dependencies */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "Build Dependencies"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "exec \"${SRCROOT}/scripts/build-dependencies.sh\""; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - B5996DB2D9B6F0DB0E9D3F3E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */, - F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */, - D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */, - 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */, - E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */, - 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */, - 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */, - 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */, - A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */, - 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */, - 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */, - 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */, - 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */, - 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */, - 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */, - 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */, - FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */, - DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */, - 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */, - ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */, - C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */, - 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */, - 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */, - 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */, - 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */, - E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */, - 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */, - 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */, - 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */, - 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */, - 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */, - E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */, - C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */, - 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */, - DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */, - D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */, - 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */, - 81892994002C0640AD858748 /* ChartData.swift in Sources */, - EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */, - 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */, - 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */, - 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */, - C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */, - 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */, - 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */, - FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */, - 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */, - 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */, - B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */, - 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */, - C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */, - E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */, - 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */, - EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */, - C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */, - AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */, - 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */, - 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */, - E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */, - F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */, - 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */, - 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */, - FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */, - 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */, - 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */, - 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */, - 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */, - F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */, - B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */, - B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */, - B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */, - 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */, - A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */, - 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */, - D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */, - 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */, - 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */, - 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */, - 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */, - 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */, - 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */, - C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */, - 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */, - 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */, - 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */, - 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */, - 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */, - FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */, - 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */, - 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */, - 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */, - 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */, - CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */, - 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */, - 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */, - 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */, - AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */, - ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */, - 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */, - 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */, - 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */, - 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */, - F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */, - 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */, - F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */, - 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */, - 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */, - 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */, - B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */, - 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */, - 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */, - CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */, - 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */, - F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */, - B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */, - 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */, - 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */, - 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */, - 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */, - 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */, - 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */, - 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */, - 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */, - 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */, - 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */, - 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */, - 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */, - 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */, - CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */, - 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */, - E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */, - DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */, - 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */, - 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E356A2384A2368AB3D2C7912 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */, - 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */, - 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */, - B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */, - 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */, - 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */, - 224EFF991FBAAC4700CF9B3B /* (null) in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + B5996DB2D9B6F0DB0E9D3F3E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */, + F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */, + D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */, + 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */, + E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */, + 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */, + 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */, + 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */, + A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */, + 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */, + 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */, + 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */, + 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */, + 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */, + 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */, + 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */, + FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */, + DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */, + 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */, + ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */, + C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */, + 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */, + 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */, + 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */, + 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */, + E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */, + 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */, + 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */, + 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */, + 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */, + 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */, + E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */, + C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */, + 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */, + DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */, + D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */, + 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */, + 81892994002C0640AD858748 /* ChartData.swift in Sources */, + EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */, + 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */, + 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */, + 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */, + C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */, + 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */, + 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */, + FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */, + 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */, + 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */, + B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */, + 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */, + C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */, + E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */, + 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */, + EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */, + C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */, + AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */, + 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */, + 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */, + E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */, + F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */, + 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */, + 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */, + FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */, + 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */, + 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */, + 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */, + 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */, + F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */, + B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */, + B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */, + B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */, + 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */, + A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */, + 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */, + D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */, + 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */, + 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */, + 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */, + 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */, + 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */, + 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */, + C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */, + 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */, + 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */, + 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */, + 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */, + 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */, + FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */, + 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */, + 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */, + 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */, + 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */, + CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */, + 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */, + 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */, + 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */, + AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */, + ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */, + 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */, + 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */, + 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */, + 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */, + F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */, + 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */, + F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */, + 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */, + 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */, + 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */, + B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */, + 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */, + 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */, + CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */, + 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */, + F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */, + B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */, + 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */, + 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */, + 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */, + 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */, + 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */, + 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */, + 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */, + 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */, + 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */, + 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */, + 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */, + 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */, + 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */, + CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */, + 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */, + E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */, + DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */, + 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */, + 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E356A2384A2368AB3D2C7912 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */, + 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */, + 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */, + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */, + 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */, + 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */, + 224EFF991FBAAC4700CF9B3B /* (null) in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 8676F8A013D87F9961E92465 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Charts; - target = A58A4ED274A941CA248EA921 /* Charts */; - targetProxy = C2005F425A98942473657ED2 /* PBXContainerItemProxy */; - }; + 8676F8A013D87F9961E92465 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Charts; + target = A58A4ED274A941CA248EA921 /* Charts */; + targetProxy = C2005F425A98942473657ED2 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0EF2164C35AB4D391B503317 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 4DD0BFDA94D4BC68192A1895 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( - "$(SRCROOT)/Carthage/Build/tvOS/", - "$(inherited)", - ); - "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( - "$(SRCROOT)/Carthage/Build/iOS/", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - A17F60813C38081A2F1803D4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2,3,4"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - C5C79E736CA16C93F421E934 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2,3,4"; - }; - name = Debug; - }; - D9365FBCFFEE9FCFC79EC4C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - FA978B0A385680C0086D4D49 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( - "$(SRCROOT)/Carthage/Build/tvOS/", - "$(inherited)", - ); - "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( - "$(SRCROOT)/Carthage/Build/iOS/", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Release; - }; + 0EF2164C35AB4D391B503317 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4DD0BFDA94D4BC68192A1895 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( + "$(SRCROOT)/Carthage/Build/tvOS/", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( + "$(SRCROOT)/Carthage/Build/iOS/", + "$(inherited)", + ); + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + A17F60813C38081A2F1803D4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + SDKROOT = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2,3,4"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C5C79E736CA16C93F421E934 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2,3,4"; + }; + name = Debug; + }; + D9365FBCFFEE9FCFC79EC4C7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FA978B0A385680C0086D4D49 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( + "$(SRCROOT)/Carthage/Build/tvOS/", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( + "$(SRCROOT)/Carthage/Build/iOS/", + "$(inherited)", + ); + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C5C79E736CA16C93F421E934 /* Debug */, - A17F60813C38081A2F1803D4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FA978B0A385680C0086D4D49 /* Release */, - 4DD0BFDA94D4BC68192A1895 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D9365FBCFFEE9FCFC79EC4C7 /* Release */, - 0EF2164C35AB4D391B503317 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C5C79E736CA16C93F421E934 /* Debug */, + A17F60813C38081A2F1803D4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FA978B0A385680C0086D4D49 /* Release */, + 4DD0BFDA94D4BC68192A1895 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D9365FBCFFEE9FCFC79EC4C7 /* Release */, + 0EF2164C35AB4D391B503317 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 193FC8DF32D250560C5F5D77 /* Project object */; + }; + rootObject = 193FC8DF32D250560C5F5D77 /* Project object */; } diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index cf8fad5f5b..c1a51662d8 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -18,11 +18,8 @@ import CoreGraphics open class BarChartRenderer: BarLineScatterCandleBubbleRenderer { - private class Buffer - { - var rects = [CGRect]() - } - + private typealias Buffer = [CGRect] + @objc open weak var dataProvider: BarChartDataProvider? @objc public init(dataProvider: BarChartDataProvider, animator: Animator, viewPortHandler: ViewPortHandler) @@ -37,34 +34,27 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer open override func initBuffers() { - if let barData = dataProvider?.barData + guard let barData = dataProvider?.barData else { return _buffers.removeAll() } + + // Matche buffers count to dataset count + if _buffers.count != barData.dataSetCount { - // Matche buffers count to dataset count - if _buffers.count != barData.dataSetCount + while _buffers.count < barData.dataSetCount { - while _buffers.count < barData.dataSetCount - { - _buffers.append(Buffer()) - } - while _buffers.count > barData.dataSetCount - { - _buffers.removeLast() - } + _buffers.append(Buffer()) } - - for i in stride(from: 0, to: barData.dataSetCount, by: 1) + while _buffers.count > barData.dataSetCount { - let set = barData.dataSets[i] as! BarChartDataSetProtocol - let size = set.entryCount * (set.isStacked ? set.stackSize : 1) - if _buffers[i].rects.count != size - { - _buffers[i].rects = [CGRect](repeating: CGRect(), count: size) - } + _buffers.removeLast() } } - else - { - _buffers.removeAll() + + _buffers = zip(_buffers, barData.dataSets).map { buffer, set -> Buffer in + let set = set as! BarChartDataSetProtocol + let size = set.entryCount * (set.isStacked ? set.stackSize : 1) + return buffer.count == size + ? buffer + : Buffer(repeating: .zero, count: size) } } @@ -75,67 +65,33 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer let barData = dataProvider.barData else { return } - let barWidthHalf = barData.barWidth / 2.0 + let barWidthHalf = CGFloat(barData.barWidth / 2.0) - let buffer = _buffers[index] var bufferIndex = 0 let containsStacks = dataSet.isStacked let isInverted = dataProvider.isInverted(axis: dataSet.axisDependency) - let phaseY = animator.phaseY - var barRect = CGRect() - var x: Double - var y: Double - - for i in stride(from: 0, to: min(Int(ceil(Double(dataSet.entryCount) * animator.phaseX)), dataSet.entryCount), by: 1) + let phaseY = CGFloat(animator.phaseY) + + for i in (0..= 0.0 ? CGFloat(y) : 0) - var bottom = isInverted - ? (y >= 0.0 ? CGFloat(y) : 0) - : (y <= 0.0 ? CGFloat(y) : 0) - - // multiply the height of the rect with the phase - if top > 0 - { - top *= CGFloat(phaseY) - } - else - { - bottom *= CGFloat(phaseY) - } - - barRect.origin.x = left - barRect.size.width = right - left - barRect.origin.y = top - barRect.size.height = bottom - top - - buffer.rects[bufferIndex] = barRect - bufferIndex += 1 - } - else + + let x = CGFloat(e.x) + let left = x - barWidthHalf + let right = x + barWidthHalf + + var y = e.y + + if containsStacks, let vals = e.yValues { var posY = 0.0 var negY = -e.negativeSum var yStart = 0.0 // fill the stack - for k in 0 ..< vals!.count + for value in vals { - let value = vals![k] - if value == 0.0 && (posY == 0.0 || negY == 0.0) { // Take care of the situation of a 0.0 value, which overlaps a non-zero bar @@ -155,8 +111,6 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer negY += abs(value) } - let left = CGFloat(x - barWidthHalf) - let right = CGFloat(x + barWidthHalf) var top = isInverted ? (y <= yStart ? CGFloat(y) : CGFloat(yStart)) : (y >= yStart ? CGFloat(y) : CGFloat(yStart)) @@ -165,18 +119,41 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer : (y <= yStart ? CGFloat(y) : CGFloat(yStart)) // multiply the height of the rect with the phase - top *= CGFloat(phaseY) - bottom *= CGFloat(phaseY) - - barRect.origin.x = left - barRect.size.width = right - left - barRect.origin.y = top - barRect.size.height = bottom - top - - buffer.rects[bufferIndex] = barRect + top *= phaseY + bottom *= phaseY + + let barRect = CGRect(x: left, y: top, + width: right - left, + height: bottom - top) + _buffers[index][bufferIndex] = barRect bufferIndex += 1 } } + else + { + var top = isInverted + ? (y <= 0.0 ? CGFloat(y) : 0) + : (y >= 0.0 ? CGFloat(y) : 0) + var bottom = isInverted + ? (y >= 0.0 ? CGFloat(y) : 0) + : (y <= 0.0 ? CGFloat(y) : 0) + + // multiply the height of the rect with the phase + if top > 0 + { + top *= phaseY + } + else + { + bottom *= phaseY + } + + let barRect = CGRect(x: left, y: top, + width: right - left, + height: bottom - top) + _buffers[index][bufferIndex] = barRect + bufferIndex += 1 + } } } @@ -189,17 +166,13 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer for i in 0 ..< barData.dataSetCount { - guard let set = barData.getDataSetByIndex(i) else { continue } - - if set.isVisible - { - if !(set is BarChartDataSetProtocol) - { - fatalError("Datasets for BarChartRenderer must conform to BarChartDataSetProtocol") - } - - drawDataSet(context: context, dataSet: set as! BarChartDataSetProtocol, index: i) + guard let set = barData.getDataSetByIndex(i) as? BarChartDataSetProtocol else { + fatalError("Datasets for BarChartRenderer must conform to IBarChartDataset") } + + guard set.isVisible else { continue } + + drawDataSet(context: context, dataSet: set, index: i) } } @@ -212,13 +185,14 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) prepareBuffer(dataSet: dataSet, index: index) - trans.rectValuesToPixel(&_buffers[index].rects) + trans.rectValuesToPixel(&_buffers[index]) let borderWidth = dataSet.barBorderWidth let borderColor = dataSet.barBorderColor let drawBorder = borderWidth > 0.0 context.saveGState() + defer { context.restoreGState() } // draw the bar shadow before the values if dataProvider.isDrawBarShadowEnabled @@ -228,8 +202,9 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer let barWidth = barData.barWidth let barWidthHalf = barWidth / 2.0 var x: Double = 0.0 - - for i in stride(from: 0, to: min(Int(ceil(Double(dataSet.entryCount) * animator.phaseX)), dataSet.entryCount), by: 1) + + let range = (0..= 0 ? posOffset : negOffset), - font: valueFont, - align: .center, - color: dataSet.valueTextColorAt(index)) - } - - if let icon = e.icon, dataSet.isDrawIconsEnabled - { - var px = x - var py = rect.origin.y + - (e.y >= 0 ? posOffset : negOffset) - - px += iconsOffset.x - py += iconsOffset.y - - ChartUtils.drawImage( - context: context, - image: icon, - x: px, - y: py, - size: icon.size) - } - } - else + if let vals = vals { // draw stack values - - let vals = vals! var transformed = [CGPoint]() - + var posY = 0.0 var negY = -e.negativeSum - + for k in 0 ..< vals.count { let value = vals[k] var y: Double - + if value == 0.0 && (posY == 0.0 || negY == 0.0) { // Take care of the situation of a 0.0 value, which overlaps a non-zero bar @@ -548,34 +443,28 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer y = negY negY -= value } - + transformed.append(CGPoint(x: 0.0, y: CGFloat(y * phaseY))) } - + trans.pointValuesToPixel(&transformed) - - for k in 0 ..< transformed.count + + for (val, transformed) in zip(vals, transformed) { - let val = vals[k] let drawBelow = (val == 0.0 && negY == 0.0 && posY > 0.0) || val < 0.0 - let y = transformed[k].y + (drawBelow ? negOffset : posOffset) - - if !viewPortHandler.isInBoundsRight(x) - { - break - } - - if !viewPortHandler.isInBoundsY(y) || !viewPortHandler.isInBoundsLeft(x) - { - continue - } - + let y = transformed.y + (drawBelow ? negOffset : posOffset) + + guard viewPortHandler.isInBoundsRight(x) else { break } + guard viewPortHandler.isInBoundsY(y), + viewPortHandler.isInBoundsLeft(x) + else { continue } + if dataSet.isDrawValuesEnabled { drawValue( context: context, value: formatter.stringForValue( - vals[k], + val, entry: e, dataSetIndex: dataSetIndex, viewPortHandler: viewPortHandler), @@ -585,7 +474,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer align: .center, color: dataSet.valueTextColorAt(index)) } - + if let icon = e.icon, dataSet.isDrawIconsEnabled { ChartUtils.drawImage( @@ -597,7 +486,47 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer } } } - + else + { + guard viewPortHandler.isInBoundsRight(x) else { break } + guard viewPortHandler.isInBoundsY(rect.origin.y), + viewPortHandler.isInBoundsLeft(x) else { continue } + + if dataSet.isDrawValuesEnabled + { + drawValue( + context: context, + value: formatter.stringForValue( + e.y, + entry: e, + dataSetIndex: dataSetIndex, + viewPortHandler: viewPortHandler), + xPos: x, + yPos: rect.origin.y + + (e.y >= 0 ? posOffset : negOffset), + font: valueFont, + align: .center, + color: dataSet.valueTextColorAt(index)) + } + + if let icon = e.icon, dataSet.isDrawIconsEnabled + { + var px = x + var py = rect.origin.y + + (e.y >= 0 ? posOffset : negOffset) + + px += iconsOffset.x + py += iconsOffset.y + + ChartUtils.drawImage( + context: context, + image: icon, + x: px, + y: py, + size: icon.size) + } + } + bufferIndex = vals == nil ? (bufferIndex + 1) : (bufferIndex + vals!.count) } } @@ -624,7 +553,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer else { return } context.saveGState() - + defer { context.restoreGState() } var barRect = CGRect() for high in indices @@ -636,10 +565,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer if let e = set.entryForXValue(high.x, closestToY: high.y) as? BarChartDataEntry { - if !isInBoundsX(entry: e, dataSet: set) - { - continue - } + guard isInBoundsX(entry: e, dataSet: set) else { continue } let trans = dataProvider.getTransformer(forAxis: set.axisDependency) @@ -679,8 +605,6 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer context.fill(barRect) } } - - context.restoreGState() } /// Sets the drawing position of the highlight object based on the riven bar-rect. From d9dba580607cfeb47857ed66409e392ff5232730 Mon Sep 17 00:00:00 2001 From: jjatie Date: Sun, 7 Jan 2018 17:30:23 -0400 Subject: [PATCH 05/84] Syncing 4.0.0 with master (#3160) * Fixed using wrong axis (Issue #2257) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 (#2874) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 * add combined chart unit tests for iOS, tvOS (macOS only have build process) * use iterater rather than index * Removed redundant ivars in BarLineChartViewBase (#3043) * Removed redundant ivars in favour of proper access control * Moved initialization of axes to their declaration to keep the same optionality exposed. * Update 4.0.0 with master (#3135) * Replaced relevant `ChartUtils` methods with `Double` extensions (#2994) * Replaced relevant `ChartUtils` methods with `Double` extensions Improves readability. `nextUp` is built in and provides the same functionality. * Updated `ChartUtilsTests` to match changes * add option to build demo projects unit tests on iOS (#3121) * add option to build demo projects unit tests on iOS * add ChartsDemo-OSX build test. * Update ViewPortHandler.swift (#3143) fix a small bug * Refactored ChartUtils method into CGPoint extension (#3087) * Refactored ChartUtils method into CGPoint extension * Replaced ChartUtils.defaultValueFormatter() * Codestyle fixes * Minor cleanup to Highlighter types (#3003) * Minor cleanup to Highlighter types * Fixes for PR * Pulled master and updated code style * added DataApproximator+N extension (#2848) * added DataApproximator+N extension * fixed PR notes * Readded in missing files --- Charts.xcodeproj/project.pbxproj | 2420 +++++++++-------- .../Charts/Charts/BarLineChartViewBase.swift | 6 +- .../Charts/HorizontalBarChartView.swift | 2 +- .../Charts/Filters/DataApproximator+N.swift | 152 ++ Source/Charts/Highlight/BarHighlighter.swift | 78 +- .../Charts/Highlight/ChartHighlighter.swift | 61 +- .../Highlight/CombinedHighlighter.swift | 52 +- Source/Charts/Highlight/Highlight.swift | 1 - .../Highlight/HorizontalBarHighlighter.swift | 40 +- Source/Charts/Highlight/PieHighlighter.swift | 9 +- .../Highlight/PieRadarHighlighter.swift | 40 +- .../Charts/Highlight/RadarHighlighter.swift | 21 +- .../Charts/Renderers/AxisRendererBase.swift | 211 ++ .../Renderers/YAxisRendererRadarChart.swift | 2 +- Source/Charts/Utils/ChartUtils.swift | 2 +- 15 files changed, 1708 insertions(+), 1389 deletions(-) create mode 100644 Source/Charts/Filters/DataApproximator+N.swift create mode 100644 Source/Charts/Renderers/AxisRendererBase.swift diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 0970eb5a57..43e9b1e7fc 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -1,1253 +1,1257 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { /* Begin PBXBuildFile section */ - 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */; }; - 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */; }; - 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */; }; - 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 596963A429D485E3894C4666 /* Marker.swift */; }; - 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */; }; - 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */; }; - 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */; }; - 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */; }; - 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 064989451F5C99C7006E8BB3 /* Snapshot.swift */; }; - 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */; }; - 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */; }; - 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */; }; - 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */; }; - 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */; }; - 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */; }; - 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */; }; - 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */; }; - 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998F2BFE318471AFC05B50AC /* Highlighter.swift */; }; - 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */; }; - 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */; }; - 224EFF991FBAAC4700CF9B3B /* (null) in Sources */ = {isa = PBXBuildFile; }; - 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */; }; - 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F279974FE650E57A061B09 /* BarChartRenderer.swift */; }; - 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */; }; - 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DCD13D558BA177D5952AD66 /* PieChartView.swift */; }; - 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */; }; - 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */; }; - 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */; }; - 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F715DB2C56C9E0615542625B /* LegendRenderer.swift */; }; - 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */; }; - 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */; }; - 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */; }; - 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E03A4987F72414A02A0631B /* PieChartData.swift */; }; - 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB92A80F861C1362EED8D946 /* YAxis.swift */; }; - 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */; }; - 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */; }; - 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */; }; - 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0108D5925E21A47DA36A66AA /* BarChartData.swift */; }; - 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */; }; - 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 274116834B1B0345D622E027 /* CandleChartDataSet.swift */; }; - 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */; }; - 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 543729805D897CC03E5F78D3 /* BarHighlighter.swift */; }; - 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6227A646166E248F90F86AD /* ChartColorTemplates.swift */; }; - 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */; }; - 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */; }; - 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */; }; - 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */; }; - 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */; }; - 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */; }; - 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */; }; - 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */; }; - 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */; }; - 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */; }; - 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */; }; - 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */; }; - 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */; }; - 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */; }; - 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */; }; - 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */; }; - 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */; }; - 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */; }; - 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */; }; - 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A140F644332704916947B58C /* CombinedChartDataProvider.swift */; }; - 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */; }; - 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */; }; - 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7036F11832C017E26AC750A4 /* PieHighlighter.swift */; }; - 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D64616883374310C505EC39 /* Highlight.swift */; }; - 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */; }; - 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */; }; - 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D8013D44629521B1746364 /* PieChartRenderer.swift */; }; - 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */; }; - 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */; }; - 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */; }; - 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */; }; - 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0619A877C69A95ECCC440A44 /* LineChartView.swift */; }; - 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */; }; - 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A4CFFFB65819121595F06F1 /* Fill.swift */; }; - 81892994002C0640AD858748 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E120E76C6F1B5877D56126DD /* ChartData.swift */; }; - 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */; }; - 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */; }; - 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */; }; - 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */; }; - 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */; }; - 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */; }; - 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */; }; - 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */; }; - 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48164CCD83C51B496533CB77 /* MarkerView.swift */; }; - 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */; }; - 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */; }; - 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */; }; - 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */; }; - 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */; }; - 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */; }; - 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F099502DA50C56204E7B744 /* Range.swift */; }; - 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */; }; - A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */; }; - A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */; }; - AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */; }; - AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */; }; - B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */; }; - B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */; }; - B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */; }; - B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */; }; - B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */; }; - B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */; }; - B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */; }; - BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9922F0641F7955DC6CD324 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */; }; - C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */; }; - C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */; }; - C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */; }; - C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */; }; - C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */; }; - C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; }; - CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA09EF973925A110506799 /* ChartUtils.swift */; }; - CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */; }; - CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */; }; - D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E783CFB4889A767C76510917 /* BarChartView.swift */; }; - D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5983826927D825EF5F855C28 /* ChartHighlighter.swift */; }; - D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */; }; - D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3976E5F9D60E30CD94CE6156 /* Animator.swift */; }; - DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = B137428B41C143D5115726C4 /* Description.swift */; }; - DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4785FEACAE4367F36FB8868 /* CandleChartData.swift */; }; - DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF475B9593B9898853814340 /* Transformer.swift */; }; - E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */; }; - E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */; }; - E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */; }; - E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */; }; - E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */; }; - E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ED23C354AFE81818D78E645 /* Platform.swift */; }; - EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22750328058DEC2F019646F /* ChartDataEntry.swift */; }; - EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */; }; - ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */ = {isa = PBXBuildFile; fileRef = E64A75540C627E09080B402A /* Legend.swift */; }; - ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75935E899183DDFA181E2CC /* AxisRenderer.swift */; }; - F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */; }; - F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */; }; - F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */; }; - F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */; }; - F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */; }; - F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */; }; - FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */; }; - FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */; }; - FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */; }; - FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */; }; + 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */; }; + 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */; }; + 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */; }; + 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 596963A429D485E3894C4666 /* Marker.swift */; }; + 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */; }; + 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */; }; + 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */; }; + 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */; }; + 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 064989451F5C99C7006E8BB3 /* Snapshot.swift */; }; + 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */; }; + 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */; }; + 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */; }; + 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */; }; + 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */; }; + 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */; }; + 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */; }; + 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */; }; + 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998F2BFE318471AFC05B50AC /* Highlighter.swift */; }; + 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */; }; + 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */; }; + 224EFF991FBAAC4700CF9B3B /* (null) in Sources */ = {isa = PBXBuildFile; }; + 22A8C4802002C85A004C1CAE /* DataApproximator+N.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22A8C47F2002C85A004C1CAE /* DataApproximator+N.swift */; }; + 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */; }; + 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F279974FE650E57A061B09 /* BarChartRenderer.swift */; }; + 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */; }; + 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DCD13D558BA177D5952AD66 /* PieChartView.swift */; }; + 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */; }; + 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */; }; + 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */; }; + 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F715DB2C56C9E0615542625B /* LegendRenderer.swift */; }; + 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */; }; + 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */; }; + 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */; }; + 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E03A4987F72414A02A0631B /* PieChartData.swift */; }; + 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB92A80F861C1362EED8D946 /* YAxis.swift */; }; + 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */; }; + 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */; }; + 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */; }; + 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0108D5925E21A47DA36A66AA /* BarChartData.swift */; }; + 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */; }; + 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 274116834B1B0345D622E027 /* CandleChartDataSet.swift */; }; + 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */; }; + 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 543729805D897CC03E5F78D3 /* BarHighlighter.swift */; }; + 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6227A646166E248F90F86AD /* ChartColorTemplates.swift */; }; + 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */; }; + 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */; }; + 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */; }; + 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */; }; + 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */; }; + 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */; }; + 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */; }; + 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */; }; + 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */; }; + 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */; }; + 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */; }; + 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */; }; + 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */; }; + 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */; }; + 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */; }; + 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */; }; + 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */; }; + 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */; }; + 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */; }; + 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A140F644332704916947B58C /* CombinedChartDataProvider.swift */; }; + 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */; }; + 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */; }; + 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7036F11832C017E26AC750A4 /* PieHighlighter.swift */; }; + 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D64616883374310C505EC39 /* Highlight.swift */; }; + 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */; }; + 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */; }; + 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D8013D44629521B1746364 /* PieChartRenderer.swift */; }; + 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */; }; + 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */; }; + 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */; }; + 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */; }; + 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0619A877C69A95ECCC440A44 /* LineChartView.swift */; }; + 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */; }; + 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A4CFFFB65819121595F06F1 /* Fill.swift */; }; + 81892994002C0640AD858748 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = E120E76C6F1B5877D56126DD /* ChartData.swift */; }; + 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */; }; + 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */; }; + 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */; }; + 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */; }; + 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */; }; + 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */; }; + 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */; }; + 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */; }; + 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48164CCD83C51B496533CB77 /* MarkerView.swift */; }; + 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */; }; + 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */; }; + 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */; }; + 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */; }; + 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */; }; + 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */; }; + 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F099502DA50C56204E7B744 /* Range.swift */; }; + 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */; }; + A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */; }; + A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */; }; + AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */; }; + AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */; }; + B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */; }; + B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */; }; + B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */; }; + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */; }; + B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */; }; + B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */; }; + B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */; }; + BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F9922F0641F7955DC6CD324 /* Charts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */; }; + C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */; }; + C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */; }; + C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */; }; + C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */; }; + C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */; }; + C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; }; + CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA09EF973925A110506799 /* ChartUtils.swift */; }; + CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */; }; + CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */; }; + D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E783CFB4889A767C76510917 /* BarChartView.swift */; }; + D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5983826927D825EF5F855C28 /* ChartHighlighter.swift */; }; + D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */; }; + D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3976E5F9D60E30CD94CE6156 /* Animator.swift */; }; + DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = B137428B41C143D5115726C4 /* Description.swift */; }; + DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4785FEACAE4367F36FB8868 /* CandleChartData.swift */; }; + DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF475B9593B9898853814340 /* Transformer.swift */; }; + E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */; }; + E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */; }; + E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */; }; + E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */; }; + E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */; }; + E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ED23C354AFE81818D78E645 /* Platform.swift */; }; + EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22750328058DEC2F019646F /* ChartDataEntry.swift */; }; + EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */; }; + ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */ = {isa = PBXBuildFile; fileRef = E64A75540C627E09080B402A /* Legend.swift */; }; + ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C75935E899183DDFA181E2CC /* AxisRenderer.swift */; }; + F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */; }; + F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */; }; + F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */; }; + F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */; }; + F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */; }; + F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */; }; + FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */; }; + FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */; }; + FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */; }; + FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - C2005F425A98942473657ED2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 193FC8DF32D250560C5F5D77 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A58A4ED274A941CA248EA921; - remoteInfo = Charts; - }; + C2005F425A98942473657ED2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 193FC8DF32D250560C5F5D77 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A58A4ED274A941CA248EA921; + remoteInfo = Charts; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0108D5925E21A47DA36A66AA /* BarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarChartData.swift; sourceTree = ""; }; - 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRenderer.swift; path = Source/Charts/Renderers/DataRenderer.swift; sourceTree = ""; }; - 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarHighlighter.swift; path = Source/Charts/Highlight/PieRadarHighlighter.swift; sourceTree = ""; }; - 0619A877C69A95ECCC440A44 /* LineChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartView.swift; path = Source/Charts/Charts/LineChartView.swift; sourceTree = ""; }; - 064989451F5C99C7006E8BB3 /* Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Snapshot.swift; path = Tests/Charts/Snapshot.swift; sourceTree = ""; }; - 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisValueFormatter.swift; path = Source/Charts/Formatters/AxisValueFormatter.swift; sourceTree = ""; }; - 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartRenderer.swift; path = Source/Charts/Renderers/LineChartRenderer.swift; sourceTree = ""; }; - 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartData.swift; path = Source/Charts/Data/Implementations/Standard/CombinedChartData.swift; sourceTree = ""; }; - 0F099502DA50C56204E7B744 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = Source/Charts/Highlight/Range.swift; sourceTree = ""; }; - 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarRenderer.swift; path = Source/Charts/Renderers/LineRadarRenderer.swift; sourceTree = ""; }; - 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultValueFormatter.swift; path = Source/Charts/Formatters/DefaultValueFormatter.swift; sourceTree = ""; }; - 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IndexAxisValueFormatter.swift; path = Source/Charts/Formatters/IndexAxisValueFormatter.swift; sourceTree = ""; }; - 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartView.swift; path = Source/Charts/Charts/CombinedChartView.swift; sourceTree = ""; }; - 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntryBase.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntryBase.swift; sourceTree = ""; }; - 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartView.swift; path = Source/Charts/Charts/ScatterChartView.swift; sourceTree = ""; }; - 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift; sourceTree = ""; }; - 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRenderer.swift; path = Source/Charts/Renderers/XAxisRenderer.swift; sourceTree = ""; }; - 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChartsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; - 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartRenderer.swift; path = Source/Charts/Renderers/BubbleChartRenderer.swift; sourceTree = ""; }; - 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift; sourceTree = ""; }; - 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EquatableTests.swift; path = Tests/Charts/EquatableTests.swift; sourceTree = ""; }; - 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/XShapeRenderer.swift; sourceTree = ""; }; - 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartView.swift; path = Source/Charts/Charts/RadarChartView.swift; sourceTree = ""; }; - 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedHighlighter.swift; path = Source/Charts/Highlight/CombinedHighlighter.swift; sourceTree = ""; }; - 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MoveViewJob.swift; path = Source/Charts/Jobs/MoveViewJob.swift; sourceTree = ""; }; - 274116834B1B0345D622E027 /* CandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift; sourceTree = ""; }; - 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift; sourceTree = ""; }; - 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataProvider.swift; path = Source/Charts/Interfaces/ScatterChartDataProvider.swift; sourceTree = ""; }; - 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartViewBase.swift; path = Source/Charts/Charts/ChartViewBase.swift; sourceTree = ""; }; - 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformerHorizontalBarChart.swift; path = Source/Charts/Utils/TransformerHorizontalBarChart.swift; sourceTree = ""; }; - 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SquareShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift; sourceTree = ""; }; - 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarHighlighter.swift; path = Source/Charts/Highlight/HorizontalBarHighlighter.swift; sourceTree = ""; }; - 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerImage.swift; path = Source/Charts/Components/MarkerImage.swift; sourceTree = ""; }; - 3976E5F9D60E30CD94CE6156 /* Animator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Animator.swift; path = Source/Charts/Animation/Animator.swift; sourceTree = ""; }; - 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift; sourceTree = ""; }; - 3D64616883374310C505EC39 /* Highlight.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlight.swift; path = Source/Charts/Highlight/Highlight.swift; sourceTree = ""; }; - 3ED23C354AFE81818D78E645 /* Platform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.swift; path = Source/Charts/Utils/Platform.swift; sourceTree = ""; }; - 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataProvider.swift; path = Source/Charts/Interfaces/CandleChartDataProvider.swift; sourceTree = ""; }; - 3FDA09EF973925A110506799 /* ChartUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtils.swift; path = Source/Charts/Utils/ChartUtils.swift; sourceTree = ""; }; - 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = "Tests/Supporting Files/Media.xcassets"; sourceTree = ""; }; - 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift; sourceTree = ""; }; - 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineChartViewBase.swift; path = Source/Charts/Charts/BarLineChartViewBase.swift; sourceTree = ""; }; - 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift; sourceTree = ""; }; - 46D8013D44629521B1746364 /* PieChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartRenderer.swift; path = Source/Charts/Renderers/PieChartRenderer.swift; sourceTree = ""; }; - 48164CCD83C51B496533CB77 /* MarkerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerView.swift; path = Source/Charts/Components/MarkerView.swift; sourceTree = ""; }; - 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarChartViewBase.swift; path = Source/Charts/Charts/PieRadarChartViewBase.swift; sourceTree = ""; }; - 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisBase.swift; path = Source/Charts/Components/AxisBase.swift; sourceTree = ""; }; - 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartData.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartData.swift; sourceTree = ""; }; - 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedZoomViewJob.swift; path = Source/Charts/Jobs/AnimatedZoomViewJob.swift; sourceTree = ""; }; - 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartData.swift; path = Source/Charts/Data/Implementations/Standard/LineChartData.swift; sourceTree = ""; }; - 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ValueFormatter.swift; path = Source/Charts/Formatters/ValueFormatter.swift; sourceTree = ""; }; - 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartView.swift; path = Source/Charts/Charts/BubbleChartView.swift; sourceTree = ""; }; - 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift; sourceTree = ""; }; - 4F9922F0641F7955DC6CD324 /* Charts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Charts.h; path = "Source/Supporting Files/Charts.h"; sourceTree = ""; }; - 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxis.swift; path = Source/Charts/Components/XAxis.swift; sourceTree = ""; }; - 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartRenderer.swift; path = Source/Charts/Renderers/CombinedChartRenderer.swift; sourceTree = ""; }; - 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartRenderer.swift; path = Source/Charts/Renderers/HorizontalBarChartRenderer.swift; sourceTree = ""; }; - 543729805D897CC03E5F78D3 /* BarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarHighlighter.swift; path = Source/Charts/Highlight/BarHighlighter.swift; sourceTree = ""; }; - 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift; sourceTree = ""; }; - 596963A429D485E3894C4666 /* Marker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Marker.swift; path = Source/Charts/Components/Marker.swift; sourceTree = ""; }; - 5983826927D825EF5F855C28 /* ChartHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartHighlighter.swift; path = Source/Charts/Highlight/ChartHighlighter.swift; sourceTree = ""; }; - 5A4CFFFB65819121595F06F1 /* Fill.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fill.swift; path = Source/Charts/Utils/Fill.swift; sourceTree = ""; }; - 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleRenderer.swift; path = Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift; sourceTree = ""; }; - 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartTests.swift; path = Tests/Charts/BarChartTests.swift; sourceTree = ""; }; - 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartView.swift; path = Source/Charts/Charts/HorizontalBarChartView.swift; sourceTree = ""; }; - 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataProvider.swift; path = Source/Charts/Interfaces/ChartDataProvider.swift; sourceTree = ""; }; - 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Charts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRenderer.swift; path = Source/Charts/Renderers/YAxisRenderer.swift; sourceTree = ""; }; - 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultAxisValueFormatter.swift; path = Source/Charts/Formatters/DefaultAxisValueFormatter.swift; sourceTree = ""; }; - 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataSet.swift; sourceTree = ""; }; - 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; - 6E03A4987F72414A02A0631B /* PieChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartData.swift; path = Source/Charts/Data/Implementations/Standard/PieChartData.swift; sourceTree = ""; }; - 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Renderer.swift; path = Source/Charts/Renderers/Renderer.swift; sourceTree = ""; }; - 7036F11832C017E26AC750A4 /* PieHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieHighlighter.swift; path = Source/Charts/Highlight/PieHighlighter.swift; sourceTree = ""; }; - 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedViewPortJob.swift; path = Source/Charts/Jobs/AnimatedViewPortJob.swift; sourceTree = ""; }; - 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortHandler.swift; path = Source/Charts/Utils/ViewPortHandler.swift; sourceTree = ""; }; - 75F279974FE650E57A061B09 /* BarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartRenderer.swift; path = Source/Charts/Renderers/BarChartRenderer.swift; sourceTree = ""; }; - 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift; sourceTree = ""; }; - 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtilsTests.swift; path = Tests/Charts/ChartUtilsTests.swift; sourceTree = ""; }; - 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartRenderer.swift; path = Source/Charts/Renderers/RadarChartRenderer.swift; sourceTree = ""; }; - 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartData.swift; sourceTree = ""; }; - 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartRenderer.swift; path = Source/Charts/Renderers/ScatterChartRenderer.swift; sourceTree = ""; }; - 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FillFormatter.swift; path = Source/Charts/Formatters/FillFormatter.swift; sourceTree = ""; }; - 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CrossShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift; sourceTree = ""; }; - 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BarLineScatterCandleBubbleChartDataProvider.swift; sourceTree = ""; }; - 910DBFE1DA1B2CA237A736DF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Source/Supporting Files/Info.plist"; sourceTree = ""; }; - 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift; sourceTree = ""; }; - 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarRenderer.swift; path = Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift; sourceTree = ""; }; - 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift; sourceTree = ""; }; - 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataApproximator.swift; path = Source/Charts/Filters/DataApproximator.swift; sourceTree = ""; }; - 998F2BFE318471AFC05B50AC /* Highlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlighter.swift; path = Source/Charts/Highlight/Highlighter.swift; sourceTree = ""; }; - 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataProvider.swift; path = Source/Charts/Interfaces/BarChartDataProvider.swift; sourceTree = ""; }; - 9DCD13D558BA177D5952AD66 /* PieChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartView.swift; path = Source/Charts/Charts/PieChartView.swift; sourceTree = ""; }; - 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendEntry.swift; path = Source/Charts/Components/LegendEntry.swift; sourceTree = ""; }; - A140F644332704916947B58C /* CombinedChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartDataProvider.swift; path = Source/Charts/Interfaces/CombinedChartDataProvider.swift; sourceTree = ""; }; - A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift; sourceTree = ""; }; - A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift; sourceTree = ""; }; - A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift; sourceTree = ""; }; - AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererRadarChart.swift; path = Source/Charts/Renderers/YAxisRendererRadarChart.swift; sourceTree = ""; }; - AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronUpShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift; sourceTree = ""; }; - B137428B41C143D5115726C4 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Source/Charts/Components/Description.swift; sourceTree = ""; }; - B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift; sourceTree = ""; }; - B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift; sourceTree = ""; }; - B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CombinedChartTests.swift; path = Tests/Charts/CombinedChartTests.swift; sourceTree = ""; }; - BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedMoveViewJob.swift; path = Source/Charts/Jobs/AnimatedMoveViewJob.swift; sourceTree = ""; }; - BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartView.swift; path = Source/Charts/Charts/CandleStickChartView.swift; sourceTree = ""; }; - BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererRadarChart.swift; path = Source/Charts/Renderers/XAxisRendererRadarChart.swift; sourceTree = ""; }; - BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataEntry.swift; sourceTree = ""; }; - BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartRenderer.swift; path = Source/Charts/Renderers/CandleStickChartRenderer.swift; sourceTree = ""; }; - BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataProvider.swift; path = Source/Charts/Interfaces/LineChartDataProvider.swift; sourceTree = ""; }; - C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift; sourceTree = ""; }; - C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronDownShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift; sourceTree = ""; }; - C574E1BC7E12D937A5471EF8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = ""; }; - C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; - C75935E899183DDFA181E2CC /* AxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisRenderer.swift; path = Source/Charts/Renderers/AxisRenderer.swift; sourceTree = ""; }; - C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ComponentBase.swift; path = Source/Charts/Components/ComponentBase.swift; sourceTree = ""; }; - C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TriangleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift; sourceTree = ""; }; - C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartBaseDataSet.swift; path = Source/Charts/Data/Implementations/ChartBaseDataSet.swift; sourceTree = ""; }; - CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift; sourceTree = ""; }; - D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartTests.swift; path = Tests/Charts/LineChartTests.swift; sourceTree = ""; }; - D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataEntry.swift; sourceTree = ""; }; - D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultFillFormatter.swift; path = Source/Charts/Formatters/DefaultFillFormatter.swift; sourceTree = ""; }; - DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift; sourceTree = ""; }; - DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataEntry.swift; sourceTree = ""; }; - DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartAnimationEasing.swift; path = Source/Charts/Animation/ChartAnimationEasing.swift; sourceTree = ""; }; - E120E76C6F1B5877D56126DD /* ChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartData.swift; path = Source/Charts/Data/Implementations/Standard/ChartData.swift; sourceTree = ""; }; - E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift; sourceTree = ""; }; - E64A75540C627E09080B402A /* Legend.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Legend.swift; path = Source/Charts/Components/Legend.swift; sourceTree = ""; }; - E783CFB4889A767C76510917 /* BarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartView.swift; path = Source/Charts/Charts/BarChartView.swift; sourceTree = ""; }; - E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartData.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartData.swift; sourceTree = ""; }; - EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; - ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CircleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift; sourceTree = ""; }; - EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BubbleChartDataProvider.swift; sourceTree = ""; }; - F22750328058DEC2F019646F /* ChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntry.swift; sourceTree = ""; }; - F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarHighlighter.swift; path = Source/Charts/Highlight/RadarHighlighter.swift; sourceTree = ""; }; - F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift; sourceTree = ""; }; - F4785FEACAE4367F36FB8868 /* CandleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartData.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartData.swift; sourceTree = ""; }; - F6227A646166E248F90F86AD /* ChartColorTemplates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartColorTemplates.swift; path = Source/Charts/Utils/ChartColorTemplates.swift; sourceTree = ""; }; - F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartLimitLine.swift; path = Source/Charts/Components/ChartLimitLine.swift; sourceTree = ""; }; - F715DB2C56C9E0615542625B /* LegendRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendRenderer.swift; path = Source/Charts/Renderers/LegendRenderer.swift; sourceTree = ""; }; - FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ShapeRenderer.swift; sourceTree = ""; }; - FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortJob.swift; path = Source/Charts/Jobs/ViewPortJob.swift; sourceTree = ""; }; - FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZoomViewJob.swift; path = Source/Charts/Jobs/ZoomViewJob.swift; sourceTree = ""; }; - FB92A80F861C1362EED8D946 /* YAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxis.swift; path = Source/Charts/Components/YAxis.swift; sourceTree = ""; }; - FF475B9593B9898853814340 /* Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transformer.swift; path = Source/Charts/Utils/Transformer.swift; sourceTree = ""; }; + 0108D5925E21A47DA36A66AA /* BarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarChartData.swift; sourceTree = ""; }; + 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRenderer.swift; path = Source/Charts/Renderers/DataRenderer.swift; sourceTree = ""; }; + 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarHighlighter.swift; path = Source/Charts/Highlight/PieRadarHighlighter.swift; sourceTree = ""; }; + 0619A877C69A95ECCC440A44 /* LineChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartView.swift; path = Source/Charts/Charts/LineChartView.swift; sourceTree = ""; }; + 064989451F5C99C7006E8BB3 /* Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Snapshot.swift; path = Tests/Charts/Snapshot.swift; sourceTree = ""; }; + 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisValueFormatter.swift; path = Source/Charts/Formatters/AxisValueFormatter.swift; sourceTree = ""; }; + 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartRenderer.swift; path = Source/Charts/Renderers/LineChartRenderer.swift; sourceTree = ""; }; + 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartData.swift; path = Source/Charts/Data/Implementations/Standard/CombinedChartData.swift; sourceTree = ""; }; + 0F099502DA50C56204E7B744 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = Source/Charts/Highlight/Range.swift; sourceTree = ""; }; + 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarRenderer.swift; path = Source/Charts/Renderers/LineRadarRenderer.swift; sourceTree = ""; }; + 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultValueFormatter.swift; path = Source/Charts/Formatters/DefaultValueFormatter.swift; sourceTree = ""; }; + 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IndexAxisValueFormatter.swift; path = Source/Charts/Formatters/IndexAxisValueFormatter.swift; sourceTree = ""; }; + 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartView.swift; path = Source/Charts/Charts/CombinedChartView.swift; sourceTree = ""; }; + 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntryBase.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntryBase.swift; sourceTree = ""; }; + 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartView.swift; path = Source/Charts/Charts/ScatterChartView.swift; sourceTree = ""; }; + 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/CandleChartDataSetProtocol.swift; sourceTree = ""; }; + 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRenderer.swift; path = Source/Charts/Renderers/XAxisRenderer.swift; sourceTree = ""; }; + 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChartsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; + 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartRenderer.swift; path = Source/Charts/Renderers/BubbleChartRenderer.swift; sourceTree = ""; }; + 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ScatterChartDataSetProtocol.swift; sourceTree = ""; }; + 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EquatableTests.swift; path = Tests/Charts/EquatableTests.swift; sourceTree = ""; }; + 22A8C47F2002C85A004C1CAE /* DataApproximator+N.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "DataApproximator+N.swift"; path = "Source/Charts/Filters/DataApproximator+N.swift"; sourceTree = ""; }; + 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/XShapeRenderer.swift; sourceTree = ""; }; + 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartView.swift; path = Source/Charts/Charts/RadarChartView.swift; sourceTree = ""; }; + 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedHighlighter.swift; path = Source/Charts/Highlight/CombinedHighlighter.swift; sourceTree = ""; }; + 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MoveViewJob.swift; path = Source/Charts/Jobs/MoveViewJob.swift; sourceTree = ""; }; + 274116834B1B0345D622E027 /* CandleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift; sourceTree = ""; }; + 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/RadarChartDataSetProtocol.swift; sourceTree = ""; }; + 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataProvider.swift; path = Source/Charts/Interfaces/ScatterChartDataProvider.swift; sourceTree = ""; }; + 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartViewBase.swift; path = Source/Charts/Charts/ChartViewBase.swift; sourceTree = ""; }; + 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformerHorizontalBarChart.swift; path = Source/Charts/Utils/TransformerHorizontalBarChart.swift; sourceTree = ""; }; + 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SquareShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/SquareShapeRenderer.swift; sourceTree = ""; }; + 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarHighlighter.swift; path = Source/Charts/Highlight/HorizontalBarHighlighter.swift; sourceTree = ""; }; + 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerImage.swift; path = Source/Charts/Components/MarkerImage.swift; sourceTree = ""; }; + 3976E5F9D60E30CD94CE6156 /* Animator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Animator.swift; path = Source/Charts/Animation/Animator.swift; sourceTree = ""; }; + 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift; sourceTree = ""; }; + 3D64616883374310C505EC39 /* Highlight.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlight.swift; path = Source/Charts/Highlight/Highlight.swift; sourceTree = ""; }; + 3ED23C354AFE81818D78E645 /* Platform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.swift; path = Source/Charts/Utils/Platform.swift; sourceTree = ""; }; + 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataProvider.swift; path = Source/Charts/Interfaces/CandleChartDataProvider.swift; sourceTree = ""; }; + 3FDA09EF973925A110506799 /* ChartUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtils.swift; path = Source/Charts/Utils/ChartUtils.swift; sourceTree = ""; }; + 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = "Tests/Supporting Files/Media.xcassets"; sourceTree = ""; }; + 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift; sourceTree = ""; }; + 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineChartViewBase.swift; path = Source/Charts/Charts/BarLineChartViewBase.swift; sourceTree = ""; }; + 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift; sourceTree = ""; }; + 46D8013D44629521B1746364 /* PieChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartRenderer.swift; path = Source/Charts/Renderers/PieChartRenderer.swift; sourceTree = ""; }; + 48164CCD83C51B496533CB77 /* MarkerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarkerView.swift; path = Source/Charts/Components/MarkerView.swift; sourceTree = ""; }; + 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieRadarChartViewBase.swift; path = Source/Charts/Charts/PieRadarChartViewBase.swift; sourceTree = ""; }; + 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisBase.swift; path = Source/Charts/Components/AxisBase.swift; sourceTree = ""; }; + 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartData.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartData.swift; sourceTree = ""; }; + 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedZoomViewJob.swift; path = Source/Charts/Jobs/AnimatedZoomViewJob.swift; sourceTree = ""; }; + 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartData.swift; path = Source/Charts/Data/Implementations/Standard/LineChartData.swift; sourceTree = ""; }; + 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ValueFormatter.swift; path = Source/Charts/Formatters/ValueFormatter.swift; sourceTree = ""; }; + 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartView.swift; path = Source/Charts/Charts/BubbleChartView.swift; sourceTree = ""; }; + 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineRadarChartDataSetProtocol.swift; sourceTree = ""; }; + 4F9922F0641F7955DC6CD324 /* Charts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Charts.h; path = "Source/Supporting Files/Charts.h"; sourceTree = ""; }; + 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxis.swift; path = Source/Charts/Components/XAxis.swift; sourceTree = ""; }; + 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartRenderer.swift; path = Source/Charts/Renderers/CombinedChartRenderer.swift; sourceTree = ""; }; + 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartRenderer.swift; path = Source/Charts/Renderers/HorizontalBarChartRenderer.swift; sourceTree = ""; }; + 543729805D897CC03E5F78D3 /* BarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarHighlighter.swift; path = Source/Charts/Highlight/BarHighlighter.swift; sourceTree = ""; }; + 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift; sourceTree = ""; }; + 596963A429D485E3894C4666 /* Marker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Marker.swift; path = Source/Charts/Components/Marker.swift; sourceTree = ""; }; + 5983826927D825EF5F855C28 /* ChartHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartHighlighter.swift; path = Source/Charts/Highlight/ChartHighlighter.swift; sourceTree = ""; }; + 5A4CFFFB65819121595F06F1 /* Fill.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fill.swift; path = Source/Charts/Utils/Fill.swift; sourceTree = ""; }; + 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleRenderer.swift; path = Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift; sourceTree = ""; }; + 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartTests.swift; path = Tests/Charts/BarChartTests.swift; sourceTree = ""; }; + 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HorizontalBarChartView.swift; path = Source/Charts/Charts/HorizontalBarChartView.swift; sourceTree = ""; }; + 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataProvider.swift; path = Source/Charts/Interfaces/ChartDataProvider.swift; sourceTree = ""; }; + 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Charts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRenderer.swift; path = Source/Charts/Renderers/YAxisRenderer.swift; sourceTree = ""; }; + 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultAxisValueFormatter.swift; path = Source/Charts/Formatters/DefaultAxisValueFormatter.swift; sourceTree = ""; }; + 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataSet.swift; sourceTree = ""; }; + 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartDataSet.swift; sourceTree = ""; }; + 6E03A4987F72414A02A0631B /* PieChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartData.swift; path = Source/Charts/Data/Implementations/Standard/PieChartData.swift; sourceTree = ""; }; + 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Renderer.swift; path = Source/Charts/Renderers/Renderer.swift; sourceTree = ""; }; + 7036F11832C017E26AC750A4 /* PieHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieHighlighter.swift; path = Source/Charts/Highlight/PieHighlighter.swift; sourceTree = ""; }; + 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedViewPortJob.swift; path = Source/Charts/Jobs/AnimatedViewPortJob.swift; sourceTree = ""; }; + 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortHandler.swift; path = Source/Charts/Utils/ViewPortHandler.swift; sourceTree = ""; }; + 75F279974FE650E57A061B09 /* BarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartRenderer.swift; path = Source/Charts/Renderers/BarChartRenderer.swift; sourceTree = ""; }; + 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarChartDataSetProtocol.swift; sourceTree = ""; }; + 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartUtilsTests.swift; path = Tests/Charts/ChartUtilsTests.swift; sourceTree = ""; }; + 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartRenderer.swift; path = Source/Charts/Renderers/RadarChartRenderer.swift; sourceTree = ""; }; + 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartData.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartData.swift; sourceTree = ""; }; + 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartRenderer.swift; path = Source/Charts/Renderers/ScatterChartRenderer.swift; sourceTree = ""; }; + 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FillFormatter.swift; path = Source/Charts/Formatters/FillFormatter.swift; sourceTree = ""; }; + 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CrossShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CrossShapeRenderer.swift; sourceTree = ""; }; + 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BarLineScatterCandleBubbleChartDataProvider.swift; sourceTree = ""; }; + 910DBFE1DA1B2CA237A736DF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Source/Supporting Files/Info.plist"; sourceTree = ""; }; + 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift; sourceTree = ""; }; + 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarRenderer.swift; path = Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift; sourceTree = ""; }; + 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/LineScatterCandleRadarChartDataSetProtocol.swift; sourceTree = ""; }; + 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataApproximator.swift; path = Source/Charts/Filters/DataApproximator.swift; sourceTree = ""; }; + 998F2BFE318471AFC05B50AC /* Highlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Highlighter.swift; path = Source/Charts/Highlight/Highlighter.swift; sourceTree = ""; }; + 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataProvider.swift; path = Source/Charts/Interfaces/BarChartDataProvider.swift; sourceTree = ""; }; + 9DCD13D558BA177D5952AD66 /* PieChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartView.swift; path = Source/Charts/Charts/PieChartView.swift; sourceTree = ""; }; + 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendEntry.swift; path = Source/Charts/Components/LegendEntry.swift; sourceTree = ""; }; + A140F644332704916947B58C /* CombinedChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombinedChartDataProvider.swift; path = Source/Charts/Interfaces/CombinedChartDataProvider.swift; sourceTree = ""; }; + A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift; sourceTree = ""; }; + A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarLineScatterCandleBubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BarLineScatterCandleBubbleChartDataSetProtocol.swift; sourceTree = ""; }; + A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift; sourceTree = ""; }; + AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererRadarChart.swift; path = Source/Charts/Renderers/YAxisRendererRadarChart.swift; sourceTree = ""; }; + AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronUpShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronUpShapeRenderer.swift; sourceTree = ""; }; + B137428B41C143D5115726C4 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Source/Charts/Components/Description.swift; sourceTree = ""; }; + B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift; sourceTree = ""; }; + B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift; sourceTree = ""; }; + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CombinedChartTests.swift; path = Tests/Charts/CombinedChartTests.swift; sourceTree = ""; }; + BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedMoveViewJob.swift; path = Source/Charts/Jobs/AnimatedMoveViewJob.swift; sourceTree = ""; }; + BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartView.swift; path = Source/Charts/Charts/CandleStickChartView.swift; sourceTree = ""; }; + BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XAxisRendererRadarChart.swift; path = Source/Charts/Renderers/XAxisRendererRadarChart.swift; sourceTree = ""; }; + BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataEntry.swift; sourceTree = ""; }; + BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartRenderer.swift; path = Source/Charts/Renderers/CandleStickChartRenderer.swift; sourceTree = ""; }; + BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataProvider.swift; path = Source/Charts/Interfaces/LineChartDataProvider.swift; sourceTree = ""; }; + C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift; sourceTree = ""; }; + C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronDownShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift; sourceTree = ""; }; + C574E1BC7E12D937A5471EF8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = ""; }; + C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScatterCandleRadarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/LineScatterCandleRadarChartDataSet.swift; sourceTree = ""; }; + C75935E899183DDFA181E2CC /* AxisRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AxisRenderer.swift; path = Source/Charts/Renderers/AxisRenderer.swift; sourceTree = ""; }; + C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ComponentBase.swift; path = Source/Charts/Components/ComponentBase.swift; sourceTree = ""; }; + C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TriangleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/TriangleShapeRenderer.swift; sourceTree = ""; }; + C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartBaseDataSet.swift; path = Source/Charts/Data/Implementations/ChartBaseDataSet.swift; sourceTree = ""; }; + CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartDataSet.swift; sourceTree = ""; }; + D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartTests.swift; path = Tests/Charts/LineChartTests.swift; sourceTree = ""; }; + D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartDataEntry.swift; sourceTree = ""; }; + D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultFillFormatter.swift; path = Source/Charts/Formatters/DefaultFillFormatter.swift; sourceTree = ""; }; + DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/PieChartDataSetProtocol.swift; sourceTree = ""; }; + DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BubbleChartDataEntry.swift; sourceTree = ""; }; + DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartAnimationEasing.swift; path = Source/Charts/Animation/ChartAnimationEasing.swift; sourceTree = ""; }; + E120E76C6F1B5877D56126DD /* ChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartData.swift; path = Source/Charts/Data/Implementations/Standard/ChartData.swift; sourceTree = ""; }; + E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift; sourceTree = ""; }; + E64A75540C627E09080B402A /* Legend.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Legend.swift; path = Source/Charts/Components/Legend.swift; sourceTree = ""; }; + E783CFB4889A767C76510917 /* BarChartView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartView.swift; path = Source/Charts/Charts/BarChartView.swift; sourceTree = ""; }; + E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScatterChartData.swift; path = Source/Charts/Data/Implementations/Standard/ScatterChartData.swift; sourceTree = ""; }; + EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxisRendererHorizontalBarChart.swift; path = Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift; sourceTree = ""; }; + ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CircleShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/CircleShapeRenderer.swift; sourceTree = ""; }; + EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataProvider.swift; path = Source/Charts/Interfaces/BubbleChartDataProvider.swift; sourceTree = ""; }; + F22750328058DEC2F019646F /* ChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/ChartDataEntry.swift; sourceTree = ""; }; + F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RadarHighlighter.swift; path = Source/Charts/Highlight/RadarHighlighter.swift; sourceTree = ""; }; + F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleChartDataSetProtocol.swift; path = Source/Charts/Data/Interfaces/BubbleChartDataSetProtocol.swift; sourceTree = ""; }; + F4785FEACAE4367F36FB8868 /* CandleChartData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleChartData.swift; path = Source/Charts/Data/Implementations/Standard/CandleChartData.swift; sourceTree = ""; }; + F6227A646166E248F90F86AD /* ChartColorTemplates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartColorTemplates.swift; path = Source/Charts/Utils/ChartColorTemplates.swift; sourceTree = ""; }; + F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChartLimitLine.swift; path = Source/Charts/Components/ChartLimitLine.swift; sourceTree = ""; }; + F715DB2C56C9E0615542625B /* LegendRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegendRenderer.swift; path = Source/Charts/Renderers/LegendRenderer.swift; sourceTree = ""; }; + FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ShapeRenderer.swift; sourceTree = ""; }; + FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewPortJob.swift; path = Source/Charts/Jobs/ViewPortJob.swift; sourceTree = ""; }; + FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZoomViewJob.swift; path = Source/Charts/Jobs/ZoomViewJob.swift; sourceTree = ""; }; + FB92A80F861C1362EED8D946 /* YAxis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = YAxis.swift; path = Source/Charts/Components/YAxis.swift; sourceTree = ""; }; + FF475B9593B9898853814340 /* Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transformer.swift; path = Source/Charts/Utils/Transformer.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 77997192275C47C45A0A2E9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C16A09321DC2DCF289FF0E3B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 77997192275C47C45A0A2E9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C7B150D740255670DEB9F455 /* Charts.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C16A09321DC2DCF289FF0E3B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 031D7C33F3BF172E30664862 /* DataProviders */ = { - isa = PBXGroup; - children = ( - 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */, - 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */, - EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */, - 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */, - 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */, - A140F644332704916947B58C /* CombinedChartDataProvider.swift */, - BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */, - 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */, - ); - name = DataProviders; - sourceTree = ""; - }; - 033FD152BB2F906750106A85 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; - 098621EDFBF928494B94BEA1 /* Data */ = { - isa = PBXGroup; - children = ( - 3B9DD76FCE8D873300A822C7 /* Implementations */, - DB2D9648877455028EBEAA8F /* DataSet Protocols */, - ); - name = Data; - sourceTree = ""; - }; - 20C350D33133A4D89BB365B1 /* Source */ = { - isa = PBXGroup; - children = ( - E9F158C8C566B26AFD775911 /* Supporting Files */, - 2647844720BC6574A544A337 /* Charts */, - ); - name = Source; - sourceTree = ""; - }; - 2227EA571FF1F219007D98D9 /* AxisRenderers */ = { - isa = PBXGroup; - children = ( - C75935E899183DDFA181E2CC /* AxisRenderer.swift */, - 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */, - 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */, - BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */, - 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */, - EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */, - AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */, - ); - name = AxisRenderers; - sourceTree = ""; - }; - 2227EA581FF1F224007D98D9 /* ChartRenderers */ = { - isa = PBXGroup; - children = ( - 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */, - 75F279974FE650E57A061B09 /* BarChartRenderer.swift */, - 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */, - 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */, - BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */, - 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */, - 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */, - 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */, - 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */, - 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */, - 46D8013D44629521B1746364 /* PieChartRenderer.swift */, - 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */, - 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */, - ); - name = ChartRenderers; - sourceTree = ""; - }; - 2647844720BC6574A544A337 /* Charts */ = { - isa = PBXGroup; - children = ( - A49C1F0F9CCD6E5C143C29F4 /* Animation */, - 8C531E3F3C3DE5843C93C3DA /* Charts */, - 51EF1986C9884C25EED1C2CB /* Components */, - 098621EDFBF928494B94BEA1 /* Data */, - AA79AB82B0ADCA926510B73E /* Filters */, - 74A391010038924F637D6752 /* Formatters */, - 42824E1F334B0C484AF4C594 /* Highlight */, - 031D7C33F3BF172E30664862 /* DataProviders */, - AD1224C45A29A5C88D6B7450 /* Jobs */, - E7589D3E7C2BD2449960AD59 /* Renderers */, - D047819AB7170595896D6FE8 /* Utils */, - ); - name = Charts; - sourceTree = ""; - }; - 3B9DD76FCE8D873300A822C7 /* Implementations */ = { - isa = PBXGroup; - children = ( - C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */, - 740017197A160047EBB8A9A0 /* Standard */, - ); - name = Implementations; - sourceTree = ""; - }; - 42824E1F334B0C484AF4C594 /* Highlight */ = { - isa = PBXGroup; - children = ( - 543729805D897CC03E5F78D3 /* BarHighlighter.swift */, - 5983826927D825EF5F855C28 /* ChartHighlighter.swift */, - 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */, - 3D64616883374310C505EC39 /* Highlight.swift */, - 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */, - 998F2BFE318471AFC05B50AC /* Highlighter.swift */, - 7036F11832C017E26AC750A4 /* PieHighlighter.swift */, - 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */, - F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */, - 0F099502DA50C56204E7B744 /* Range.swift */, - ); - name = Highlight; - sourceTree = ""; - }; - 51EF1986C9884C25EED1C2CB /* Components */ = { - isa = PBXGroup; - children = ( - 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */, - F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */, - C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */, - B137428B41C143D5115726C4 /* Description.swift */, - 596963A429D485E3894C4666 /* Marker.swift */, - E64A75540C627E09080B402A /* Legend.swift */, - 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */, - 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */, - 48164CCD83C51B496533CB77 /* MarkerView.swift */, - 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */, - FB92A80F861C1362EED8D946 /* YAxis.swift */, - ); - name = Components; - sourceTree = ""; - }; - 740017197A160047EBB8A9A0 /* Standard */ = { - isa = PBXGroup; - children = ( - 0108D5925E21A47DA36A66AA /* BarChartData.swift */, - E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */, - C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */, - 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */, - 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */, - 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */, - DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */, - B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */, - F4785FEACAE4367F36FB8868 /* CandleChartData.swift */, - D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */, - 274116834B1B0345D622E027 /* CandleChartDataSet.swift */, - E120E76C6F1B5877D56126DD /* ChartData.swift */, - F22750328058DEC2F019646F /* ChartDataEntry.swift */, - 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */, - 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */, - 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */, - 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */, - A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */, - 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */, - C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */, - 6E03A4987F72414A02A0631B /* PieChartData.swift */, - BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */, - A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */, - 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */, - 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */, - B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */, - E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */, - CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */, - ); - name = Standard; - sourceTree = ""; - }; - 74A391010038924F637D6752 /* Formatters */ = { - isa = PBXGroup; - children = ( - 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */, - D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */, - 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */, - 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */, - 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */, - 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */, - 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */, - ); - name = Formatters; - sourceTree = ""; - }; - 865A1CF149F52850CAB7F177 = { - isa = PBXGroup; - children = ( - AB2D554102718F209377399E /* Products */, - 033FD152BB2F906750106A85 /* Frameworks */, - 20C350D33133A4D89BB365B1 /* Source */, - D2C26AC015E753014C7571E4 /* Tests */, - ); - sourceTree = ""; - }; - 8C531E3F3C3DE5843C93C3DA /* Charts */ = { - isa = PBXGroup; - children = ( - E783CFB4889A767C76510917 /* BarChartView.swift */, - 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */, - 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */, - BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */, - 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */, - 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */, - 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */, - 0619A877C69A95ECCC440A44 /* LineChartView.swift */, - 9DCD13D558BA177D5952AD66 /* PieChartView.swift */, - 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */, - 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */, - 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */, - ); - name = Charts; - sourceTree = ""; - }; - 9613A7C800C7F065A823D587 /* Charts */ = { - isa = PBXGroup; - children = ( - 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */, - 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */, - 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */, - B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */, - D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */, - 064989451F5C99C7006E8BB3 /* Snapshot.swift */, - ); - name = Charts; - sourceTree = ""; - }; - A49C1F0F9CCD6E5C143C29F4 /* Animation */ = { - isa = PBXGroup; - children = ( - 3976E5F9D60E30CD94CE6156 /* Animator.swift */, - DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */, - ); - name = Animation; - sourceTree = ""; - }; - AA79AB82B0ADCA926510B73E /* Filters */ = { - isa = PBXGroup; - children = ( - 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */, - ); - name = Filters; - sourceTree = ""; - }; - AB2D554102718F209377399E /* Products */ = { - isa = PBXGroup; - children = ( - 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */, - 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - AD1224C45A29A5C88D6B7450 /* Jobs */ = { - isa = PBXGroup; - children = ( - BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */, - 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */, - 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */, - 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */, - FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */, - FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */, - ); - name = Jobs; - sourceTree = ""; - }; - BF662941E21BC049994B2598 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - C574E1BC7E12D937A5471EF8 /* Info.plist */, - 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D047819AB7170595896D6FE8 /* Utils */ = { - isa = PBXGroup; - children = ( - F6227A646166E248F90F86AD /* ChartColorTemplates.swift */, - 3FDA09EF973925A110506799 /* ChartUtils.swift */, - 5A4CFFFB65819121595F06F1 /* Fill.swift */, - 3ED23C354AFE81818D78E645 /* Platform.swift */, - FF475B9593B9898853814340 /* Transformer.swift */, - 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */, - 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */, - ); - name = Utils; - sourceTree = ""; - }; - D2C26AC015E753014C7571E4 /* Tests */ = { - isa = PBXGroup; - children = ( - BF662941E21BC049994B2598 /* Supporting Files */, - 9613A7C800C7F065A823D587 /* Charts */, - ); - name = Tests; - sourceTree = ""; - }; - DB2D9648877455028EBEAA8F /* DataSet Protocols */ = { - isa = PBXGroup; - children = ( - 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */, - A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */, - F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */, - 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */, - 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */, - 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */, - 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */, - 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */, - DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */, - 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */, - 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */, - ); - name = "DataSet Protocols"; - sourceTree = ""; - }; - E7589D3E7C2BD2449960AD59 /* Renderers */ = { - isa = PBXGroup; - children = ( - F715DB2C56C9E0615542625B /* LegendRenderer.swift */, - 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */, - 2227EA571FF1F219007D98D9 /* AxisRenderers */, - 2227EA581FF1F224007D98D9 /* ChartRenderers */, - F7059584CB30EF419CFB3335 /* ShapeRenderer */, - ); - name = Renderers; - sourceTree = ""; - }; - E9F158C8C566B26AFD775911 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 910DBFE1DA1B2CA237A736DF /* Info.plist */, - 4F9922F0641F7955DC6CD324 /* Charts.h */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - F7059584CB30EF419CFB3335 /* ShapeRenderer */ = { - isa = PBXGroup; - children = ( - C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */, - AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */, - ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */, - 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */, - FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */, - 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */, - C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */, - 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */, - ); - name = ShapeRenderer; - sourceTree = ""; - }; + 031D7C33F3BF172E30664862 /* DataProviders */ = { + isa = PBXGroup; + children = ( + 9D7184C8A5A60A3522AB9B05 /* BarChartDataProvider.swift */, + 8FF03960A871A092F5B54315 /* BarLineScatterCandleBubbleChartDataProvider.swift */, + EDEAF554FD0D68EA4C0E7E49 /* BubbleChartDataProvider.swift */, + 3F8146ABC9FC311AF8CA699C /* CandleChartDataProvider.swift */, + 62B73FCEDD3841E7B958F6A9 /* ChartDataProvider.swift */, + A140F644332704916947B58C /* CombinedChartDataProvider.swift */, + BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */, + 2FD37A55B4D85D883E29C744 /* ScatterChartDataProvider.swift */, + ); + name = DataProviders; + sourceTree = ""; + }; + 033FD152BB2F906750106A85 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + 098621EDFBF928494B94BEA1 /* Data */ = { + isa = PBXGroup; + children = ( + 3B9DD76FCE8D873300A822C7 /* Implementations */, + DB2D9648877455028EBEAA8F /* DataSet Protocols */, + ); + name = Data; + sourceTree = ""; + }; + 20C350D33133A4D89BB365B1 /* Source */ = { + isa = PBXGroup; + children = ( + E9F158C8C566B26AFD775911 /* Supporting Files */, + 2647844720BC6574A544A337 /* Charts */, + ); + name = Source; + sourceTree = ""; + }; + 2227EA571FF1F219007D98D9 /* AxisRenderers */ = { + isa = PBXGroup; + children = ( + C75935E899183DDFA181E2CC /* AxisRenderer.swift */, + 1C02C3AF5C92FCFC18224C35 /* XAxisRenderer.swift */, + 1F3D55A7E6176D52DC957D27 /* XAxisRendererHorizontalBarChart.swift */, + BC19DC2434D65FFB446A61B7 /* XAxisRendererRadarChart.swift */, + 688B80F1AA88AE54152BE768 /* YAxisRenderer.swift */, + EAE417AAA0FCA0DD00E77489 /* YAxisRendererHorizontalBarChart.swift */, + AA5A16F4A382813C4FE8BDF9 /* YAxisRendererRadarChart.swift */, + ); + name = AxisRenderers; + sourceTree = ""; + }; + 2227EA581FF1F224007D98D9 /* ChartRenderers */ = { + isa = PBXGroup; + children = ( + 0216EDC6A1FE272F4EB19FCF /* DataRenderer.swift */, + 75F279974FE650E57A061B09 /* BarChartRenderer.swift */, + 5B1C588E9DF6FFD56D7ADF8E /* BarLineScatterCandleBubbleRenderer.swift */, + 2194AA554712E6BA2677F114 /* BubbleChartRenderer.swift */, + BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */, + 52265C1B343CCC41AF2300E3 /* CombinedChartRenderer.swift */, + 539382766378B702660FDFB2 /* HorizontalBarChartRenderer.swift */, + 0DABDBBCCE6B3620C967F04A /* LineChartRenderer.swift */, + 105FFC9D3773A9C7A60A897F /* LineRadarRenderer.swift */, + 923206233CA89FD03565FF87 /* LineScatterCandleRadarRenderer.swift */, + 46D8013D44629521B1746364 /* PieChartRenderer.swift */, + 7AC9C3D69ACB5BDE22421E15 /* RadarChartRenderer.swift */, + 80D5B764EC0AE1E17E55DC67 /* ScatterChartRenderer.swift */, + ); + name = ChartRenderers; + sourceTree = ""; + }; + 2647844720BC6574A544A337 /* Charts */ = { + isa = PBXGroup; + children = ( + A49C1F0F9CCD6E5C143C29F4 /* Animation */, + 8C531E3F3C3DE5843C93C3DA /* Charts */, + 51EF1986C9884C25EED1C2CB /* Components */, + 098621EDFBF928494B94BEA1 /* Data */, + AA79AB82B0ADCA926510B73E /* Filters */, + 74A391010038924F637D6752 /* Formatters */, + 42824E1F334B0C484AF4C594 /* Highlight */, + 031D7C33F3BF172E30664862 /* DataProviders */, + AD1224C45A29A5C88D6B7450 /* Jobs */, + E7589D3E7C2BD2449960AD59 /* Renderers */, + D047819AB7170595896D6FE8 /* Utils */, + ); + name = Charts; + sourceTree = ""; + }; + 3B9DD76FCE8D873300A822C7 /* Implementations */ = { + isa = PBXGroup; + children = ( + C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */, + 740017197A160047EBB8A9A0 /* Standard */, + ); + name = Implementations; + sourceTree = ""; + }; + 42824E1F334B0C484AF4C594 /* Highlight */ = { + isa = PBXGroup; + children = ( + 543729805D897CC03E5F78D3 /* BarHighlighter.swift */, + 5983826927D825EF5F855C28 /* ChartHighlighter.swift */, + 2465CB73738EBAFB46C57288 /* CombinedHighlighter.swift */, + 3D64616883374310C505EC39 /* Highlight.swift */, + 33BE9A97FFA41D3D85CAFFC7 /* HorizontalBarHighlighter.swift */, + 998F2BFE318471AFC05B50AC /* Highlighter.swift */, + 7036F11832C017E26AC750A4 /* PieHighlighter.swift */, + 04F7B9DF1F2D66E7279771D4 /* PieRadarHighlighter.swift */, + F368CF209744D8F3B85B1028 /* RadarHighlighter.swift */, + 0F099502DA50C56204E7B744 /* Range.swift */, + ); + name = Highlight; + sourceTree = ""; + }; + 51EF1986C9884C25EED1C2CB /* Components */ = { + isa = PBXGroup; + children = ( + 4B7AEFBF4D85B9D2EAAB3071 /* AxisBase.swift */, + F6DEBFAB1D73E944ED430B4F /* ChartLimitLine.swift */, + C8C9A105A7DB64F39DDA648B /* ComponentBase.swift */, + B137428B41C143D5115726C4 /* Description.swift */, + 596963A429D485E3894C4666 /* Marker.swift */, + E64A75540C627E09080B402A /* Legend.swift */, + 9E7C673B9ED4340F550A9283 /* LegendEntry.swift */, + 392AAEB02DD7B351D92907C2 /* MarkerImage.swift */, + 48164CCD83C51B496533CB77 /* MarkerView.swift */, + 5225ABC3C0C2F65FC094EEBB /* XAxis.swift */, + FB92A80F861C1362EED8D946 /* YAxis.swift */, + ); + name = Components; + sourceTree = ""; + }; + 740017197A160047EBB8A9A0 /* Standard */ = { + isa = PBXGroup; + children = ( + 0108D5925E21A47DA36A66AA /* BarChartData.swift */, + E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */, + C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */, + 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */, + 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */, + 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */, + DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */, + B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */, + F4785FEACAE4367F36FB8868 /* CandleChartData.swift */, + D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */, + 274116834B1B0345D622E027 /* CandleChartDataSet.swift */, + E120E76C6F1B5877D56126DD /* ChartData.swift */, + F22750328058DEC2F019646F /* ChartDataEntry.swift */, + 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */, + 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */, + 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */, + 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */, + A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */, + 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */, + C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */, + 6E03A4987F72414A02A0631B /* PieChartData.swift */, + BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */, + A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */, + 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */, + 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */, + B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */, + E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */, + CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */, + ); + name = Standard; + sourceTree = ""; + }; + 74A391010038924F637D6752 /* Formatters */ = { + isa = PBXGroup; + children = ( + 6A4770E0F75EFFC30707A7C8 /* DefaultAxisValueFormatter.swift */, + D6C1BEFDF17404666C7B6054 /* DefaultFillFormatter.swift */, + 107D8F8163EE54D6D9E916B0 /* DefaultValueFormatter.swift */, + 0BD9DF16AF59680A3BB49452 /* AxisValueFormatter.swift */, + 818AC6B12505B7C0A53D62F9 /* FillFormatter.swift */, + 10DD0A02E3CF611BD11EBA9B /* IndexAxisValueFormatter.swift */, + 4EAA8AA30C377D54D22A577A /* ValueFormatter.swift */, + ); + name = Formatters; + sourceTree = ""; + }; + 865A1CF149F52850CAB7F177 = { + isa = PBXGroup; + children = ( + AB2D554102718F209377399E /* Products */, + 033FD152BB2F906750106A85 /* Frameworks */, + 20C350D33133A4D89BB365B1 /* Source */, + D2C26AC015E753014C7571E4 /* Tests */, + ); + sourceTree = ""; + }; + 8C531E3F3C3DE5843C93C3DA /* Charts */ = { + isa = PBXGroup; + children = ( + E783CFB4889A767C76510917 /* BarChartView.swift */, + 45C6D3723C4E001B119CA0C8 /* BarLineChartViewBase.swift */, + 4EED352A98860E031F13AFB7 /* BubbleChartView.swift */, + BA1A58428DC4780BAB4EAADC /* CandleStickChartView.swift */, + 30EFAD7920F76360ADB3B5F5 /* ChartViewBase.swift */, + 11EF1FE22549E885C8F40738 /* CombinedChartView.swift */, + 6021C9E424C36116AEA78CC9 /* HorizontalBarChartView.swift */, + 0619A877C69A95ECCC440A44 /* LineChartView.swift */, + 9DCD13D558BA177D5952AD66 /* PieChartView.swift */, + 4A6C9631C69B2D772BBD9232 /* PieRadarChartViewBase.swift */, + 2440DB759AB93B4A928A3F6F /* RadarChartView.swift */, + 18462BFDD9DEE76D51D40503 /* ScatterChartView.swift */, + ); + name = Charts; + sourceTree = ""; + }; + 9613A7C800C7F065A823D587 /* Charts */ = { + isa = PBXGroup; + children = ( + 5C3F5E1A69EC06E86505F7B1 /* BarChartTests.swift */, + 7AB9062A28AAB9469752A954 /* ChartUtilsTests.swift */, + 2243BBFB1FF156D000B49D0B /* EquatableTests.swift */, + B6BF9A551F91993A00E62A5D /* CombinedChartTests.swift */, + D2E1819D72CD7B6C4A4E8048 /* LineChartTests.swift */, + 064989451F5C99C7006E8BB3 /* Snapshot.swift */, + ); + name = Charts; + sourceTree = ""; + }; + A49C1F0F9CCD6E5C143C29F4 /* Animation */ = { + isa = PBXGroup; + children = ( + 3976E5F9D60E30CD94CE6156 /* Animator.swift */, + DFB762958EE8E6521563665D /* ChartAnimationEasing.swift */, + ); + name = Animation; + sourceTree = ""; + }; + AA79AB82B0ADCA926510B73E /* Filters */ = { + isa = PBXGroup; + children = ( + 93EF9709CF635BEE70D1ABC5 /* DataApproximator.swift */, + 22A8C47F2002C85A004C1CAE /* DataApproximator+N.swift */, + ); + name = Filters; + sourceTree = ""; + }; + AB2D554102718F209377399E /* Products */ = { + isa = PBXGroup; + children = ( + 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */, + 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + AD1224C45A29A5C88D6B7450 /* Jobs */ = { + isa = PBXGroup; + children = ( + BA157EFF2F952192C11DF937 /* AnimatedMoveViewJob.swift */, + 710D7C9B2F1DB4A331EE405A /* AnimatedViewPortJob.swift */, + 4C2EA58CB336967198D30D20 /* AnimatedZoomViewJob.swift */, + 266E162DA8B29D9AEB6A9397 /* MoveViewJob.swift */, + FA7BDB22C97F39A4B33E38A7 /* ViewPortJob.swift */, + FB3A4F5987E58F3E5BE855F9 /* ZoomViewJob.swift */, + ); + name = Jobs; + sourceTree = ""; + }; + BF662941E21BC049994B2598 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C574E1BC7E12D937A5471EF8 /* Info.plist */, + 41DDB768A1D033A34F0EF9E0 /* Media.xcassets */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + D047819AB7170595896D6FE8 /* Utils */ = { + isa = PBXGroup; + children = ( + F6227A646166E248F90F86AD /* ChartColorTemplates.swift */, + 3FDA09EF973925A110506799 /* ChartUtils.swift */, + 5A4CFFFB65819121595F06F1 /* Fill.swift */, + 3ED23C354AFE81818D78E645 /* Platform.swift */, + FF475B9593B9898853814340 /* Transformer.swift */, + 324C9127B53A8D39C8B49277 /* TransformerHorizontalBarChart.swift */, + 72EAEBB7CF73E33565FC2896 /* ViewPortHandler.swift */, + ); + name = Utils; + sourceTree = ""; + }; + D2C26AC015E753014C7571E4 /* Tests */ = { + isa = PBXGroup; + children = ( + BF662941E21BC049994B2598 /* Supporting Files */, + 9613A7C800C7F065A823D587 /* Charts */, + ); + name = Tests; + sourceTree = ""; + }; + DB2D9648877455028EBEAA8F /* DataSet Protocols */ = { + isa = PBXGroup; + children = ( + 7A53A9E42FC07FFDACA937C1 /* BarChartDataSetProtocol.swift */, + A5649B272BF3EBFC8A1EF0C1 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift */, + F3788EC55EF908B0805D7C2F /* BubbleChartDataSetProtocol.swift */, + 18BFB0A14A5C47A302A597D9 /* CandleChartDataSetProtocol.swift */, + 3A32510073A303CBB38E094A /* ChartDataSetProtocol.swift */, + 429E88F2729735DC092EE556 /* LineChartDataSetProtocol.swift */, + 4F7E6A99D82E6AE3804D5A39 /* LineRadarChartDataSetProtocol.swift */, + 9249AD9AEC8C85772365A128 /* LineScatterCandleRadarChartDataSetProtocol.swift */, + DA2AA6CC89F809DCCD7605B4 /* PieChartDataSetProtocol.swift */, + 2EAD807534620E3B53327F04 /* RadarChartDataSetProtocol.swift */, + 219BC9CEA037F897E92E45D1 /* ScatterChartDataSetProtocol.swift */, + ); + name = "DataSet Protocols"; + sourceTree = ""; + }; + E7589D3E7C2BD2449960AD59 /* Renderers */ = { + isa = PBXGroup; + children = ( + F715DB2C56C9E0615542625B /* LegendRenderer.swift */, + 6F66B32AD8A878CBD6DB6ED2 /* Renderer.swift */, + 2227EA571FF1F219007D98D9 /* AxisRenderers */, + 2227EA581FF1F224007D98D9 /* ChartRenderers */, + F7059584CB30EF419CFB3335 /* ShapeRenderer */, + ); + name = Renderers; + sourceTree = ""; + }; + E9F158C8C566B26AFD775911 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 910DBFE1DA1B2CA237A736DF /* Info.plist */, + 4F9922F0641F7955DC6CD324 /* Charts.h */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + F7059584CB30EF419CFB3335 /* ShapeRenderer */ = { + isa = PBXGroup; + children = ( + C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */, + AA70259ED16FF80D8EEB0F94 /* ChevronUpShapeRenderer.swift */, + ECE1B1623D3AF69CECAE8562 /* CircleShapeRenderer.swift */, + 823F7DB281C6C6F069A69605 /* CrossShapeRenderer.swift */, + FA1D3D13180C2E3893A82546 /* ShapeRenderer.swift */, + 32FC01A016DFF1BA73AF9182 /* SquareShapeRenderer.swift */, + C8FB6219B143F8F7DA762950 /* TriangleShapeRenderer.swift */, + 23D35CF6F9177D77B6B97AE1 /* XShapeRenderer.swift */, + ); + name = ShapeRenderer; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - B2B2DD73E237562739EE1F83 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + B2B2DD73E237562739EE1F83 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BEFD9518F3A74ACF8FA33308 /* Charts.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - A58A4ED274A941CA248EA921 /* Charts */ = { - isa = PBXNativeTarget; - buildConfigurationList = F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */; - buildPhases = ( - B2B2DD73E237562739EE1F83 /* Headers */, - B5996DB2D9B6F0DB0E9D3F3E /* Sources */, - E257C254E738A8AE047C6FB6 /* Resources */, - C16A09321DC2DCF289FF0E3B /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Charts; - productName = Charts; - productReference = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; - productType = "com.apple.product-type.framework"; - }; - F2749BD5443C1CB5FE2080C2 /* ChartsTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */; - buildPhases = ( - D6BF00523905132F162A7710 /* Build Dependencies */, - E356A2384A2368AB3D2C7912 /* Sources */, - 5B102E31AA8399941CC6248D /* Resources */, - 77997192275C47C45A0A2E9A /* Frameworks */, - 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 8676F8A013D87F9961E92465 /* PBXTargetDependency */, - ); - name = ChartsTests; - productName = ChartsTests; - productReference = 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; + A58A4ED274A941CA248EA921 /* Charts */ = { + isa = PBXNativeTarget; + buildConfigurationList = F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */; + buildPhases = ( + B2B2DD73E237562739EE1F83 /* Headers */, + B5996DB2D9B6F0DB0E9D3F3E /* Sources */, + E257C254E738A8AE047C6FB6 /* Resources */, + C16A09321DC2DCF289FF0E3B /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Charts; + productName = Charts; + productReference = 65AD9E95D9ED4DC0BD73A743 /* Charts.framework */; + productType = "com.apple.product-type.framework"; + }; + F2749BD5443C1CB5FE2080C2 /* ChartsTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */; + buildPhases = ( + D6BF00523905132F162A7710 /* Build Dependencies */, + E356A2384A2368AB3D2C7912 /* Sources */, + 5B102E31AA8399941CC6248D /* Resources */, + 77997192275C47C45A0A2E9A /* Frameworks */, + 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 8676F8A013D87F9961E92465 /* PBXTargetDependency */, + ); + name = ChartsTests; + productName = ChartsTests; + productReference = 1CBBC58C6CE1EBEE9852CE41 /* ChartsTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 193FC8DF32D250560C5F5D77 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; - TargetAttributes = { - A58A4ED274A941CA248EA921 = { - LastSwiftMigration = 0900; - }; - F2749BD5443C1CB5FE2080C2 = { - LastSwiftMigration = 0900; - }; - }; - }; - buildConfigurationList = 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 865A1CF149F52850CAB7F177; - productRefGroup = AB2D554102718F209377399E /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A58A4ED274A941CA248EA921 /* Charts */, - F2749BD5443C1CB5FE2080C2 /* ChartsTests */, - ); - }; + 193FC8DF32D250560C5F5D77 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0700; + TargetAttributes = { + A58A4ED274A941CA248EA921 = { + LastSwiftMigration = 0900; + }; + F2749BD5443C1CB5FE2080C2 = { + LastSwiftMigration = 0900; + }; + }; + }; + buildConfigurationList = 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 865A1CF149F52850CAB7F177; + productRefGroup = AB2D554102718F209377399E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A58A4ED274A941CA248EA921 /* Charts */, + F2749BD5443C1CB5FE2080C2 /* ChartsTests */, + ); + }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 5B102E31AA8399941CC6248D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E257C254E738A8AE047C6FB6 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 5B102E31AA8399941CC6248D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00B8BF5901C2D220357B0B2A /* Media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E257C254E738A8AE047C6FB6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - FBSnapshotTestCase.framework, - ); - name = "Copy Carthage Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = " exec \"${SRCROOT}/scripts/copy-carthage-frameworks.sh\""; - }; - D6BF00523905132F162A7710 /* Build Dependencies */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - name = "Build Dependencies"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "exec \"${SRCROOT}/scripts/build-dependencies.sh\""; - }; + 6BA68666BDA3FCF79C2A6801 /* Copy Carthage Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + FBSnapshotTestCase.framework, + ); + name = "Copy Carthage Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = " exec \"${SRCROOT}/scripts/copy-carthage-frameworks.sh\""; + }; + D6BF00523905132F162A7710 /* Build Dependencies */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "Build Dependencies"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "exec \"${SRCROOT}/scripts/build-dependencies.sh\""; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - B5996DB2D9B6F0DB0E9D3F3E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */, - F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */, - D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */, - 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */, - E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */, - 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */, - 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */, - 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */, - A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */, - 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */, - 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */, - 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */, - 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */, - 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */, - 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */, - 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */, - FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */, - DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */, - 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */, - ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */, - C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */, - 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */, - 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */, - 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */, - 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */, - E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */, - 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */, - 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */, - 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */, - 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */, - 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */, - E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */, - C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */, - 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */, - DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */, - D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */, - 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */, - 81892994002C0640AD858748 /* ChartData.swift in Sources */, - EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */, - 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */, - 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */, - 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */, - C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */, - 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */, - 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */, - FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */, - 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */, - 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */, - B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */, - 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */, - C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */, - E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */, - 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */, - EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */, - C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */, - AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */, - 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */, - 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */, - E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */, - F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */, - 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */, - 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */, - FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */, - 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */, - 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */, - 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */, - 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */, - F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */, - B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */, - B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */, - B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */, - 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */, - A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */, - 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */, - D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */, - 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */, - 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */, - 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */, - 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */, - 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */, - 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */, - C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */, - 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */, - 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */, - 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */, - 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */, - 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */, - FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */, - 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */, - 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */, - 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */, - 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */, - CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */, - 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */, - 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */, - 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */, - AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */, - ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */, - 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */, - 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */, - 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */, - 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */, - F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */, - 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */, - F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */, - 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */, - 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */, - 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */, - B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */, - 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */, - 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */, - CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */, - 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */, - F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */, - B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */, - 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */, - 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */, - 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */, - 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */, - 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */, - 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */, - 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */, - 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */, - 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */, - 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */, - 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */, - 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */, - 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */, - CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */, - 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */, - E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */, - DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */, - 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */, - 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E356A2384A2368AB3D2C7912 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */, - 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */, - 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */, - B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */, - 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */, - 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */, - 224EFF991FBAAC4700CF9B3B /* (null) in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + B5996DB2D9B6F0DB0E9D3F3E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D819331DA581C7E0AC5F8CEF /* Animator.swift in Sources */, + F5A209116FAC68F5903D0B46 /* ChartAnimationEasing.swift in Sources */, + D29BBEF55C9CC90114919CD2 /* BarChartView.swift in Sources */, + 9F760570BCECB0BF5727AF90 /* BarLineChartViewBase.swift in Sources */, + E4B2F363414E84C4D4B8A885 /* BubbleChartView.swift in Sources */, + 60EDF735AAB7195DCFA5FE4D /* CandleStickChartView.swift in Sources */, + 98E2EEF45E8933E4AD182D58 /* ChartViewBase.swift in Sources */, + 0CAF514A280FF6A14E2A1A23 /* CombinedChartView.swift in Sources */, + A692D8BDE42717F69DB790BE /* HorizontalBarChartView.swift in Sources */, + 7E7561DE19DC7CABBE0B2D3A /* LineChartView.swift in Sources */, + 2876E17AEB1D92D7BBC4C38A /* PieChartView.swift in Sources */, + 0A772AEC08246FEC480673E5 /* PieRadarChartViewBase.swift in Sources */, + 6303DBDEE4FAB8E40D023BCE /* RadarChartView.swift in Sources */, + 5C457D9A50DA20869AD1739D /* ScatterChartView.swift in Sources */, + 48E875BBD6540BDE1C1B7D3D /* AxisBase.swift in Sources */, + 4390D74986A92DEF4F4F2BF0 /* ChartLimitLine.swift in Sources */, + FDBDAFA7A5337C6E3992DACE /* ComponentBase.swift in Sources */, + DBC9DB402CC9BB84B76968C4 /* Description.swift in Sources */, + 03960E8148C6AEDACE4B77CC /* Marker.swift in Sources */, + ECE7EAE7179A7F57CE9BBD8F /* Legend.swift in Sources */, + C20A62D8CB9120523D5FB650 /* LegendEntry.swift in Sources */, + 369DEB23452CB436A3A1A644 /* MarkerImage.swift in Sources */, + 9360348A04723E653FBC8B18 /* MarkerView.swift in Sources */, + 78084A4F1D850D5775BC139E /* XAxis.swift in Sources */, + 2FBA7E982EB57932B9F3E9B5 /* YAxis.swift in Sources */, + E50D291A6B6E69BF0B56A67C /* ChartBaseDataSet.swift in Sources */, + 3395682A1E27756651FF6F4D /* BarChartData.swift in Sources */, + 45C459FA25DFCBE62FA6A06C /* BarChartDataEntry.swift in Sources */, + 17E994DA88777AA1D8CCFC58 /* BarChartDataSet.swift in Sources */, + 7C9CE6718D18859A35146098 /* BarLineScatterCandleBubbleChartData.swift in Sources */, + 53A91F6F86740E26FE733639 /* BarLineScatterCandleBubbleChartDataSet.swift in Sources */, + E68CA3DC66EB638C956E09B8 /* BubbleChartData.swift in Sources */, + C09E91F67A4AC43C277E7D82 /* BubbleChartDataEntry.swift in Sources */, + 63C0A21D145BFEDED5406E4D /* BubbleChartDataSet.swift in Sources */, + DDE704689FDF2C0E0338488B /* CandleChartData.swift in Sources */, + D50B0EC2BB2245F32E757C50 /* CandleChartDataEntry.swift in Sources */, + 383D68A13E1C3D6A251E5147 /* CandleChartDataSet.swift in Sources */, + 81892994002C0640AD858748 /* ChartData.swift in Sources */, + EAEA60D22CA8C1B7E18D3F7D /* ChartDataEntry.swift in Sources */, + 7D546013F3A14FF5BB7F3294 /* ChartDataEntryBase.swift in Sources */, + 66A18A8EEBAAAC2EDA31ABEC /* ChartDataSet.swift in Sources */, + 331AA2C4BC34F56C23012F02 /* CombinedChartData.swift in Sources */, + C04D269AD4A373FD2B621C43 /* LineChartData.swift in Sources */, + 95B6D6F35684292A62DBEA74 /* LineChartDataSet.swift in Sources */, + 7CB7F74752619B0270CCB0A9 /* LineRadarChartDataSet.swift in Sources */, + FA07D034D9C3BC7795184ACA /* LineScatterCandleRadarChartDataSet.swift in Sources */, + 2C879FC24D7A15D70BE4063F /* PieChartData.swift in Sources */, + 23649EFC635A76022F07FFA6 /* PieChartDataEntry.swift in Sources */, + B539114951455C35BADAE3F3 /* PieChartDataSet.swift in Sources */, + 0C52C70C6E6EA09BD7426386 /* RadarChartData.swift in Sources */, + C2EFB4EC8C97FA9987F1B50D /* RadarChartDataEntry.swift in Sources */, + E3B28EA1E21279DF3889BCE8 /* RadarChartDataSet.swift in Sources */, + 22A8C4802002C85A004C1CAE /* DataApproximator+N.swift in Sources */, + 2B791E64E7C4523B1A63F72A /* ScatterChartData.swift in Sources */, + EB56849433A76B08606B73EB /* ScatterChartDataSet.swift in Sources */, + C3F0DDB7F0A922F0BB7EDB8A /* BarChartDataSetProtocol.swift in Sources */, + AF4AAF3709ED9DDF6362EAE8 /* BarLineScatterCandleBubbleChartDataSetProtocol.swift in Sources */, + 2C40CFFC8D88BEA70E0A50B0 /* BubbleChartDataSetProtocol.swift in Sources */, + 0D8A89398F9BD5DCC8D7F976 /* CandleChartDataSetProtocol.swift in Sources */, + E8F0F4F47CD7D72B4EE5A794 /* ChartDataSetProtocol.swift in Sources */, + F941C88BF814DF51C465CB95 /* LineChartDataSetProtocol.swift in Sources */, + 1311BEC21E9CC264E971EFAF /* LineRadarChartDataSetProtocol.swift in Sources */, + 146EE16342C2BADC92E45BF2 /* LineScatterCandleRadarChartDataSetProtocol.swift in Sources */, + FAAD9FF6565DED2652188584 /* PieChartDataSetProtocol.swift in Sources */, + 83BBAF3EDC31FD452F8BF1DB /* RadarChartDataSetProtocol.swift in Sources */, + 50476F8E6662CAFC1EFE0723 /* ScatterChartDataSetProtocol.swift in Sources */, + 97E033CC0ABEF0F448DAFA8E /* DataApproximator.swift in Sources */, + 779B46E9F13A087BFA47D539 /* DefaultAxisValueFormatter.swift in Sources */, + F744C510DA9B85C228BBB335 /* DefaultFillFormatter.swift in Sources */, + B0D28C68BB9A958DC56EB214 /* DefaultValueFormatter.swift in Sources */, + B13C74B4FF705D7B595D01EF /* AxisValueFormatter.swift in Sources */, + B6C9F450D937B87224D29D5C /* FillFormatter.swift in Sources */, + 967EE2EDDE3337C5C4337C59 /* IndexAxisValueFormatter.swift in Sources */, + A40ACF0CCE96EEE104B0463D /* ValueFormatter.swift in Sources */, + 3CBE95F1E9394FA08CDCF31E /* BarHighlighter.swift in Sources */, + D326491E8BCDE54A0921E137 /* ChartHighlighter.swift in Sources */, + 64FA1EDB4DC1F65727D52D10 /* CombinedHighlighter.swift in Sources */, + 758EB1C75063ED3373542F3B /* Highlight.swift in Sources */, + 4E98788ABEF6496C23F3E6C6 /* HorizontalBarHighlighter.swift in Sources */, + 203A39685CC96FC625F616E4 /* Highlighter.swift in Sources */, + 73EDF662AD989E930D365B72 /* PieHighlighter.swift in Sources */, + 3097296AC7FFA994FE4AD312 /* PieRadarHighlighter.swift in Sources */, + C33E1AF5471A60BA42DAF52E /* RadarHighlighter.swift in Sources */, + 9C91C151608E2D6E19B1EAD1 /* Range.swift in Sources */, + 00BC23EF0E04E17188344403 /* BarChartDataProvider.swift in Sources */, + 28FEE609C5B22FD64C7E5D10 /* BarLineScatterCandleBubbleChartDataProvider.swift in Sources */, + 4272DA5D44AF7DA05A5A8287 /* BubbleChartDataProvider.swift in Sources */, + 30DCC4BAA5601B154ABADA13 /* CandleChartDataProvider.swift in Sources */, + FD37AAC0270F390FFC470A65 /* ChartDataProvider.swift in Sources */, + 65EA404AE098EBCE8D5DE04B /* CombinedChartDataProvider.swift in Sources */, + 2BA03CEC36BADCF682F1328B /* LineChartDataProvider.swift in Sources */, + 0511E43EF3FD2CDE7F7F15DB /* ScatterChartDataProvider.swift in Sources */, + 7EE6EFE70CF4D8B09CAFCD01 /* AnimatedMoveViewJob.swift in Sources */, + CC7F8198A13249B5DEBBF25E /* AnimatedViewPortJob.swift in Sources */, + 0577C2B38BCE4C871F262714 /* AnimatedZoomViewJob.swift in Sources */, + 02A6E6E1A82A27A66B8D08C4 /* MoveViewJob.swift in Sources */, + 9400725714D0DA707DDECD2E /* ViewPortJob.swift in Sources */, + AEE9C4E4AC02B8FB3CD21975 /* ZoomViewJob.swift in Sources */, + ECECC58CEF03B1718F8267E8 /* AxisRenderer.swift in Sources */, + 23FA50B2730D8C7ACA091C4F /* BarChartRenderer.swift in Sources */, + 219192CA6B4895319AB49DCA /* BarLineScatterCandleBubbleRenderer.swift in Sources */, + 56E0F5EA9255B9B92876E040 /* BubbleChartRenderer.swift in Sources */, + 8BCCD709AACC565613D9DA68 /* CandleStickChartRenderer.swift in Sources */, + F37B07008B8AE7F3909FFB9C /* DataRenderer.swift in Sources */, + 05253AFC448C107DEF54C2FE /* CombinedChartRenderer.swift in Sources */, + F100D68395F169B93590FA96 /* HorizontalBarChartRenderer.swift in Sources */, + 2B821AAC3EBD60A73EACBCE6 /* LegendRenderer.swift in Sources */, + 5F96E95C7073D21EFE02BCF7 /* LineChartRenderer.swift in Sources */, + 24151B0729D77251A8494D70 /* LineRadarRenderer.swift in Sources */, + B6DCC229615EFE706F64A37D /* LineScatterCandleRadarRenderer.swift in Sources */, + 795E100895C24049509F1EDE /* PieChartRenderer.swift in Sources */, + 69EA073EDF75D49ABE1715D6 /* RadarChartRenderer.swift in Sources */, + CEF68F42A5390A73113F3663 /* Renderer.swift in Sources */, + 796D3E63A37A95FD9D1AB9A1 /* ChevronDownShapeRenderer.swift in Sources */, + F103D90FC5DEEA0D7BB4407E /* ChevronUpShapeRenderer.swift in Sources */, + B85DEB06B4C1AFFC8A0E3295 /* CircleShapeRenderer.swift in Sources */, + 0529DD51622C8769C1121F90 /* CrossShapeRenderer.swift in Sources */, + 8A9FF54E2075A9047CC8E953 /* ShapeRenderer.swift in Sources */, + 8EF7B3FBE37F72CC030CD865 /* SquareShapeRenderer.swift in Sources */, + 8F4B1A9060472764073DFA0B /* TriangleShapeRenderer.swift in Sources */, + 93A94E1FF55041A6032891FE /* XShapeRenderer.swift in Sources */, + 5DC9BC1B6C128B2C9995AB84 /* ScatterChartRenderer.swift in Sources */, + 41BEBF8BDB9DC403B5697D67 /* XAxisRenderer.swift in Sources */, + 2A94F1724FEA9E16A81A8E1F /* XAxisRendererHorizontalBarChart.swift in Sources */, + 4FACC6FD308AFB231EB4A93D /* XAxisRendererRadarChart.swift in Sources */, + 41B13F3179ACB5A3837C6E55 /* YAxisRenderer.swift in Sources */, + 846AC09831FA93F66732591B /* YAxisRendererHorizontalBarChart.swift in Sources */, + 11F68AA2EBF822D7208EE002 /* YAxisRendererRadarChart.swift in Sources */, + 40C82F2209E1BA9E41E8F3DA /* ChartColorTemplates.swift in Sources */, + CB785FE9B6B312408D17BC3B /* ChartUtils.swift in Sources */, + 8102A555DD6C93AC1290EA7C /* Fill.swift in Sources */, + E9FF0ECB5E0CA92DBF4C1BC4 /* Platform.swift in Sources */, + DE0F434FE8C24C52B023370F /* Transformer.swift in Sources */, + 8A463E2947F211C594CA5E95 /* TransformerHorizontalBarChart.swift in Sources */, + 515E286E6C47594D3FFA3DD1 /* ViewPortHandler.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E356A2384A2368AB3D2C7912 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3B11556EB7DC034E2FC958E4 /* BarChartTests.swift in Sources */, + 8E1192F7A7152E9DA92C56A9 /* ChartUtilsTests.swift in Sources */, + 2243BBFD1FF156EC00B49D0B /* EquatableTests.swift in Sources */, + B6BF9A561F91993A00E62A5D /* CombinedChartTests.swift in Sources */, + 2BF85BEA981B359A65E9BF67 /* LineChartTests.swift in Sources */, + 064989461F5C99C7006E8BB3 /* Snapshot.swift in Sources */, + 224EFF991FBAAC4700CF9B3B /* (null) in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 8676F8A013D87F9961E92465 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Charts; - target = A58A4ED274A941CA248EA921 /* Charts */; - targetProxy = C2005F425A98942473657ED2 /* PBXContainerItemProxy */; - }; + 8676F8A013D87F9961E92465 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Charts; + target = A58A4ED274A941CA248EA921 /* Charts */; + targetProxy = C2005F425A98942473657ED2 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0EF2164C35AB4D391B503317 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 4DD0BFDA94D4BC68192A1895 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( - "$(SRCROOT)/Carthage/Build/tvOS/", - "$(inherited)", - ); - "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( - "$(SRCROOT)/Carthage/Build/iOS/", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - A17F60813C38081A2F1803D4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2,3,4"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - C5C79E736CA16C93F421E934 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2,3,4"; - }; - name = Debug; - }; - D9365FBCFFEE9FCFC79EC4C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - FA978B0A385680C0086D4D49 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( - "$(SRCROOT)/Carthage/Build/tvOS/", - "$(inherited)", - ); - "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( - "$(SRCROOT)/Carthage/Build/iOS/", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Release; - }; + 0EF2164C35AB4D391B503317 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4DD0BFDA94D4BC68192A1895 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( + "$(SRCROOT)/Carthage/Build/tvOS/", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( + "$(SRCROOT)/Carthage/Build/iOS/", + "$(inherited)", + ); + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + A17F60813C38081A2F1803D4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + SDKROOT = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2,3,4"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C5C79E736CA16C93F421E934 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2,3,4"; + }; + name = Debug; + }; + D9365FBCFFEE9FCFC79EC4C7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FA978B0A385680C0086D4D49 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=appletv*]" = ( + "$(SRCROOT)/Carthage/Build/tvOS/", + "$(inherited)", + ); + "FRAMEWORK_SEARCH_PATHS[sdk=iphone*]" = ( + "$(SRCROOT)/Carthage/Build/iOS/", + "$(inherited)", + ); + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.dcg.ChartsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator appletvos appletvsimulator"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C5C79E736CA16C93F421E934 /* Debug */, - A17F60813C38081A2F1803D4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FA978B0A385680C0086D4D49 /* Release */, - 4DD0BFDA94D4BC68192A1895 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D9365FBCFFEE9FCFC79EC4C7 /* Release */, - 0EF2164C35AB4D391B503317 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C5C79E736CA16C93F421E934 /* Debug */, + A17F60813C38081A2F1803D4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E61E9728E2BF9CC4048B13D5 /* Build configuration list for PBXNativeTarget "ChartsTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FA978B0A385680C0086D4D49 /* Release */, + 4DD0BFDA94D4BC68192A1895 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F1D4AA9E26EA32041FC0E3B6 /* Build configuration list for PBXNativeTarget "Charts" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D9365FBCFFEE9FCFC79EC4C7 /* Release */, + 0EF2164C35AB4D391B503317 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 193FC8DF32D250560C5F5D77 /* Project object */; + }; + rootObject = 193FC8DF32D250560C5F5D77 /* Project object */; } diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index efb5536d88..ff61920f7c 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -72,14 +72,14 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// The right Y axis renderer. This is a read-write property so you can set your own custom renderer here. /// **default**: An instance of YAxisRenderer @objc open lazy var rightYAxisRenderer = YAxisRenderer(viewPortHandler: viewPortHandler, axis: rightAxis, transformer: _rightAxisTransformer) - + internal var _leftAxisTransformer: Transformer! internal var _rightAxisTransformer: Transformer! /// The X axis renderer. This is a read-write property so you can set your own custom renderer here. /// **default**: An instance of XAxisRenderer @objc open lazy var xAxisRenderer = XAxisRenderer(viewPortHandler: viewPortHandler, axis: xAxis, transformer: _leftAxisTransformer) - + internal var _tapGestureRecognizer: NSUITapGestureRecognizer! internal var _doubleTapGestureRecognizer: NSUITapGestureRecognizer! #if !os(tvOS) @@ -111,7 +111,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD _leftAxisTransformer = Transformer(viewPortHandler: viewPortHandler) _rightAxisTransformer = Transformer(viewPortHandler: viewPortHandler) - + self.highlighter = ChartHighlighter(chart: self) _tapGestureRecognizer = NSUITapGestureRecognizer(target: self, action: #selector(tapGestureRecognized(_:))) diff --git a/Source/Charts/Charts/HorizontalBarChartView.swift b/Source/Charts/Charts/HorizontalBarChartView.swift index e766471f62..391c97e81d 100644 --- a/Source/Charts/Charts/HorizontalBarChartView.swift +++ b/Source/Charts/Charts/HorizontalBarChartView.swift @@ -25,7 +25,7 @@ open class HorizontalBarChartView: BarChartView _leftAxisTransformer = TransformerHorizontalBarChart(viewPortHandler: viewPortHandler) _rightAxisTransformer = TransformerHorizontalBarChart(viewPortHandler: viewPortHandler) - + renderer = HorizontalBarChartRenderer(dataProvider: self, animator: chartAnimator, viewPortHandler: viewPortHandler) leftYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: viewPortHandler, axis: leftAxis, transformer: _leftAxisTransformer) rightYAxisRenderer = YAxisRendererHorizontalBarChart(viewPortHandler: viewPortHandler, axis: rightAxis, transformer: _rightAxisTransformer) diff --git a/Source/Charts/Filters/DataApproximator+N.swift b/Source/Charts/Filters/DataApproximator+N.swift new file mode 100644 index 0000000000..1b31dbc870 --- /dev/null +++ b/Source/Charts/Filters/DataApproximator+N.swift @@ -0,0 +1,152 @@ +// +// DataApproximator+N.swift +// Charts +// +// Created by M Ivaniushchenko on 9/6/17. +// Licensed under Apache License 2.0 +// +// https://github.com/danielgindi/Charts +// + +import Foundation + +extension CGPoint { + fileprivate func distanceToLine(from linePoint1: CGPoint, to linePoint2: CGPoint) -> CGFloat { + let dx = linePoint2.x - linePoint1.x + let dy = linePoint2.y - linePoint1.y + + let dividend = fabs(dy * self.x - dx * self.y - linePoint1.x * linePoint2.y + linePoint2.x * linePoint1.y) + let divisor = sqrt(dx * dx + dy * dy) + + return dividend / divisor + } +} + +private struct LineAlt { + let start: Int + let end: Int + + var distance: CGFloat = 0 + var index: Int = 0 + + init(start: Int, end: Int, points: [CGPoint]) { + self.start = start + self.end = end + + let startPoint = points[start] + let endPoint = points[end] + + guard (end > start + 1) else { + return + } + + for i in start + 1 ..< end { + let currentPoint = points[i] + + let distance = currentPoint.distanceToLine(from: startPoint, to: endPoint) + + if distance > self.distance { + self.index = i + self.distance = distance + } + } + } +} + +extension LineAlt: Comparable { + static func ==(lhs: LineAlt, rhs: LineAlt) -> Bool { + return (lhs.start == rhs.start) && (lhs.end == rhs.end) && (lhs.index == rhs.index) + } + + static func <(lhs: LineAlt, rhs: LineAlt) -> Bool { + return lhs.distance < rhs.distance + } +} + + +extension DataApproximator { + /// uses the douglas peuker algorithm to reduce the given arraylist of entries to given number of points + /// More algorithm details here - http://psimpl.sourceforge.net/douglas-peucker.html + @objc open class func reduceWithDouglasPeukerN(_ points: [CGPoint], resultCount: Int) -> [CGPoint] + { + // if a shape has 2 or less points it cannot be reduced + if resultCount <= 2 || resultCount >= points.count + { + return points + } + var keep = [Bool](repeating: false, count: points.count) + + // first and last always stay + keep[0] = true + keep[points.count - 1] = true + var currentStoredPoints = 2 + + var queue = [LineAlt]() + let line = LineAlt(start: 0, end: points.count - 1, points: points) + queue.append(line) + + repeat { + let line = queue.popLast()! + + // store the key + keep[line.index] = true + + // check point count tolerance + currentStoredPoints += 1 + + if (currentStoredPoints == resultCount) { + break; + } + + // split the polyline at the key and recurse + let left = LineAlt(start: line.start, end: line.index, points: points) + if (left.index > 0) { + self.insertLine(left, into: &queue) + } + + let right = LineAlt(start: line.index, end: line.end, points: points) + if (right.index > 0) { + self.insertLine(right, into: &queue) + } + + } while !queue.isEmpty + + // create a new array with series, only take the kept ones + let reducedEntries = points.enumerated().flatMap { (index: Int, point: CGPoint) -> CGPoint? in + return keep[index] ? point : nil + } + + return reducedEntries + } + + // Keeps array sorted + private static func insertLine(_ line: LineAlt, into array: inout [LineAlt]) { + let insertionIndex = self.insertionIndex(for: line, into: &array) + array.insert(line, at: insertionIndex) + } + + private static func insertionIndex(for line: LineAlt, into array: inout [LineAlt]) -> Int { + var indices = array.indices + + while !indices.isEmpty { + let midIndex = indices.lowerBound.advanced(by: indices.count / 2) + let midLine = array[midIndex] + + if midLine == line { + return midIndex + } + else if (line < midLine) { + // perform search in left half + indices = indices.lowerBound.. Highlight? { - let high = super.getHighlight(x: x, y: y) + guard + let barData = (self.chart as? BarChartDataProvider)?.barData, + let high = super.getHighlight(x: x, y: y) + else { return nil } - if high == nil + let pos = getValsForTouch(x: x, y: y) + + if let set = barData.getDataSetByIndex(high.dataSetIndex) as? BarChartDataSetProtocol, + set.isStacked { - return nil + return getStackedHighlight(high: high, + set: set, + xValue: Double(pos.x), + yValue: Double(pos.y)) } - - if let barData = (self.chart as? BarChartDataProvider)?.barData + else { - let pos = getValsForTouch(x: x, y: y) - - if - let set = barData.getDataSetByIndex(high!.dataSetIndex) as? BarChartDataSetProtocol, - set.isStacked - { - return getStackedHighlight(high: high!, - set: set, - xValue: Double(pos.x), - yValue: Double(pos.y)) - } - return high } - return nil } internal override func getDistance(x1: CGFloat, y1: CGFloat, x2: CGFloat, y2: CGFloat) -> CGFloat @@ -75,25 +70,23 @@ open class BarHighlighter: ChartHighlighter return high } - if let ranges = entry.ranges, + guard + let ranges = entry.ranges, ranges.count > 0 - { - let stackIndex = getClosestStackIndex(ranges: ranges, value: yValue) - - let pixel = chart - .getTransformer(forAxis: set.axisDependency) - .pixelForValues(x: high.x, y: ranges[stackIndex].to) - - return Highlight(x: entry.x, - y: entry.y, - xPx: pixel.x, - yPx: pixel.y, - dataSetIndex: high.dataSetIndex, - stackIndex: stackIndex, - axis: high.axis) - } - - return nil + else { return nil } + + let stackIndex = getClosestStackIndex(ranges: ranges, value: yValue) + let pixel = chart + .getTransformer(forAxis: set.axisDependency) + .pixelForValues(x: high.x, y: ranges[stackIndex].to) + + return Highlight(x: entry.x, + y: entry.y, + xPx: pixel.x, + yPx: pixel.y, + dataSetIndex: high.dataSetIndex, + stackIndex: stackIndex, + axis: high.axis) } /// - returns: The index of the closest value inside the values array / ranges (stacked barchart) to the value given as a parameter. @@ -102,14 +95,11 @@ open class BarHighlighter: ChartHighlighter /// - returns: @objc open func getClosestStackIndex(ranges: [Range]?, value: Double) -> Int { - if ranges == nil - { - return 0 - } - + guard let ranges = ranges else { return 0 } + var stackIndex = 0 - for range in ranges! + for range in ranges { if range.contains(value) { @@ -121,8 +111,8 @@ open class BarHighlighter: ChartHighlighter } } - let length = max(ranges!.count - 1, 0) + let length = max(ranges.count - 1, 0) - return (value > ranges![length].to) ? length : 0 + return (value > ranges[length].to) ? length : 0 } } diff --git a/Source/Charts/Highlight/ChartHighlighter.swift b/Source/Charts/Highlight/ChartHighlighter.swift index abc0a3e4a4..c62c2a8365 100644 --- a/Source/Charts/Highlight/ChartHighlighter.swift +++ b/Source/Charts/Highlight/ChartHighlighter.swift @@ -25,7 +25,6 @@ open class ChartHighlighter : NSObject, Highlighter open func getHighlight(x: CGFloat, y: CGFloat) -> Highlight? { let xVal = Double(getValsForTouch(x: x, y: y).x) - return getHighlight(xValue: xVal, x: x, y: y) } @@ -34,11 +33,10 @@ open class ChartHighlighter : NSObject, Highlighter /// - returns: @objc open func getValsForTouch(x: CGFloat, y: CGFloat) -> CGPoint { - guard let chart = self.chart as? BarLineScatterCandleBubbleChartDataProvider - else { return CGPoint.zero } + guard let chart = self.chart as? BarLineScatterCandleBubbleChartDataProvider else { return .zero } // take any transformer to determine the values - return chart.getTransformer(forAxis: YAxis.AxisDependency.left).valueForTouchPoint(x: x, y: y) + return chart.getTransformer(forAxis: .left).valueForTouchPoint(x: x, y: y) } /// - returns: The corresponding ChartHighlight for a given x-value and xy-touch position in pixels. @@ -48,19 +46,15 @@ open class ChartHighlighter : NSObject, Highlighter /// - returns: @objc open func getHighlight(xValue xVal: Double, x: CGFloat, y: CGFloat) -> Highlight? { - guard let chart = chart - else { return nil } + guard let chart = chart else { return nil } let closestValues = getHighlights(xValue: xVal, x: x, y: y) - if closestValues.isEmpty - { - return nil - } + guard !closestValues.isEmpty else { return nil } - let leftAxisMinDist = getMinimumDistance(closestValues: closestValues, y: y, axis: YAxis.AxisDependency.left) - let rightAxisMinDist = getMinimumDistance(closestValues: closestValues, y: y, axis: YAxis.AxisDependency.right) + let leftAxisMinDist = getMinimumDistance(closestValues: closestValues, y: y, axis: .left) + let rightAxisMinDist = getMinimumDistance(closestValues: closestValues, y: y, axis: .right) - let axis = leftAxisMinDist < rightAxisMinDist ? YAxis.AxisDependency.left : YAxis.AxisDependency.right + let axis: YAxis.AxisDependency = leftAxisMinDist < rightAxisMinDist ? .left : .right let detail = closestSelectionDetailByPixel(closestValues: closestValues, x: x, y: y, axis: axis, minSelectionDistance: chart.maxHighlightDistance) @@ -77,24 +71,18 @@ open class ChartHighlighter : NSObject, Highlighter { var vals = [Highlight]() - guard let - data = self.data - else { return vals } + guard let data = self.data else { return vals } for i in 0 ..< data.dataSetCount { - guard let dataSet = data.getDataSetByIndex(i) + guard + let dataSet = data.getDataSetByIndex(i), + dataSet.isHighlightEnabled // don't include datasets that cannot be highlighted else { continue } - // don't include datasets that cannot be highlighted - if !dataSet.isHighlightEnabled - { - continue - } - + // extract all y-values from all DataSets at the given x-value. // some datasets (i.e bubble charts) make sense to have multiple values for an x-value. We'll have to find a way to handle that later on. It's more complicated now when x-indices are floating point. - vals.append(contentsOf: buildHighlights(dataSet: dataSet, dataSetIndex: i, xValue: xValue, rounding: .closest)) } @@ -110,24 +98,21 @@ open class ChartHighlighter : NSObject, Highlighter { var highlights = [Highlight]() - guard let chart = self.chart as? BarLineScatterCandleBubbleChartDataProvider - else { return highlights } + guard let chart = self.chart as? BarLineScatterCandleBubbleChartDataProvider else { return highlights } var entries = set.entriesForXValue(xValue) - if entries.count == 0 + if entries.count == 0, let closest = set.entryForXValue(xValue, closestToY: .nan, rounding: rounding) { // Try to find closest x-value and take all entries for that x-value - if let closest = set.entryForXValue(xValue, closestToY: Double.nan, rounding: rounding) - { - entries = set.entriesForXValue(closest.x) - } + entries = set.entriesForXValue(closest.x) } for e in entries { let px = chart.getTransformer(forAxis: set.axisDependency).pixelForValues(x: e.x, y: e.y) - - highlights.append(Highlight(x: e.x, y: e.y, xPx: px.x, yPx: px.y, dataSetIndex: dataSetIndex, axis: set.axisDependency)) + + let highlight = Highlight(x: e.x, y: e.y, xPx: px.x, yPx: px.y, dataSetIndex: dataSetIndex, axis: set.axisDependency) + highlights.append(highlight) } return highlights @@ -146,14 +131,12 @@ open class ChartHighlighter : NSObject, Highlighter var distance = minSelectionDistance var closest: Highlight? - for i in 0 ..< closestValues.count + for high in closestValues { - let high = closestValues[i] - if axis == nil || high.axis == axis { let cDistance = getDistance(x1: x, y1: y, x2: high.xPx, y2: high.yPx) - + if cDistance < distance { closest = high @@ -173,10 +156,8 @@ open class ChartHighlighter : NSObject, Highlighter { var distance = CGFloat.greatestFiniteMagnitude - for i in 0 ..< closestValues.count + for high in closestValues { - let high = closestValues[i] - if high.axis == axis { let tempDistance = abs(getHighlightPos(high: high) - y) diff --git a/Source/Charts/Highlight/CombinedHighlighter.swift b/Source/Charts/Highlight/CombinedHighlighter.swift index f7ca82f71c..7053df09d3 100644 --- a/Source/Charts/Highlight/CombinedHighlighter.swift +++ b/Source/Charts/Highlight/CombinedHighlighter.swift @@ -30,46 +30,38 @@ open class CombinedHighlighter: ChartHighlighter { var vals = [Highlight]() - guard let chart = self.chart as? CombinedChartDataProvider + guard + let chart = self.chart as? CombinedChartDataProvider, + let dataObjects = chart.combinedData?.allData else { return vals } - if let dataObjects = chart.combinedData?.allData + for i in 0.. Highlight? { - if let barData = self.chart?.data as? BarChartData + guard let barData = self.chart?.data as? BarChartData else { return nil } + + let pos = getValsForTouch(x: y, y: x) + guard let high = getHighlight(xValue: Double(pos.y), x: y, y: x) else { return nil } + + if let set = barData.getDataSetByIndex(high.dataSetIndex) as? BarChartDataSetProtocol, + set.isStacked { - let pos = getValsForTouch(x: y, y: x) - - guard let high = getHighlight(xValue: Double(pos.y), x: y, y: x) - else { return nil } - - if let set = barData.getDataSetByIndex(high.dataSetIndex) as? BarChartDataSetProtocol, - set.isStacked - { - return getStackedHighlight(high: high, - set: set, - xValue: Double(pos.y), - yValue: Double(pos.x)) - } - - return high + return getStackedHighlight(high: high, + set: set, + xValue: Double(pos.y), + yValue: Double(pos.x)) } - return nil + + return high } internal override func buildHighlights( @@ -46,17 +42,13 @@ open class HorizontalBarHighlighter: BarHighlighter { var highlights = [Highlight]() - guard let chart = self.chart as? BarLineScatterCandleBubbleChartDataProvider - else { return highlights } + guard let chart = self.chart as? BarLineScatterCandleBubbleChartDataProvider else { return highlights } var entries = set.entriesForXValue(xValue) - if entries.count == 0 + if entries.count == 0, let closest = set.entryForXValue(xValue, closestToY: .nan, rounding: rounding) { // Try to find closest x-value and take all entries for that x-value - if let closest = set.entryForXValue(xValue, closestToY: Double.nan, rounding: rounding) - { - entries = set.entriesForXValue(closest.x) - } + entries = set.entriesForXValue(closest.x) } for e in entries diff --git a/Source/Charts/Highlight/PieHighlighter.swift b/Source/Charts/Highlight/PieHighlighter.swift index 2d0a18534e..54bb3d7b83 100644 --- a/Source/Charts/Highlight/PieHighlighter.swift +++ b/Source/Charts/Highlight/PieHighlighter.swift @@ -17,12 +17,11 @@ open class PieHighlighter: PieRadarHighlighter { open override func closestHighlight(index: Int, x: CGFloat, y: CGFloat) -> Highlight? { - guard let set = chart?.data?.dataSets[0] + guard + let set = chart?.data?.dataSets[0], + let entry = set.entryForIndex(index) else { return nil } - - guard let entry = set.entryForIndex(index) - else { return nil } - + return Highlight(x: Double(index), y: entry.y, xPx: x, yPx: y, dataSetIndex: 0, axis: set.axisDependency) } } diff --git a/Source/Charts/Highlight/PieRadarHighlighter.swift b/Source/Charts/Highlight/PieRadarHighlighter.swift index abcea4aca8..ec77e72f5b 100644 --- a/Source/Charts/Highlight/PieRadarHighlighter.swift +++ b/Source/Charts/Highlight/PieRadarHighlighter.swift @@ -17,38 +17,36 @@ open class PieRadarHighlighter: ChartHighlighter { open override func getHighlight(x: CGFloat, y: CGFloat) -> Highlight? { - guard let chart = self.chart as? PieRadarChartViewBase - else { return nil } + guard let chart = self.chart as? PieRadarChartViewBase else { return nil } let touchDistanceToCenter = chart.distanceToCenter(x: x, y: y) // check if a slice was touched - if touchDistanceToCenter > chart.radius + guard touchDistanceToCenter <= chart.radius else { // if no slice was touched, highlight nothing return nil } + + var angle = chart.angleForPoint(x: x ,y: y) + + if chart is PieChartView + { + angle /= CGFloat(chart.chartAnimator.phaseY) + } + + let index = chart.indexForAngle(angle) + + // check if the index could be found + if index < 0 || index >= chart.data?.maxEntryCountSet?.entryCount ?? 0 + { + return nil + } else { - var angle = chart.angleForPoint(x: x ,y: y) - - if chart is PieChartView - { - angle /= CGFloat(chart.chartAnimator.phaseY) - } - - let index = chart.indexForAngle(angle) - - // check if the index could be found - if index < 0 || index >= chart.data?.maxEntryCountSet?.entryCount ?? 0 - { - return nil - } - else - { - return closestHighlight(index: index, x: x, y: y) - } + return closestHighlight(index: index, x: x, y: y) } + } /// - returns: The closest Highlight object of the given objects based on the touch position inside the chart. diff --git a/Source/Charts/Highlight/RadarHighlighter.swift b/Source/Charts/Highlight/RadarHighlighter.swift index bedd95037c..da36aedd4f 100644 --- a/Source/Charts/Highlight/RadarHighlighter.swift +++ b/Source/Charts/Highlight/RadarHighlighter.swift @@ -17,14 +17,13 @@ open class RadarHighlighter: PieRadarHighlighter { open override func closestHighlight(index: Int, x: CGFloat, y: CGFloat) -> Highlight? { - guard let chart = self.chart as? RadarChartView - else { return nil } + guard let chart = self.chart as? RadarChartView else { return nil } let highlights = getHighlights(forIndex: index) let distanceToCenter = Double(chart.distanceToCenter(x: x, y: y) / chart.factor) - var closest: Highlight? = nil + var closest: Highlight? var distance = Double.greatestFiniteMagnitude for high in highlights @@ -48,7 +47,9 @@ open class RadarHighlighter: PieRadarHighlighter { var vals = [Highlight]() - guard let chart = self.chart as? RadarChartView + guard + let chart = self.chart as? RadarChartView, + let chartData = chart.data else { return vals } let phaseX = chart.chartAnimator.phaseX @@ -56,12 +57,11 @@ open class RadarHighlighter: PieRadarHighlighter let sliceangle = chart.sliceAngle let factor = chart.factor - for i in 0..<(chart.data?.dataSetCount ?? 0) + for i in chartData.dataSets.indices { - guard let dataSet = chart.data?.getDataSetByIndex(i) - else { continue } - - guard let entry = dataSet.entryForIndex(index) + guard + let dataSet = chartData.getDataSetByIndex(i), + let entry = dataSet.entryForIndex(index) else { continue } let y = (entry.y - chart.chartYMin) @@ -69,7 +69,8 @@ open class RadarHighlighter: PieRadarHighlighter let p = chart.centerOffsets.moving(distance: CGFloat(y) * factor * CGFloat(phaseY), atAngle: sliceangle * CGFloat(index) * CGFloat(phaseX) + chart.rotationAngle) - vals.append(Highlight(x: Double(index), y: entry.y, xPx: p.x, yPx: p.y, dataSetIndex: i, axis: dataSet.axisDependency)) + let highlight = Highlight(x: Double(index), y: entry.y, xPx: p.x, yPx: p.y, dataSetIndex: i, axis: dataSet.axisDependency) + vals.append(highlight) } return vals diff --git a/Source/Charts/Renderers/AxisRendererBase.swift b/Source/Charts/Renderers/AxisRendererBase.swift new file mode 100644 index 0000000000..19ebf9527e --- /dev/null +++ b/Source/Charts/Renderers/AxisRendererBase.swift @@ -0,0 +1,211 @@ +// +// AxisRendererBase.swift +// Charts +// +// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda +// A port of MPAndroidChart for iOS +// Licensed under Apache License 2.0 +// +// https://github.com/danielgindi/Charts +// + +import Foundation +import CoreGraphics + +@objc(ChartAxisRendererBase) +open class AxisRendererBase: Renderer +{ + /// base axis this axis renderer works with + @objc open var axis: AxisBase? + + /// transformer to transform values to screen pixels and return + @objc open var transformer: Transformer? + + @objc public init(viewPortHandler: ViewPortHandler, transformer: Transformer?, axis: AxisBase?) + { + super.init(viewPortHandler: viewPortHandler) + + self.transformer = transformer + self.axis = axis + } + + /// Draws the axis labels on the specified context + @objc open func renderAxisLabels(context: CGContext) + { + fatalError("renderAxisLabels() cannot be called on AxisRendererBase") + } + + /// Draws the grid lines belonging to the axis. + @objc open func renderGridLines(context: CGContext) + { + fatalError("renderGridLines() cannot be called on AxisRendererBase") + } + + /// Draws the line that goes alongside the axis. + @objc open func renderAxisLine(context: CGContext) + { + fatalError("renderAxisLine() cannot be called on AxisRendererBase") + } + + /// Draws the LimitLines associated with this axis to the screen. + @objc open func renderLimitLines(context: CGContext) + { + fatalError("renderLimitLines() cannot be called on AxisRendererBase") + } + + /// Computes the axis values. + /// - parameter min: the minimum value in the data object for this axis + /// - parameter max: the maximum value in the data object for this axis + @objc open func computeAxis(min: Double, max: Double, inverted: Bool) + { + var min = min, max = max + + if let transformer = self.transformer + { + // calculate the starting and entry point of the y-labels (depending on zoom / contentrect bounds) + if viewPortHandler.contentWidth > 10.0 && !viewPortHandler.isFullyZoomedOutY + { + let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) + let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) + + if !inverted + { + min = Double(p2.y) + max = Double(p1.y) + } + else + { + min = Double(p1.y) + max = Double(p2.y) + } + } + } + + computeAxisValues(min: min, max: max) + } + + /// Sets up the axis values. Computes the desired number of labels between the two given extremes. + @objc open func computeAxisValues(min: Double, max: Double) + { + guard let axis = self.axis else { return } + + let yMin = min + let yMax = max + + let labelCount = axis.labelCount + let range = abs(yMax - yMin) + + if labelCount == 0 || range <= 0 || range.isInfinite + { + axis.entries = [Double]() + axis.centeredEntries = [Double]() + return + } + + // Find out how much spacing (in y value space) between axis values + let rawInterval = range / Double(labelCount) + var interval = rawInterval.roundedToNextSignficant() + + // If granularity is enabled, then do not allow the interval to go below specified granularity. + // This is used to avoid repeated values when rounding values for display. + if axis.granularityEnabled + { + interval = interval < axis.granularity ? axis.granularity : interval + } + + // Normalize interval + let intervalMagnitude = pow(10.0, Double(Int(log10(interval)))).roundedToNextSignficant() + let intervalSigDigit = Int(interval / intervalMagnitude) + if intervalSigDigit > 5 + { + // Use one order of magnitude higher, to avoid intervals like 0.9 or 90 + interval = floor(10.0 * Double(intervalMagnitude)) + } + + var n = axis.centerAxisLabelsEnabled ? 1 : 0 + + // force label count + if axis.isForceLabelsEnabled + { + interval = Double(range) / Double(labelCount - 1) + + // Ensure stops contains at least n elements. + axis.entries.removeAll(keepingCapacity: true) + axis.entries.reserveCapacity(labelCount) + + var v = yMin + + for _ in 0 ..< labelCount + { + axis.entries.append(v) + v += interval + } + + n = labelCount + } + else + { + // no forced count + + var first = interval == 0.0 ? 0.0 : ceil(yMin / interval) * interval + + if axis.centerAxisLabelsEnabled + { + first -= interval + } + + let last = interval == 0.0 ? 0.0 : (floor(yMax / interval) * interval).nextUp + + if interval != 0.0 && last != first + { + for _ in stride(from: first, through: last, by: interval) + { + n += 1 + } + } + + // Ensure stops contains at least n elements. + axis.entries.removeAll(keepingCapacity: true) + axis.entries.reserveCapacity(labelCount) + + var f = first + var i = 0 + while i < n + { + if f == 0.0 + { + // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) + f = 0.0 + } + + axis.entries.append(Double(f)) + + f += interval + i += 1 + } + } + + // set decimals + if interval < 1 + { + axis.decimals = Int(ceil(-log10(interval))) + } + else + { + axis.decimals = 0 + } + + if axis.centerAxisLabelsEnabled + { + axis.centeredEntries.reserveCapacity(n) + axis.centeredEntries.removeAll() + + let offset: Double = interval / 2.0 + + for i in 0 ..< n + { + axis.centeredEntries.append(axis.entries[i] + offset) + } + } + } +} diff --git a/Source/Charts/Renderers/YAxisRendererRadarChart.swift b/Source/Charts/Renderers/YAxisRendererRadarChart.swift index f8597d6f49..c9bd090537 100644 --- a/Source/Charts/Renderers/YAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererRadarChart.swift @@ -42,7 +42,7 @@ open class YAxisRendererRadarChart: YAxisRenderer // Find out how much spacing (in yValue space) between axis values let rawInterval = range / Double(labelCount) var interval = rawInterval.roundedToNextSignificant() - + // If granularity is enabled, then do not allow the interval to go below specified granularity. // This is used to avoid repeated values when rounding values for display. if axis.isGranularityEnabled diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index 5049d879b0..3e15790eb9 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -100,7 +100,7 @@ extension CGPoint open class ChartUtils { private static var _defaultValueFormatter: ValueFormatter = ChartUtils.generateDefaultValueFormatter() - + open class func drawImage( context: CGContext, image: NSUIImage, From 9d8b76da80983a29ee5aa1eca68d735d936b9992 Mon Sep 17 00:00:00 2001 From: jjatie Date: Sun, 7 Jan 2018 21:17:57 -0400 Subject: [PATCH 06/84] Moved ChartUtils drawing methods into CGContext extension (#3086) * Fixed using wrong axis (Issue #2257) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 (#2874) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 * add combined chart unit tests for iOS, tvOS (macOS only have build process) * use iterater rather than index * Removed redundant ivars in BarLineChartViewBase (#3043) * Removed redundant ivars in favour of proper access control * Moved initialization of axes to their declaration to keep the same optionality exposed. * Update 4.0.0 with master (#3135) * Replaced relevant `ChartUtils` methods with `Double` extensions (#2994) * Replaced relevant `ChartUtils` methods with `Double` extensions Improves readability. `nextUp` is built in and provides the same functionality. * Updated `ChartUtilsTests` to match changes * add option to build demo projects unit tests on iOS (#3121) * add option to build demo projects unit tests on iOS * add ChartsDemo-OSX build test. * Update ViewPortHandler.swift (#3143) fix a small bug * Refactored ChartUtils method into CGPoint extension (#3087) * Refactored ChartUtils method into CGPoint extension * Replaced ChartUtils.defaultValueFormatter() * Codestyle fixes * Minor cleanup to Highlighter types (#3003) * Minor cleanup to Highlighter types * Fixes for PR * Pulled master and updated code style * added DataApproximator+N extension (#2848) * added DataApproximator+N extension * fixed PR notes * Moved drawing methods into CGContext extension Much nicer call sites. Renamed some parameter names. Removed `NSAttributedStringKey` where type inference was sufficient. Minor tidy of drawText calls in AxisRenderers * Pulled latest master * Pulled master * Fixed code style --- .../Charts/Charts/BarLineChartViewBase.swift | 2 +- Source/Charts/Charts/ChartViewBase.swift | 35 ++-- Source/Charts/Charts/PieChartView.swift | 11 +- Source/Charts/Charts/RadarChartView.swift | 2 +- Source/Charts/Components/Legend.swift | 9 +- Source/Charts/Components/YAxis.swift | 2 +- .../Charts/Highlight/RadarHighlighter.swift | 4 +- .../Charts/Renderers/BarChartRenderer.swift | 30 ++-- .../Renderers/BubbleChartRenderer.swift | 23 ++- .../Renderers/CandleStickChartRenderer.swift | 30 ++-- .../HorizontalBarChartRenderer.swift | 44 ++--- Source/Charts/Renderers/LegendRenderer.swift | 4 +- .../Charts/Renderers/LineChartRenderer.swift | 33 ++-- .../Charts/Renderers/PieChartRenderer.swift | 115 +++++-------- .../Charts/Renderers/RadarChartRenderer.swift | 28 ++- .../Renderers/ScatterChartRenderer.swift | 23 ++- Source/Charts/Renderers/XAxisRenderer.swift | 100 +++++------ .../XAxisRendererHorizontalBarChart.swift | 86 ++++------ .../Renderers/XAxisRendererRadarChart.swift | 16 +- Source/Charts/Renderers/YAxisRenderer.swift | 82 ++++----- .../YAxisRendererHorizontalBarChart.swift | 76 ++++----- .../Renderers/YAxisRendererRadarChart.swift | 14 +- Source/Charts/Utils/ChartUtils.swift | 160 +++++++++--------- 23 files changed, 402 insertions(+), 527 deletions(-) diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index ff61920f7c..aa7591fcb8 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -268,7 +268,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD legendRenderer.renderLegend(context: context) - drawDescription(context: context) + drawDescription(in: context) drawMarkers(context: context) } diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index c7967535f3..2135413042 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -265,25 +265,20 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate { let optionalContext = NSUIGraphicsGetCurrentContext() guard let context = optionalContext else { return } - - let frame = self.bounds if data === nil && !noDataText.isEmpty { context.saveGState() defer { context.restoreGState() } - ChartUtils.drawMultilineText( - context: context, - text: noDataText, - point: CGPoint(x: frame.width / 2.0, y: frame.height / 2.0), - attributes: - [.font: noDataFont, - .foregroundColor: noDataTextColor], - constrainedToSize: self.bounds.size, - anchor: CGPoint(x: 0.5, y: 0.5), - angleRadians: 0.0) - + context.drawMultilineText(noDataText, + at: CGPoint(x: bounds.width / 2.0, y: bounds.height / 2.0), + constrainedTo: bounds.size, + anchor: CGPoint(x: 0.5, y: 0.5), + angleRadians: 0.0, + attributes: [.font: noDataFont, + .foregroundColor: noDataTextColor]) + return } @@ -295,7 +290,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate } /// Draws the description text in the bottom right corner of the chart (per default) - internal func drawDescription(context: CGContext) + internal func drawDescription(in context: CGContext) { let description = chartDescription @@ -308,18 +303,16 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate let position = description.position ?? CGPoint(x: bounds.width - viewPortHandler.offsetRight - description.xOffset, y: bounds.height - viewPortHandler.offsetBottom - description.yOffset - description.font.lineHeight) - + let attrs: [NSAttributedStringKey : Any] = [ .font: description.font, .foregroundColor: description.textColor ] - ChartUtils.drawText( - context: context, - text: descriptionText, - point: position, - align: description.textAlign, - attributes: attrs) + context.drawText(descriptionText, + at: position, + align: description.textAlign, + attributes: attrs) } // MARK: - Highlighting diff --git a/Source/Charts/Charts/PieChartView.swift b/Source/Charts/Charts/PieChartView.swift index e8b653bc1e..b4bfbd6b7f 100644 --- a/Source/Charts/Charts/PieChartView.swift +++ b/Source/Charts/Charts/PieChartView.swift @@ -119,7 +119,7 @@ open class PieChartView: PieRadarChartViewBase legendRenderer.renderLegend(context: context) - drawDescription(context: context) + drawDescription(in: context) drawMarkers(context: context) } @@ -397,11 +397,10 @@ open class PieChartView: PieRadarChartViewBase paragraphStyle.alignment = .center attrString = NSMutableAttributedString(string: newValue!) - attrString?.setAttributes([ - NSAttributedStringKey.foregroundColor: NSUIColor.black, - NSAttributedStringKey.font: NSUIFont.systemFont(ofSize: 12.0), - NSAttributedStringKey.paragraphStyle: paragraphStyle - ], range: NSMakeRange(0, attrString!.length)) + attrString?.setAttributes([.foregroundColor: NSUIColor.black, + .font: NSUIFont.systemFont(ofSize: 12.0), + .paragraphStyle: paragraphStyle], + range: NSMakeRange(0, attrString!.length)) } self.centerAttributedText = attrString } diff --git a/Source/Charts/Charts/RadarChartView.swift b/Source/Charts/Charts/RadarChartView.swift index 7b46449585..5fcb6c5374 100644 --- a/Source/Charts/Charts/RadarChartView.swift +++ b/Source/Charts/Charts/RadarChartView.swift @@ -140,7 +140,7 @@ open class RadarChartView: PieRadarChartViewBase legendRenderer.renderLegend(context: context) - drawDescription(context: context) + drawDescription(in: context) drawMarkers(context: context) } diff --git a/Source/Charts/Components/Legend.swift b/Source/Charts/Components/Legend.swift index e684b7b6fe..e1363aaaa3 100644 --- a/Source/Charts/Components/Legend.swift +++ b/Source/Charts/Components/Legend.swift @@ -167,7 +167,7 @@ open class Legend: ComponentBase guard let label = entry.label else { continue } - let size = (label as NSString!).size(withAttributes: [NSAttributedStringKey.font: font]) + let size = (label as NSString!).size(withAttributes: [.font: font]) if size.width > maxW { @@ -256,7 +256,7 @@ open class Legend: ComponentBase if label != nil { - let size = (label as NSString!).size(withAttributes: [NSAttributedStringKey.font: labelFont]) + let size = (label as NSString!).size(withAttributes: [.font: labelFont]) if drawingForm && !wasStacked { @@ -315,7 +315,6 @@ open class Legend: ComponentBase // Start calculating layout - let labelAttrs = [NSAttributedStringKey.font: labelFont] var maxLineWidth: CGFloat = 0.0 var currentLineWidth: CGFloat = 0.0 var requiredWidth: CGFloat = 0.0 @@ -341,9 +340,9 @@ open class Legend: ComponentBase } // grouped forms have null labels - if label != nil + if let label = label { - calculatedLabelSizes[i] = (label as NSString!).size(withAttributes: labelAttrs) + calculatedLabelSizes[i] = (label as NSString).size(withAttributes: [.font: labelFont]) requiredWidth += drawingForm ? formToTextSpace + formSize : 0.0 requiredWidth += calculatedLabelSizes[i].width } diff --git a/Source/Charts/Components/YAxis.swift b/Source/Charts/Components/YAxis.swift index cfe520776e..abd34f7241 100644 --- a/Source/Charts/Components/YAxis.swift +++ b/Source/Charts/Components/YAxis.swift @@ -111,7 +111,7 @@ open class YAxis: AxisBase @objc open func requiredSize() -> CGSize { let label = getLongestLabel() as NSString - var size = label.size(withAttributes: [NSAttributedStringKey.font: labelFont]) + var size = label.size(withAttributes: [.font: labelFont]) size.width += xOffset * 2.0 size.height += yOffset * 2.0 size.width = max(minWidth, min(size.width, maxWidth > 0.0 ? maxWidth : size.width)) diff --git a/Source/Charts/Highlight/RadarHighlighter.swift b/Source/Charts/Highlight/RadarHighlighter.swift index da36aedd4f..d54193c2f8 100644 --- a/Source/Charts/Highlight/RadarHighlighter.swift +++ b/Source/Charts/Highlight/RadarHighlighter.swift @@ -56,7 +56,7 @@ open class RadarHighlighter: PieRadarHighlighter let phaseY = chart.chartAnimator.phaseY let sliceangle = chart.sliceAngle let factor = chart.factor - + for i in chartData.dataSets.indices { guard @@ -68,7 +68,7 @@ open class RadarHighlighter: PieRadarHighlighter let p = chart.centerOffsets.moving(distance: CGFloat(y) * factor * CGFloat(phaseY), atAngle: sliceangle * CGFloat(index) * CGFloat(phaseX) + chart.rotationAngle) - + let highlight = Highlight(x: Double(index), y: entry.y, xPx: p.x, yPx: p.y, dataSetIndex: i, axis: dataSet.axisDependency) vals.append(highlight) } diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index c1a51662d8..007c83813f 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -389,12 +389,9 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer px += iconsOffset.x py += iconsOffset.y - ChartUtils.drawImage( - context: context, - image: icon, - x: px, - y: py, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: px, y: py), + size: icon.size) } } } @@ -477,12 +474,10 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer if let icon = e.icon, dataSet.isDrawIconsEnabled { - ChartUtils.drawImage( - context: context, - image: icon, - x: x + iconsOffset.x, - y: y + iconsOffset.y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: x + iconsOffset.x, + y: y + iconsOffset.y), + size: icon.size) } } } @@ -518,12 +513,9 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer px += iconsOffset.x py += iconsOffset.y - ChartUtils.drawImage( - context: context, - image: icon, - x: px, - y: py, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: px, y: py), + size: icon.size) } } @@ -537,7 +529,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer /// Draws a value at the specified x and y position. @objc open func drawValue(context: CGContext, value: String, xPos: CGFloat, yPos: CGFloat, font: NSUIFont, align: NSTextAlignment, color: NSUIColor) { - ChartUtils.drawText(context: context, text: value, point: CGPoint(x: xPos, y: yPos), align: align, attributes: [NSAttributedStringKey.font: font, NSAttributedStringKey.foregroundColor: color]) + context.drawText(value, at: CGPoint(x: xPos, y: yPos), align: align, attributes: [.font: font, .foregroundColor: color]) } open override func drawExtras(context: CGContext) diff --git a/Source/Charts/Renderers/BubbleChartRenderer.swift b/Source/Charts/Renderers/BubbleChartRenderer.swift index bdf8f5c95d..dd097310c9 100644 --- a/Source/Charts/Renderers/BubbleChartRenderer.swift +++ b/Source/Charts/Renderers/BubbleChartRenderer.swift @@ -180,23 +180,20 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer if dataSet.isDrawValuesEnabled { - ChartUtils.drawText( - context: context, - text: text, - point: CGPoint( - x: pt.x, - y: pt.y - (0.5 * lineHeight)), - align: .center, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: valueTextColor]) + context.drawText(text, + at: CGPoint(x: pt.x, + y: pt.y - (0.5 * lineHeight)), + align: .center, + attributes: [.font: valueFont, + .foregroundColor: valueTextColor]) } if let icon = e.icon, dataSet.isDrawIconsEnabled { - ChartUtils.drawImage(context: context, - image: icon, - x: pt.x + iconsOffset.x, - y: pt.y + iconsOffset.y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: pt.x + iconsOffset.x, + y: pt.y + iconsOffset.y), + size: icon.size) } } } diff --git a/Source/Charts/Renderers/CandleStickChartRenderer.swift b/Source/Charts/Renderers/CandleStickChartRenderer.swift index 8582db4869..6780627679 100644 --- a/Source/Charts/Renderers/CandleStickChartRenderer.swift +++ b/Source/Charts/Renderers/CandleStickChartRenderer.swift @@ -292,27 +292,23 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer if dataSet.isDrawValuesEnabled { - ChartUtils.drawText( - context: context, - text: formatter.stringForValue( - e.high, - entry: e, - dataSetIndex: i, - viewPortHandler: viewPortHandler), - point: CGPoint( - x: pt.x, - y: pt.y - yOffset), - align: .center, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: dataSet.valueTextColorAt(j)]) + context.drawText(formatter.stringForValue(e.high, + entry: e, + dataSetIndex: i, + viewPortHandler: viewPortHandler), + at: CGPoint(x: pt.x, + y: pt.y - yOffset), + align: .center, + attributes: [.font: valueFont, + .foregroundColor: dataSet.valueTextColorAt(j)]) } if let icon = e.icon, dataSet.isDrawIconsEnabled { - ChartUtils.drawImage(context: context, - image: icon, - x: pt.x + iconsOffset.x, - y: pt.y + iconsOffset.y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: pt.x + iconsOffset.x, + y: pt.y + iconsOffset.y), + size: icon.size) } } } diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index 373f4df331..768e79c307 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -372,7 +372,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer viewPortHandler: viewPortHandler) // calculate the correct offset depending on the draw position of the value - let valueTextWidth = valueText.size(withAttributes: [NSAttributedStringKey.font: valueFont]).width + let valueTextWidth = valueText.size(withAttributes: [.font: valueFont]).width posOffset = (drawValueAboveBar ? valueOffsetPlus : -(valueTextWidth + valueOffsetPlus)) negOffset = (drawValueAboveBar ? -(valueTextWidth + valueOffsetPlus) : valueOffsetPlus) @@ -404,12 +404,9 @@ open class HorizontalBarChartRenderer: BarChartRenderer px += iconsOffset.x py += iconsOffset.y - ChartUtils.drawImage( - context: context, - image: icon, - x: px, - y: py, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: px, y: py), + size: icon.size) } } } @@ -485,12 +482,9 @@ open class HorizontalBarChartRenderer: BarChartRenderer px += iconsOffset.x py += iconsOffset.y - ChartUtils.drawImage( - context: context, - image: icon, - x: px, - y: py, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: px, y: py), + size: icon.size) } } else @@ -537,7 +531,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer viewPortHandler: viewPortHandler) // calculate the correct offset depending on the draw position of the value - let valueTextWidth = valueText.size(withAttributes: [NSAttributedStringKey.font: valueFont]).width + let valueTextWidth = valueText.size(withAttributes: [.font: valueFont]).width posOffset = (drawValueAboveBar ? valueOffsetPlus : -(valueTextWidth + valueOffsetPlus)) negOffset = (drawValueAboveBar ? -(valueTextWidth + valueOffsetPlus) : valueOffsetPlus) @@ -570,22 +564,20 @@ open class HorizontalBarChartRenderer: BarChartRenderer if dataSet.isDrawValuesEnabled { drawValue(context: context, - value: valueText, - xPos: x, - yPos: y + yOffset, - font: valueFont, - align: textAlign, - color: dataSet.valueTextColorAt(index)) + value: valueText, + xPos: x, + yPos: y + yOffset, + font: valueFont, + align: textAlign, + color: dataSet.valueTextColorAt(index)) } if let icon = e.icon, dataSet.isDrawIconsEnabled { - ChartUtils.drawImage( - context: context, - image: icon, - x: x + iconsOffset.x, - y: y + iconsOffset.y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: x + iconsOffset.x, + y: y + iconsOffset.y), + size: icon.size) } } } diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index a32344c3aa..4d32b23df7 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -465,7 +465,7 @@ open class LegendRenderer: NSObject, Renderer if direction == .rightToLeft { - posX -= (e.label as NSString!).size(withAttributes: [NSAttributedStringKey.font: labelFont]).width + posX -= (e.label as NSString!).size(withAttributes: [.font: labelFont]).width } if !wasStacked @@ -568,6 +568,6 @@ open class LegendRenderer: NSObject, Renderer /// Draws the provided label at the given position. @objc open func drawLabel(context: CGContext, x: CGFloat, y: CGFloat, label: String, font: NSUIFont, textColor: NSUIColor) { - ChartUtils.drawText(context: context, text: label, point: CGPoint(x: x, y: y), align: .left, attributes: [NSAttributedStringKey.font: font, NSAttributedStringKey.foregroundColor: textColor]) + context.drawText(label, at: CGPoint(x: x, y: y), align: .left, attributes: [.font: font, .foregroundColor: textColor]) } } diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 21b175f73a..4c5cf262a0 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -556,28 +556,25 @@ open class LineChartRenderer: LineRadarRenderer continue } - if dataSet.isDrawValuesEnabled { - ChartUtils.drawText( - context: context, - text: formatter.stringForValue( - e.y, - entry: e, - dataSetIndex: i, - viewPortHandler: viewPortHandler), - point: CGPoint( - x: pt.x, - y: pt.y - CGFloat(valOffset) - valueFont.lineHeight), - align: .center, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: dataSet.valueTextColorAt(j)]) + if dataSet.isDrawValuesEnabled + { + context.drawText(formatter.stringForValue(e.y, + entry: e, + dataSetIndex: i, + viewPortHandler: viewPortHandler), + at: CGPoint(x: pt.x, + y: pt.y - CGFloat(valOffset) - valueFont.lineHeight), + align: .center, + attributes: [.font: valueFont, + .foregroundColor: dataSet.valueTextColorAt(j)]) } if let icon = e.icon, dataSet.isDrawIconsEnabled { - ChartUtils.drawImage(context: context, - image: icon, - x: pt.x + iconsOffset.x, - y: pt.y + iconsOffset.y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: pt.x + iconsOffset.x, + y: pt.y + iconsOffset.y), + size: icon.size) } } } diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index c71959e8e1..cd018b5efb 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -426,51 +426,42 @@ open class PieChartRenderer: NSObject, DataRenderer if drawXOutside && drawYOutside { - ChartUtils.drawText( - context: context, - text: valueText, - point: labelPoint, - align: align, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: valueTextColor] - ) + context.drawText(valueText, + at: labelPoint, + align: align, + attributes: [.font: valueFont, + .foregroundColor: valueTextColor]) if j < data.entryCount && pe?.label != nil { - ChartUtils.drawText( - context: context, - text: pe!.label!, - point: CGPoint(x: labelPoint.x, y: labelPoint.y + lineHeight), - align: align, - attributes: [ - NSAttributedStringKey.font: entryLabelFont ?? valueFont, - NSAttributedStringKey.foregroundColor: entryLabelColor ?? valueTextColor] - ) + context.drawText(pe!.label!, + at: CGPoint(x: labelPoint.x, + y: labelPoint.y + lineHeight), + align: align, + attributes: [.font: entryLabelFont ?? valueFont, + .foregroundColor: entryLabelColor ?? valueTextColor]) } } else if drawXOutside { if j < data.entryCount && pe?.label != nil { - ChartUtils.drawText( - context: context, - text: pe!.label!, - point: CGPoint(x: labelPoint.x, y: labelPoint.y + lineHeight / 2.0), - align: align, - attributes: [ - NSAttributedStringKey.font: entryLabelFont ?? valueFont, - NSAttributedStringKey.foregroundColor: entryLabelColor ?? valueTextColor] - ) + context.drawText(pe!.label!, + at: CGPoint(x: labelPoint.x, + y: labelPoint.y + lineHeight / 2.0), + align: align, + attributes: [.font: entryLabelFont ?? valueFont, + .foregroundColor: entryLabelColor ?? valueTextColor]) } } else if drawYOutside { - ChartUtils.drawText( - context: context, - text: valueText, - point: CGPoint(x: labelPoint.x, y: labelPoint.y + lineHeight / 2.0), - align: align, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: valueTextColor] - ) + context.drawText(valueText, + at: CGPoint(x: labelPoint.x, + y: labelPoint.y + lineHeight / 2.0), + align: align, + attributes: [.font: valueFont, + .foregroundColor: valueTextColor]) } } @@ -479,54 +470,40 @@ open class PieChartRenderer: NSObject, DataRenderer // calculate the text position let x = labelRadius * sliceXBase + center.x let y = labelRadius * sliceYBase + center.y - lineHeight - + if drawXInside && drawYInside { - ChartUtils.drawText( - context: context, - text: valueText, - point: CGPoint(x: x, y: y), - align: .center, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: valueTextColor] - ) + context.drawText(valueText, + at: CGPoint(x: x, y: y), + align: .center, + attributes: [.font: valueFont, .foregroundColor: valueTextColor]) if j < data.entryCount && pe?.label != nil { - ChartUtils.drawText( - context: context, - text: pe!.label!, - point: CGPoint(x: x, y: y + lineHeight), - align: .center, - attributes: [ - NSAttributedStringKey.font: entryLabelFont ?? valueFont, - NSAttributedStringKey.foregroundColor: entryLabelColor ?? valueTextColor] - ) + context.drawText(pe!.label!, + at: CGPoint(x: x, y: y + lineHeight), + align: .center, + attributes: [.font: entryLabelFont ?? valueFont, + .foregroundColor: entryLabelColor ?? valueTextColor]) } } else if drawXInside { if j < data.entryCount && pe?.label != nil { - ChartUtils.drawText( - context: context, - text: pe!.label!, - point: CGPoint(x: x, y: y + lineHeight / 2.0), - align: .center, - attributes: [ - NSAttributedStringKey.font: entryLabelFont ?? valueFont, - NSAttributedStringKey.foregroundColor: entryLabelColor ?? valueTextColor] - ) + context.drawText(pe!.label!, + at: CGPoint(x: x, y: y + lineHeight / 2.0), + align: .center, + attributes: [.font: entryLabelFont ?? valueFont, + .foregroundColor: entryLabelColor ?? valueTextColor]) } } else if drawYInside { - ChartUtils.drawText( - context: context, - text: valueText, - point: CGPoint(x: x, y: y + lineHeight / 2.0), - align: .center, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: valueTextColor] - ) + context.drawText(valueText, + at: CGPoint(x: x, y: y + lineHeight / 2.0), + align: .center, + attributes: [.font: valueFont, .foregroundColor: valueTextColor]) } } @@ -538,11 +515,9 @@ open class PieChartRenderer: NSObject, DataRenderer var y = (labelRadius + iconsOffset.y) * sliceYBase + center.y y += iconsOffset.x - ChartUtils.drawImage(context: context, - image: icon, - x: x, - y: y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: x, y: y), + size: icon.size) } xIndex += 1 diff --git a/Source/Charts/Renderers/RadarChartRenderer.swift b/Source/Charts/Renderers/RadarChartRenderer.swift index d603a0aad1..a8438b8066 100644 --- a/Source/Charts/Renderers/RadarChartRenderer.swift +++ b/Source/Charts/Renderers/RadarChartRenderer.swift @@ -177,18 +177,14 @@ open class RadarChartRenderer: LineRadarRenderer if dataSet.isDrawValuesEnabled { - ChartUtils.drawText( - context: context, - text: formatter.stringForValue( - e.y, - entry: e, - dataSetIndex: i, - viewPortHandler: viewPortHandler), - point: CGPoint(x: p.x, y: p.y - yoffset - valueFont.lineHeight), - align: .center, - attributes: [NSAttributedStringKey.font: valueFont, - NSAttributedStringKey.foregroundColor: dataSet.valueTextColorAt(j)] - ) + context.drawText(formatter.stringForValue(e.y, + entry: e, + dataSetIndex: i, + viewPortHandler: viewPortHandler), + at: CGPoint(x: p.x, y: p.y - yoffset - valueFont.lineHeight), + align: .center, + attributes: [.font: valueFont, + .foregroundColor: dataSet.valueTextColorAt(j)]) } if let icon = e.icon, dataSet.isDrawIconsEnabled @@ -197,11 +193,9 @@ open class RadarChartRenderer: LineRadarRenderer atAngle: sliceangle * CGFloat(j) * CGFloat(phaseX) + chart.rotationAngle) pIcon.y += iconsOffset.x - ChartUtils.drawImage(context: context, - image: icon, - x: pIcon.x, - y: pIcon.y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: pIcon.x, y: pIcon.y), + size: icon.size) } } } diff --git a/Source/Charts/Renderers/ScatterChartRenderer.swift b/Source/Charts/Renderers/ScatterChartRenderer.swift index d7b1afa3a5..f2c97749b0 100644 --- a/Source/Charts/Renderers/ScatterChartRenderer.swift +++ b/Source/Charts/Renderers/ScatterChartRenderer.swift @@ -165,24 +165,21 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer if dataSet.isDrawValuesEnabled { - ChartUtils.drawText( - context: context, - text: text, - point: CGPoint( - x: pt.x, - y: pt.y - shapeSize - lineHeight), - align: .center, - attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: dataSet.valueTextColorAt(j)] + context.drawText(text, + at: CGPoint(x: pt.x, + y: pt.y - shapeSize - lineHeight), + align: .center, + attributes: [.font: valueFont, + .foregroundColor: dataSet.valueTextColorAt(j)] ) } if let icon = e.icon, dataSet.isDrawIconsEnabled { - ChartUtils.drawImage(context: context, - image: icon, - x: pt.x + iconsOffset.x, - y: pt.y + iconsOffset.y, - size: icon.size) + context.drawImage(icon, + atCenter: CGPoint(x: pt.x + iconsOffset.x, + y: pt.y + iconsOffset.y), + size: icon.size) } } } diff --git a/Source/Charts/Renderers/XAxisRenderer.swift b/Source/Charts/Renderers/XAxisRenderer.swift index 6cc566aac3..5d58df36dd 100644 --- a/Source/Charts/Renderers/XAxisRenderer.swift +++ b/Source/Charts/Renderers/XAxisRenderer.swift @@ -189,8 +189,8 @@ open class XAxisRenderer: NSObject, AxisRenderer { let longest = axis.getLongestLabel() - let labelSize = longest.size(withAttributes: [NSAttributedStringKey.font: axis.labelFont]) - + let labelSize = longest.size(withAttributes: [.font: axis.labelFont]) + let labelWidth = labelSize.width let labelHeight = labelSize.height @@ -293,11 +293,11 @@ open class XAxisRenderer: NSObject, AxisRenderer #endif paraStyle.alignment = .center - let labelAttrs: [NSAttributedStringKey : Any] = [NSAttributedStringKey.font: axis.labelFont, - NSAttributedStringKey.foregroundColor: axis.labelTextColor, - NSAttributedStringKey.paragraphStyle: paraStyle] + let labelAttrs: [NSAttributedStringKey : Any] = [.font: axis.labelFont, + .foregroundColor: axis.labelTextColor, + .paragraphStyle: paraStyle] let labelRotationAngleRadians = axis.labelRotationAngle.DEG2RAD - + let centeringEnabled = axis.isCenterAxisLabelsEnabled let valueToPixelMatrix = transformer.valueToPixelMatrix @@ -358,7 +358,7 @@ open class XAxisRenderer: NSObject, AxisRenderer x: position.x, y: pos, attributes: labelAttrs, - constrainedToSize: labelMaxSize, + constrainedTo: labelMaxSize, anchor: anchor, angleRadians: labelRotationAngleRadians) } @@ -371,18 +371,16 @@ open class XAxisRenderer: NSObject, AxisRenderer x: CGFloat, y: CGFloat, attributes: [NSAttributedStringKey : Any], - constrainedToSize: CGSize, + constrainedTo size: CGSize, anchor: CGPoint, angleRadians: CGFloat) { - ChartUtils.drawMultilineText( - context: context, - text: formattedLabel, - point: CGPoint(x: x, y: y), - attributes: attributes, - constrainedToSize: constrainedToSize, - anchor: anchor, - angleRadians: angleRadians) + context.drawMultilineText(formattedLabel, + at: CGPoint(x: x, y: y), + constrainedTo: size, + anchor: anchor, + angleRadians: angleRadians, + attributes: attributes) } open func renderGridLines(context: CGContext) @@ -522,48 +520,38 @@ open class XAxisRenderer: NSObject, AxisRenderer let labelLineHeight = limitLine.valueFont.lineHeight let xOffset: CGFloat = limitLine.lineWidth + limitLine.xOffset - - if limitLine.labelPosition == .rightTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x + xOffset, - y: viewPortHandler.contentTop + yOffset), - align: .left, - attributes: [NSAttributedStringKey.font: limitLine.valueFont, NSAttributedStringKey.foregroundColor: limitLine.valueTextColor]) - } - else if limitLine.labelPosition == .rightBottom - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x + xOffset, - y: viewPortHandler.contentBottom - labelLineHeight - yOffset), - align: .left, - attributes: [NSAttributedStringKey.font: limitLine.valueFont, NSAttributedStringKey.foregroundColor: limitLine.valueTextColor]) - } - else if limitLine.labelPosition == .leftTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x - xOffset, - y: viewPortHandler.contentTop + yOffset), - align: .right, - attributes: [NSAttributedStringKey.font: limitLine.valueFont, NSAttributedStringKey.foregroundColor: limitLine.valueTextColor]) - } - else + + let align: NSTextAlignment + let point: CGPoint + + switch limitLine.labelPosition { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x - xOffset, - y: viewPortHandler.contentBottom - labelLineHeight - yOffset), - align: .right, - attributes: [NSAttributedStringKey.font: limitLine.valueFont, NSAttributedStringKey.foregroundColor: limitLine.valueTextColor]) + case .rightTop: + align = .left + point = CGPoint(x: position.x + xOffset, + y: viewPortHandler.contentTop + yOffset) + + case .rightBottom: + align = .left + point = CGPoint(x: position.x + xOffset, + y: viewPortHandler.contentBottom - labelLineHeight - yOffset) + + case .leftTop: + align = .right + point = CGPoint(x: position.x - xOffset, + y: viewPortHandler.contentTop + yOffset) + + case .leftBottom: + align = .right + point = CGPoint(x: position.x - xOffset, + y: viewPortHandler.contentBottom - labelLineHeight - yOffset) } + + context.drawText(label, + at: point, + align: align, + attributes: [.font: limitLine.valueFont, + .foregroundColor: limitLine.valueTextColor]) } } - } diff --git a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift index dc9580d4db..d50b9ccf64 100644 --- a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift @@ -60,8 +60,8 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer { let longest = axis.getLongestLabel() as NSString - let labelSize = longest.size(withAttributes: [NSAttributedStringKey.font: axis.labelFont]) - + let labelSize = longest.size(withAttributes: [.font: axis.labelFont]) + let labelWidth = floor(labelSize.width + axis.xOffset * 3.5) let labelHeight = labelSize.height let labelRotatedSize = CGSize(width: labelSize.width, height: labelHeight).rotatedBy(degrees: axis.labelRotationAngle) @@ -144,7 +144,7 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer formattedLabel: label, x: pos, y: position.y, - attributes: [NSAttributedStringKey.font: labelFont, NSAttributedStringKey.foregroundColor: labelTextColor], + attributes: [.font: labelFont, .foregroundColor: labelTextColor], anchor: anchor, angleRadians: labelRotationAngleRadians) } @@ -161,13 +161,11 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer anchor: CGPoint, angleRadians: CGFloat) { - ChartUtils.drawText( - context: context, - text: formattedLabel, - point: CGPoint(x: x, y: y), - attributes: attributes, - anchor: anchor, - angleRadians: angleRadians) + context.drawText(formattedLabel, + at: CGPoint(x: x, y: y), + anchor: anchor, + angleRadians: angleRadians, + attributes: attributes) } open override var gridClippingRect: CGRect @@ -297,47 +295,37 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer let xOffset: CGFloat = 4.0 + l.xOffset let yOffset: CGFloat = l.lineWidth + labelLineHeight + l.yOffset - - if l.labelPosition == .rightTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentRight - xOffset, - y: position.y - yOffset), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else if l.labelPosition == .rightBottom - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentRight - xOffset, - y: position.y + yOffset - labelLineHeight), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else if l.labelPosition == .leftTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentLeft + xOffset, - y: position.y - yOffset), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else + + let align: NSTextAlignment + let point: CGPoint + + switch l.labelPosition { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentLeft + xOffset, - y: position.y + yOffset - labelLineHeight), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) + case .rightTop: + align = .right + point = CGPoint(x: viewPortHandler.contentRight - xOffset, + y: position.y - yOffset) + + case .rightBottom: + align = .right + point = CGPoint(x: viewPortHandler.contentRight - xOffset, + y: position.y + yOffset - labelLineHeight) + + case .leftTop: + align = .left + point = CGPoint(x: viewPortHandler.contentLeft + xOffset, + y: position.y - yOffset) + + case .leftBottom: + align = .left + point = CGPoint(x: viewPortHandler.contentLeft + xOffset, + y: position.y + yOffset - labelLineHeight) } + + context.drawText(label, + at: point, + align: align, + attributes: [.font: l.valueFont, .foregroundColor: l.valueTextColor]) } } } diff --git a/Source/Charts/Renderers/XAxisRendererRadarChart.swift b/Source/Charts/Renderers/XAxisRendererRadarChart.swift index 80cab48fe4..a408df9b68 100644 --- a/Source/Charts/Renderers/XAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererRadarChart.swift @@ -56,12 +56,12 @@ open class XAxisRendererRadarChart: XAxisRenderer let angle = (sliceangle * CGFloat(i) + chart.rotationAngle).truncatingRemainder(dividingBy: 360.0) let p = center.moving(distance: CGFloat(chart.yRange) * factor + axis.labelRotatedWidth / 2.0, atAngle: angle) - + drawLabel(context: context, formattedLabel: label, x: p.x, y: p.y - axis.labelRotatedHeight / 2.0, - attributes: [NSAttributedStringKey.font: labelFont, NSAttributedStringKey.foregroundColor: labelTextColor], + attributes: [.font: labelFont, .foregroundColor: labelTextColor], anchor: drawLabelAnchor, angleRadians: labelRotationAngleRadians) } @@ -76,13 +76,11 @@ open class XAxisRendererRadarChart: XAxisRenderer anchor: CGPoint, angleRadians: CGFloat) { - ChartUtils.drawText( - context: context, - text: formattedLabel, - point: CGPoint(x: x, y: y), - attributes: attributes, - anchor: anchor, - angleRadians: angleRadians) + context.drawText(formattedLabel, + at: CGPoint(x: x, y: y), + anchor: anchor, + angleRadians: angleRadians, + attributes: attributes) } open override func renderLimitLines(context: CGContext) diff --git a/Source/Charts/Renderers/YAxisRenderer.swift b/Source/Charts/Renderers/YAxisRenderer.swift index e8a684b49b..d77cb0f31b 100644 --- a/Source/Charts/Renderers/YAxisRenderer.swift +++ b/Source/Charts/Renderers/YAxisRenderer.swift @@ -142,12 +142,10 @@ open class YAxisRenderer: NSObject, AxisRenderer { let text = axis.getFormattedLabel(i) - ChartUtils.drawText( - context: context, - text: text, - point: CGPoint(x: fixedPosition, y: positions[i].y + offset), - align: textAlign, - attributes: [NSAttributedStringKey.font: labelFont, NSAttributedStringKey.foregroundColor: labelTextColor]) + context.drawText(text, + at: CGPoint(x: fixedPosition, y: positions[i].y + offset), + align: textAlign, + attributes: [.font: labelFont, .foregroundColor: labelTextColor]) } } @@ -330,49 +328,39 @@ open class YAxisRenderer: NSObject, AxisRenderer { let labelLineHeight = l.valueFont.lineHeight - let xOffset: CGFloat = 4.0 + l.xOffset - let yOffset: CGFloat = l.lineWidth + labelLineHeight + l.yOffset - - if l.labelPosition == .rightTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentRight - xOffset, - y: position.y - yOffset), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else if l.labelPosition == .rightBottom - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentRight - xOffset, - y: position.y + yOffset - labelLineHeight), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else if l.labelPosition == .leftTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentLeft + xOffset, - y: position.y - yOffset), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else + let xOffset = 4.0 + l.xOffset + let yOffset = l.lineWidth + labelLineHeight + l.yOffset + + let align: NSTextAlignment + let point: CGPoint + + switch l.labelPosition { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: viewPortHandler.contentLeft + xOffset, - y: position.y + yOffset - labelLineHeight), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) + case .rightTop: + align = .right + point = CGPoint(x: viewPortHandler.contentRight - xOffset, + y: position.y - yOffset) + + case .rightBottom: + align = .right + point = CGPoint(x: viewPortHandler.contentRight - xOffset, + y: position.y + yOffset - labelLineHeight) + + case .leftTop: + align = .left + point = CGPoint(x: viewPortHandler.contentLeft + xOffset, + y: position.y - yOffset) + + case .leftBottom: + align = .left + point = CGPoint(x: viewPortHandler.contentLeft + xOffset, + y: position.y + yOffset - labelLineHeight) } + + context.drawText(label, + at: point, + align: align, + attributes: [.font: l.valueFont, .foregroundColor: l.valueTextColor]) } } diff --git a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift index 163a74d146..78e36e8f36 100644 --- a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift @@ -155,12 +155,10 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer { let text = axis.getFormattedLabel(i) - ChartUtils.drawText( - context: context, - text: text, - point: CGPoint(x: positions[i].x, y: fixedPosition - offset), - align: .center, - attributes: [NSAttributedStringKey.font: labelFont, NSAttributedStringKey.foregroundColor: labelTextColor]) + context.drawText(text, + at: CGPoint(x: positions[i].x, y: fixedPosition - offset), + align: .center, + attributes: [.font: labelFont, .foregroundColor: labelTextColor]) } } @@ -304,46 +302,36 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer let xOffset: CGFloat = l.lineWidth + l.xOffset let yOffset: CGFloat = 2.0 + l.yOffset - if l.labelPosition == .rightTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x + xOffset, - y: viewPortHandler.contentTop + yOffset), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else if l.labelPosition == .rightBottom - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x + xOffset, - y: viewPortHandler.contentBottom - labelLineHeight - yOffset), - align: .left, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else if l.labelPosition == .leftTop - { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x - xOffset, - y: viewPortHandler.contentTop + yOffset), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) - } - else + let align: NSTextAlignment + let point: CGPoint + + switch l.labelPosition { - ChartUtils.drawText(context: context, - text: label, - point: CGPoint( - x: position.x - xOffset, - y: viewPortHandler.contentBottom - labelLineHeight - yOffset), - align: .right, - attributes: [NSAttributedStringKey.font: l.valueFont, NSAttributedStringKey.foregroundColor: l.valueTextColor]) + case .rightTop: + align = .left + point = CGPoint(x: position.x + xOffset, + y: viewPortHandler.contentTop + yOffset) + + case .rightBottom: + align = .left + point = CGPoint(x: position.x + xOffset, + y: viewPortHandler.contentBottom - labelLineHeight - yOffset) + + case .leftTop: + align = .right + point = CGPoint(x: position.x - xOffset, + y: viewPortHandler.contentTop + yOffset) + + case .leftBottom: + align = .right + point = CGPoint(x: position.x - xOffset, + y: viewPortHandler.contentBottom - labelLineHeight - yOffset) } + + context.drawText(label, + at: point, + align: align, + attributes: [.font: l.valueFont, .foregroundColor: l.valueTextColor]) } } diff --git a/Source/Charts/Renderers/YAxisRendererRadarChart.swift b/Source/Charts/Renderers/YAxisRendererRadarChart.swift index c9bd090537..0e5efd23c5 100644 --- a/Source/Charts/Renderers/YAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererRadarChart.swift @@ -183,15 +183,11 @@ open class YAxisRendererRadarChart: YAxisRenderer let label = axis.getFormattedLabel(j) - ChartUtils.drawText( - context: context, - text: label, - point: CGPoint(x: p.x + 10.0, y: p.y - labelLineHeight), - align: .left, - attributes: [ - NSAttributedStringKey.font: labelFont, - NSAttributedStringKey.foregroundColor: labelTextColor - ]) + context.drawText(label, + at: CGPoint(x: p.x + 10.0, y: p.y - labelLineHeight), + align: .left, + attributes: [.font: labelFont, + .foregroundColor: labelTextColor]) } } diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index 3e15790eb9..b8cb16667d 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -99,55 +99,65 @@ extension CGPoint open class ChartUtils { - private static var _defaultValueFormatter: ValueFormatter = ChartUtils.generateDefaultValueFormatter() - - open class func drawImage( - context: CGContext, - image: NSUIImage, - x: CGFloat, - y: CGFloat, - size: CGSize) + private static var _defaultValueFormatter: ValueFormatter = generateDefaultValueFormatter() + + private class func generateDefaultValueFormatter() -> ValueFormatter + { + let formatter = DefaultValueFormatter(decimals: 1) + return formatter + } + + /// - returns: The default value formatter used for all chart components that needs a default + open class func defaultValueFormatter() -> ValueFormatter + { + return _defaultValueFormatter + } +} + +extension CGContext { + + open func drawImage(_ image: NSUIImage, atCenter center: CGPoint, size: CGSize) { var drawOffset = CGPoint() - drawOffset.x = x - (size.width / 2) - drawOffset.y = y - (size.height / 2) - - NSUIGraphicsPushContext(context) - + drawOffset.x = center.x - (size.width / 2) + drawOffset.y = center.y - (size.height / 2) + + NSUIGraphicsPushContext(self) + if image.size.width != size.width && image.size.height != size.height { let key = "resized_\(size.width)_\(size.height)" - + // Try to take scaled image from cache of this image var scaledImage = objc_getAssociatedObject(image, key) as? NSUIImage if scaledImage == nil { // Scale the image NSUIGraphicsBeginImageContextWithOptions(size, false, 0.0) - - image.draw(in: CGRect(origin: CGPoint(x: 0, y: 0), size: size)) - + + image.draw(in: CGRect(origin: .zero, size: size)) + scaledImage = NSUIGraphicsGetImageFromCurrentImageContext() NSUIGraphicsEndImageContext() - + // Put the scaled image in a cache owned by the original image objc_setAssociatedObject(image, key, scaledImage, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) } - + scaledImage?.draw(in: CGRect(origin: drawOffset, size: size)) } else { image.draw(in: CGRect(origin: drawOffset, size: size)) } - + NSUIGraphicsPopContext() } - - open class func drawText(context: CGContext, text: String, point: CGPoint, align: NSTextAlignment, attributes: [NSAttributedStringKey : Any]?) + + open func drawText(_ text: String, at point: CGPoint, align: NSTextAlignment, attributes: [NSAttributedStringKey : Any]?) { var point = point - + if align == .center { point.x -= text.size(withAttributes: attributes).width / 2.0 @@ -156,96 +166,96 @@ open class ChartUtils { point.x -= text.size(withAttributes: attributes).width } - - NSUIGraphicsPushContext(context) - + + NSUIGraphicsPushContext(self) + (text as NSString).draw(at: point, withAttributes: attributes) - + NSUIGraphicsPopContext() } - - open class func drawText(context: CGContext, text: String, point: CGPoint, attributes: [NSAttributedStringKey : Any]?, anchor: CGPoint, angleRadians: CGFloat) + + open func drawText(_ text: String, at point: CGPoint, anchor: CGPoint, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { var drawOffset = CGPoint() - - NSUIGraphicsPushContext(context) - + + NSUIGraphicsPushContext(self) + if angleRadians != 0.0 { let size = text.size(withAttributes: attributes) - + // Move the text drawing rect in a way that it always rotates around its center drawOffset.x = -size.width * 0.5 drawOffset.y = -size.height * 0.5 - + var translate = point - + // Move the "outer" rect relative to the anchor, assuming its centered if anchor.x != 0.5 || anchor.y != 0.5 { let rotatedSize = size.rotatedBy(radians: angleRadians) - + translate.x -= rotatedSize.width * (anchor.x - 0.5) translate.y -= rotatedSize.height * (anchor.y - 0.5) } - - context.saveGState() - context.translateBy(x: translate.x, y: translate.y) - context.rotate(by: angleRadians) - + + saveGState() + translateBy(x: translate.x, y: translate.y) + rotate(by: angleRadians) + (text as NSString).draw(at: drawOffset, withAttributes: attributes) - - context.restoreGState() + + restoreGState() } else { if anchor.x != 0.0 || anchor.y != 0.0 { let size = text.size(withAttributes: attributes) - + drawOffset.x = -size.width * anchor.x drawOffset.y = -size.height * anchor.y } - + drawOffset.x += point.x drawOffset.y += point.y - + (text as NSString).draw(at: drawOffset, withAttributes: attributes) } - + NSUIGraphicsPopContext() } - - internal class func drawMultilineText(context: CGContext, text: String, knownTextSize: CGSize, point: CGPoint, attributes: [NSAttributedStringKey : Any]?, constrainedToSize: CGSize, anchor: CGPoint, angleRadians: CGFloat) + + internal func drawMultilineText(_ text: String, at point: CGPoint, constrainedTo size: CGSize, anchor: CGPoint, knownTextSize: CGSize, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { - var rect = CGRect(origin: CGPoint(), size: knownTextSize) - - NSUIGraphicsPushContext(context) - + var rect = CGRect(origin: .zero, size: knownTextSize) + + NSUIGraphicsPushContext(self) + if angleRadians != 0.0 { // Move the text drawing rect in a way that it always rotates around its center rect.origin.x = -knownTextSize.width * 0.5 rect.origin.y = -knownTextSize.height * 0.5 - + var translate = point - + // Move the "outer" rect relative to the anchor, assuming its centered if anchor.x != 0.5 || anchor.y != 0.5 { let rotatedSize = knownTextSize.rotatedBy(radians: angleRadians) - + translate.x -= rotatedSize.width * (anchor.x - 0.5) translate.y -= rotatedSize.height * (anchor.y - 0.5) } - - context.saveGState() - context.translateBy(x: translate.x, y: translate.y) - context.rotate(by: angleRadians) - + + saveGState() + translateBy(x: translate.x, y: translate.y) + rotate(by: angleRadians) + (text as NSString).draw(with: rect, options: .usesLineFragmentOrigin, attributes: attributes, context: nil) - - context.restoreGState() + + restoreGState() } else { @@ -254,31 +264,19 @@ open class ChartUtils rect.origin.x = -knownTextSize.width * anchor.x rect.origin.y = -knownTextSize.height * anchor.y } - + rect.origin.x += point.x rect.origin.y += point.y - + (text as NSString).draw(with: rect, options: .usesLineFragmentOrigin, attributes: attributes, context: nil) } - + NSUIGraphicsPopContext() } - - internal class func drawMultilineText(context: CGContext, text: String, point: CGPoint, attributes: [NSAttributedStringKey : Any]?, constrainedToSize: CGSize, anchor: CGPoint, angleRadians: CGFloat) - { - let rect = text.boundingRect(with: constrainedToSize, options: .usesLineFragmentOrigin, attributes: attributes, context: nil) - drawMultilineText(context: context, text: text, knownTextSize: rect.size, point: point, attributes: attributes, constrainedToSize: constrainedToSize, anchor: anchor, angleRadians: angleRadians) - } - private class func generateDefaultValueFormatter() -> ValueFormatter - { - let formatter = DefaultValueFormatter(decimals: 1) - return formatter - } - - /// - returns: The default value formatter used for all chart components that needs a default - open class func defaultValueFormatter() -> ValueFormatter + internal func drawMultilineText(_ text: String, at point: CGPoint, constrainedTo size: CGSize, anchor: CGPoint, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { - return _defaultValueFormatter + let rect = text.boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil) + drawMultilineText(text, at: point, constrainedTo: size, anchor: anchor, knownTextSize: rect.size, angleRadians: angleRadians, attributes: attributes) } } From 28ed9483b14bb0f20ab9e08f7ae8426b1b7518aa Mon Sep 17 00:00:00 2001 From: jjatie Date: Mon, 8 Jan 2018 20:55:36 -0400 Subject: [PATCH 07/84] Utils Cleanup (#3054) * Cleanup Replaced unnecessary getters with proper access control Replaced unnecessary convenience inits with default parameters Minor refactoring * Pulled latest master * Pulled latest master * Pulled latest master * Fix after pulling master * Fixed using wrong axis (Issue #2257) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 (#2874) * fix #1830. credit from https://github.com/danielgindi/Charts/pull/2049 * add combined chart unit tests for iOS, tvOS (macOS only have build process) * use iterater rather than index * Removed redundant ivars in BarLineChartViewBase (#3043) * Removed redundant ivars in favour of proper access control * Moved initialization of axes to their declaration to keep the same optionality exposed. * Update 4.0.0 with master (#3135) * Replaced relevant `ChartUtils` methods with `Double` extensions (#2994) * Replaced relevant `ChartUtils` methods with `Double` extensions Improves readability. `nextUp` is built in and provides the same functionality. * Updated `ChartUtilsTests` to match changes * add option to build demo projects unit tests on iOS (#3121) * add option to build demo projects unit tests on iOS * add ChartsDemo-OSX build test. * Update ViewPortHandler.swift (#3143) fix a small bug * Refactored ChartUtils method into CGPoint extension (#3087) * Refactored ChartUtils method into CGPoint extension * Replaced ChartUtils.defaultValueFormatter() * Codestyle fixes * Finished cleanup * Pulled master --- Source/Charts/Utils/Fill.swift | 174 +++------ Source/Charts/Utils/Transformer.swift | 49 +-- .../Utils/TransformerHorizontalBarChart.swift | 8 +- Source/Charts/Utils/ViewPortHandler.swift | 350 ++++++------------ 4 files changed, 177 insertions(+), 404 deletions(-) mode change 100755 => 100644 Source/Charts/Utils/ViewPortHandler.swift diff --git a/Source/Charts/Utils/Fill.swift b/Source/Charts/Utils/Fill.swift index 1294b3efc0..1eacfd4a88 100644 --- a/Source/Charts/Utils/Fill.swift +++ b/Source/Charts/Utils/Fill.swift @@ -27,79 +27,25 @@ public enum FillType: Int @objc(ChartFill) open class Fill: NSObject { - private var _type: FillType = FillType.empty - private var _color: CGColor? - private var _gradient: CGGradient? - private var _gradientAngle: CGFloat = 0.0 - private var _gradientStartOffsetPercent: CGPoint = CGPoint() - private var _gradientStartRadiusPercent: CGFloat = 0.0 - private var _gradientEndOffsetPercent: CGPoint = CGPoint() - private var _gradientEndRadiusPercent: CGFloat = 0.0 - private var _image: CGImage? - private var _layer: CGLayer? - // MARK: Properties - - @objc open var type: FillType - { - return _type - } - - @objc open var color: CGColor? - { - return _color - } - - @objc open var gradient: CGGradient? - { - return _gradient - } - - @objc open var gradientAngle: CGFloat - { - return _gradientAngle - } - - @objc open var gradientStartOffsetPercent: CGPoint - { - return _gradientStartOffsetPercent - } - - @objc open var gradientStartRadiusPercent: CGFloat - { - return _gradientStartRadiusPercent - } - - @objc open var gradientEndOffsetPercent: CGPoint - { - return _gradientEndOffsetPercent - } - - @objc open var gradientEndRadiusPercent: CGFloat - { - return _gradientEndRadiusPercent - } - - @objc open var image: CGImage? - { - return _image - } - - @objc open var layer: CGLayer? - { - return _layer - } - + + @objc open private(set) var type: FillType = .empty + @objc open private(set) var color: CGColor? + @objc open private(set) var gradient: CGGradient? + @objc open private(set) var gradientAngle: CGFloat = 0.0 + @objc open private(set) var gradientStartOffsetPercent = CGPoint.zero + @objc open private(set) var gradientStartRadiusPercent: CGFloat = 0.0 + @objc open private(set) var gradientEndOffsetPercent = CGPoint.zero + @objc open private(set) var gradientEndRadiusPercent: CGFloat = 0.0 + @objc open private(set) var image: CGImage? + @objc open private(set) var layer: CGLayer? + // MARK: Constructors - - public override init() - { - } - + @objc public init(CGColor: CGColor) { - _type = .color - _color = CGColor + type = .color + color = CGColor } @objc public convenience init(color: NSUIColor) @@ -109,9 +55,9 @@ open class Fill: NSObject @objc public init(linearGradient: CGGradient, angle: CGFloat) { - _type = .linearGradient - _gradient = linearGradient - _gradientAngle = angle + type = .linearGradient + gradient = linearGradient + gradientAngle = angle } @objc public init( @@ -122,12 +68,12 @@ open class Fill: NSObject endRadiusPercent: CGFloat ) { - _type = .radialGradient - _gradient = radialGradient - _gradientStartOffsetPercent = startOffsetPercent - _gradientStartRadiusPercent = startRadiusPercent - _gradientEndOffsetPercent = endOffsetPercent - _gradientEndRadiusPercent = endRadiusPercent + type = .radialGradient + gradient = radialGradient + gradientStartOffsetPercent = startOffsetPercent + gradientStartRadiusPercent = startRadiusPercent + gradientEndOffsetPercent = endOffsetPercent + gradientEndRadiusPercent = endRadiusPercent } @objc public convenience init(radialGradient: CGGradient) @@ -141,31 +87,21 @@ open class Fill: NSObject ) } - @objc public init(CGImage: CGImage, tiled: Bool) + @objc public init(CGImage: CGImage, tiled: Bool = false) { - _type = tiled ? .tiledImage : .image - _image = CGImage + type = tiled ? .tiledImage : .image + image = CGImage } - @objc public convenience init(image: NSUIImage, tiled: Bool) + @objc public convenience init(image: NSUIImage, tiled: Bool = false) { self.init(CGImage: image.cgImage!, tiled: tiled) } - - @objc public convenience init(CGImage: CGImage) - { - self.init(CGImage: CGImage, tiled: false) - } - - @objc public convenience init(image: NSUIImage) - { - self.init(image: image, tiled: false) - } - + @objc public init(CGLayer: CGLayer) { - _type = .layer - _layer = CGLayer + type = .layer + layer = CGLayer } // MARK: Constructors @@ -209,26 +145,16 @@ open class Fill: NSObject return Fill(radialGradient: radialGradient) } - @objc open class func fillWithCGImage(_ CGImage: CGImage, tiled: Bool) -> Fill + @objc open class func fillWithCGImage(_ CGImage: CGImage, tiled: Bool = false) -> Fill { return Fill(CGImage: CGImage, tiled: tiled) } - @objc open class func fillWithImage(_ image: NSUIImage, tiled: Bool) -> Fill + @objc open class func fillWithImage(_ image: NSUIImage, tiled: Bool = false) -> Fill { return Fill(image: image, tiled: tiled) } - - @objc open class func fillWithCGImage(_ CGImage: CGImage) -> Fill - { - return Fill(CGImage: CGImage) - } - - @objc open class func fillWithImage(_ image: NSUIImage) -> Fill - { - return Fill(image: image) - } - + @objc open class func fillWithCGLayer(_ CGLayer: CGLayer) -> Fill { return Fill(CGLayer: CGLayer) @@ -241,39 +167,40 @@ open class Fill: NSObject context: CGContext, rect: CGRect) { - let fillType = _type + let fillType = type if fillType == .empty { return } context.saveGState() + defer { context.restoreGState() } switch fillType { case .color: - context.setFillColor(_color!) + context.setFillColor(color!) context.fillPath() case .image: context.clip() - context.draw(_image!, in: rect) + context.draw(image!, in: rect) case .tiledImage: context.clip() - context.draw(_image!, in: rect, byTiling: true) + context.draw(image!, in: rect, byTiling: true) case .layer: context.clip() - context.draw(_layer!, in: rect) + context.draw(layer!, in: rect) case .linearGradient: - let radians = (360.0 - _gradientAngle).DEG2RAD + let radians = (360.0 - gradientAngle).DEG2RAD let centerPoint = CGPoint(x: rect.midX, y: rect.midY) let xAngleDelta = cos(radians) * rect.width / 2.0 let yAngleDelta = sin(radians) * rect.height / 2.0 @@ -287,7 +214,7 @@ open class Fill: NSObject ) context.clip() - context.drawLinearGradient(_gradient!, + context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: [.drawsAfterEndLocation, .drawsBeforeStartLocation] @@ -299,25 +226,22 @@ open class Fill: NSObject let radius = max(rect.width, rect.height) / 2.0 context.clip() - context.drawRadialGradient(_gradient!, + context.drawRadialGradient(gradient!, startCenter: CGPoint( - x: centerPoint.x + rect.width * _gradientStartOffsetPercent.x, - y: centerPoint.y + rect.height * _gradientStartOffsetPercent.y + x: centerPoint.x + rect.width * gradientStartOffsetPercent.x, + y: centerPoint.y + rect.height * gradientStartOffsetPercent.y ), - startRadius: radius * _gradientStartRadiusPercent, + startRadius: radius * gradientStartRadiusPercent, endCenter: CGPoint( - x: centerPoint.x + rect.width * _gradientEndOffsetPercent.x, - y: centerPoint.y + rect.height * _gradientEndOffsetPercent.y + x: centerPoint.x + rect.width * gradientEndOffsetPercent.x, + y: centerPoint.y + rect.height * gradientEndOffsetPercent.y ), - endRadius: radius * _gradientEndRadiusPercent, + endRadius: radius * gradientEndRadiusPercent, options: [.drawsAfterEndLocation, .drawsBeforeStartLocation] ) case .empty: break } - - context.restoreGState() } - } diff --git a/Source/Charts/Utils/Transformer.swift b/Source/Charts/Utils/Transformer.swift index ca99fb2360..1465325af7 100644 --- a/Source/Charts/Utils/Transformer.swift +++ b/Source/Charts/Utils/Transformer.swift @@ -17,37 +17,37 @@ import CoreGraphics open class Transformer: NSObject { /// matrix to map the values to the screen pixels - internal var _matrixValueToPx = CGAffineTransform.identity + internal var matrixValueToPx = CGAffineTransform.identity /// matrix for handling the different offsets of the chart - internal var _matrixOffset = CGAffineTransform.identity + internal var matrixOffset = CGAffineTransform.identity - internal var _viewPortHandler: ViewPortHandler + internal var viewPortHandler: ViewPortHandler @objc public init(viewPortHandler: ViewPortHandler) { - _viewPortHandler = viewPortHandler + self.viewPortHandler = viewPortHandler } /// Prepares the matrix that transforms values to pixels. Calculates the scale factors from the charts size and offsets. @objc open func prepareMatrixValuePx(chartXMin: Double, deltaX: CGFloat, deltaY: CGFloat, chartYMin: Double) { - var scaleX = (_viewPortHandler.contentWidth / deltaX) - var scaleY = (_viewPortHandler.contentHeight / deltaY) + var scaleX = (viewPortHandler.contentWidth / deltaX) + var scaleY = (viewPortHandler.contentHeight / deltaY) - if CGFloat.infinity == scaleX + if .infinity == scaleX { scaleX = 0.0 } - if CGFloat.infinity == scaleY + if .infinity == scaleY { scaleY = 0.0 } // setup all matrices - _matrixValueToPx = CGAffineTransform.identity - _matrixValueToPx = _matrixValueToPx.scaledBy(x: scaleX, y: -scaleY) - _matrixValueToPx = _matrixValueToPx.translatedBy(x: CGFloat(-chartXMin), y: CGFloat(-chartYMin)) + matrixValueToPx = CGAffineTransform.identity + .scaledBy(x: scaleX, y: -scaleY) + .translatedBy(x: CGFloat(-chartXMin), y: CGFloat(-chartYMin)) } /// Prepares the matrix that contains all offsets. @@ -55,12 +55,12 @@ open class Transformer: NSObject { if !inverted { - _matrixOffset = CGAffineTransform(translationX: _viewPortHandler.offsetLeft, y: _viewPortHandler.chartHeight - _viewPortHandler.offsetBottom) + matrixOffset = CGAffineTransform(translationX: viewPortHandler.offsetLeft, y: viewPortHandler.chartHeight - viewPortHandler.offsetBottom) } else { - _matrixOffset = CGAffineTransform(scaleX: 1.0, y: -1.0) - _matrixOffset = _matrixOffset.translatedBy(x: _viewPortHandler.offsetLeft, y: -_viewPortHandler.offsetTop) + matrixOffset = CGAffineTransform(scaleX: 1.0, y: -1.0) + .translatedBy(x: viewPortHandler.offsetLeft, y: -viewPortHandler.offsetTop) } } @@ -69,10 +69,7 @@ open class Transformer: NSObject open func pointValuesToPixel(_ points: inout [CGPoint]) { let trans = valueToPixelMatrix - for i in 0 ..< points.count - { - points[i] = points[i].applying(trans) - } + points = points.map { $0.applying(trans) } } open func pointValueToPixel(_ point: inout CGPoint) @@ -126,22 +123,14 @@ open class Transformer: NSObject open func rectValuesToPixel(_ rects: inout [CGRect]) { let trans = valueToPixelMatrix - - for i in 0 ..< rects.count - { - rects[i] = rects[i].applying(trans) - } + rects = rects.map { $0.applying(trans) } } /// Transforms the given array of touch points (pixels) into values on the chart. open func pixelsToValues(_ pixels: inout [CGPoint]) { let trans = pixelToValueMatrix - - for i in 0 ..< pixels.count - { - pixels[i] = pixels[i].applying(trans) - } + pixels = pixels.map { $0.applying(trans) } } /// Transforms the given touch point (pixels) into a value on the chart. @@ -169,8 +158,8 @@ open class Transformer: NSObject @objc open var valueToPixelMatrix: CGAffineTransform { return - _matrixValueToPx.concatenating(_viewPortHandler.touchMatrix - ).concatenating(_matrixOffset + matrixValueToPx.concatenating(viewPortHandler.touchMatrix) + .concatenating(matrixOffset ) } diff --git a/Source/Charts/Utils/TransformerHorizontalBarChart.swift b/Source/Charts/Utils/TransformerHorizontalBarChart.swift index d7e657bd25..1a7d5579cd 100644 --- a/Source/Charts/Utils/TransformerHorizontalBarChart.swift +++ b/Source/Charts/Utils/TransformerHorizontalBarChart.swift @@ -20,13 +20,13 @@ open class TransformerHorizontalBarChart: Transformer { if !inverted { - _matrixOffset = CGAffineTransform(translationX: _viewPortHandler.offsetLeft, y: _viewPortHandler.chartHeight - _viewPortHandler.offsetBottom) + matrixOffset = CGAffineTransform(translationX: viewPortHandler.offsetLeft, y: viewPortHandler.chartHeight - viewPortHandler.offsetBottom) } else { - _matrixOffset = CGAffineTransform(scaleX: -1.0, y: 1.0) - _matrixOffset = _matrixOffset.translatedBy(x: -(_viewPortHandler.chartWidth - _viewPortHandler.offsetRight), - y: _viewPortHandler.chartHeight - _viewPortHandler.offsetBottom) + matrixOffset = CGAffineTransform(scaleX: -1.0, y: 1.0) + .translatedBy(x: -(viewPortHandler.chartWidth - viewPortHandler.offsetRight), + y: viewPortHandler.chartHeight - viewPortHandler.offsetBottom) } } } diff --git a/Source/Charts/Utils/ViewPortHandler.swift b/Source/Charts/Utils/ViewPortHandler.swift old mode 100755 new mode 100644 index 4fde6eca50..e2eef62a97 --- a/Source/Charts/Utils/ViewPortHandler.swift +++ b/Source/Charts/Utils/ViewPortHandler.swift @@ -17,45 +17,44 @@ import CoreGraphics open class ViewPortHandler: NSObject { /// matrix used for touch events - private var _touchMatrix = CGAffineTransform.identity - + @objc open private(set) var touchMatrix = CGAffineTransform.identity + /// this rectangle defines the area in which graph values can be drawn - private var _contentRect = CGRect() - - private var _chartWidth = CGFloat(0.0) - private var _chartHeight = CGFloat(0.0) + @objc open private(set) var contentRect = CGRect() + @objc open private(set) var chartWidth: CGFloat = 0 + @objc open private(set) var chartHeight: CGFloat = 0 + /// minimum scale value on the y-axis - private var _minScaleY = CGFloat(1.0) - + @objc open private(set) var minScaleY: CGFloat = 1.0 + /// maximum scale value on the y-axis - private var _maxScaleY = CGFloat.greatestFiniteMagnitude - + @objc open private(set) var maxScaleY = CGFloat.greatestFiniteMagnitude + /// minimum scale value on the x-axis - private var _minScaleX = CGFloat(1.0) - + @objc open private(set) var minScaleX: CGFloat = 1.0 + /// maximum scale value on the x-axis - private var _maxScaleX = CGFloat.greatestFiniteMagnitude - + @objc open private(set) var maxScaleX = CGFloat.greatestFiniteMagnitude + /// contains the current scale factor of the x-axis - private var _scaleX = CGFloat(1.0) - + @objc open private(set) var scaleX: CGFloat = 1.0 + /// contains the current scale factor of the y-axis - private var _scaleY = CGFloat(1.0) - + @objc open private(set) var scaleY: CGFloat = 1.0 + /// current translation (drag distance) on the x-axis - private var _transX = CGFloat(0.0) - + @objc open private(set) var transX: CGFloat = 0 + /// current translation (drag distance) on the y-axis - private var _transY = CGFloat(0.0) - + @objc open private(set) var transY: CGFloat = 0 + /// offset that allows the chart to be dragged over its bounds on the x-axis - private var _transOffsetX = CGFloat(0.0) - + private var transOffsetX: CGFloat = 0 + /// offset that allows the chart to be dragged over its bounds on the x-axis - private var _transOffsetY = CGFloat(0.0) - - /// Constructor - don't forget calling setChartDimens(...) + private var transOffsetY: CGFloat = 0 + @objc public init(width: CGFloat, height: CGFloat) { super.init() @@ -70,100 +69,79 @@ open class ViewPortHandler: NSObject let offsetRight = self.offsetRight let offsetBottom = self.offsetBottom - _chartHeight = height - _chartWidth = width + chartHeight = height + chartWidth = width restrainViewPort(offsetLeft: offsetLeft, offsetTop: offsetTop, offsetRight: offsetRight, offsetBottom: offsetBottom) } @objc open var hasChartDimens: Bool { - if _chartHeight > 0.0 && _chartWidth > 0.0 - { - return true - } - else - { - return false - } + return chartHeight > 0.0 + && chartWidth > 0.0 } @objc open func restrainViewPort(offsetLeft: CGFloat, offsetTop: CGFloat, offsetRight: CGFloat, offsetBottom: CGFloat) { - _contentRect.origin.x = offsetLeft - _contentRect.origin.y = offsetTop - _contentRect.size.width = _chartWidth - offsetLeft - offsetRight - _contentRect.size.height = _chartHeight - offsetBottom - offsetTop + contentRect.origin.x = offsetLeft + contentRect.origin.y = offsetTop + contentRect.size.width = chartWidth - offsetLeft - offsetRight + contentRect.size.height = chartHeight - offsetBottom - offsetTop } @objc open var offsetLeft: CGFloat { - return _contentRect.origin.x + return contentRect.origin.x } @objc open var offsetRight: CGFloat { - return _chartWidth - _contentRect.size.width - _contentRect.origin.x + return chartWidth - contentRect.size.width - contentRect.origin.x } @objc open var offsetTop: CGFloat { - return _contentRect.origin.y + return contentRect.origin.y } @objc open var offsetBottom: CGFloat { - return _chartHeight - _contentRect.size.height - _contentRect.origin.y + return chartHeight - contentRect.size.height - contentRect.origin.y } @objc open var contentTop: CGFloat { - return _contentRect.origin.y + return contentRect.origin.y } @objc open var contentLeft: CGFloat { - return _contentRect.origin.x + return contentRect.origin.x } @objc open var contentRight: CGFloat { - return _contentRect.origin.x + _contentRect.size.width + return contentRect.origin.x + contentRect.size.width } @objc open var contentBottom: CGFloat { - return _contentRect.origin.y + _contentRect.size.height + return contentRect.origin.y + contentRect.size.height } @objc open var contentWidth: CGFloat { - return _contentRect.size.width + return contentRect.size.width } @objc open var contentHeight: CGFloat { - return _contentRect.size.height - } - - @objc open var contentRect: CGRect - { - return _contentRect + return contentRect.size.height } - + @objc open var contentCenter: CGPoint { - return CGPoint(x: _contentRect.origin.x + _contentRect.size.width / 2.0, y: _contentRect.origin.y + _contentRect.size.height / 2.0) - } - - @objc open var chartHeight: CGFloat - { - return _chartHeight - } - - @objc open var chartWidth: CGFloat - { - return _chartWidth + return CGPoint(x: contentRect.origin.x + contentRect.size.width / 2.0, y: contentRect.origin.y + contentRect.size.height / 2.0) } // MARK: - Scaling/Panning etc. @@ -171,16 +149,15 @@ open class ViewPortHandler: NSObject /// Zooms by the specified zoom factors. @objc open func zoom(scaleX: CGFloat, scaleY: CGFloat) -> CGAffineTransform { - return _touchMatrix.scaledBy(x: scaleX, y: scaleY) + return touchMatrix.scaledBy(x: scaleX, y: scaleY) } /// Zooms around the specified center @objc open func zoom(scaleX: CGFloat, scaleY: CGFloat, x: CGFloat, y: CGFloat) -> CGAffineTransform { - var matrix = _touchMatrix.translatedBy(x: x, y: y) - matrix = matrix.scaledBy(x: scaleX, y: scaleY) - matrix = matrix.translatedBy(x: -x, y: -y) - return matrix + return touchMatrix.translatedBy(x: x, y: y) + .scaledBy(x: scaleX, y: scaleY) + .translatedBy(x: -x, y: -y) } /// Zooms in by 1.4, x and y are the coordinates (in pixels) of the zoom center. @@ -204,7 +181,7 @@ open class ViewPortHandler: NSObject /// Sets the scale factor to the specified values. @objc open func setZoom(scaleX: CGFloat, scaleY: CGFloat) -> CGAffineTransform { - var matrix = _touchMatrix + var matrix = touchMatrix matrix.a = scaleX matrix.d = scaleY return matrix @@ -213,22 +190,22 @@ open class ViewPortHandler: NSObject /// Sets the scale factor to the specified values. x and y is pivot. @objc open func setZoom(scaleX: CGFloat, scaleY: CGFloat, x: CGFloat, y: CGFloat) -> CGAffineTransform { - var matrix = _touchMatrix + var matrix = touchMatrix matrix.a = 1.0 matrix.d = 1.0 matrix = matrix.translatedBy(x: x, y: y) - matrix = matrix.scaledBy(x: scaleX, y: scaleY) - matrix = matrix.translatedBy(x: -x, y: -y) + .scaledBy(x: scaleX, y: scaleY) + .translatedBy(x: -x, y: -y) return matrix } /// Resets all zooming and dragging and makes the chart fit exactly it's bounds. @objc open func fitScreen() -> CGAffineTransform { - _minScaleX = 1.0 - _minScaleY = 1.0 + minScaleX = 1.0 + minScaleY = 1.0 - return CGAffineTransform.identity + return .identity } /// Translates to the specified point. @@ -237,7 +214,7 @@ open class ViewPortHandler: NSObject let translateX = pt.x - offsetLeft let translateY = pt.y - offsetTop - let matrix = _touchMatrix.concatenating(CGAffineTransform(translationX: -translateX, y: -translateY)) + let matrix = touchMatrix.concatenating(CGAffineTransform(translationX: -translateX, y: -translateY)) return matrix } @@ -250,160 +227,91 @@ open class ViewPortHandler: NSObject let translateX = pt.x - offsetLeft let translateY = pt.y - offsetTop - let matrix = _touchMatrix.concatenating(CGAffineTransform(translationX: -translateX, y: -translateY)) + let matrix = touchMatrix.concatenating(CGAffineTransform(translationX: -translateX, y: -translateY)) refresh(newMatrix: matrix, chart: chart, invalidate: true) } /// call this method to refresh the graph with a given matrix @objc @discardableResult open func refresh(newMatrix: CGAffineTransform, chart: ChartViewBase, invalidate: Bool) -> CGAffineTransform { - _touchMatrix = newMatrix + touchMatrix = newMatrix // make sure scale and translation are within their bounds - limitTransAndScale(matrix: &_touchMatrix, content: _contentRect) + limitTransAndScale(matrix: &touchMatrix, content: contentRect) chart.setNeedsDisplay() - return _touchMatrix + return touchMatrix } /// limits the maximum scale and X translation of the given matrix - private func limitTransAndScale(matrix: inout CGAffineTransform, content: CGRect?) + private func limitTransAndScale(matrix: inout CGAffineTransform, content: CGRect) { // min scale-x is 1 - _scaleX = min(max(_minScaleX, matrix.a), _maxScaleX) + scaleX = min(max(minScaleX, matrix.a), maxScaleX) // min scale-y is 1 - _scaleY = min(max(_minScaleY, matrix.d), _maxScaleY) + scaleY = min(max(minScaleY, matrix.d), maxScaleY) + let width = content.width + let height = content.height + + let maxTransX = -width * (scaleX - 1.0) + transX = min(max(matrix.tx, maxTransX - transOffsetX), transOffsetX) - var width: CGFloat = 0.0 - var height: CGFloat = 0.0 - - if content != nil - { - width = content!.width - height = content!.height - } - - let maxTransX = -width * (_scaleX - 1.0) - _transX = min(max(matrix.tx, maxTransX - _transOffsetX), _transOffsetX) - - let maxTransY = height * (_scaleY - 1.0) - _transY = max(min(matrix.ty, maxTransY + _transOffsetY), -_transOffsetY) + let maxTransY = height * (scaleY - 1.0) + transY = max(min(matrix.ty, maxTransY + transOffsetY), -transOffsetY) - matrix.tx = _transX - matrix.a = _scaleX - matrix.ty = _transY - matrix.d = _scaleY + matrix.tx = transX + matrix.a = scaleX + matrix.ty = transY + matrix.d = scaleY } /// Sets the minimum scale factor for the x-axis @objc open func setMinimumScaleX(_ xScale: CGFloat) { - var newValue = xScale - - if newValue < 1.0 - { - newValue = 1.0 - } - - _minScaleX = newValue - - limitTransAndScale(matrix: &_touchMatrix, content: _contentRect) + minScaleX = max(xScale, 1) + limitTransAndScale(matrix: &touchMatrix, content: contentRect) } /// Sets the maximum scale factor for the x-axis @objc open func setMaximumScaleX(_ xScale: CGFloat) { - var newValue = xScale - - if newValue == 0.0 - { - newValue = CGFloat.greatestFiniteMagnitude - } - - _maxScaleX = newValue - - limitTransAndScale(matrix: &_touchMatrix, content: _contentRect) + maxScaleX = xScale == 0 ? .greatestFiniteMagnitude : xScale + limitTransAndScale(matrix: &touchMatrix, content: contentRect) } /// Sets the minimum and maximum scale factors for the x-axis @objc open func setMinMaxScaleX(minScaleX: CGFloat, maxScaleX: CGFloat) { - var newMin = minScaleX - var newMax = maxScaleX - - if newMin < 1.0 - { - newMin = 1.0 - } - if newMax == 0.0 - { - newMax = CGFloat.greatestFiniteMagnitude - } - - _minScaleX = newMin - _maxScaleX = maxScaleX - - limitTransAndScale(matrix: &_touchMatrix, content: _contentRect) + self.minScaleX = max(minScaleX, 1) + self.maxScaleX = maxScaleX == 0 ? .greatestFiniteMagnitude : maxScaleX + limitTransAndScale(matrix: &touchMatrix, content: contentRect) } /// Sets the minimum scale factor for the y-axis @objc open func setMinimumScaleY(_ yScale: CGFloat) { - var newValue = yScale - - if newValue < 1.0 - { - newValue = 1.0 - } - - _minScaleY = newValue - - limitTransAndScale(matrix: &_touchMatrix, content: _contentRect) + minScaleY = max(yScale, 1) + limitTransAndScale(matrix: &touchMatrix, content: contentRect) } /// Sets the maximum scale factor for the y-axis @objc open func setMaximumScaleY(_ yScale: CGFloat) { - var newValue = yScale - - if newValue == 0.0 - { - newValue = CGFloat.greatestFiniteMagnitude - } - - _maxScaleY = newValue - - limitTransAndScale(matrix: &_touchMatrix, content: _contentRect) + maxScaleY = yScale == 0 ? .greatestFiniteMagnitude : yScale + limitTransAndScale(matrix: &touchMatrix, content: contentRect) } @objc open func setMinMaxScaleY(minScaleY: CGFloat, maxScaleY: CGFloat) { - var minScaleY = minScaleY, maxScaleY = maxScaleY - - if minScaleY < 1.0 - { - minScaleY = 1.0 - } - - if maxScaleY == 0.0 - { - maxScaleY = CGFloat.greatestFiniteMagnitude - } - - _minScaleY = minScaleY - _maxScaleY = maxScaleY - - limitTransAndScale(matrix: &_touchMatrix, content: _contentRect) - } - @objc open var touchMatrix: CGAffineTransform - { - return _touchMatrix + self.minScaleY = max(minScaleY, 1) + self.maxScaleY = maxScaleY == 0 ? .greatestFiniteMagnitude : maxScaleY + limitTransAndScale(matrix: &touchMatrix, content: contentRect) } - + // MARK: - Boundaries Check @objc open func isInBoundsX(_ x: CGFloat) -> Bool @@ -423,74 +331,26 @@ open class ViewPortHandler: NSObject @objc open func isInBoundsLeft(_ x: CGFloat) -> Bool { - return _contentRect.origin.x <= x + 1.0 + return contentRect.origin.x <= x + 1.0 } @objc open func isInBoundsRight(_ x: CGFloat) -> Bool { let x = floor(x * 100.0) / 100.0 - return (_contentRect.origin.x + _contentRect.size.width) >= x - 1.0 + return (contentRect.origin.x + contentRect.size.width) >= x - 1.0 } @objc open func isInBoundsTop(_ y: CGFloat) -> Bool { - return _contentRect.origin.y <= y + return contentRect.origin.y <= y } @objc open func isInBoundsBottom(_ y: CGFloat) -> Bool { let normalizedY = floor(y * 100.0) / 100.0 - return (_contentRect.origin.y + _contentRect.size.height) >= normalizedY - } - - /// - returns: The current x-scale factor - @objc open var scaleX: CGFloat - { - return _scaleX - } - - /// - returns: The current y-scale factor - @objc open var scaleY: CGFloat - { - return _scaleY - } - - /// - returns: The minimum x-scale factor - @objc open var minScaleX: CGFloat - { - return _minScaleX - } - - /// - returns: The minimum y-scale factor - @objc open var minScaleY: CGFloat - { - return _minScaleY - } - - /// - returns: The minimum x-scale factor - @objc open var maxScaleX: CGFloat - { - return _maxScaleX + return (contentRect.origin.y + contentRect.size.height) >= normalizedY } - - /// - returns: The minimum y-scale factor - @objc open var maxScaleY: CGFloat - { - return _maxScaleY - } - - /// - returns: The translation (drag / pan) distance on the x-axis - @objc open var transX: CGFloat - { - return _transX - } - - /// - returns: The translation (drag / pan) distance on the y-axis - @objc open var transY: CGFloat - { - return _transY - } - + /// if the chart is fully zoomed out, return true @objc open var isFullyZoomedOut: Bool { @@ -500,54 +360,54 @@ open class ViewPortHandler: NSObject /// - returns: `true` if the chart is fully zoomed out on it's y-axis (vertical). @objc open var isFullyZoomedOutY: Bool { - return !(_scaleY > _minScaleY || _minScaleY > 1.0) + return !(scaleY > minScaleY || minScaleY > 1.0) } /// - returns: `true` if the chart is fully zoomed out on it's x-axis (horizontal). @objc open var isFullyZoomedOutX: Bool { - return !(_scaleX > _minScaleX || _minScaleX > 1.0) + return !(scaleX > minScaleX || minScaleX > 1.0) } /// Set an offset in pixels that allows the user to drag the chart over it's bounds on the x-axis. @objc open func setDragOffsetX(_ offset: CGFloat) { - _transOffsetX = offset + transOffsetX = offset } /// Set an offset in pixels that allows the user to drag the chart over it's bounds on the y-axis. @objc open func setDragOffsetY(_ offset: CGFloat) { - _transOffsetY = offset + transOffsetY = offset } /// - returns: `true` if both drag offsets (x and y) are zero or smaller. @objc open var hasNoDragOffset: Bool { - return _transOffsetX <= 0.0 && _transOffsetY <= 0.0 + return transOffsetX <= 0.0 && transOffsetY <= 0.0 } /// - returns: `true` if the chart is not yet fully zoomed out on the x-axis @objc open var canZoomOutMoreX: Bool { - return _scaleX > _minScaleX + return scaleX > minScaleX } /// - returns: `true` if the chart is not yet fully zoomed in on the x-axis @objc open var canZoomInMoreX: Bool { - return _scaleX < _maxScaleX + return scaleX < maxScaleX } /// - returns: `true` if the chart is not yet fully zoomed out on the y-axis @objc open var canZoomOutMoreY: Bool { - return _scaleY > _minScaleY + return scaleY > minScaleY } /// - returns: `true` if the chart is not yet fully zoomed in on the y-axis @objc open var canZoomInMoreY: Bool { - return _scaleY < _maxScaleY + return scaleY < maxScaleY } } From 4285bbcc57de559a43c2ecf479708c7b22e53208 Mon Sep 17 00:00:00 2001 From: jjatie Date: Mon, 15 Jan 2018 20:23:29 -0400 Subject: [PATCH 08/84] Chartdata collection conformance (#3023) * Added Collection conformances MutableCollection RandomAccessCollection RangeReplaceableCollection * Fixed required initializers * ChartData adopts ExressibleByArrayLiteral * Updates for PR Also added remove subrange. * PR review fixes * Removed unnecessary `get` from subscripts. * Disabled `remove(at:)` for CombinedChartView * Relocated `appendEntry(_:todataSet:)` * Removed methods from CombinedChartData --- .../Standard/BarChartData.swift | 9 +- .../BarLineScatterCandleBubbleChartData.swift | 7 +- .../Standard/BubbleChartData.swift | 9 +- .../Standard/CandleChartData.swift | 7 +- .../Implementations/Standard/ChartData.swift | 199 ++++++++++++++++-- .../Standard/CombinedChartData.swift | 7 +- .../Standard/LineChartData.swift | 7 +- .../Standard/PieChartData.swift | 7 +- .../Standard/RadarChartData.swift | 9 +- .../Standard/ScatterChartData.swift | 7 +- 10 files changed, 240 insertions(+), 28 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/BarChartData.swift b/Source/Charts/Data/Implementations/Standard/BarChartData.swift index df85bbafc1..8bffa305da 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartData.swift @@ -14,7 +14,7 @@ import CoreGraphics open class BarChartData: BarLineScatterCandleBubbleChartData { - public override init() + public required init() { super.init() } @@ -23,7 +23,12 @@ open class BarChartData: BarLineScatterCandleBubbleChartData { super.init(dataSets: dataSets) } - + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } + /// The width of the bars on the x-axis, in values (not pixels) /// /// **default**: 0.85 diff --git a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift index 0325328f84..715709708b 100644 --- a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift @@ -13,7 +13,7 @@ import Foundation open class BarLineScatterCandleBubbleChartData: ChartData { - public override init() + public required init() { super.init() } @@ -22,4 +22,9 @@ open class BarLineScatterCandleBubbleChartData: ChartData { super.init(dataSets: dataSets) } + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } } diff --git a/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift b/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift index f514340881..89fd484804 100644 --- a/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift @@ -14,7 +14,7 @@ import CoreGraphics open class BubbleChartData: BarLineScatterCandleBubbleChartData { - public override init() + public required init() { super.init() } @@ -23,7 +23,12 @@ open class BubbleChartData: BarLineScatterCandleBubbleChartData { super.init(dataSets: dataSets) } - + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } + /// Sets the width of the circle that surrounds the bubble when highlighted for all DataSet objects this data object contains @objc open func setHighlightCircleWidth(_ width: CGFloat) { diff --git a/Source/Charts/Data/Implementations/Standard/CandleChartData.swift b/Source/Charts/Data/Implementations/Standard/CandleChartData.swift index 5501ebc98b..2c0d3bd443 100644 --- a/Source/Charts/Data/Implementations/Standard/CandleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CandleChartData.swift @@ -13,7 +13,7 @@ import Foundation open class CandleChartData: BarLineScatterCandleBubbleChartData { - public override init() + public required init() { super.init() } @@ -22,4 +22,9 @@ open class CandleChartData: BarLineScatterCandleBubbleChartData { super.init(dataSets: dataSets) } + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } } diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index bb1bd869a3..5acb2ea926 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -11,7 +11,7 @@ import Foundation -open class ChartData: NSObject +open class ChartData: NSObject, ExpressibleByArrayLiteral { internal var _yMax: Double = -Double.greatestFiniteMagnitude internal var _yMin: Double = Double.greatestFiniteMagnitude @@ -24,13 +24,20 @@ open class ChartData: NSObject internal var _dataSets = [ChartDataSetProtocol]() - public override init() + public override required init() { super.init() - - _dataSets = [ChartDataSetProtocol]() } - + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init() + + _dataSets = elements + + self.initialize(dataSets: _dataSets) + } + @objc public init(dataSets: [ChartDataSetProtocol]?) { super.init() @@ -491,22 +498,20 @@ open class ChartData: NSObject } /// Adds an Entry to the DataSet at the specified index. Entries are added to the end of the list. - @objc open func addEntry(_ e: ChartDataEntry, dataSetIndex: Int) + @objc(addEntry:dataSetIndex:) + open func appendEntry(_ e: ChartDataEntry, toDataSet dataSetIndex: Index) { - if _dataSets.count > dataSetIndex && dataSetIndex >= 0 - { - let set = _dataSets[dataSetIndex] - - if !set.addEntry(e) { return } - - calcMinMax(entry: e, axis: set.axisDependency) - } - else + guard indices.contains(dataSetIndex) else { print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") + return } + + let set = self[dataSetIndex] + if !set.addEntry(e) { return } + calcMinMax(entry: e, axis: set.axisDependency) } - + /// Removes the given Entry object from the DataSet at the specified index. @objc @discardableResult open func removeEntry(_ entry: ChartDataEntry, dataSetIndex: Int) -> Bool { @@ -757,3 +762,165 @@ open class ChartData: NSObject return max } } + +// MARK: MutableCollection +extension ChartData: MutableCollection +{ + public typealias Index = Int + public typealias Element = ChartDataSetProtocol + + public var startIndex: Index + { + return _dataSets.startIndex + } + + public var endIndex: Index + { + return _dataSets.endIndex + } + + public func index(after: Index) -> Index + { + return _dataSets.index(after: after) + } + + public subscript(position: Index) -> Element + { + get{ return _dataSets[position] } + set{ self._dataSets[position] = newValue } + } +} + +// MARK: RandomAccessCollection +extension ChartData: RandomAccessCollection +{ + public func index(before: Index) -> Index + { + return _dataSets.index(before: before) + } +} + +// MARK: RangeReplaceableCollection +extension ChartData: RangeReplaceableCollection +{ + public func append(_ newElement: Element) + { + guard !(self is CombinedChartData) else + { + fatalError("append(_:) not supported for CombinedData") + } + + _dataSets.append(newElement) + calcMinMax(dataSet: newElement) + } + + public func remove(at position: Index) -> Element + { + guard !(self is CombinedChartData) else + { + fatalError("remove(at:) not supported for CombinedData") + } + + let element = _dataSets.remove(at: position) + calcMinMax() + return element + } + + public func removeFirst() -> Element + { + guard !(self is CombinedChartData) else + { + fatalError("removeFirst() not supported for CombinedData") + } + + let element = _dataSets.removeFirst() + notifyDataChanged() + return element + } + + public func removeFirst(_ n: Int) + { + guard !(self is CombinedChartData) else + { + fatalError("removeFirst(_:) not supported for CombinedData") + } + + _dataSets.removeFirst(n) + notifyDataChanged() + } + + public func removeLast() -> Element + { + guard !(self is CombinedChartData) else + { + fatalError("removeLast() not supported for CombinedData") + } + + let element = _dataSets.removeLast() + notifyDataChanged() + return element + } + + public func removeLast(_ n: Int) + { + guard !(self is CombinedChartData) else + { + fatalError("removeLast(_:) not supported for CombinedData") + } + + _dataSets.removeLast(n) + notifyDataChanged() + } + + public func removeSubrange(_ bounds: R) where R : RangeExpression, ChartData.Index == R.Bound + { + guard !(self is CombinedChartData) else + { + fatalError("removeSubrange(_:) not supported for CombinedData") + } + + _dataSets.removeSubrange(bounds) + notifyDataChanged() + } + + public func removeAll(keepingCapacity keepCapacity: Bool) + { + guard !(self is CombinedChartData) else + { + fatalError("removeAll(keepingCapacity:) not supported for CombinedData") + } + + _dataSets.removeAll(keepingCapacity: keepCapacity) + notifyDataChanged() + } +} + +// MARK: Swift Accessors +extension ChartData +{ + /// Retrieve the index of a ChartDataSet with a specific label from the ChartData. Search can be case sensitive or not. + /// **IMPORTANT: This method does calculations at runtime, do not over-use in performance critical situations.** + /// + /// - Parameters: + /// - label: The label to search for + /// - ignoreCase: if true, the search is not case-sensitive + /// - Returns: The index of the DataSet Object with the given label. `nil` if not found + public func index(forLabel label: String, ignoreCase: Bool) -> Index? + { + return ignoreCase + ? index { $0.label?.caseInsensitiveCompare(label) == .orderedSame } + : index { $0.label == label } + } + + public subscript(label: String, ignoreCase: Bool) -> Element? + { + guard let index = index(forLabel: label, ignoreCase: ignoreCase) else { return nil } + return self[index] + } + + public subscript(entry: ChartDataEntry) -> Element? + { + guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { return nil } + return self[index] + } +} diff --git a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift index 59e1f2327b..4eaac60f34 100644 --- a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift @@ -19,7 +19,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData private var _candleData: CandleChartData! private var _bubbleData: BubbleChartData! - public override init() + public required init() { super.init() } @@ -28,6 +28,11 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData { super.init(dataSets: dataSets) } + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } @objc open var lineData: LineChartData! { diff --git a/Source/Charts/Data/Implementations/Standard/LineChartData.swift b/Source/Charts/Data/Implementations/Standard/LineChartData.swift index cc19888cc0..468620ff49 100644 --- a/Source/Charts/Data/Implementations/Standard/LineChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/LineChartData.swift @@ -14,7 +14,7 @@ import Foundation /// Data object that encapsulates all data associated with a LineChart. open class LineChartData: ChartData { - public override init() + public required init() { super.init() } @@ -23,4 +23,9 @@ open class LineChartData: ChartData { super.init(dataSets: dataSets) } + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } } diff --git a/Source/Charts/Data/Implementations/Standard/PieChartData.swift b/Source/Charts/Data/Implementations/Standard/PieChartData.swift index e5bd22f23c..1ea1f2675a 100644 --- a/Source/Charts/Data/Implementations/Standard/PieChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/PieChartData.swift @@ -13,7 +13,7 @@ import Foundation open class PieChartData: ChartData { - public override init() + public required init() { super.init() } @@ -23,6 +23,11 @@ open class PieChartData: ChartData super.init(dataSets: dataSets) } + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } + @objc var dataSet: PieChartDataSetProtocol? { get diff --git a/Source/Charts/Data/Implementations/Standard/RadarChartData.swift b/Source/Charts/Data/Implementations/Standard/RadarChartData.swift index 30203de084..313ca65147 100644 --- a/Source/Charts/Data/Implementations/Standard/RadarChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/RadarChartData.swift @@ -29,7 +29,7 @@ open class RadarChartData: ChartData self.labels = labels } - public override init() + public required init() { super.init() } @@ -38,7 +38,12 @@ open class RadarChartData: ChartData { super.init(dataSets: dataSets) } - + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } + open override func entryForHighlight(_ highlight: Highlight) -> ChartDataEntry? { return getDataSetByIndex(highlight.dataSetIndex)?.entryForIndex(Int(highlight.x)) diff --git a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift index 4fe5127c34..c3c4ca1b8a 100644 --- a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift @@ -14,7 +14,7 @@ import CoreGraphics open class ScatterChartData: BarLineScatterCandleBubbleChartData { - public override init() + public required init() { super.init() } @@ -23,6 +23,11 @@ open class ScatterChartData: BarLineScatterCandleBubbleChartData { super.init(dataSets: dataSets) } + + public required init(arrayLiteral elements: ChartDataSetProtocol...) + { + super.init(dataSets: elements) + } /// - returns: The maximum shape-size across all DataSets. @objc open func getGreatestShapeSize() -> CGFloat From f9120d2f591c8443bf40831c4e831fdc79c44c91 Mon Sep 17 00:00:00 2001 From: jjatie Date: Sat, 20 Jan 2018 21:56:52 -0400 Subject: [PATCH 09/84] weak -> unowned (#3039) * weak -> unowned `ViewPortJob`s are owned by the Charts that make them. They are guaranteed to only exist while the chart exists. The `Transformer` and `ViewPortHandler` are supplied by the chart, so they will also only exist while the chart exists. Therefor none of them need to be `weak`, but can be `unowned` instead. It's a minor change in the code base (removing some guard statements), but it makes it much easier to discern how the framework is architected. * pulled latest master --- Source/Charts/Jobs/AnimatedMoveViewJob.swift | 6 ---- Source/Charts/Jobs/AnimatedViewPortJob.swift | 10 +++---- Source/Charts/Jobs/AnimatedZoomViewJob.swift | 30 ++++++++------------ Source/Charts/Jobs/MoveViewJob.swift | 8 +----- Source/Charts/Jobs/ViewPortJob.swift | 18 ++++++------ Source/Charts/Jobs/ZoomViewJob.swift | 17 ++++------- 6 files changed, 33 insertions(+), 56 deletions(-) diff --git a/Source/Charts/Jobs/AnimatedMoveViewJob.swift b/Source/Charts/Jobs/AnimatedMoveViewJob.swift index b6ea8c28e5..f91cfbcdff 100644 --- a/Source/Charts/Jobs/AnimatedMoveViewJob.swift +++ b/Source/Charts/Jobs/AnimatedMoveViewJob.swift @@ -20,12 +20,6 @@ open class AnimatedMoveViewJob: AnimatedViewPortJob { internal override func animationUpdate() { - guard - let viewPortHandler = viewPortHandler, - let transformer = transformer, - let view = view - else { return } - var pt = CGPoint( x: xOrigin + (CGFloat(xValue) - xOrigin) * phase, y: yOrigin + (CGFloat(yValue) - yOrigin) * phase diff --git a/Source/Charts/Jobs/AnimatedViewPortJob.swift b/Source/Charts/Jobs/AnimatedViewPortJob.swift index 985358e4b6..20b2440784 100644 --- a/Source/Charts/Jobs/AnimatedViewPortJob.swift +++ b/Source/Charts/Jobs/AnimatedViewPortJob.swift @@ -40,16 +40,16 @@ open class AnimatedViewPortJob: ViewPortJob duration: TimeInterval, easing: ChartEasingFunctionBlock?) { + self.xOrigin = xOrigin + self.yOrigin = yOrigin + self._duration = duration + self._easing = easing + super.init(viewPortHandler: viewPortHandler, xValue: xValue, yValue: yValue, transformer: transformer, view: view) - - self.xOrigin = xOrigin - self.yOrigin = yOrigin - self._duration = duration - self._easing = easing } deinit diff --git a/Source/Charts/Jobs/AnimatedZoomViewJob.swift b/Source/Charts/Jobs/AnimatedZoomViewJob.swift index 4e9d5fd981..4f23911283 100644 --- a/Source/Charts/Jobs/AnimatedZoomViewJob.swift +++ b/Source/Charts/Jobs/AnimatedZoomViewJob.swift @@ -14,7 +14,7 @@ import CoreGraphics open class AnimatedZoomViewJob: AnimatedViewPortJob { - internal var yAxis: YAxis? + internal var yAxis: YAxis internal var xAxisRange: Double = 0.0 internal var scaleX: CGFloat = 0.0 internal var scaleY: CGFloat = 0.0 @@ -40,6 +40,15 @@ open class AnimatedZoomViewJob: AnimatedViewPortJob duration: TimeInterval, easing: ChartEasingFunctionBlock?) { + self.yAxis = yAxis + self.xAxisRange = xAxisRange + self.scaleX = scaleX + self.scaleY = scaleY + self.zoomCenterX = zoomCenterX + self.zoomCenterY = zoomCenterY + self.zoomOriginX = zoomOriginX + self.zoomOriginY = zoomOriginY + super.init(viewPortHandler: viewPortHandler, xValue: 0.0, yValue: 0.0, @@ -49,32 +58,17 @@ open class AnimatedZoomViewJob: AnimatedViewPortJob yOrigin: yOrigin, duration: duration, easing: easing) - - self.yAxis = yAxis - self.xAxisRange = xAxisRange - self.scaleX = scaleX - self.scaleY = scaleY - self.zoomCenterX = zoomCenterX - self.zoomCenterY = zoomCenterY - self.zoomOriginX = zoomOriginX - self.zoomOriginY = zoomOriginY } internal override func animationUpdate() { - guard - let viewPortHandler = viewPortHandler, - let transformer = transformer, - let view = view - else { return } - let scaleX = xOrigin + (self.scaleX - xOrigin) * phase let scaleY = yOrigin + (self.scaleY - yOrigin) * phase var matrix = viewPortHandler.setZoom(scaleX: scaleX, scaleY: scaleY) viewPortHandler.refresh(newMatrix: matrix, chart: view, invalidate: false) - let valsInView = CGFloat(yAxis?.axisRange ?? 0.0) / viewPortHandler.scaleY + let valsInView = CGFloat(yAxis.axisRange) / viewPortHandler.scaleY let xsInView = CGFloat(xAxisRange) / viewPortHandler.scaleX var pt = CGPoint( @@ -91,6 +85,6 @@ open class AnimatedZoomViewJob: AnimatedViewPortJob internal override func animationEnd() { (view as? BarLineChartViewBase)?.calculateOffsets() - view?.setNeedsDisplay() + view.setNeedsDisplay() } } diff --git a/Source/Charts/Jobs/MoveViewJob.swift b/Source/Charts/Jobs/MoveViewJob.swift index acc8165d39..3d150ae1fd 100644 --- a/Source/Charts/Jobs/MoveViewJob.swift +++ b/Source/Charts/Jobs/MoveViewJob.swift @@ -18,15 +18,9 @@ import CoreGraphics @objc(MoveChartViewJob) open class MoveViewJob: ViewPortJob -{ +{ open override func doJob() { - guard - let viewPortHandler = viewPortHandler, - let transformer = transformer, - let view = view - else { return } - var pt = CGPoint( x: xValue, y: yValue diff --git a/Source/Charts/Jobs/ViewPortJob.swift b/Source/Charts/Jobs/ViewPortJob.swift index c52562ed53..c3adcca5c8 100644 --- a/Source/Charts/Jobs/ViewPortJob.swift +++ b/Source/Charts/Jobs/ViewPortJob.swift @@ -16,13 +16,13 @@ import CoreGraphics @objc(ChartViewPortJob) open class ViewPortJob: NSObject { - internal var point: CGPoint = CGPoint() - internal weak var viewPortHandler: ViewPortHandler? - internal var xValue: Double = 0.0 - internal var yValue: Double = 0.0 - internal weak var transformer: Transformer? - internal weak var view: ChartViewBase? - + internal var point: CGPoint = .zero + internal unowned var viewPortHandler: ViewPortHandler + internal var xValue = 0.0 + internal var yValue = 0.0 + internal unowned var transformer: Transformer + internal unowned var view: ChartViewBase + @objc public init( viewPortHandler: ViewPortHandler, xValue: Double, @@ -30,13 +30,13 @@ open class ViewPortJob: NSObject transformer: Transformer, view: ChartViewBase) { - super.init() - self.viewPortHandler = viewPortHandler self.xValue = xValue self.yValue = yValue self.transformer = transformer self.view = view + + super.init() } @objc open func doJob() diff --git a/Source/Charts/Jobs/ZoomViewJob.swift b/Source/Charts/Jobs/ZoomViewJob.swift index 7bd805c425..15225d1f20 100644 --- a/Source/Charts/Jobs/ZoomViewJob.swift +++ b/Source/Charts/Jobs/ZoomViewJob.swift @@ -22,7 +22,7 @@ open class ZoomViewJob: ViewPortJob internal var scaleX: CGFloat = 0.0 internal var scaleY: CGFloat = 0.0 internal var axisDependency: YAxis.AxisDependency = .left - + @objc public init( viewPortHandler: ViewPortHandler, scaleX: CGFloat, @@ -33,26 +33,21 @@ open class ZoomViewJob: ViewPortJob axis: YAxis.AxisDependency, view: ChartViewBase) { + self.scaleX = scaleX + self.scaleY = scaleY + self.axisDependency = axis + super.init( viewPortHandler: viewPortHandler, xValue: xValue, yValue: yValue, transformer: transformer, view: view) - - self.scaleX = scaleX - self.scaleY = scaleY - self.axisDependency = axis + } open override func doJob() { - guard - let viewPortHandler = viewPortHandler, - let transformer = transformer, - let view = view - else { return } - var matrix = viewPortHandler.setZoom(scaleX: scaleX, scaleY: scaleY) viewPortHandler.refresh(newMatrix: matrix, chart: view, invalidate: false) From 34d2940fb335d2a6757b18a11cb80b100c924f03 Mon Sep 17 00:00:00 2001 From: jjatie Date: Tue, 23 Jan 2018 06:17:45 -0400 Subject: [PATCH 10/84] Removed optionality from valueFormatter where appropriate (#3106) * Removed optionality from valueFormatter where appropriate In ChartBaseDataSet, `valueFormatter` never returned nil, and escaped early if trying to set it to nil. It appears this was made optional solely to provide lazy initialization. We now use a lazy var instead. In AxisBase, the backing var `_axisValueFormatter` would never be treated as nil, and appears to be made optional solely to provide lazy initialization. We now use a lazy var instead. In `valueFormatter` we can remove the `nil` check, but leave it optional to keep the same functionality. * Pulled 4.0.0 * Pulled latest 4.0.0 * Fixed pro file --- Source/Charts/Charts/ChartViewBase.swift | 12 +++---- Source/Charts/Components/AxisBase.swift | 9 +++--- .../Implementations/ChartBaseDataSet.swift | 31 ++----------------- .../Interfaces/ChartDataSetProtocol.swift | 5 +-- .../Charts/Renderers/BarChartRenderer.swift | 2 +- .../Renderers/BubbleChartRenderer.swift | 6 ++-- .../Renderers/CandleStickChartRenderer.swift | 2 +- .../HorizontalBarChartRenderer.swift | 2 +- .../Charts/Renderers/LineChartRenderer.swift | 2 +- .../Charts/Renderers/PieChartRenderer.swift | 2 +- .../Charts/Renderers/RadarChartRenderer.swift | 2 +- .../Renderers/ScatterChartRenderer.swift | 2 +- 12 files changed, 23 insertions(+), 54 deletions(-) diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index 2135413042..7665c896f7 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -40,8 +40,8 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate // MARK: - Properties /// The default IValueFormatter that has been determined by the chart considering the provided minimum and maximum values. - internal var _defaultValueFormatter: ValueFormatter? = DefaultValueFormatter(decimals: 0) - + internal lazy var defaultValueFormatter: ValueFormatter = DefaultValueFormatter(decimals: 0) + /// The data for the chart @objc open var data: ChartData? { @@ -56,9 +56,9 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate for set in data.dataSets { - if set.needsFormatter || set.valueFormatter === _defaultValueFormatter + if set.valueFormatter === defaultValueFormatter { - set.valueFormatter = _defaultValueFormatter + set.valueFormatter = defaultValueFormatter } } @@ -251,12 +251,12 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate } - if _defaultValueFormatter is DefaultValueFormatter + if defaultValueFormatter is DefaultValueFormatter { // setup the formatter with a new number of digits let digits = reference.decimalPlaces - (_defaultValueFormatter as? DefaultValueFormatter)?.decimals + (defaultValueFormatter as? DefaultValueFormatter)?.decimals = digits } } diff --git a/Source/Charts/Components/AxisBase.swift b/Source/Charts/Components/AxisBase.swift index b97da1e03b..22722c9935 100644 --- a/Source/Charts/Components/AxisBase.swift +++ b/Source/Charts/Components/AxisBase.swift @@ -22,7 +22,7 @@ open class AxisBase: ComponentBase } /// Custom formatter that is used instead of the auto-formatter if set - private var _axisValueFormatter: AxisValueFormatter? + private lazy var _axisValueFormatter: AxisValueFormatter = DefaultAxisValueFormatter(decimals: decimals) @objc open var labelFont = NSUIFont.systemFont(ofSize: 10.0) @objc open var labelTextColor = NSUIColor.black @@ -161,10 +161,9 @@ open class AxisBase: ComponentBase { get { - if _axisValueFormatter == nil || - (_axisValueFormatter is DefaultAxisValueFormatter && - (_axisValueFormatter as! DefaultAxisValueFormatter).hasAutoDecimals && - (_axisValueFormatter as! DefaultAxisValueFormatter).decimals != decimals) + if _axisValueFormatter is DefaultAxisValueFormatter, + (_axisValueFormatter as! DefaultAxisValueFormatter).hasAutoDecimals, + (_axisValueFormatter as! DefaultAxisValueFormatter).decimals != decimals { _axisValueFormatter = DefaultAxisValueFormatter(decimals: decimals) } diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index 8e769d7988..c8d9bb96a4 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -268,35 +268,10 @@ open class ChartBaseDataSet: NSObject, ChartDataSetProtocol /// - returns: `true` if value highlighting is enabled for this dataset open var isHighlightEnabled: Bool { return highlightEnabled } - - /// Custom formatter that is used instead of the auto-formatter if set - internal var _valueFormatter: ValueFormatter? - + /// Custom formatter that is used instead of the auto-formatter if set - open var valueFormatter: ValueFormatter? - { - get - { - if needsFormatter - { - return ChartUtils.defaultValueFormatter() - } - - return _valueFormatter - } - set - { - if newValue == nil { return } - - _valueFormatter = newValue - } - } - - open var needsFormatter: Bool - { - return _valueFormatter == nil - } - + open lazy var valueFormatter: ValueFormatter = ChartUtils.defaultValueFormatter() + /// Sets/get a single color for value text. /// Setting the color clears the colors array and adds a single color. /// Getting will return the first color in the array. diff --git a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift index 77b1e6b0d2..8c6945f9ff 100644 --- a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift +++ b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift @@ -187,10 +187,7 @@ public protocol ChartDataSetProtocol var isHighlightEnabled: Bool { get } /// Custom formatter that is used instead of the auto-formatter if set - var valueFormatter: ValueFormatter? { get set } - - /// - returns: `true` if the valueFormatter object of this DataSet is null. - var needsFormatter: Bool { get } + var valueFormatter: ValueFormatter { get set } /// Sets/get a single color for value text. /// Setting the color clears the colors array and adds a single color. diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index 007c83813f..6603d8a4fd 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -333,7 +333,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer let buffer = _buffers[dataSetIndex] - guard let formatter = dataSet.valueFormatter else { continue } + let formatter = dataSet.valueFormatter let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) diff --git a/Source/Charts/Renderers/BubbleChartRenderer.swift b/Source/Charts/Renderers/BubbleChartRenderer.swift index dd097310c9..cda98e4a1c 100644 --- a/Source/Charts/Renderers/BubbleChartRenderer.swift +++ b/Source/Charts/Renderers/BubbleChartRenderer.swift @@ -137,11 +137,9 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer { let dataSet = dataSets[i] - guard - shouldDrawValues(forDataSet: dataSet), - let formatter = dataSet.valueFormatter - else { continue } + guard shouldDrawValues(forDataSet: dataSet) else { continue } + let formatter = dataSet.valueFormatter let alpha = phaseX == 1 ? phaseY : phaseX _xBounds.set(chart: dataProvider, dataSet: dataSet, animator: animator) diff --git a/Source/Charts/Renderers/CandleStickChartRenderer.swift b/Source/Charts/Renderers/CandleStickChartRenderer.swift index 6780627679..53bd613708 100644 --- a/Source/Charts/Renderers/CandleStickChartRenderer.swift +++ b/Source/Charts/Renderers/CandleStickChartRenderer.swift @@ -260,7 +260,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer let valueFont = dataSet.valueFont - guard let formatter = dataSet.valueFormatter else { continue } + let formatter = dataSet.valueFormatter let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) let valueToPixelMatrix = trans.valueToPixelMatrix diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index 768e79c307..f95648206a 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -328,7 +328,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer let valueFont = dataSet.valueFont let yOffset = -valueFont.lineHeight / 2.0 - guard let formatter = dataSet.valueFormatter else { continue } + let formatter = dataSet.valueFormatter let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 4c5cf262a0..3c4f5040f3 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -521,7 +521,7 @@ open class LineChartRenderer: LineRadarRenderer let valueFont = dataSet.valueFont - guard let formatter = dataSet.valueFormatter else { continue } + let formatter = dataSet.valueFormatter let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) let valueToPixelMatrix = trans.valueToPixelMatrix diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index cd018b5efb..4d8ec043cc 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -321,7 +321,7 @@ open class PieChartRenderer: NSObject, DataRenderer let entryLabelFont = dataSet.entryLabelFont let lineHeight = valueFont.lineHeight - guard let formatter = dataSet.valueFormatter else { continue } + let formatter = dataSet.valueFormatter for j in 0 ..< dataSet.entryCount { diff --git a/Source/Charts/Renderers/RadarChartRenderer.swift b/Source/Charts/Renderers/RadarChartRenderer.swift index a8438b8066..ea4cbf1b21 100644 --- a/Source/Charts/Renderers/RadarChartRenderer.swift +++ b/Source/Charts/Renderers/RadarChartRenderer.swift @@ -173,7 +173,7 @@ open class RadarChartRenderer: LineRadarRenderer let valueFont = dataSet.valueFont - guard let formatter = dataSet.valueFormatter else { continue } + let formatter = dataSet.valueFormatter if dataSet.isDrawValuesEnabled { diff --git a/Source/Charts/Renderers/ScatterChartRenderer.swift b/Source/Charts/Renderers/ScatterChartRenderer.swift index f2c97749b0..ce887005ad 100644 --- a/Source/Charts/Renderers/ScatterChartRenderer.swift +++ b/Source/Charts/Renderers/ScatterChartRenderer.swift @@ -125,7 +125,7 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer let valueFont = dataSet.valueFont - guard let formatter = dataSet.valueFormatter else { continue } + let formatter = dataSet.valueFormatter let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) let valueToPixelMatrix = trans.valueToPixelMatrix From 3ebee41a570022b0c5472755be56f3fc8a3a5efb Mon Sep 17 00:00:00 2001 From: jjatie Date: Fri, 26 Jan 2018 17:13:29 -0400 Subject: [PATCH 11/84] Chartdata collection refactor (#3024) * Added Collection conformances MutableCollection RandomAccessCollection RangeReplaceableCollection * [#3018] Refactored use of `ChartData` to use new `Collection` conformances * Fixed required initializers * ChartData adopts ExressibleByArrayLiteral * Modified demos to take advantage of collection conformance. * Removed unnecessary `get` from subscripts. * Removed redundant methods * Relocated `appendEntry(_:todataSet:)` * Removed methods from CombinedChartData --- .../Demos/BarDemoViewController.swift | 4 +- .../Demos/LineDemoViewController.swift | 4 +- .../Demos/PieDemoViewController.swift | 2 +- .../Demos/RadarDemoViewController.swift | 4 +- ChartsDemo/Swift/DemoBaseViewController.swift | 6 +- .../Demos/AnotherBarChartViewController.swift | 2 +- .../Swift/Demos/BarChartViewController.swift | 2 +- .../Demos/BubbleChartViewController.swift | 2 +- .../CandleStickChartViewController.swift | 2 +- .../Demos/CombinedChartViewController.swift | 6 +- .../Demos/CubicLineChartViewController.swift | 12 +- .../Demos/LineChart1ViewController.swift | 12 +- .../Demos/LineChart2ViewController.swift | 14 +- .../Demos/LineChartFilledViewController.swift | 2 +- .../Demos/LineChartTimeViewController.swift | 12 +- .../MultipleBarChartViewController.swift | 2 +- .../MultipleLinesChartViewController.swift | 10 +- .../Demos/RadarChartViewController.swift | 8 +- .../Demos/ScatterChartViewController.swift | 2 +- Source/Charts/Charts/ChartViewBase.swift | 9 +- .../Standard/BarChartData.swift | 11 +- .../Implementations/Standard/ChartData.swift | 375 ++++-------------- .../Standard/CombinedChartData.swift | 45 +-- .../Standard/PieChartData.swift | 19 - .../Standard/ScatterChartData.swift | 20 +- .../Charts/Highlight/ChartHighlighter.swift | 12 +- 26 files changed, 176 insertions(+), 423 deletions(-) diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift index 88d3b91087..10e9101426 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift @@ -31,11 +31,11 @@ open class BarDemoViewController: NSViewController let data = BarChartData() let ds1 = BarChartDataSet(values: yse1, label: "Hello") ds1.colors = [NSUIColor.red] - data.addDataSet(ds1) + data.append(ds1) let ds2 = BarChartDataSet(values: yse2, label: "World") ds2.colors = [NSUIColor.blue] - data.addDataSet(ds2) + data.append(ds2) let barWidth = 0.4 let barSpace = 0.05 diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift index ea78112cc6..91384c9a19 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift @@ -30,11 +30,11 @@ open class LineDemoViewController: NSViewController let data = LineChartData() let ds1 = LineChartDataSet(values: yse1, label: "Hello") ds1.colors = [NSUIColor.red] - data.addDataSet(ds1) + data.append(ds1) let ds2 = LineChartDataSet(values: yse2, label: "World") ds2.colors = [NSUIColor.blue] - data.addDataSet(ds2) + data.append(ds2) self.lineChartView.data = data self.lineChartView.gridBackgroundColor = NSUIColor.white diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift index 5ace6f32da..de35306ea0 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift @@ -30,7 +30,7 @@ open class PieDemoViewController: NSViewController ds1.colors = ChartColorTemplates.vordiplom() - data.addDataSet(ds1) + data.append(ds1) let paragraphStyle: NSMutableParagraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle paragraphStyle.lineBreakMode = .byTruncatingTail diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift index 8f60f97629..e4a83c8fb9 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift @@ -30,11 +30,11 @@ open class RadarDemoViewController: NSViewController let data = RadarChartData() let ds1 = RadarChartDataSet(values: yse1, label: "Hello") ds1.colors = [NSUIColor.red] - data.addDataSet(ds1) + data.append(ds1) let ds2 = RadarChartDataSet(values: yse2, label: "World") ds2.colors = [NSUIColor.blue] - data.addDataSet(ds2) + data.append(ds2) self.radarChartView.data = data self.radarChartView.chartDescription.text = "Radarchart Demo" diff --git a/ChartsDemo/Swift/DemoBaseViewController.swift b/ChartsDemo/Swift/DemoBaseViewController.swift index dcbd28026b..82265eb594 100644 --- a/ChartsDemo/Swift/DemoBaseViewController.swift +++ b/ChartsDemo/Swift/DemoBaseViewController.swift @@ -117,13 +117,13 @@ class DemoBaseViewController: UIViewController, ChartViewDelegate { func handleOption(_ option: Option, forChartView chartView: ChartViewBase) { switch option { case .toggleValues: - for set in chartView.data!.dataSets { + for set in chartView.data! { set.drawValuesEnabled = !set.drawValuesEnabled } chartView.setNeedsDisplay() case .toggleIcons: - for set in chartView.data!.dataSets { + for set in chartView.data! { set.drawIconsEnabled = !set.drawIconsEnabled } chartView.setNeedsDisplay() @@ -159,7 +159,7 @@ class DemoBaseViewController: UIViewController, ChartViewDelegate { updateChartData() case .toggleBarBorders: - for set in chartView.data!.dataSets { + for set in chartView.data! { if let set = set as? BarChartDataSet { set.barBorderWidth = set.barBorderWidth == 1.0 ? 0.0 : 1.0 } diff --git a/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift b/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift index 878c5f011f..1f2bb4f609 100644 --- a/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift @@ -66,7 +66,7 @@ class AnotherBarChartViewController: DemoBaseViewController { } var set1: BarChartDataSet! = nil - if let set = chartView.data?.dataSets.first as? BarChartDataSet { + if let set = chartView.data?.first as? BarChartDataSet { set1 = set set1?.values = yVals chartView.data?.notifyDataChanged() diff --git a/ChartsDemo/Swift/Demos/BarChartViewController.swift b/ChartsDemo/Swift/Demos/BarChartViewController.swift index a9a629120a..60be8856c1 100644 --- a/ChartsDemo/Swift/Demos/BarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/BarChartViewController.swift @@ -119,7 +119,7 @@ class BarChartViewController: DemoBaseViewController { } var set1: BarChartDataSet! = nil - if let set = chartView.data?.dataSets.first as? BarChartDataSet { + if let set = chartView.data?.first as? BarChartDataSet { set1 = set set1.values = yVals chartView.data?.notifyDataChanged() diff --git a/ChartsDemo/Swift/Demos/BubbleChartViewController.swift b/ChartsDemo/Swift/Demos/BubbleChartViewController.swift index 39af2f5b5f..b06aeb9d23 100644 --- a/ChartsDemo/Swift/Demos/BubbleChartViewController.swift +++ b/ChartsDemo/Swift/Demos/BubbleChartViewController.swift @@ -104,7 +104,7 @@ class BubbleChartViewController: DemoBaseViewController { set3.setColor(ChartColorTemplates.colorful()[2], alpha: 0.5) set3.drawValuesEnabled = true - let data = BubbleChartData(dataSets: [set1, set2, set3]) + let data = [set1, set2, set3] as BubbleChartData data.setDrawValues(false) data.setValueFont(UIFont(name: "HelveticaNeue-Light", size: 7)!) data.setHighlightCircleWidth(1.5) diff --git a/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift b/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift index ef4dc5ac4c..e3b7418fef 100644 --- a/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift +++ b/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift @@ -104,7 +104,7 @@ class CandleStickChartViewController: DemoBaseViewController { override func optionTapped(_ option: Option) { if .toggleShadowColorSameAsCandle ~= option { - for set in chartView.data!.dataSets as! [CandleChartDataSet] { + for case let set as CandleChartDataSet in chartView.data! { set.shadowColorSameAsCandle = !set.shadowColorSameAsCandle } chartView.notifyDataSetChanged() diff --git a/ChartsDemo/Swift/Demos/CombinedChartViewController.swift b/ChartsDemo/Swift/Demos/CombinedChartViewController.swift index f4e2dc3dd9..82d26e6523 100644 --- a/ChartsDemo/Swift/Demos/CombinedChartViewController.swift +++ b/ChartsDemo/Swift/Demos/CombinedChartViewController.swift @@ -94,7 +94,7 @@ class CombinedChartViewController: DemoBaseViewController { override func optionTapped(_ option: Option) { switch option { case .toggleLineValues: - for set in chartView.data!.dataSets { + for set in chartView.data! { if let set = set as? LineChartDataSet { set.drawValuesEnabled = !set .drawValuesEnabled @@ -103,7 +103,7 @@ class CombinedChartViewController: DemoBaseViewController { chartView.setNeedsDisplay() case .toggleBarValues: - for set in chartView.data!.dataSets { + for set in chartView.data! { if let set = set as? BarChartDataSet { set.drawValuesEnabled = !set .drawValuesEnabled } @@ -171,7 +171,7 @@ class CombinedChartViewController: DemoBaseViewController { let barWidth = 0.45 // x2 dataset // (0.45 + 0.02) * 2 + 0.06 = 1.00 -> interval per "group" - let data = BarChartData(dataSets: [set1, set2]) + let data: BarChartData = [set1, set2] data.barWidth = barWidth // make this BarData object grouped diff --git a/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift b/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift index 5029456988..320b02e2c0 100644 --- a/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift +++ b/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift @@ -109,33 +109,35 @@ class CubicLineChartViewController: DemoBaseViewController { } override func optionTapped(_ option: Option) { + guard let data = chartView.data else { return } + switch option { case .toggleFilled: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo/Swift/Demos/LineChart1ViewController.swift index 3ec69908bf..43c345d4c9 100644 --- a/ChartsDemo/Swift/Demos/LineChart1ViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChart1ViewController.swift @@ -142,33 +142,35 @@ class LineChart1ViewController: DemoBaseViewController { } override func optionTapped(_ option: Option) { + guard let data = chartView.data else { return } + switch option { case .toggleFilled: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo/Swift/Demos/LineChart2ViewController.swift b/ChartsDemo/Swift/Demos/LineChart2ViewController.swift index 63bdfe06c3..3132199f91 100644 --- a/ChartsDemo/Swift/Demos/LineChart2ViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChart2ViewController.swift @@ -135,7 +135,7 @@ class LineChart2ViewController: DemoBaseViewController { set3.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1) set3.drawCircleHoleEnabled = false - let data = LineChartData(dataSets: [set1, set2, set3]) + let data: LineChartData = [set1, set2, set3] data.setValueTextColor(.white) data.setValueFont(.systemFont(ofSize: 9)) @@ -143,33 +143,35 @@ class LineChart2ViewController: DemoBaseViewController { } override func optionTapped(_ option: Option) { + guard let data = chartView.data else { return } + switch option { case .toggleFilled: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift b/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift index 76cdd6aadc..8c8c82ebd0 100644 --- a/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift @@ -102,7 +102,7 @@ class LineChartFilledViewController: DemoBaseViewController { return CGFloat(self.chartView.leftAxis.axisMaximum) } - let data = LineChartData(dataSets: [set1, set2]) + let data: LineChartData = [set1, set2] data.setDrawValues(false) chartView.data = data diff --git a/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift b/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift index cf5654a12d..554e6354f0 100644 --- a/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift +++ b/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift @@ -118,33 +118,35 @@ class LineChartTimeViewController: DemoBaseViewController { } override func optionTapped(_ option: Option) { + guard let data = chartView.data else { return } + switch option { case .toggleFilled: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift b/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift index 0390ac97bf..35cbacc2eb 100644 --- a/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift @@ -119,7 +119,7 @@ class MultipleBarChartViewController: DemoBaseViewController { let set4 = BarChartDataSet(values: yVals4, label: "Company D") set4.setColor(UIColor(red: 255/255, green: 102/255, blue: 0/255, alpha: 1)) - let data = BarChartData(dataSets: [set1, set2, set3, set4]) + let data: BarChartData = [set1, set2, set3, set4] data.setValueFont(.systemFont(ofSize: 10, weight: .light)) data.setValueFormatter(LargeValueFormatter()) diff --git a/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift b/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift index bbf42bbdf1..c358e8b3a2 100644 --- a/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift +++ b/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift @@ -99,27 +99,29 @@ class MultipleLinesChartViewController: DemoBaseViewController { } override func optionTapped(_ option: Option) { + guard let data = chartView.data else { return } + switch option { case .toggleFilled: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data!.dataSets as! [LineChartDataSet] { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() diff --git a/ChartsDemo/Swift/Demos/RadarChartViewController.swift b/ChartsDemo/Swift/Demos/RadarChartViewController.swift index ac4a7599d8..1d680293b3 100644 --- a/ChartsDemo/Swift/Demos/RadarChartViewController.swift +++ b/ChartsDemo/Swift/Demos/RadarChartViewController.swift @@ -142,7 +142,7 @@ class RadarChartViewController: DemoBaseViewController { set2.drawHighlightCircleEnabled = true set2.setDrawHighlightIndicators(false) - let data = RadarChartData(dataSets: [set1, set2]) + let data: RadarChartData = [set1, set2] data.setValueFont(.systemFont(ofSize: 8, weight: .light)) data.setDrawValues(false) data.setValueTextColor(.white) @@ -151,6 +151,8 @@ class RadarChartViewController: DemoBaseViewController { } override func optionTapped(_ option: Option) { + guard let data = chartView.data else { return } + switch option { case .toggleXLabels: chartView.xAxis.drawLabelsEnabled = !chartView.xAxis.drawLabelsEnabled @@ -166,14 +168,14 @@ class RadarChartViewController: DemoBaseViewController { chartView.rotationEnabled = !chartView.rotationEnabled case .toggleFilled: - for set in chartView.data!.dataSets as! [RadarChartDataSet] { + for case let set as RadarChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleHighlightCircle: - for set in chartView.data!.dataSets as! [RadarChartDataSet] { + for case let set as RadarChartDataSet in data { set.drawHighlightCircleEnabled = !set.drawHighlightCircleEnabled } chartView.setNeedsDisplay() diff --git a/ChartsDemo/Swift/Demos/ScatterChartViewController.swift b/ChartsDemo/Swift/Demos/ScatterChartViewController.swift index 19479670ee..64bc46ccba 100644 --- a/ChartsDemo/Swift/Demos/ScatterChartViewController.swift +++ b/ChartsDemo/Swift/Demos/ScatterChartViewController.swift @@ -105,7 +105,7 @@ class ScatterChartViewController: DemoBaseViewController { set3.setColor(ChartColorTemplates.colorful()[2]) set3.scatterShapeSize = 8 - let data = ScatterChartData(dataSets: [set1, set2, set3]) + let data: ScatterChartData = [set1, set2, set3] data.setValueFont(.systemFont(ofSize: 7, weight: .light)) chartView.data = data diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index 7665c896f7..abca440d61 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -210,8 +210,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate /// - returns: `true` if the chart is empty (meaning it's data object is either null or contains no entries). @objc open func isEmpty() -> Bool { - guard let data = data else { return true } - return data.entryCount <= 0 + return data?.isEmpty ?? true } /// Lets the chart know its underlying data has changed and should perform all necessary recalculations. @@ -251,13 +250,11 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate } - if defaultValueFormatter is DefaultValueFormatter + if let formatter = defaultValueFormatter as? DefaultValueFormatter { // setup the formatter with a new number of digits let digits = reference.decimalPlaces - - (defaultValueFormatter as? DefaultValueFormatter)?.decimals - = digits + formatter.decimals = digits } } diff --git a/Source/Charts/Data/Implementations/Standard/BarChartData.swift b/Source/Charts/Data/Implementations/Standard/BarChartData.swift index 8bffa305da..6516428275 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartData.swift @@ -43,13 +43,11 @@ open class BarChartData: BarLineScatterCandleBubbleChartData /// - parameter barSpace: The space between individual bars in values (not pixels) e.g. 0.1f for bar width 1f @objc open func groupBars(fromX: Double, groupSpace: Double, barSpace: Double) { - let setCount = _dataSets.count - if setCount <= 1 - { + guard !isEmpty else { print("BarData needs to hold at least 2 BarDataSets to allow grouping.", terminator: "\n") return } - + let max = maxEntryCountSet let maxEntryCount = max?.entryCount ?? 0 @@ -61,7 +59,7 @@ open class BarChartData: BarLineScatterCandleBubbleChartData let interval = groupWidth(groupSpace: groupSpace, barSpace: barSpace) - for i in stride(from: 0, to: maxEntryCount, by: 1) + for i in 0.. Double { - return Double(_dataSets.count) * (self.barWidth + barSpace) + groupSpace + return Double(count) * (self.barWidth + barSpace) + groupSpace } - } diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 5acb2ea926..b4b7dfbedd 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -66,10 +66,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral @objc open func calcMinMaxY(fromX: Double, toX: Double) { - for set in _dataSets - { - set.calcMinMaxY(fromX: fromX, toX: toX) - } + forEach { $0.calcMinMaxY(fromX: fromX, toX: toX) } // apply the new data calcMinMax() @@ -83,10 +80,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral _xMax = -Double.greatestFiniteMagnitude _xMin = Double.greatestFiniteMagnitude - for set in _dataSets - { - calcMinMax(dataSet: set) - } + forEach { calcMinMax(dataSet: $0) } _leftAxisMax = -Double.greatestFiniteMagnitude _leftAxisMin = Double.greatestFiniteMagnitude @@ -100,20 +94,17 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral { _leftAxisMax = firstLeft!.yMax _leftAxisMin = firstLeft!.yMin - - for dataSet in _dataSets + + for dataSet in _dataSets where dataSet.axisDependency == .left { - if dataSet.axisDependency == .left + if dataSet.yMin < _leftAxisMin { - if dataSet.yMin < _leftAxisMin - { - _leftAxisMin = dataSet.yMin - } - - if dataSet.yMax > _leftAxisMax - { - _leftAxisMax = dataSet.yMax - } + _leftAxisMin = dataSet.yMin + } + + if dataSet.yMax > _leftAxisMax + { + _leftAxisMax = dataSet.yMax } } } @@ -126,19 +117,16 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral _rightAxisMax = firstRight!.yMax _rightAxisMin = firstRight!.yMin - for dataSet in _dataSets + for dataSet in _dataSets where dataSet.axisDependency == .right { - if dataSet.axisDependency == .right + if dataSet.yMin < _rightAxisMin + { + _rightAxisMin = dataSet.yMin + } + + if dataSet.yMax > _rightAxisMax { - if dataSet.yMin < _rightAxisMin - { - _rightAxisMin = dataSet.yMin - } - - if dataSet.yMax > _rightAxisMax - { - _rightAxisMax = dataSet.yMax - } + _rightAxisMax = dataSet.yMax } } } @@ -359,50 +347,15 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - returns: The index of the DataSet Object with the given label. Sensitive or not. internal func getDataSetIndexByLabel(_ label: String, ignorecase: Bool) -> Int { - if ignorecase - { - for i in 0 ..< dataSets.count - { - if dataSets[i].label == nil - { - continue - } - if (label.caseInsensitiveCompare(dataSets[i].label!) == ComparisonResult.orderedSame) - { - return i - } - } - } - else - { - for i in 0 ..< dataSets.count - { - if label == dataSets[i].label - { - return i - } - } - } - - return -1 + return ignorecase + ? index { $0.label?.caseInsensitiveCompare(label) == .orderedSame } ?? -1 + : index { $0.label == label } ?? -1 } /// - returns: The labels of all DataSets as a string array. internal func dataSetLabels() -> [String] { - var types = [String]() - - for i in 0 ..< _dataSets.count - { - if dataSets[i].label == nil - { - continue - } - - types[i] = _dataSets[i].label! - } - - return types + return flatMap { $0.label } } /// Get the Entry for a corresponding highlight object @@ -411,14 +364,8 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - returns: The entry that is highlighted @objc open func entryForHighlight(_ highlight: Highlight) -> ChartDataEntry? { - if highlight.dataSetIndex >= dataSets.count - { - return nil - } - else - { - return dataSets[highlight.dataSetIndex].entryForXValue(highlight.x, closestToY: highlight.y) - } + guard indices.contains(highlight.dataSetIndex) else { return nil } + return self[highlight.dataSetIndex].entryForXValue(highlight.x, closestToY: highlight.y) } /// **IMPORTANT: This method does calculations at runtime. Use with care in performance critical situations.** @@ -426,87 +373,45 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - parameter label: /// - parameter ignorecase: /// - returns: The DataSet Object with the given label. Sensitive or not. - @objc open func getDataSetByLabel(_ label: String, ignorecase: Bool) -> ChartDataSetProtocol? + @objc open func getDataSetByLabel(_ label: String, ignorecase: Bool) -> Element? { - let index = getDataSetIndexByLabel(label, ignorecase: ignorecase) - - if index < 0 || index >= _dataSets.count - { - return nil - } - else - { - return _dataSets[index] - } + guard let index = index(forLabel: label, ignoreCase: ignorecase) else { return nil } + return self[index] } - @objc open func getDataSetByIndex(_ index: Int) -> ChartDataSetProtocol! + @objc open func getDataSetByIndex(_ index: Index) -> Element! { if index < 0 || index >= _dataSets.count { return nil } - return _dataSets[index] - } - - @objc open func addDataSet(_ dataSet: ChartDataSetProtocol!) - { - calcMinMax(dataSet: dataSet) - - _dataSets.append(dataSet) + return self[index] } - + /// Removes the given DataSet from this data object. /// Also recalculates all minimum and maximum values. /// /// - returns: `true` if a DataSet was removed, `false` ifno DataSet could be removed. - @objc @discardableResult open func removeDataSet(_ dataSet: ChartDataSetProtocol!) -> Bool + @objc @discardableResult open func removeDataSet(_ dataSet: Element!) -> Bool { - if dataSet === nil - { - return false - } - - for i in 0 ..< _dataSets.count - { - if _dataSets[i] === dataSet - { - return removeDataSetByIndex(i) - } - } - - return false - } - - /// Removes the DataSet at the given index in the DataSet array from the data object. - /// Also recalculates all minimum and maximum values. - /// - /// - returns: `true` if a DataSet was removed, `false` ifno DataSet could be removed. - @objc @discardableResult open func removeDataSetByIndex(_ index: Int) -> Bool - { - if index >= _dataSets.count || index < 0 - { - return false - } - - _dataSets.remove(at: index) - - calcMinMax() - + guard + dataSet != nil, + let index = index(where: { $0 === dataSet }) + else { return false } + + _ = remove(at: index) return true } - + /// Adds an Entry to the DataSet at the specified index. Entries are added to the end of the list. @objc(addEntry:dataSetIndex:) open func appendEntry(_ e: ChartDataEntry, toDataSet dataSetIndex: Index) { - guard indices.contains(dataSetIndex) else - { - print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") - return + guard indices.contains(dataSetIndex) else { + return print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") } - + let set = self[dataSetIndex] if !set.addEntry(e) { return } calcMinMax(entry: e, axis: set.axisDependency) @@ -515,14 +420,10 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// Removes the given Entry object from the DataSet at the specified index. @objc @discardableResult open func removeEntry(_ entry: ChartDataEntry, dataSetIndex: Int) -> Bool { - // entry outofbounds - if dataSetIndex >= _dataSets.count - { - return false - } - + guard indices.contains(dataSetIndex) else { return false } + // remove the entry from the dataset - let removed = _dataSets[dataSetIndex].removeEntry(entry) + let removed = self[dataSetIndex].removeEntry(entry) if removed { @@ -537,105 +438,45 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - returns: `true` if an entry was removed, `false` ifno Entry was found that meets the specified requirements. @objc @discardableResult open func removeEntry(xValue: Double, dataSetIndex: Int) -> Bool { - if dataSetIndex >= _dataSets.count - { - return false - } - - if let entry = _dataSets[dataSetIndex].entryForXValue(xValue, closestToY: Double.nan) - { - return removeEntry(entry, dataSetIndex: dataSetIndex) - } - - return false + guard + indices.contains(dataSetIndex), + let entry = self[dataSetIndex].entryForXValue(xValue, closestToY: .nan) + else { return false } + + return removeEntry(entry, dataSetIndex: dataSetIndex) } /// - returns: The DataSet that contains the provided Entry, or null, if no DataSet contains this entry. @objc open func getDataSetForEntry(_ e: ChartDataEntry!) -> ChartDataSetProtocol? { - if e == nil - { - return nil - } - - for i in 0 ..< _dataSets.count - { - let set = _dataSets[i] - - if e === set.entryForXValue(e.x, closestToY: e.y) - { - return set - } - } - - return nil + guard e != nil else { return nil } + + return first { $0.entryForXValue(e.x, closestToY: e.y) === e } } /// - returns: The index of the provided DataSet in the DataSet array of this data object, or -1 if it does not exist. @objc open func indexOfDataSet(_ dataSet: ChartDataSetProtocol) -> Int { - for i in 0 ..< _dataSets.count - { - if _dataSets[i] === dataSet - { - return i - } - } - - return -1 + return index(where: { $0 === dataSet }) ?? -1 } /// - returns: The first DataSet from the datasets-array that has it's dependency on the left axis. Returns null if no DataSet with left dependency could be found. @objc open func getFirstLeft(dataSets: [ChartDataSetProtocol]) -> ChartDataSetProtocol? { - for dataSet in dataSets - { - if dataSet.axisDependency == .left - { - return dataSet - } - } - - return nil + return first { $0.axisDependency == .left } } /// - returns: The first DataSet from the datasets-array that has it's dependency on the right axis. Returns null if no DataSet with right dependency could be found. @objc open func getFirstRight(dataSets: [ChartDataSetProtocol]) -> ChartDataSetProtocol? { - for dataSet in _dataSets - { - if dataSet.axisDependency == .right - { - return dataSet - } - } - - return nil + return first { $0.axisDependency == .right } } /// - returns: All colors used across all DataSet objects this object represents. + // TODO: This should return a non-optional array @objc open func getColors() -> [NSUIColor]? { - var clrcnt = 0 - - for i in 0 ..< _dataSets.count - { - clrcnt += _dataSets[i].colors.count - } - - var colors = [NSUIColor]() - - for i in 0 ..< _dataSets.count - { - let clrs = _dataSets[i].colors - - for clr in clrs - { - colors.append(clr) - } - } - - return colors + return flatMap { $0.colors.map { $0 } } } /// Sets a custom ValueFormatter for all DataSets this data object contains. @@ -643,38 +484,26 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral { guard let formatter = formatter else { return } - - for set in dataSets - { - set.valueFormatter = formatter - } + + forEach { $0.valueFormatter = formatter } } /// Sets the color of the value-text (color in which the value-labels are drawn) for all DataSets this data object contains. @objc open func setValueTextColor(_ color: NSUIColor!) { - for set in dataSets - { - set.valueTextColor = color ?? set.valueTextColor - } + forEach { $0.valueTextColor = color ?? $0.valueTextColor } } /// Sets the font for all value-labels for all DataSets this data object contains. @objc open func setValueFont(_ font: NSUIFont!) { - for set in dataSets - { - set.valueFont = font ?? set.valueFont - } + forEach { $0.valueFont = font ?? $0.valueFont } } /// Enables / disables drawing values (value-text) for all DataSets this data object contains. @objc open func setDrawValues(_ enabled: Bool) { - for set in dataSets - { - set.drawValuesEnabled = enabled - } + forEach { $0.drawValuesEnabled = enabled } } /// Enables / disables highlighting values for all DataSets this data object contains. @@ -683,22 +512,11 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral { get { - for set in dataSets - { - if !set.highlightEnabled - { - return false - } - } - - return true + return first { $0.highlightEnabled == false } == nil } set { - for set in dataSets - { - set.highlightEnabled = newValue - } + forEach { $0.highlightEnabled = newValue } } } @@ -717,49 +535,19 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - returns: `true` if so, `false` ifnot. @objc open func contains(dataSet: ChartDataSetProtocol) -> Bool { - for set in dataSets - { - if set === dataSet - { - return true - } - } - - return false + return contains { $0 === dataSet } } /// - returns: The total entry count across all DataSet objects this data object contains. @objc open var entryCount: Int { - var count = 0 - - for set in _dataSets - { - count += set.entryCount - } - - return count + return reduce(0) { return $0 + $1.entryCount } } /// - returns: The DataSet object with the maximum number of entries or null if there are no DataSets. @objc open var maxEntryCountSet: ChartDataSetProtocol? { - if _dataSets.count == 0 - { - return nil - } - - var max = _dataSets[0] - - for set in _dataSets - { - if set.entryCount > max.entryCount - { - max = set - } - } - - return max + return self.max { $0.entryCount > $1.entryCount } } } @@ -803,24 +591,16 @@ extension ChartData: RandomAccessCollection // MARK: RangeReplaceableCollection extension ChartData: RangeReplaceableCollection { + @objc(addDataSet:) public func append(_ newElement: Element) { - guard !(self is CombinedChartData) else - { - fatalError("append(_:) not supported for CombinedData") - } - _dataSets.append(newElement) calcMinMax(dataSet: newElement) } + @objc(removeDataSetByIndex:) public func remove(at position: Index) -> Element { - guard !(self is CombinedChartData) else - { - fatalError("remove(at:) not supported for CombinedData") - } - let element = _dataSets.remove(at: position) calcMinMax() return element @@ -872,7 +652,7 @@ extension ChartData: RangeReplaceableCollection notifyDataChanged() } - public func removeSubrange(_ bounds: R) where R : RangeExpression, ChartData.Index == R.Bound + public func removeSubrange(_ bounds: R) where R : RangeExpression, Index == R.Bound { guard !(self is CombinedChartData) else { @@ -893,6 +673,17 @@ extension ChartData: RangeReplaceableCollection _dataSets.removeAll(keepingCapacity: keepCapacity) notifyDataChanged() } + + public func replaceSubrange(_ subrange: Swift.Range, with newElements: C) where C : Collection, Element == C.Element + { + guard !(self is CombinedChartData) else + { + fatalError("replaceSubrange(_:) not supported for CombinedData") + } + + _dataSets.replaceSubrange(subrange, with: newElements) + newElements.forEach { self.calcMinMax(dataSet: $0) } + } } // MARK: Swift Accessors diff --git a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift index 4eaac60f34..23e6992ebe 100644 --- a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift @@ -227,13 +227,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData return success } - - open override func removeDataSetByIndex(_ index: Int) -> Bool - { - print("removeDataSet(index) not supported for CombinedData", terminator: "\n") - return false - } - + open override func removeEntry(_ entry: ChartDataEntry, dataSetIndex: Int) -> Bool { print("removeEntry(entry, dataSetIndex) not supported for CombinedData", terminator: "\n") @@ -248,27 +242,12 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData open override func notifyDataChanged() { - if _lineData !== nil - { - _lineData.notifyDataChanged() - } - if _barData !== nil - { - _barData.notifyDataChanged() - } - if _scatterData !== nil - { - _scatterData.notifyDataChanged() - } - if _candleData !== nil - { - _candleData.notifyDataChanged() - } - if _bubbleData !== nil - { - _bubbleData.notifyDataChanged() - } - + _lineData?.notifyDataChanged() + _barData?.notifyDataChanged() + _scatterData?.notifyDataChanged() + _candleData?.notifyDataChanged() + _bubbleData?.notifyDataChanged() + super.notifyDataChanged() // recalculate everything } @@ -322,4 +301,14 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData return data.dataSets[highlight.dataSetIndex] } + + // MARK: Unsupported Collection Methods + + public override func append(_ newElement: ChartData.Element) { + fatalError("append(_:) not supported for CombinedData") + } + + public override func remove(at i: Int) -> ChartDataSetProtocol { + fatalError("remove(at:) not supported for CombinedData") + } } diff --git a/Source/Charts/Data/Implementations/Standard/PieChartData.swift b/Source/Charts/Data/Implementations/Standard/PieChartData.swift index 1ea1f2675a..5ee2f4347e 100644 --- a/Source/Charts/Data/Implementations/Standard/PieChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/PieChartData.swift @@ -85,25 +85,6 @@ open class PieChartData: ChartData return dataSet?.entryForIndex(Int(highlight.x)) } - open override func addDataSet(_ d: ChartDataSetProtocol!) - { - super.addDataSet(d) - } - - /// Removes the DataSet at the given index in the DataSet array from the data object. - /// Also recalculates all minimum and maximum values. - /// - /// - returns: `true` if a DataSet was removed, `false` ifno DataSet could be removed. - open override func removeDataSetByIndex(_ index: Int) -> Bool - { - if index >= _dataSets.count || index < 0 - { - return false - } - - return false - } - /// - returns: The total y-value sum across all DataSet objects the this object represents. @objc open var yValueSum: Double { diff --git a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift index c3c4ca1b8a..b30304a1b2 100644 --- a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift @@ -32,22 +32,14 @@ open class ScatterChartData: BarLineScatterCandleBubbleChartData /// - returns: The maximum shape-size across all DataSets. @objc open func getGreatestShapeSize() -> CGFloat { - var max = CGFloat(0.0) - - for set in _dataSets - { - let scatterDataSet = set as? ScatterChartDataSetProtocol - - if scatterDataSet == nil - { + return reduce(0) { (max, set) -> CGFloat in + guard let set = set as? ScatterChartDataSetProtocol else { print("ScatterChartData: Found a DataSet which is not a ScatterChartDataSet", terminator: "\n") + + return max } - else if let size = scatterDataSet?.scatterShapeSize, size > max - { - max = size - } + + return Swift.max(max, set.scatterShapeSize) } - - return max } } diff --git a/Source/Charts/Highlight/ChartHighlighter.swift b/Source/Charts/Highlight/ChartHighlighter.swift index c62c2a8365..d22302cf45 100644 --- a/Source/Charts/Highlight/ChartHighlighter.swift +++ b/Source/Charts/Highlight/ChartHighlighter.swift @@ -73,17 +73,11 @@ open class ChartHighlighter : NSObject, Highlighter guard let data = self.data else { return vals } - for i in 0 ..< data.dataSetCount - { - guard - let dataSet = data.getDataSetByIndex(i), - dataSet.isHighlightEnabled // don't include datasets that cannot be highlighted - else { continue } - - + for (i, set) in zip(data.indices, data) where set.isHighlightEnabled + { // extract all y-values from all DataSets at the given x-value. // some datasets (i.e bubble charts) make sense to have multiple values for an x-value. We'll have to find a way to handle that later on. It's more complicated now when x-indices are floating point. - vals.append(contentsOf: buildHighlights(dataSet: dataSet, dataSetIndex: i, xValue: xValue, rounding: .closest)) + vals.append(contentsOf: buildHighlights(dataSet: set, dataSetIndex: i, xValue: xValue, rounding: .closest)) } return vals From fe166419630b97abbdc6d9caf7b3ae78337713b5 Mon Sep 17 00:00:00 2001 From: jjatie Date: Fri, 26 Jan 2018 17:14:17 -0400 Subject: [PATCH 12/84] Moved the default value formatter (#3088) * Moved the default value formatter It is now simply `DefaultValueFomatter()` Removed unnecessary backing ivars in `DefaultValuetFormatter` in favour of property observers Deprecated static func constructor in favour of initializer --- .../Implementations/ChartBaseDataSet.swift | 2 +- .../Formatters/DefaultValueFormatter.swift | 63 +++++++++---------- Source/Charts/Utils/ChartUtils.swift | 23 +------ 3 files changed, 34 insertions(+), 54 deletions(-) diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index c8d9bb96a4..190241efa3 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -270,7 +270,7 @@ open class ChartBaseDataSet: NSObject, ChartDataSetProtocol open var isHighlightEnabled: Bool { return highlightEnabled } /// Custom formatter that is used instead of the auto-formatter if set - open lazy var valueFormatter: ValueFormatter = ChartUtils.defaultValueFormatter() + open lazy var valueFormatter: ValueFormatter = DefaultValueFormatter() /// Sets/get a single color for value text. /// Setting the color clears the colors array and adds a single color. diff --git a/Source/Charts/Formatters/DefaultValueFormatter.swift b/Source/Charts/Formatters/DefaultValueFormatter.swift index 6c3fdbc9da..8affc862a0 100644 --- a/Source/Charts/Formatters/DefaultValueFormatter.swift +++ b/Source/Charts/Formatters/DefaultValueFormatter.swift @@ -11,6 +11,7 @@ import Foundation +/// The default value formatter used for all chart components that needs a default @objc(ChartDefaultValueFormatter) open class DefaultValueFormatter: NSObject, ValueFormatter { @@ -22,69 +23,65 @@ open class DefaultValueFormatter: NSObject, ValueFormatter @objc open var block: Block? - @objc open var hasAutoDecimals: Bool = false + @objc open var hasAutoDecimals: Bool - private var _formatter: NumberFormatter? - @objc open var formatter: NumberFormatter? - { - get { return _formatter } - set - { + @objc open var formatter: NumberFormatter? { + willSet { hasAutoDecimals = false - _formatter = newValue } } - private var _decimals: Int? - open var decimals: Int? - { - get { return _decimals } - set - { - _decimals = newValue - - if let digits = newValue + open var decimals: Int? { + didSet { + if let digits = decimals { - self.formatter?.minimumFractionDigits = digits - self.formatter?.maximumFractionDigits = digits - self.formatter?.usesGroupingSeparator = true + formatter?.minimumFractionDigits = digits + formatter?.maximumFractionDigits = digits + formatter?.usesGroupingSeparator = true } } } public override init() { - super.init() - - self.formatter = NumberFormatter() + formatter = NumberFormatter() + formatter?.usesGroupingSeparator = true + decimals = 1 hasAutoDecimals = true + + super.init() } @objc public init(formatter: NumberFormatter) { - super.init() - self.formatter = formatter + hasAutoDecimals = false + + super.init() } @objc public init(decimals: Int) { - super.init() - - self.formatter = NumberFormatter() - self.formatter?.usesGroupingSeparator = true + formatter = NumberFormatter() + formatter?.usesGroupingSeparator = true self.decimals = decimals hasAutoDecimals = true + + super.init() } @objc public init(block: @escaping Block) { - super.init() - self.block = block + hasAutoDecimals = false + + super.init() } - - @objc public static func with(block: @escaping Block) -> DefaultValueFormatter? + + /// This function is deprecated - Use `init(block:)` instead. + // DEC 11, 2017 + @available(*, deprecated: 3.0, message: "Use `init(block:)` instead.") + @objc public static func with(block: @escaping Block) -> DefaultValueFormatter { return DefaultValueFormatter(block: block) } diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index b8cb16667d..df819c3619 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -76,7 +76,7 @@ extension Double self != 0.0 else { return 0 } - let i = self.roundedToNextSignificant() + let i = roundedToNextSignificant() guard !i.isInfinite, @@ -97,23 +97,6 @@ extension CGPoint } } -open class ChartUtils -{ - private static var _defaultValueFormatter: ValueFormatter = generateDefaultValueFormatter() - - private class func generateDefaultValueFormatter() -> ValueFormatter - { - let formatter = DefaultValueFormatter(decimals: 1) - return formatter - } - - /// - returns: The default value formatter used for all chart components that needs a default - open class func defaultValueFormatter() -> ValueFormatter - { - return _defaultValueFormatter - } -} - extension CGContext { open func drawImage(_ image: NSUIImage, atCenter center: CGPoint, size: CGSize) @@ -226,7 +209,7 @@ extension CGContext { NSUIGraphicsPopContext() } - internal func drawMultilineText(_ text: String, at point: CGPoint, constrainedTo size: CGSize, anchor: CGPoint, knownTextSize: CGSize, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) + func drawMultilineText(_ text: String, at point: CGPoint, constrainedTo size: CGSize, anchor: CGPoint, knownTextSize: CGSize, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { var rect = CGRect(origin: .zero, size: knownTextSize) @@ -274,7 +257,7 @@ extension CGContext { NSUIGraphicsPopContext() } - internal func drawMultilineText(_ text: String, at point: CGPoint, constrainedTo size: CGSize, anchor: CGPoint, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) + func drawMultilineText(_ text: String, at point: CGPoint, constrainedTo size: CGSize, anchor: CGPoint, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { let rect = text.boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil) drawMultilineText(text, at: point, constrainedTo: size, anchor: anchor, knownTextSize: rect.size, angleRadians: angleRadians, attributes: attributes) From ef21083a27255366c669760473760f9520c83c02 Mon Sep 17 00:00:00 2001 From: ctran Date: Tue, 14 Feb 2017 12:20:01 +0100 Subject: [PATCH 13/84] Add option to rotate value text for line charts --- Source/Charts/Data/Implementations/ChartBaseDataSet.swift | 3 +++ Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift | 3 +++ Source/Charts/Renderers/LineChartRenderer.swift | 4 +++- Source/Charts/Utils/ChartUtils.swift | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index 190241efa3..f4c394c862 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -302,6 +302,9 @@ open class ChartBaseDataSet: NSObject, ChartDataSetProtocol /// the font for the value-text labels open var valueFont: NSUIFont = NSUIFont.systemFont(ofSize: 7.0) + /// the rotation angle for value-text labels + open var valueRotationAngle: CGFloat = CGFloat(0.0) + /// The form to draw for this dataset in the legend. open var form = Legend.Form.default diff --git a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift index 8c6945f9ff..fab28d45f5 100644 --- a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift +++ b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift @@ -200,6 +200,9 @@ public protocol ChartDataSetProtocol /// the font for the value-text labels var valueFont: NSUIFont { get set } + /// the rotation angle for value-text labels + var valueRotationAngle: CGFloat { get set } + /// The form to draw for this dataset in the legend. /// /// Return `.Default` to use the default legend form. diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 3c4f5040f3..fae5559422 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -523,6 +523,8 @@ open class LineChartRenderer: LineRadarRenderer let formatter = dataSet.valueFormatter + let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) let valueToPixelMatrix = trans.valueToPixelMatrix @@ -564,7 +566,7 @@ open class LineChartRenderer: LineRadarRenderer viewPortHandler: viewPortHandler), at: CGPoint(x: pt.x, y: pt.y - CGFloat(valOffset) - valueFont.lineHeight), - align: .center, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: dataSet.valueTextColorAt(j)]) } diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index df819c3619..3ac00d648c 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -157,7 +157,7 @@ extension CGContext { NSUIGraphicsPopContext() } - open func drawText(_ text: String, at point: CGPoint, anchor: CGPoint, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) + open func drawText(_ text: String, at point: CGPoint, anchor: CGPoint = CGPoint(x: 0.5, y: 0.5), angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { var drawOffset = CGPoint() From 5a1a46e3ebf080b4798b519febcbbc09cf493d97 Mon Sep 17 00:00:00 2001 From: Chinh Tran Date: Wed, 21 Feb 2018 20:38:59 +0100 Subject: [PATCH 14/84] Add value text rotation for bar charts --- .../Charts/Renderers/BarChartRenderer.swift | 29 ++++++++++--- .../HorizontalBarChartRenderer.swift | 14 +++++-- Source/Charts/Utils/ChartUtils.swift | 41 ++++++++++++------- 3 files changed, 62 insertions(+), 22 deletions(-) diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index 6603d8a4fd..2b48276ee0 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -317,6 +317,8 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer shouldDrawValues(forDataSet: dataSet) else { continue } + let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let isInverted = dataProvider.isInverted(axis: dataSet.axisDependency) // calculate the correct offset depending on the draw position of the value @@ -376,7 +378,9 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer : (rect.origin.y + rect.size.height + negOffset), font: valueFont, align: .center, - color: dataSet.valueTextColorAt(j)) + color: dataSet.valueTextColorAt(j), + anchor: CGPoint(x: 0.5, y: 0.5), + angleRadians: angleRadians) } if let icon = e.icon, dataSet.isDrawIconsEnabled @@ -393,6 +397,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer atCenter: CGPoint(x: px, y: py), size: icon.size) } + } } else @@ -469,7 +474,9 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer yPos: y, font: valueFont, align: .center, - color: dataSet.valueTextColorAt(index)) + color: dataSet.valueTextColorAt(index), + anchor: CGPoint(x: 0.5, y: 0.5), + angleRadians: angleRadians) } if let icon = e.icon, dataSet.isDrawIconsEnabled @@ -501,7 +508,9 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer (e.y >= 0 ? posOffset : negOffset), font: valueFont, align: .center, - color: dataSet.valueTextColorAt(index)) + color: dataSet.valueTextColorAt(index), + anchor: CGPoint(x: 0.5, y: 0.5), + angleRadians: angleRadians) } if let icon = e.icon, dataSet.isDrawIconsEnabled @@ -527,10 +536,20 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer } /// Draws a value at the specified x and y position. - @objc open func drawValue(context: CGContext, value: String, xPos: CGFloat, yPos: CGFloat, font: NSUIFont, align: NSTextAlignment, color: NSUIColor) + @objc open func drawValue(context: CGContext, value: String, xPos: CGFloat, yPos: CGFloat, font: NSUIFont, align: NSTextAlignment, color: NSUIColor, anchor: CGPoint, angleRadians: CGFloat) { - context.drawText(value, at: CGPoint(x: xPos, y: yPos), align: align, attributes: [.font: font, .foregroundColor: color]) + if (angleRadians == 0.0) + { + context.drawText(value, at: CGPoint(x: xPos, y: yPos), align: align, attributes: [.font: font, .foregroundColor: color]) + } + else + { + // align left to center text with rotation + context.drawText(value, at: CGPoint(x: xPos, y: yPos), align: align, anchor: anchor, + angleRadians: angleRadians, attributes: [.font: font, .foregroundColor: color]) + } } + open override func drawExtras(context: CGContext) { diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index f95648206a..11bbd6e28a 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -318,6 +318,8 @@ open class HorizontalBarChartRenderer: BarChartRenderer { guard let dataSet = dataSets[dataSetIndex] as? BarChartDataSetProtocol else { continue } + let angleRadians = dataSet.valueRotationAngle.DEG2RAD + if !shouldDrawValues(forDataSet: dataSet) || !(dataSet.isDrawIconsEnabled && dataSet.isVisible) { continue @@ -392,7 +394,9 @@ open class HorizontalBarChartRenderer: BarChartRenderer yPos: y + yOffset, font: valueFont, align: textAlign, - color: dataSet.valueTextColorAt(j)) + color: dataSet.valueTextColorAt(j), + anchor: CGPoint.zero, + angleRadians: angleRadians) } if let icon = e.icon, dataSet.isDrawIconsEnabled @@ -470,7 +474,9 @@ open class HorizontalBarChartRenderer: BarChartRenderer yPos: rect.origin.y + yOffset, font: valueFont, align: textAlign, - color: dataSet.valueTextColorAt(index)) + color: dataSet.valueTextColorAt(index), + anchor: CGPoint.zero, + angleRadians: angleRadians) } if let icon = e.icon, dataSet.isDrawIconsEnabled @@ -569,7 +575,9 @@ open class HorizontalBarChartRenderer: BarChartRenderer yPos: y + yOffset, font: valueFont, align: textAlign, - color: dataSet.valueTextColorAt(index)) + color: dataSet.valueTextColorAt(index), + anchor: CGPoint.zero, + angleRadians: angleRadians) } if let icon = e.icon, dataSet.isDrawIconsEnabled diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index 3ac00d648c..afd7b08642 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -139,24 +139,22 @@ extension CGContext { open func drawText(_ text: String, at point: CGPoint, align: NSTextAlignment, attributes: [NSAttributedStringKey : Any]?) { - var point = point - - if align == .center - { - point.x -= text.size(withAttributes: attributes).width / 2.0 - } - else if align == .right - { - point.x -= text.size(withAttributes: attributes).width - } + let drawPoint = getDrawPoint(text: text, point: point, align: align, attributes: attributes) + NSUIGraphicsPushContext(self) - - (text as NSString).draw(at: point, withAttributes: attributes) - + + (text as NSString).draw(at: drawPoint, withAttributes: attributes) + NSUIGraphicsPopContext() } - + + open func drawText(_ text: String, at point: CGPoint, align: NSTextAlignment, anchor: CGPoint = CGPoint(x: 0.5, y: 0.5), angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) + { + let drawPoint = getDrawPoint(text: text, point: point, align: align, attributes: attributes) + drawText(text, at: drawPoint, anchor: anchor, angleRadians: angleRadians, attributes: attributes) + } + open func drawText(_ text: String, at point: CGPoint, anchor: CGPoint = CGPoint(x: 0.5, y: 0.5), angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { var drawOffset = CGPoint() @@ -209,6 +207,21 @@ extension CGContext { NSUIGraphicsPopContext() } + func getDrawPoint(text: String, point: CGPoint, align: NSTextAlignment, attributes: [NSAttributedStringKey : Any]?) -> CGPoint + { + var point = point + + if align == .center + { + point.x -= text.size(withAttributes: attributes).width / 2.0 + } + else if align == .right + { + point.x -= text.size(withAttributes: attributes).width + } + return point + } + func drawMultilineText(_ text: String, at point: CGPoint, constrainedTo size: CGSize, anchor: CGPoint, knownTextSize: CGSize, angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) { var rect = CGRect(origin: .zero, size: knownTextSize) From 31f7ad5ec53e67ac592755b3f74f9616a2e271bb Mon Sep 17 00:00:00 2001 From: Chinh Tran Date: Wed, 21 Feb 2018 23:55:30 +0100 Subject: [PATCH 15/84] Add value text rotation for other charts --- .../Renderers/BubbleChartRenderer.swift | 3 +++ .../Renderers/CandleStickChartRenderer.swift | 3 +++ .../Charts/Renderers/PieChartRenderer.swift | 10 +++++++ .../Charts/Renderers/RadarChartRenderer.swift | 3 +++ .../Renderers/ScatterChartRenderer.swift | 3 +++ Source/Charts/Utils/ChartUtils.swift | 26 +++++++++---------- 6 files changed, 35 insertions(+), 13 deletions(-) diff --git a/Source/Charts/Renderers/BubbleChartRenderer.swift b/Source/Charts/Renderers/BubbleChartRenderer.swift index cda98e4a1c..4abd8e39d4 100644 --- a/Source/Charts/Renderers/BubbleChartRenderer.swift +++ b/Source/Charts/Renderers/BubbleChartRenderer.swift @@ -148,6 +148,8 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer let valueToPixelMatrix = trans.valueToPixelMatrix let iconsOffset = dataSet.iconsOffset + + let angleRadians = dataSet.valueRotationAngle.DEG2RAD for j in _xBounds.min..._xBounds.range + _xBounds.min { @@ -182,6 +184,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer at: CGPoint(x: pt.x, y: pt.y - (0.5 * lineHeight)), align: .center, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: valueTextColor]) } diff --git a/Source/Charts/Renderers/CandleStickChartRenderer.swift b/Source/Charts/Renderers/CandleStickChartRenderer.swift index 53bd613708..4b7338efac 100644 --- a/Source/Charts/Renderers/CandleStickChartRenderer.swift +++ b/Source/Charts/Renderers/CandleStickChartRenderer.swift @@ -267,6 +267,8 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer let iconsOffset = dataSet.iconsOffset + let angleRadians = dataSet.valueRotationAngle.DEG2RAD + _xBounds.set(chart: dataProvider, dataSet: dataSet, animator: animator) let lineHeight = valueFont.lineHeight @@ -299,6 +301,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer at: CGPoint(x: pt.x, y: pt.y - yOffset), align: .center, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: dataSet.valueTextColorAt(j)]) } diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index 4d8ec043cc..88642b2fe6 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -314,6 +314,8 @@ open class PieChartRenderer: NSObject, DataRenderer let iconsOffset = dataSet.iconsOffset + let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let xValuePosition = dataSet.xValuePosition let yValuePosition = dataSet.yValuePosition @@ -429,6 +431,7 @@ open class PieChartRenderer: NSObject, DataRenderer context.drawText(valueText, at: labelPoint, align: align, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: valueTextColor]) @@ -438,6 +441,7 @@ open class PieChartRenderer: NSObject, DataRenderer at: CGPoint(x: labelPoint.x, y: labelPoint.y + lineHeight), align: align, + angleRadians: angleRadians, attributes: [.font: entryLabelFont ?? valueFont, .foregroundColor: entryLabelColor ?? valueTextColor]) } @@ -450,6 +454,7 @@ open class PieChartRenderer: NSObject, DataRenderer at: CGPoint(x: labelPoint.x, y: labelPoint.y + lineHeight / 2.0), align: align, + angleRadians: angleRadians, attributes: [.font: entryLabelFont ?? valueFont, .foregroundColor: entryLabelColor ?? valueTextColor]) } @@ -460,6 +465,7 @@ open class PieChartRenderer: NSObject, DataRenderer at: CGPoint(x: labelPoint.x, y: labelPoint.y + lineHeight / 2.0), align: align, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: valueTextColor]) } @@ -476,6 +482,7 @@ open class PieChartRenderer: NSObject, DataRenderer context.drawText(valueText, at: CGPoint(x: x, y: y), align: .center, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: valueTextColor]) if j < data.entryCount && pe?.label != nil @@ -483,6 +490,7 @@ open class PieChartRenderer: NSObject, DataRenderer context.drawText(pe!.label!, at: CGPoint(x: x, y: y + lineHeight), align: .center, + angleRadians: angleRadians, attributes: [.font: entryLabelFont ?? valueFont, .foregroundColor: entryLabelColor ?? valueTextColor]) } @@ -494,6 +502,7 @@ open class PieChartRenderer: NSObject, DataRenderer context.drawText(pe!.label!, at: CGPoint(x: x, y: y + lineHeight / 2.0), align: .center, + angleRadians: angleRadians, attributes: [.font: entryLabelFont ?? valueFont, .foregroundColor: entryLabelColor ?? valueTextColor]) } @@ -503,6 +512,7 @@ open class PieChartRenderer: NSObject, DataRenderer context.drawText(valueText, at: CGPoint(x: x, y: y + lineHeight / 2.0), align: .center, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: valueTextColor]) } } diff --git a/Source/Charts/Renderers/RadarChartRenderer.swift b/Source/Charts/Renderers/RadarChartRenderer.swift index ea4cbf1b21..57518cbb2b 100644 --- a/Source/Charts/Renderers/RadarChartRenderer.swift +++ b/Source/Charts/Renderers/RadarChartRenderer.swift @@ -160,6 +160,8 @@ open class RadarChartRenderer: LineRadarRenderer continue } + let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let entryCount = dataSet.entryCount let iconsOffset = dataSet.iconsOffset @@ -183,6 +185,7 @@ open class RadarChartRenderer: LineRadarRenderer viewPortHandler: viewPortHandler), at: CGPoint(x: p.x, y: p.y - yoffset - valueFont.lineHeight), align: .center, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: dataSet.valueTextColorAt(j)]) } diff --git a/Source/Charts/Renderers/ScatterChartRenderer.swift b/Source/Charts/Renderers/ScatterChartRenderer.swift index ce887005ad..d5fce840c1 100644 --- a/Source/Charts/Renderers/ScatterChartRenderer.swift +++ b/Source/Charts/Renderers/ScatterChartRenderer.swift @@ -132,6 +132,8 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer let iconsOffset = dataSet.iconsOffset + let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let shapeSize = dataSet.scatterShapeSize let lineHeight = valueFont.lineHeight @@ -169,6 +171,7 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer at: CGPoint(x: pt.x, y: pt.y - shapeSize - lineHeight), align: .center, + angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: dataSet.valueTextColorAt(j)] ) diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index afd7b08642..c8e8a7d87d 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -137,22 +137,22 @@ extension CGContext { NSUIGraphicsPopContext() } - open func drawText(_ text: String, at point: CGPoint, align: NSTextAlignment, attributes: [NSAttributedStringKey : Any]?) + open func drawText(_ text: String, at point: CGPoint, align: NSTextAlignment, anchor: CGPoint = CGPoint(x: 0.5, y: 0.5), angleRadians: CGFloat = 0.0, attributes: [NSAttributedStringKey : Any]?) { - let drawPoint = getDrawPoint(text: text, point: point, align: align, attributes: attributes) - NSUIGraphicsPushContext(self) - - (text as NSString).draw(at: drawPoint, withAttributes: attributes) - - NSUIGraphicsPopContext() - } - - open func drawText(_ text: String, at point: CGPoint, align: NSTextAlignment, anchor: CGPoint = CGPoint(x: 0.5, y: 0.5), angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) - { - let drawPoint = getDrawPoint(text: text, point: point, align: align, attributes: attributes) - drawText(text, at: drawPoint, anchor: anchor, angleRadians: angleRadians, attributes: attributes) + if (angleRadians == 0.0) + { + NSUIGraphicsPushContext(self) + + (text as NSString).draw(at: drawPoint, withAttributes: attributes) + + NSUIGraphicsPopContext() + } + else + { + drawText(text, at: drawPoint, anchor: anchor, angleRadians: angleRadians, attributes: attributes) + } } open func drawText(_ text: String, at point: CGPoint, anchor: CGPoint = CGPoint(x: 0.5, y: 0.5), angleRadians: CGFloat, attributes: [NSAttributedStringKey : Any]?) From fa1c5677ad09b0c17edec1bf2bd93bb518539d14 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sat, 10 Mar 2018 11:21:11 -0400 Subject: [PATCH 16/84] Fixed misuse/deprecation of "!" operator --- Source/Charts/Charts/BarLineChartViewBase.swift | 4 ++-- Source/Charts/Charts/CombinedChartView.swift | 16 ++++++++-------- Source/Charts/Components/Legend.swift | 6 +++--- Source/Charts/Renderers/LegendRenderer.swift | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index 7d4f5a49c3..bfd9c7945e 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -1684,12 +1684,12 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD } /// - returns: The DataSet object displayed at the touched position of the chart - @objc open func getDataSetByTouchPoint(point pt: CGPoint) -> IBarLineScatterCandleBubbleChartDataSet! + @objc open func getDataSetByTouchPoint(point pt: CGPoint) -> IBarLineScatterCandleBubbleChartDataSet? { let h = getHighlightByTouchPoint(pt) if h !== nil { - return _data?.getDataSetByIndex(h!.dataSetIndex) as! IBarLineScatterCandleBubbleChartDataSet! + return _data?.getDataSetByIndex(h!.dataSetIndex) as? IBarLineScatterCandleBubbleChartDataSet } return nil } diff --git a/Source/Charts/Charts/CombinedChartView.swift b/Source/Charts/Charts/CombinedChartView.swift index ead6c3d130..e1b13b495e 100644 --- a/Source/Charts/Charts/CombinedChartView.swift +++ b/Source/Charts/Charts/CombinedChartView.swift @@ -165,22 +165,22 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider /// if set to true, all values are drawn above their bars, instead of below their top @objc open var drawValueAboveBarEnabled: Bool { - get { return (renderer as! CombinedChartRenderer!).drawValueAboveBarEnabled } - set { (renderer as! CombinedChartRenderer!).drawValueAboveBarEnabled = newValue } + get { return (renderer as! CombinedChartRenderer).drawValueAboveBarEnabled } + set { (renderer as! CombinedChartRenderer).drawValueAboveBarEnabled = newValue } } /// if set to true, a grey area is drawn behind each bar that indicates the maximum value @objc open var drawBarShadowEnabled: Bool { - get { return (renderer as! CombinedChartRenderer!).drawBarShadowEnabled } - set { (renderer as! CombinedChartRenderer!).drawBarShadowEnabled = newValue } + get { return (renderer as! CombinedChartRenderer).drawBarShadowEnabled } + set { (renderer as! CombinedChartRenderer).drawBarShadowEnabled = newValue } } /// - returns: `true` if drawing values above bars is enabled, `false` ifnot - open var isDrawValueAboveBarEnabled: Bool { return (renderer as! CombinedChartRenderer!).drawValueAboveBarEnabled } + open var isDrawValueAboveBarEnabled: Bool { return (renderer as! CombinedChartRenderer).drawValueAboveBarEnabled } /// - returns: `true` if drawing shadows (maxvalue) for each bar is enabled, `false` ifnot - open var isDrawBarShadowEnabled: Bool { return (renderer as! CombinedChartRenderer!).drawBarShadowEnabled } + open var isDrawBarShadowEnabled: Bool { return (renderer as! CombinedChartRenderer).drawBarShadowEnabled } /// the order in which the provided data objects should be drawn. /// The earlier you place them in the provided array, the further they will be in the background. @@ -189,11 +189,11 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider { get { - return (renderer as! CombinedChartRenderer!).drawOrder.map { $0.rawValue } + return (renderer as! CombinedChartRenderer).drawOrder.map { $0.rawValue } } set { - (renderer as! CombinedChartRenderer!).drawOrder = newValue.map { DrawOrder(rawValue: $0)! } + (renderer as! CombinedChartRenderer).drawOrder = newValue.map { DrawOrder(rawValue: $0)! } } } diff --git a/Source/Charts/Components/Legend.swift b/Source/Charts/Components/Legend.swift index e684b7b6fe..53177d04f5 100644 --- a/Source/Charts/Components/Legend.swift +++ b/Source/Charts/Components/Legend.swift @@ -167,7 +167,7 @@ open class Legend: ComponentBase guard let label = entry.label else { continue } - let size = (label as NSString!).size(withAttributes: [NSAttributedStringKey.font: font]) + let size = (label as NSString).size(withAttributes: [.font: font]) if size.width > maxW { @@ -256,7 +256,7 @@ open class Legend: ComponentBase if label != nil { - let size = (label as NSString!).size(withAttributes: [NSAttributedStringKey.font: labelFont]) + let size = (label! as NSString).size(withAttributes: [.font: labelFont]) if drawingForm && !wasStacked { @@ -343,7 +343,7 @@ open class Legend: ComponentBase // grouped forms have null labels if label != nil { - calculatedLabelSizes[i] = (label as NSString!).size(withAttributes: labelAttrs) + calculatedLabelSizes[i] = (label! as NSString).size(withAttributes: labelAttrs) requiredWidth += drawingForm ? formToTextSpace + formSize : 0.0 requiredWidth += calculatedLabelSizes[i].width } diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index 38c3648537..08100e32f7 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -462,7 +462,7 @@ open class LegendRenderer: Renderer if direction == .rightToLeft { - posX -= (e.label as NSString!).size(withAttributes: [NSAttributedStringKey.font: labelFont]).width + posX -= (e.label! as NSString).size(withAttributes: [.font: labelFont]).width } if !wasStacked From ab79255d7ae250bcdc6e2b9134cfc138810f0d25 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sat, 10 Mar 2018 11:44:48 -0400 Subject: [PATCH 17/84] Updated projects for Xcode 9.3 and Swift 4.1 added a workspace to include all demos with the project to make it easier to test changes --- Charts.xcodeproj/project.pbxproj | 8 ++- .../xcshareddata/xcschemes/Charts.xcscheme | 62 ++++++++++-------- .../xcschemes/ChartsTests.xcscheme | 63 +++++++++++-------- Charts.xcworkspace/contents.xcworkspacedata | 13 ++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++ .../ChartsDemo-OSX/Base.lproj/Main.storyboard | 28 +++++---- .../project.pbxproj | 28 +++++---- .../project.pbxproj | 48 +++++++------- .../Demos/LineChartFilledViewController.m | 4 +- .../Demos/RadarChartViewController.m | 26 ++++---- 10 files changed, 174 insertions(+), 114 deletions(-) create mode 100644 Charts.xcworkspace/contents.xcworkspacedata create mode 100644 Charts.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename ChartsDemo-OSX/{ChartsDemo-OSX.xcodeproj => ChartsDemo-macOS.xcodeproj}/project.pbxproj (94%) rename ChartsDemo/{ChartsDemo.xcodeproj => ChartsDemo-iOS.xcodeproj}/project.pbxproj (98%) diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index f28679dde2..840ab6cd42 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -725,7 +725,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0930; TargetAttributes = { A58A4ED274A941CA248EA921 = { LastSwiftMigration = 0900; @@ -1047,6 +1047,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -1054,6 +1055,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -1076,6 +1078,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2,3,4"; VALIDATE_PRODUCT = YES; }; @@ -1095,6 +1098,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -1102,6 +1106,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -1132,6 +1137,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2,3,4"; }; name = Debug; diff --git a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme index 6386c46eef..6029c01d57 100644 --- a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme +++ b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme @@ -1,49 +1,49 @@ + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + BuildableIdentifier = "primary" + BlueprintIdentifier = "A58A4ED274A941CA248EA921" + BuildableName = "Charts.framework" + BlueprintName = "Charts" + ReferencedContainer = "container:Charts.xcodeproj"> - - + shouldUseLaunchSchemeArgsEnv = "YES"> + BuildableIdentifier = "primary" + BlueprintIdentifier = "F2749BD5443C1CB5FE2080C2" + BuildableName = "ChartsTests.xctest" + BlueprintName = "ChartsTests" + ReferencedContainer = "container:Charts.xcodeproj"> + + - - + + + + + key = "FB_REFERENCE_IMAGE_DIR" + value = "$(SOURCE_ROOT)/Tests/ReferenceImages" + isEnabled = "YES"> + + + debugDocumentVersioning = "YES"> diff --git a/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme b/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme index bd0766f00d..4b03f98058 100644 --- a/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme +++ b/Charts.xcodeproj/xcshareddata/xcschemes/ChartsTests.xcscheme @@ -1,49 +1,50 @@ + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + BuildableIdentifier = "primary" + BlueprintIdentifier = "F2749BD5443C1CB5FE2080C2" + BuildableName = "ChartsTests.xctest" + BlueprintName = "ChartsTests" + ReferencedContainer = "container:Charts.xcodeproj"> - - + codeCoverageEnabled = "YES" + shouldUseLaunchSchemeArgsEnv = "YES"> + BuildableIdentifier = "primary" + BlueprintIdentifier = "F2749BD5443C1CB5FE2080C2" + BuildableName = "ChartsTests.xctest" + BlueprintName = "ChartsTests" + ReferencedContainer = "container:Charts.xcodeproj"> + + - - + + + + + key = "FB_REFERENCE_IMAGE_DIR" + value = "$(SOURCE_ROOT)/Tests/ReferenceImages" + isEnabled = "YES"> + + + debugDocumentVersioning = "YES"> diff --git a/Charts.xcworkspace/contents.xcworkspacedata b/Charts.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..188c10a2a0 --- /dev/null +++ b/Charts.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/Charts.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Charts.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/Charts.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Base.lproj/Main.storyboard b/ChartsDemo-OSX/ChartsDemo-OSX/Base.lproj/Main.storyboard index d03155d871..e1bbcb34b1 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX/Base.lproj/Main.storyboard +++ b/ChartsDemo-OSX/ChartsDemo-OSX/Base.lproj/Main.storyboard @@ -1,8 +1,8 @@ - - + + - - + + @@ -11,11 +11,11 @@ - + - + - + @@ -29,7 +29,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -628,7 +628,7 @@ - + @@ -656,6 +656,9 @@ + + + @@ -679,9 +682,12 @@ - + + + + diff --git a/ChartsDemo-OSX/ChartsDemo-OSX.xcodeproj/project.pbxproj b/ChartsDemo-OSX/ChartsDemo-macOS.xcodeproj/project.pbxproj similarity index 94% rename from ChartsDemo-OSX/ChartsDemo-OSX.xcodeproj/project.pbxproj rename to ChartsDemo-OSX/ChartsDemo-macOS.xcodeproj/project.pbxproj index 07dd0f1abb..49aa12415e 100644 --- a/ChartsDemo-OSX/ChartsDemo-OSX.xcodeproj/project.pbxproj +++ b/ChartsDemo-OSX/ChartsDemo-macOS.xcodeproj/project.pbxproj @@ -63,7 +63,7 @@ 5B9A0C3B1C83AB2100ED8ED8 /* LineDemoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineDemoViewController.swift; sourceTree = ""; }; 5B9A0C3D1C83AB2B00ED8ED8 /* RadarDemoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadarDemoViewController.swift; sourceTree = ""; }; 5B9A0C3F1C83AB3400ED8ED8 /* PieDemoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieDemoViewController.swift; sourceTree = ""; }; - 65B3F63E1C73B4F5000983D0 /* ChartsDemo-OSX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-OSX.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 65B3F63E1C73B4F5000983D0 /* ChartsDemo-macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-macOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 65B3F6411C73B4F5000983D0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 65B3F6451C73B4F5000983D0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 65B3F6481C73B4F5000983D0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; @@ -115,7 +115,7 @@ 65B3F63F1C73B4F5000983D0 /* Products */ = { isa = PBXGroup; children = ( - 65B3F63E1C73B4F5000983D0 /* ChartsDemo-OSX.app */, + 65B3F63E1C73B4F5000983D0 /* ChartsDemo-macOS.app */, ); name = Products; sourceTree = ""; @@ -135,9 +135,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 65B3F63D1C73B4F5000983D0 /* ChartsDemo-OSX */ = { + 65B3F63D1C73B4F5000983D0 /* ChartsDemo-macOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 65B3F64D1C73B4F5000983D0 /* Build configuration list for PBXNativeTarget "ChartsDemo-OSX" */; + buildConfigurationList = 65B3F64D1C73B4F5000983D0 /* Build configuration list for PBXNativeTarget "ChartsDemo-macOS" */; buildPhases = ( 65B3F63A1C73B4F5000983D0 /* Sources */, 65B3F63B1C73B4F5000983D0 /* Frameworks */, @@ -149,9 +149,9 @@ dependencies = ( 0630AE8F1D8128A5008859B0 /* PBXTargetDependency */, ); - name = "ChartsDemo-OSX"; + name = "ChartsDemo-macOS"; productName = "ChartsDemo-OSX"; - productReference = 65B3F63E1C73B4F5000983D0 /* ChartsDemo-OSX.app */; + productReference = 65B3F63E1C73B4F5000983D0 /* ChartsDemo-macOS.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -161,7 +161,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0900; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = dcg; TargetAttributes = { 65B3F63D1C73B4F5000983D0 = { @@ -171,7 +171,7 @@ }; }; }; - buildConfigurationList = 65B3F6391C73B4F5000983D0 /* Build configuration list for PBXProject "ChartsDemo-OSX" */; + buildConfigurationList = 65B3F6391C73B4F5000983D0 /* Build configuration list for PBXProject "ChartsDemo-macOS" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -190,7 +190,7 @@ ); projectRoot = ""; targets = ( - 65B3F63D1C73B4F5000983D0 /* ChartsDemo-OSX */, + 65B3F63D1C73B4F5000983D0 /* ChartsDemo-macOS */, ); }; /* End PBXProject section */ @@ -271,12 +271,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -308,6 +310,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -323,12 +326,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -353,6 +358,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -395,7 +401,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 65B3F6391C73B4F5000983D0 /* Build configuration list for PBXProject "ChartsDemo-OSX" */ = { + 65B3F6391C73B4F5000983D0 /* Build configuration list for PBXProject "ChartsDemo-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 65B3F64B1C73B4F5000983D0 /* Debug */, @@ -404,7 +410,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 65B3F64D1C73B4F5000983D0 /* Build configuration list for PBXNativeTarget "ChartsDemo-OSX" */ = { + 65B3F64D1C73B4F5000983D0 /* Build configuration list for PBXNativeTarget "ChartsDemo-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 65B3F64E1C73B4F5000983D0 /* Debug */, diff --git a/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj b/ChartsDemo/ChartsDemo-iOS.xcodeproj/project.pbxproj similarity index 98% rename from ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj rename to ChartsDemo/ChartsDemo-iOS.xcodeproj/project.pbxproj index 28674b1c25..68a01cd7e2 100644 --- a/ChartsDemo/ChartsDemo.xcodeproj/project.pbxproj +++ b/ChartsDemo/ChartsDemo-iOS.xcodeproj/project.pbxproj @@ -199,7 +199,7 @@ 0439A3521C9FF95F00496F83 /* PiePolylineChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PiePolylineChartViewController.m; sourceTree = ""; }; 0471CBFB1CA1090A00E52DBC /* PiePolylineChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PiePolylineChartViewController.xib; sourceTree = ""; }; 0630AE391D8126C0008859B0 /* Charts.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Charts.xcodeproj; path = ../Charts.xcodeproj; sourceTree = ""; }; - 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 225B361D1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-iOS-Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 225B361F1F6EB9A50005B3D5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 225B362F1F6EB9EE0005B3D5 /* DemoBaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoBaseViewController.swift; sourceTree = ""; }; 225B36301F6EB9EE0005B3D5 /* DemoListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoListViewController.swift; sourceTree = ""; }; @@ -240,7 +240,7 @@ 5B0CC7831ABB875400665592 /* PieChartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PieChartViewController.m; sourceTree = ""; }; 5B0CC7841ABB875400665592 /* PieChartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PieChartViewController.xib; sourceTree = ""; }; 5B1B5DA91E911A15006D1375 /* RealmDemosViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RealmDemosViewController.xib; path = XIBs/Demos/RealmDemosViewController.xib; sourceTree = SOURCE_ROOT; }; - 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChartsDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ChartsDemo-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 5B57BBB31A9B26AA0036A6CC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5B57BBB41A9B26AA0036A6CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 5B57BBB61A9B26AA0036A6CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -477,8 +477,8 @@ 5B57BBB01A9B26AA0036A6CC /* Products */ = { isa = PBXGroup; children = ( - 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */, - 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */, + 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo-iOS.app */, + 225B361D1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift.app */, ); name = Products; sourceTree = ""; @@ -607,9 +607,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 225B361C1F6EB9A50005B3D5 /* ChartsDemo-Swift */ = { + 225B361C1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift */ = { isa = PBXNativeTarget; - buildConfigurationList = 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-Swift" */; + buildConfigurationList = 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS-Swift" */; buildPhases = ( 225B36191F6EB9A50005B3D5 /* Sources */, 225B361A1F6EB9A50005B3D5 /* Frameworks */, @@ -621,14 +621,14 @@ dependencies = ( 225B368F1F6EBBB00005B3D5 /* PBXTargetDependency */, ); - name = "ChartsDemo-Swift"; + name = "ChartsDemo-iOS-Swift"; productName = "ChartsDemo-Swift"; - productReference = 225B361D1F6EB9A50005B3D5 /* ChartsDemo-Swift.app */; + productReference = 225B361D1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift.app */; productType = "com.apple.product-type.application"; }; - 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */ = { + 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */; + buildConfigurationList = 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS" */; buildPhases = ( 5B57BBAB1A9B26AA0036A6CC /* Sources */, 5B57BBAC1A9B26AA0036A6CC /* Frameworks */, @@ -640,9 +640,9 @@ dependencies = ( 0630AE541D81271B008859B0 /* PBXTargetDependency */, ); - name = ChartsDemo; + name = "ChartsDemo-iOS"; productName = chartstest; - productReference = 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo.app */; + productReference = 5B57BBAF1A9B26AA0036A6CC /* ChartsDemo-iOS.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -653,7 +653,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0900; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = dcg; TargetAttributes = { 225B361C1F6EB9A50005B3D5 = { @@ -666,7 +666,7 @@ }; }; }; - buildConfigurationList = 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */; + buildConfigurationList = 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo-iOS" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -685,8 +685,8 @@ ); projectRoot = ""; targets = ( - 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo */, - 225B361C1F6EB9A50005B3D5 /* ChartsDemo-Swift */, + 5B57BBAE1A9B26AA0036A6CC /* ChartsDemo-iOS */, + 225B361C1F6EB9A50005B3D5 /* ChartsDemo-iOS-Swift */, ); }; /* End PBXProject section */ @@ -952,12 +952,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -987,6 +989,7 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -1002,12 +1005,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -1030,6 +1035,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -1045,7 +1051,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ChartsDemo; + PRODUCT_NAME = "ChartsDemo-iOS"; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; @@ -1065,7 +1071,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.dcg.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ChartsDemo; + PRODUCT_NAME = "ChartsDemo-iOS"; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvsimulator appletvos"; SWIFT_OBJC_BRIDGING_HEADER = "Supporting Files/ChartsDemo-Bridging-Header.h"; SWIFT_OBJC_INTERFACE_HEADER_NAME = "$(SWIFT_MODULE_NAME)-Swift.h"; @@ -1076,7 +1082,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-Swift" */ = { + 225B362C1F6EB9A50005B3D5 /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS-Swift" */ = { isa = XCConfigurationList; buildConfigurations = ( 225B362D1F6EB9A50005B3D5 /* Debug */, @@ -1085,7 +1091,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo" */ = { + 5B57BBAA1A9B26AA0036A6CC /* Build configuration list for PBXProject "ChartsDemo-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 5B57BBD01A9B26AA0036A6CC /* Debug */, @@ -1094,7 +1100,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo" */ = { + 5B57BBD21A9B26AA0036A6CC /* Build configuration list for PBXNativeTarget "ChartsDemo-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 5B57BBD31A9B26AA0036A6CC /* Debug */, diff --git a/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m b/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m index c78a043b30..38d9c4a2bc 100644 --- a/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m +++ b/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m @@ -124,7 +124,7 @@ - (void)setDataCount:(int)count range:(double)range set1.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set1.drawCircleHoleEnabled = NO; set1.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { - return _chartView.leftAxis.axisMinimum; + return self.chartView.leftAxis.axisMinimum; }]; set2 = [[LineChartDataSet alloc] initWithValues:yVals2 label:@"DataSet 2"]; @@ -139,7 +139,7 @@ - (void)setDataCount:(int)count range:(double)range set2.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set2.drawCircleHoleEnabled = NO; set2.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { - return _chartView.leftAxis.axisMaximum; + return self.chartView.leftAxis.axisMaximum; }]; NSMutableArray *dataSets = [[NSMutableArray alloc] init]; diff --git a/ChartsDemo/Objective-C/Demos/RadarChartViewController.m b/ChartsDemo/Objective-C/Demos/RadarChartViewController.m index 1810924a86..74171857e9 100644 --- a/ChartsDemo/Objective-C/Demos/RadarChartViewController.m +++ b/ChartsDemo/Objective-C/Demos/RadarChartViewController.m @@ -13,14 +13,12 @@ #import "ChartsDemo-Swift.h" @interface RadarChartViewController () -{ - NSArray *activities; - UIColor *originalBarBgColor; - UIColor *originalBarTintColor; - UIBarStyle originalBarStyle; -} @property (nonatomic, strong) IBOutlet RadarChartView *chartView; +@property (nonatomic, strong) NSArray *activities; +@property (nonatomic, strong) UIColor *originalBarBgColor; +@property (nonatomic, strong) UIColor *originalBarTintColor; +@property (nonatomic) UIBarStyle originalBarStyle; @end @@ -30,7 +28,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - activities = @[ @"Burger", @"Steak", @"Salad", @"Pasta", @"Pizza" ]; + self.activities = @[ @"Burger", @"Steak", @"Salad", @"Pasta", @"Pizza" ]; self.title = @"Radar Bar Chart"; @@ -98,9 +96,9 @@ - (void)viewWillAppear:(BOOL)animated [UIView animateWithDuration:0.15 animations:^{ UINavigationBar *navigationBar = self.navigationController.navigationBar; - originalBarBgColor = self.navigationController.navigationBar.barTintColor; - originalBarTintColor = self.navigationController.navigationBar.tintColor; - originalBarStyle = self.navigationController.navigationBar.barStyle; + self.originalBarBgColor = navigationBar.barTintColor; + self.originalBarTintColor = navigationBar.tintColor; + self.originalBarStyle = navigationBar.barStyle; navigationBar.barTintColor = self.view.backgroundColor; navigationBar.tintColor = UIColor.whiteColor; @@ -114,9 +112,9 @@ - (void)viewWillDisappear:(BOOL)animated [UIView animateWithDuration:0.15 animations:^{ UINavigationBar *navigationBar = self.navigationController.navigationBar; - navigationBar.barTintColor = originalBarBgColor; - navigationBar.tintColor = originalBarTintColor; - navigationBar.barStyle = originalBarStyle; + navigationBar.barTintColor = self.originalBarBgColor; + navigationBar.tintColor = self.originalBarTintColor; + navigationBar.barStyle = self.originalBarStyle; }]; } @@ -270,7 +268,7 @@ - (void)chartValueNothingSelected:(ChartViewBase * __nonnull)chartView - (NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis { - return activities[(int) value % activities.count]; + return self.activities[(int) value % self.activities.count]; } @end From d957f4ec189292f0854d215922721090b52c4c20 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Tue, 13 Mar 2018 20:48:37 -0300 Subject: [PATCH 18/84] Pulled master --- Source/Charts/Components/Legend.swift | 9 ++++----- .../Charts/Data/Implementations/Standard/ChartData.swift | 5 +++-- Source/Charts/Filters/DataApproximator+N.swift | 2 +- Source/Charts/Renderers/LegendRenderer.swift | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Source/Charts/Components/Legend.swift b/Source/Charts/Components/Legend.swift index e1363aaaa3..e51c0a3616 100644 --- a/Source/Charts/Components/Legend.swift +++ b/Source/Charts/Components/Legend.swift @@ -167,7 +167,7 @@ open class Legend: ComponentBase guard let label = entry.label else { continue } - let size = (label as NSString!).size(withAttributes: [.font: font]) + let size = (label as NSString).size(withAttributes: [.font: font]) if size.width > maxW { @@ -238,8 +238,7 @@ open class Legend: ComponentBase let e = entries[i] let drawingForm = e.form != .none let formSize = e.formSize.isNaN ? defaultFormSize : e.formSize - let label = e.label - + if !wasStacked { width = 0.0 @@ -254,9 +253,9 @@ open class Legend: ComponentBase width += formSize } - if label != nil + if let label = e.label { - let size = (label as NSString!).size(withAttributes: [.font: labelFont]) + let size = (label as NSString).size(withAttributes: [.font: labelFont]) if drawingForm && !wasStacked { diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index b4b7dfbedd..16a4547699 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -355,7 +355,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - returns: The labels of all DataSets as a string array. internal func dataSetLabels() -> [String] { - return flatMap { $0.label } + return compactMap { $0.label } } /// Get the Entry for a corresponding highlight object @@ -588,8 +588,9 @@ extension ChartData: RandomAccessCollection } } +// TODO: Conform when dropping Objective-C support // MARK: RangeReplaceableCollection -extension ChartData: RangeReplaceableCollection +extension ChartData//: RangeReplaceableCollection { @objc(addDataSet:) public func append(_ newElement: Element) diff --git a/Source/Charts/Filters/DataApproximator+N.swift b/Source/Charts/Filters/DataApproximator+N.swift index 1b31dbc870..32a7784664 100644 --- a/Source/Charts/Filters/DataApproximator+N.swift +++ b/Source/Charts/Filters/DataApproximator+N.swift @@ -112,7 +112,7 @@ extension DataApproximator { } while !queue.isEmpty // create a new array with series, only take the kept ones - let reducedEntries = points.enumerated().flatMap { (index: Int, point: CGPoint) -> CGPoint? in + let reducedEntries = points.enumerated().compactMap { (index: Int, point: CGPoint) -> CGPoint? in return keep[index] ? point : nil } diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index 4d32b23df7..e3b39aed3e 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -465,7 +465,7 @@ open class LegendRenderer: NSObject, Renderer if direction == .rightToLeft { - posX -= (e.label as NSString!).size(withAttributes: [.font: labelFont]).width + posX -= (e.label! as NSString).size(withAttributes: [.font: labelFont]).width } if !wasStacked From 99341af18bc14e2a41afcd7ef48b4d342c38d574 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Tue, 13 Mar 2018 20:56:14 -0300 Subject: [PATCH 19/84] Moved travis to Xcode 9.3beta temporarily --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6d6fe4d549..0740950980 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,12 @@ language: objective-c -osx_image: xcode9 +osx_image: xcode9.3beta matrix: include: - - osx_image: xcode9 + - osx_image: xcode9.3beta env: PLATFORM="iOS" - - osx_image: xcode9 + - osx_image: xcode9.3beta env: PLATFORM="tvOS" - - osx_image: xcode9 + - osx_image: xcode9.3beta env: PLATFORM="macOS" env: global: From 2a6931f05ac5acf7af352a8d463a754a12a4aa97 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Tue, 13 Mar 2018 21:31:23 -0300 Subject: [PATCH 20/84] Updated Rakefile for new project names --- Charts.xcworkspace/contents.xcworkspacedata | 4 ++-- .../ChartsDemo-iOS.xcodeproj/project.pbxproj | 0 .../Objective-C/AppDelegate.h | 0 .../Objective-C/AppDelegate.m | 0 .../Objective-C/Components/BalloonMarker.swift | 0 .../Objective-C/Components/RadarMarkerView.swift | 0 .../Objective-C/Components/XYMarkerView.swift | 0 .../Objective-C/DemoBaseViewController.h | 0 .../Objective-C/DemoBaseViewController.m | 0 .../Objective-C/DemoListViewController.h | 0 .../Objective-C/DemoListViewController.m | 0 .../Demos/AnotherBarChartViewController.h | 0 .../Demos/AnotherBarChartViewController.m | 0 .../Objective-C/Demos/BarChartViewController.h | 0 .../Objective-C/Demos/BarChartViewController.m | 0 .../Objective-C/Demos/BubbleChartViewController.h | 0 .../Objective-C/Demos/BubbleChartViewController.m | 0 .../Demos/CandleStickChartViewController.h | 0 .../Demos/CandleStickChartViewController.m | 0 .../Demos/ColoredLineChartViewController.h | 0 .../Demos/ColoredLineChartViewController.m | 0 .../Objective-C/Demos/CombinedChartViewController.h | 0 .../Objective-C/Demos/CombinedChartViewController.m | 0 .../Demos/CubicLineChartViewController.h | 0 .../Demos/CubicLineChartViewController.m | 0 .../Objective-C/Demos/HalfPieChartViewController.h | 0 .../Objective-C/Demos/HalfPieChartViewController.m | 0 .../Demos/HorizontalBarChartViewController.h | 0 .../Demos/HorizontalBarChartViewController.m | 0 .../Objective-C/Demos/LineChart1ViewController.h | 0 .../Objective-C/Demos/LineChart1ViewController.m | 0 .../Objective-C/Demos/LineChart2ViewController.h | 0 .../Objective-C/Demos/LineChart2ViewController.m | 0 .../Demos/LineChartFilledViewController.h | 0 .../Demos/LineChartFilledViewController.m | 0 .../Objective-C/Demos/LineChartTimeViewController.h | 0 .../Objective-C/Demos/LineChartTimeViewController.m | 0 .../Demos/MultipleBarChartViewController.h | 0 .../Demos/MultipleBarChartViewController.m | 0 .../Demos/MultipleLinesChartViewController.h | 0 .../Demos/MultipleLinesChartViewController.m | 0 .../Demos/NegativeStackedBarChartViewController.h | 0 .../Demos/NegativeStackedBarChartViewController.m | 0 .../Objective-C/Demos/PieChartViewController.h | 0 .../Objective-C/Demos/PieChartViewController.m | 0 .../Demos/PiePolylineChartViewController.h | 0 .../Demos/PiePolylineChartViewController.m | 0 .../Demos/PositiveNegativeBarChartViewController.h | 0 .../Demos/PositiveNegativeBarChartViewController.m | 0 .../Objective-C/Demos/RadarChartViewController.h | 0 .../Objective-C/Demos/RadarChartViewController.m | 0 .../Objective-C/Demos/ScatterChartViewController.h | 0 .../Objective-C/Demos/ScatterChartViewController.m | 0 .../Objective-C/Demos/SinusBarChartViewController.h | 0 .../Objective-C/Demos/SinusBarChartViewController.m | 0 .../Demos/StackedBarChartViewController.h | 0 .../Demos/StackedBarChartViewController.m | 0 .../Objective-C/Formatters/DateValueFormatter.h | 0 .../Objective-C/Formatters/DateValueFormatter.m | 0 .../Objective-C/Formatters/DayAxisValueFormatter.h | 0 .../Objective-C/Formatters/DayAxisValueFormatter.m | 0 .../Objective-C/Formatters/IntAxisValueFormatter.h | 0 .../Objective-C/Formatters/IntAxisValueFormatter.m | 0 .../Formatters/LargeValueFormatter.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../AppIcon.appiconset/Icon-29@2x.png | Bin .../AppIcon.appiconset/Icon-29@3x.png | Bin .../AppIcon.appiconset/Icon-40@2x.png | Bin .../AppIcon.appiconset/Icon-40@3x.png | Bin .../AppIcon.appiconset/Icon-60@2x.png | Bin .../AppIcon.appiconset/Icon-60@3x.png | Bin .../AppIcon.appiconset/iTunesArtwork@2x.png | Bin .../Resources/Images.xcassets/Contents.json | 0 .../Images.xcassets/icon.imageset/Contents.json | 0 .../Images.xcassets/icon.imageset/star-1.png | Bin .../Images.xcassets/icon.imageset/star-2.png | Bin .../Images.xcassets/icon.imageset/star.png | Bin .../Resources/Launch Screen.storyboard | 0 .../Resources/markers/radar_marker@3x.png | Bin .../Supporting Files/ChartsDemo-Bridging-Header.h | 0 .../Supporting Files/Info.plist | 0 .../Supporting Files/main.m | 0 .../Swift/AppDelegate.swift | 0 .../Swift/Components/BalloonMarker.swift | 0 .../Swift/Components/RadarMarkerView.swift | 0 .../Swift/Components/XYMarkerView.swift | 0 .../Swift/DemoBaseViewController.swift | 0 .../Swift/DemoListViewController.swift | 0 .../Swift/Demos/AnotherBarChartViewController.swift | 0 .../Swift/Demos/BarChartViewController.swift | 0 .../Swift/Demos/BubbleChartViewController.swift | 0 .../Demos/CandleStickChartViewController.swift | 0 .../Demos/ColoredLineChartViewController.swift | 0 .../Swift/Demos/CombinedChartViewController.swift | 0 .../Swift/Demos/CubicLineChartViewController.swift | 0 .../Swift/Demos/HalfPieChartViewController.swift | 0 .../Demos/HorizontalBarChartViewController.swift | 0 .../Swift/Demos/LineChart1ViewController.swift | 0 .../Swift/Demos/LineChart2ViewController.swift | 0 .../Swift/Demos/LineChartFilledViewController.swift | 0 .../Swift/Demos/LineChartTimeViewController.swift | 0 .../Demos/MultipleBarChartViewController.swift | 0 .../Demos/MultipleLinesChartViewController.swift | 0 .../NegativeStackedBarChartViewController.swift | 0 .../Swift/Demos/PieChartViewController.swift | 0 .../Demos/PiePolylineChartViewController.swift | 0 .../PositiveNegativeBarChartViewController.swift | 0 .../Swift/Demos/RadarChartViewController.swift | 0 .../Swift/Demos/ScatterChartViewController.swift | 0 .../Swift/Demos/SinusBarChartViewController.swift | 0 .../Swift/Demos/StackedBarChartViewController.swift | 0 .../Swift/Formatters/DateValueFormatter.swift | 0 .../Swift/Formatters/DayAxisValueFormatter.swift | 0 .../Swift/Formatters/IntAxisValueFormatter.swift | 0 .../Swift/Formatters/LargeValueFormatter.swift | 0 .../XIBs/DemoListViewController.xib | 0 .../XIBs/Demos/AnotherBarChartViewController.xib | 0 .../XIBs/Demos/BarChartViewController.xib | 0 .../XIBs/Demos/BubbleChartViewController.xib | 0 .../XIBs/Demos/CandleStickChartViewController.xib | 0 .../XIBs/Demos/ColoredLineChartViewController.xib | 0 .../XIBs/Demos/CombinedChartViewController.xib | 0 .../XIBs/Demos/CubicLineChartViewController.xib | 0 .../XIBs/Demos/HalfPieChartViewController.xib | 0 .../XIBs/Demos/HorizontalBarChartViewController.xib | 0 .../XIBs/Demos/LineChart1ViewController.xib | 0 .../XIBs/Demos/LineChart2ViewController.xib | 0 .../XIBs/Demos/LineChartFilledViewController.xib | 0 .../XIBs/Demos/LineChartTimeViewController.xib | 0 .../XIBs/Demos/MultipleBarChartViewController.xib | 0 .../XIBs/Demos/MultipleLinesChartViewController.xib | 0 .../Demos/NegativeStackedBarChartViewController.xib | 0 .../XIBs/Demos/PieChartViewController.xib | 0 .../XIBs/Demos/PiePolylineChartViewController.xib | 0 .../PositiveNegativeBarChartViewController.xib | 0 .../XIBs/Demos/RadarChartViewController.xib | 0 .../XIBs/Demos/RealmDemosViewController.xib | 0 .../XIBs/Demos/ScatterChartViewController.xib | 0 .../XIBs/Demos/SinusBarChartViewController.xib | 0 .../XIBs/Demos/StackedBarChartViewController.xib | 0 .../XIBs/RadarMarkerView.xib | 0 .../ChartsDemo-macOS.xcodeproj/project.pbxproj | 6 +++--- .../ChartsDemo-macOS}/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../ChartsDemo-macOS}/Base.lproj/Main.storyboard | 0 .../Demos/BarDemoViewController.swift | 0 .../Demos/LineDemoViewController.swift | 0 .../Demos/PieDemoViewController.swift | 0 .../Demos/RadarDemoViewController.swift | 0 .../ChartsDemo-macOS}/Info.plist | 0 .../Pages/BarChart.xcplaygroundpage/Contents.swift | 0 .../BubbleChart.xcplaygroundpage/Contents.swift | 0 .../CandleChart.xcplaygroundpage/Contents.swift | 0 .../CombinedChart.xcplaygroundpage/Contents.swift | 0 .../Contents.swift | 0 .../Pages/LineChart.xcplaygroundpage/Contents.swift | 0 .../Pages/Menu.xcplaygroundpage/Contents.swift | 0 .../Resources/feature_graphic.png | Bin .../Pages/PieChart.xcplaygroundpage/Contents.swift | 0 .../RadarChart.xcplaygroundpage/Contents.swift | 0 .../ScatterChart.xcplaygroundpage/Contents.swift | 0 .../StackedBarChart.xcplaygroundpage/Contents.swift | 0 .../contents.xcplayground | 0 Rakefile | 10 +++++----- 164 files changed, 10 insertions(+), 10 deletions(-) rename {ChartsDemo => ChartsDemo-iOS}/ChartsDemo-iOS.xcodeproj/project.pbxproj (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/AppDelegate.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/AppDelegate.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Components/BalloonMarker.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Components/RadarMarkerView.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Components/XYMarkerView.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/DemoBaseViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/DemoBaseViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/DemoListViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/DemoListViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/AnotherBarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/AnotherBarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/BarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/BarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/BubbleChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/BubbleChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/CandleStickChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/CandleStickChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/ColoredLineChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/ColoredLineChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/CombinedChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/CombinedChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/CubicLineChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/CubicLineChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/HalfPieChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/HalfPieChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/HorizontalBarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/HorizontalBarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChart1ViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChart1ViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChart2ViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChart2ViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChartFilledViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChartFilledViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChartTimeViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/LineChartTimeViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/MultipleBarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/MultipleBarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/MultipleLinesChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/MultipleLinesChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/NegativeStackedBarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/NegativeStackedBarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/PieChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/PieChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/PiePolylineChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/PiePolylineChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/PositiveNegativeBarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/PositiveNegativeBarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/RadarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/RadarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/ScatterChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/ScatterChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/SinusBarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/SinusBarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/StackedBarChartViewController.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Demos/StackedBarChartViewController.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Formatters/DateValueFormatter.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Formatters/DateValueFormatter.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Formatters/DayAxisValueFormatter.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Formatters/DayAxisValueFormatter.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Formatters/IntAxisValueFormatter.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Formatters/IntAxisValueFormatter.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Objective-C/Formatters/LargeValueFormatter.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/Contents.json (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/icon.imageset/Contents.json (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/icon.imageset/star-1.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/icon.imageset/star-2.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Images.xcassets/icon.imageset/star.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/Launch Screen.storyboard (100%) rename {ChartsDemo => ChartsDemo-iOS}/Resources/markers/radar_marker@3x.png (100%) rename {ChartsDemo => ChartsDemo-iOS}/Supporting Files/ChartsDemo-Bridging-Header.h (100%) rename {ChartsDemo => ChartsDemo-iOS}/Supporting Files/Info.plist (100%) rename {ChartsDemo => ChartsDemo-iOS}/Supporting Files/main.m (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/AppDelegate.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Components/BalloonMarker.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Components/RadarMarkerView.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Components/XYMarkerView.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/DemoBaseViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/DemoListViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/AnotherBarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/BarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/BubbleChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/CandleStickChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/ColoredLineChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/CombinedChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/CubicLineChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/HalfPieChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/HorizontalBarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/LineChart1ViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/LineChart2ViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/LineChartFilledViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/LineChartTimeViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/MultipleBarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/MultipleLinesChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/NegativeStackedBarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/PieChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/PiePolylineChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/PositiveNegativeBarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/RadarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/ScatterChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/SinusBarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Demos/StackedBarChartViewController.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Formatters/DateValueFormatter.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Formatters/DayAxisValueFormatter.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Formatters/IntAxisValueFormatter.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/Swift/Formatters/LargeValueFormatter.swift (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/DemoListViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/AnotherBarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/BarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/BubbleChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/CandleStickChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/ColoredLineChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/CombinedChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/CubicLineChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/HalfPieChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/HorizontalBarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/LineChart1ViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/LineChart2ViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/LineChartFilledViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/LineChartTimeViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/MultipleBarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/MultipleLinesChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/NegativeStackedBarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/PieChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/PiePolylineChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/PositiveNegativeBarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/RadarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/RealmDemosViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/ScatterChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/SinusBarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/Demos/StackedBarChartViewController.xib (100%) rename {ChartsDemo => ChartsDemo-iOS}/XIBs/RadarMarkerView.xib (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/ChartsDemo-macOS.xcodeproj/project.pbxproj (99%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/AppDelegate.swift (100%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/Base.lproj/Main.storyboard (100%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/Demos/BarDemoViewController.swift (100%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/Demos/LineDemoViewController.swift (100%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/Demos/PieDemoViewController.swift (100%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/Demos/RadarDemoViewController.swift (100%) rename {ChartsDemo-OSX/ChartsDemo-OSX => ChartsDemo-macOS/ChartsDemo-macOS}/Info.plist (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/BarChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/BubbleChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/CandleChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/CombinedChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/HorizontalBarChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/LineChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Resources/feature_graphic.png (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/PieChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/RadarChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/ScatterChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/Pages/StackedBarChart.xcplaygroundpage/Contents.swift (100%) rename {ChartsDemo-OSX => ChartsDemo-macOS}/PlaygroundChart.playground/contents.xcplayground (100%) diff --git a/Charts.xcworkspace/contents.xcworkspacedata b/Charts.xcworkspace/contents.xcworkspacedata index 188c10a2a0..088d4b7329 100644 --- a/Charts.xcworkspace/contents.xcworkspacedata +++ b/Charts.xcworkspace/contents.xcworkspacedata @@ -5,9 +5,9 @@ location = "container:Charts.xcodeproj"> + location = "group:ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj"> + location = "group:ChartsDemo-macOS/ChartsDemo-macOS.xcodeproj"> diff --git a/ChartsDemo/ChartsDemo-iOS.xcodeproj/project.pbxproj b/ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj similarity index 100% rename from ChartsDemo/ChartsDemo-iOS.xcodeproj/project.pbxproj rename to ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj diff --git a/ChartsDemo/Objective-C/AppDelegate.h b/ChartsDemo-iOS/Objective-C/AppDelegate.h similarity index 100% rename from ChartsDemo/Objective-C/AppDelegate.h rename to ChartsDemo-iOS/Objective-C/AppDelegate.h diff --git a/ChartsDemo/Objective-C/AppDelegate.m b/ChartsDemo-iOS/Objective-C/AppDelegate.m similarity index 100% rename from ChartsDemo/Objective-C/AppDelegate.m rename to ChartsDemo-iOS/Objective-C/AppDelegate.m diff --git a/ChartsDemo/Objective-C/Components/BalloonMarker.swift b/ChartsDemo-iOS/Objective-C/Components/BalloonMarker.swift similarity index 100% rename from ChartsDemo/Objective-C/Components/BalloonMarker.swift rename to ChartsDemo-iOS/Objective-C/Components/BalloonMarker.swift diff --git a/ChartsDemo/Objective-C/Components/RadarMarkerView.swift b/ChartsDemo-iOS/Objective-C/Components/RadarMarkerView.swift similarity index 100% rename from ChartsDemo/Objective-C/Components/RadarMarkerView.swift rename to ChartsDemo-iOS/Objective-C/Components/RadarMarkerView.swift diff --git a/ChartsDemo/Objective-C/Components/XYMarkerView.swift b/ChartsDemo-iOS/Objective-C/Components/XYMarkerView.swift similarity index 100% rename from ChartsDemo/Objective-C/Components/XYMarkerView.swift rename to ChartsDemo-iOS/Objective-C/Components/XYMarkerView.swift diff --git a/ChartsDemo/Objective-C/DemoBaseViewController.h b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.h similarity index 100% rename from ChartsDemo/Objective-C/DemoBaseViewController.h rename to ChartsDemo-iOS/Objective-C/DemoBaseViewController.h diff --git a/ChartsDemo/Objective-C/DemoBaseViewController.m b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.m similarity index 100% rename from ChartsDemo/Objective-C/DemoBaseViewController.m rename to ChartsDemo-iOS/Objective-C/DemoBaseViewController.m diff --git a/ChartsDemo/Objective-C/DemoListViewController.h b/ChartsDemo-iOS/Objective-C/DemoListViewController.h similarity index 100% rename from ChartsDemo/Objective-C/DemoListViewController.h rename to ChartsDemo-iOS/Objective-C/DemoListViewController.h diff --git a/ChartsDemo/Objective-C/DemoListViewController.m b/ChartsDemo-iOS/Objective-C/DemoListViewController.m similarity index 100% rename from ChartsDemo/Objective-C/DemoListViewController.m rename to ChartsDemo-iOS/Objective-C/DemoListViewController.m diff --git a/ChartsDemo/Objective-C/Demos/AnotherBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/AnotherBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/AnotherBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/AnotherBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/BarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/BarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/BarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/BarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/BubbleChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/BubbleChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/BubbleChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/BubbleChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/CandleStickChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/CandleStickChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/CandleStickChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/CandleStickChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/ColoredLineChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/ColoredLineChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/ColoredLineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/ColoredLineChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/CombinedChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/CombinedChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/CombinedChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/CombinedChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/CubicLineChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/CubicLineChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/CubicLineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/CubicLineChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/HalfPieChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/HalfPieChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/HalfPieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/HalfPieChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/HorizontalBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/HorizontalBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/HorizontalBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/HorizontalBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/LineChart1ViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChart1ViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.h diff --git a/ChartsDemo/Objective-C/Demos/LineChart1ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChart1ViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m diff --git a/ChartsDemo/Objective-C/Demos/LineChart2ViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChart2ViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.h diff --git a/ChartsDemo/Objective-C/Demos/LineChart2ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChart2ViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m diff --git a/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChartFilledViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.h diff --git a/ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChartFilledViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m diff --git a/ChartsDemo/Objective-C/Demos/LineChartTimeViewController.h b/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChartTimeViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.h diff --git a/ChartsDemo/Objective-C/Demos/LineChartTimeViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/LineChartTimeViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m diff --git a/ChartsDemo/Objective-C/Demos/MultipleBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/MultipleBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/MultipleBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/MultipleBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/MultipleLinesChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/NegativeStackedBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/PieChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/PieChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/PieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/PieChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/PiePolylineChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/PiePolylineChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/PiePolylineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/PiePolylineChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/PositiveNegativeBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/RadarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/RadarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/RadarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/RadarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/ScatterChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/ScatterChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/ScatterChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/ScatterChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/SinusBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/SinusBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/SinusBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/SinusBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m diff --git a/ChartsDemo/Objective-C/Demos/StackedBarChartViewController.h b/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.h similarity index 100% rename from ChartsDemo/Objective-C/Demos/StackedBarChartViewController.h rename to ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.h diff --git a/ChartsDemo/Objective-C/Demos/StackedBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m similarity index 100% rename from ChartsDemo/Objective-C/Demos/StackedBarChartViewController.m rename to ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m diff --git a/ChartsDemo/Objective-C/Formatters/DateValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h similarity index 100% rename from ChartsDemo/Objective-C/Formatters/DateValueFormatter.h rename to ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h diff --git a/ChartsDemo/Objective-C/Formatters/DateValueFormatter.m b/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.m similarity index 100% rename from ChartsDemo/Objective-C/Formatters/DateValueFormatter.m rename to ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.m diff --git a/ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h similarity index 100% rename from ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.h rename to ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h diff --git a/ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.m b/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.m similarity index 100% rename from ChartsDemo/Objective-C/Formatters/DayAxisValueFormatter.m rename to ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.m diff --git a/ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h similarity index 100% rename from ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.h rename to ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h diff --git a/ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.m b/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.m similarity index 100% rename from ChartsDemo/Objective-C/Formatters/IntAxisValueFormatter.m rename to ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.m diff --git a/ChartsDemo/Objective-C/Formatters/LargeValueFormatter.swift b/ChartsDemo-iOS/Objective-C/Formatters/LargeValueFormatter.swift similarity index 100% rename from ChartsDemo/Objective-C/Formatters/LargeValueFormatter.swift rename to ChartsDemo-iOS/Objective-C/Formatters/LargeValueFormatter.swift diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Contents.json b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Contents.json rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png diff --git a/ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png b/ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png rename to ChartsDemo-iOS/Resources/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png diff --git a/ChartsDemo/Resources/Images.xcassets/Contents.json b/ChartsDemo-iOS/Resources/Images.xcassets/Contents.json similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/Contents.json rename to ChartsDemo-iOS/Resources/Images.xcassets/Contents.json diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/Contents.json b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/Contents.json similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/Contents.json rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/Contents.json diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/star-1.png b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-1.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/star-1.png rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-1.png diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/star-2.png b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-2.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/star-2.png rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star-2.png diff --git a/ChartsDemo/Resources/Images.xcassets/icon.imageset/star.png b/ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star.png similarity index 100% rename from ChartsDemo/Resources/Images.xcassets/icon.imageset/star.png rename to ChartsDemo-iOS/Resources/Images.xcassets/icon.imageset/star.png diff --git a/ChartsDemo/Resources/Launch Screen.storyboard b/ChartsDemo-iOS/Resources/Launch Screen.storyboard similarity index 100% rename from ChartsDemo/Resources/Launch Screen.storyboard rename to ChartsDemo-iOS/Resources/Launch Screen.storyboard diff --git a/ChartsDemo/Resources/markers/radar_marker@3x.png b/ChartsDemo-iOS/Resources/markers/radar_marker@3x.png similarity index 100% rename from ChartsDemo/Resources/markers/radar_marker@3x.png rename to ChartsDemo-iOS/Resources/markers/radar_marker@3x.png diff --git a/ChartsDemo/Supporting Files/ChartsDemo-Bridging-Header.h b/ChartsDemo-iOS/Supporting Files/ChartsDemo-Bridging-Header.h similarity index 100% rename from ChartsDemo/Supporting Files/ChartsDemo-Bridging-Header.h rename to ChartsDemo-iOS/Supporting Files/ChartsDemo-Bridging-Header.h diff --git a/ChartsDemo/Supporting Files/Info.plist b/ChartsDemo-iOS/Supporting Files/Info.plist similarity index 100% rename from ChartsDemo/Supporting Files/Info.plist rename to ChartsDemo-iOS/Supporting Files/Info.plist diff --git a/ChartsDemo/Supporting Files/main.m b/ChartsDemo-iOS/Supporting Files/main.m similarity index 100% rename from ChartsDemo/Supporting Files/main.m rename to ChartsDemo-iOS/Supporting Files/main.m diff --git a/ChartsDemo/Swift/AppDelegate.swift b/ChartsDemo-iOS/Swift/AppDelegate.swift similarity index 100% rename from ChartsDemo/Swift/AppDelegate.swift rename to ChartsDemo-iOS/Swift/AppDelegate.swift diff --git a/ChartsDemo/Swift/Components/BalloonMarker.swift b/ChartsDemo-iOS/Swift/Components/BalloonMarker.swift similarity index 100% rename from ChartsDemo/Swift/Components/BalloonMarker.swift rename to ChartsDemo-iOS/Swift/Components/BalloonMarker.swift diff --git a/ChartsDemo/Swift/Components/RadarMarkerView.swift b/ChartsDemo-iOS/Swift/Components/RadarMarkerView.swift similarity index 100% rename from ChartsDemo/Swift/Components/RadarMarkerView.swift rename to ChartsDemo-iOS/Swift/Components/RadarMarkerView.swift diff --git a/ChartsDemo/Swift/Components/XYMarkerView.swift b/ChartsDemo-iOS/Swift/Components/XYMarkerView.swift similarity index 100% rename from ChartsDemo/Swift/Components/XYMarkerView.swift rename to ChartsDemo-iOS/Swift/Components/XYMarkerView.swift diff --git a/ChartsDemo/Swift/DemoBaseViewController.swift b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift similarity index 100% rename from ChartsDemo/Swift/DemoBaseViewController.swift rename to ChartsDemo-iOS/Swift/DemoBaseViewController.swift diff --git a/ChartsDemo/Swift/DemoListViewController.swift b/ChartsDemo-iOS/Swift/DemoListViewController.swift similarity index 100% rename from ChartsDemo/Swift/DemoListViewController.swift rename to ChartsDemo-iOS/Swift/DemoListViewController.swift diff --git a/ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/AnotherBarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/AnotherBarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/AnotherBarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/BarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/BarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/BarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/BarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/BubbleChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/BubbleChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/BubbleChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/BubbleChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/CandleStickChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CandleStickChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/CandleStickChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/CandleStickChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/ColoredLineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/ColoredLineChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/CombinedChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/CombinedChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/CubicLineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/CubicLineChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/HalfPieChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/HalfPieChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/HalfPieChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/HalfPieChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/HorizontalBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/HorizontalBarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/HorizontalBarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/HorizontalBarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/LineChart1ViewController.swift rename to ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift diff --git a/ChartsDemo/Swift/Demos/LineChart2ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/LineChart2ViewController.swift rename to ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift diff --git a/ChartsDemo/Swift/Demos/LineChartFilledViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChartFilledViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/LineChartFilledViewController.swift rename to ChartsDemo-iOS/Swift/Demos/LineChartFilledViewController.swift diff --git a/ChartsDemo/Swift/Demos/LineChartTimeViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/LineChartTimeViewController.swift rename to ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift diff --git a/ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/MultipleBarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/MultipleBarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/MultipleBarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/MultipleLinesChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/NegativeStackedBarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/NegativeStackedBarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/NegativeStackedBarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/PieChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/PieChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/PiePolylineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/PiePolylineChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PositiveNegativeBarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/PositiveNegativeBarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/PositiveNegativeBarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/RadarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/RadarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/ScatterChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/ScatterChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/ScatterChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/ScatterChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/SinusBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/SinusBarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/SinusBarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/SinusBarChartViewController.swift diff --git a/ChartsDemo/Swift/Demos/StackedBarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/StackedBarChartViewController.swift similarity index 100% rename from ChartsDemo/Swift/Demos/StackedBarChartViewController.swift rename to ChartsDemo-iOS/Swift/Demos/StackedBarChartViewController.swift diff --git a/ChartsDemo/Swift/Formatters/DateValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/DateValueFormatter.swift similarity index 100% rename from ChartsDemo/Swift/Formatters/DateValueFormatter.swift rename to ChartsDemo-iOS/Swift/Formatters/DateValueFormatter.swift diff --git a/ChartsDemo/Swift/Formatters/DayAxisValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/DayAxisValueFormatter.swift similarity index 100% rename from ChartsDemo/Swift/Formatters/DayAxisValueFormatter.swift rename to ChartsDemo-iOS/Swift/Formatters/DayAxisValueFormatter.swift diff --git a/ChartsDemo/Swift/Formatters/IntAxisValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/IntAxisValueFormatter.swift similarity index 100% rename from ChartsDemo/Swift/Formatters/IntAxisValueFormatter.swift rename to ChartsDemo-iOS/Swift/Formatters/IntAxisValueFormatter.swift diff --git a/ChartsDemo/Swift/Formatters/LargeValueFormatter.swift b/ChartsDemo-iOS/Swift/Formatters/LargeValueFormatter.swift similarity index 100% rename from ChartsDemo/Swift/Formatters/LargeValueFormatter.swift rename to ChartsDemo-iOS/Swift/Formatters/LargeValueFormatter.swift diff --git a/ChartsDemo/XIBs/DemoListViewController.xib b/ChartsDemo-iOS/XIBs/DemoListViewController.xib similarity index 100% rename from ChartsDemo/XIBs/DemoListViewController.xib rename to ChartsDemo-iOS/XIBs/DemoListViewController.xib diff --git a/ChartsDemo/XIBs/Demos/AnotherBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/AnotherBarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/AnotherBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/AnotherBarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/BarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/BarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/BarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/BarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/BubbleChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/BubbleChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/BubbleChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/BubbleChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/CandleStickChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/CandleStickChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/CandleStickChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/CandleStickChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/ColoredLineChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/ColoredLineChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/ColoredLineChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/ColoredLineChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/CombinedChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/CombinedChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/CombinedChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/CombinedChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/CubicLineChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/CubicLineChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/CubicLineChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/CubicLineChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/HalfPieChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/HalfPieChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/HalfPieChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/HalfPieChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/HorizontalBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/HorizontalBarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/HorizontalBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/HorizontalBarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/LineChart1ViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChart1ViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/LineChart1ViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChart1ViewController.xib diff --git a/ChartsDemo/XIBs/Demos/LineChart2ViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChart2ViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/LineChart2ViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChart2ViewController.xib diff --git a/ChartsDemo/XIBs/Demos/LineChartFilledViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChartFilledViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/LineChartFilledViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChartFilledViewController.xib diff --git a/ChartsDemo/XIBs/Demos/LineChartTimeViewController.xib b/ChartsDemo-iOS/XIBs/Demos/LineChartTimeViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/LineChartTimeViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/LineChartTimeViewController.xib diff --git a/ChartsDemo/XIBs/Demos/MultipleBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/MultipleBarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/MultipleBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/MultipleBarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/MultipleLinesChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/MultipleLinesChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/MultipleLinesChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/MultipleLinesChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/NegativeStackedBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/NegativeStackedBarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/NegativeStackedBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/NegativeStackedBarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/PieChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/PieChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/PieChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/PieChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/PiePolylineChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/PiePolylineChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/PiePolylineChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/PiePolylineChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/PositiveNegativeBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/PositiveNegativeBarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/PositiveNegativeBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/PositiveNegativeBarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/RadarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/RadarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/RadarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/RadarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/RealmDemosViewController.xib b/ChartsDemo-iOS/XIBs/Demos/RealmDemosViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/RealmDemosViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/RealmDemosViewController.xib diff --git a/ChartsDemo/XIBs/Demos/ScatterChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/ScatterChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/ScatterChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/ScatterChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/SinusBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/SinusBarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/SinusBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/SinusBarChartViewController.xib diff --git a/ChartsDemo/XIBs/Demos/StackedBarChartViewController.xib b/ChartsDemo-iOS/XIBs/Demos/StackedBarChartViewController.xib similarity index 100% rename from ChartsDemo/XIBs/Demos/StackedBarChartViewController.xib rename to ChartsDemo-iOS/XIBs/Demos/StackedBarChartViewController.xib diff --git a/ChartsDemo/XIBs/RadarMarkerView.xib b/ChartsDemo-iOS/XIBs/RadarMarkerView.xib similarity index 100% rename from ChartsDemo/XIBs/RadarMarkerView.xib rename to ChartsDemo-iOS/XIBs/RadarMarkerView.xib diff --git a/ChartsDemo-OSX/ChartsDemo-macOS.xcodeproj/project.pbxproj b/ChartsDemo-macOS/ChartsDemo-macOS.xcodeproj/project.pbxproj similarity index 99% rename from ChartsDemo-OSX/ChartsDemo-macOS.xcodeproj/project.pbxproj rename to ChartsDemo-macOS/ChartsDemo-macOS.xcodeproj/project.pbxproj index 49aa12415e..2d45668a87 100644 --- a/ChartsDemo-OSX/ChartsDemo-macOS.xcodeproj/project.pbxproj +++ b/ChartsDemo-macOS/ChartsDemo-macOS.xcodeproj/project.pbxproj @@ -105,7 +105,7 @@ 65B3F6351C73B4F5000983D0 = { isa = PBXGroup; children = ( - 65B3F6401C73B4F5000983D0 /* ChartsDemo-OSX */, + 65B3F6401C73B4F5000983D0 /* ChartsDemo-macOS */, 65B3F63F1C73B4F5000983D0 /* Products */, 03780C7E1EA29C87005C11C8 /* PlaygroundChart.playground */, 0630AE691D812840008859B0 /* Charts.xcodeproj */, @@ -120,7 +120,7 @@ name = Products; sourceTree = ""; }; - 65B3F6401C73B4F5000983D0 /* ChartsDemo-OSX */ = { + 65B3F6401C73B4F5000983D0 /* ChartsDemo-macOS */ = { isa = PBXGroup; children = ( 5B9A0C381C83AB0600ED8ED8 /* Demos */, @@ -129,7 +129,7 @@ 65B3F6471C73B4F5000983D0 /* Main.storyboard */, 65B3F64A1C73B4F5000983D0 /* Info.plist */, ); - path = "ChartsDemo-OSX"; + path = "ChartsDemo-macOS"; sourceTree = ""; }; /* End PBXGroup section */ diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/AppDelegate.swift b/ChartsDemo-macOS/ChartsDemo-macOS/AppDelegate.swift similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/AppDelegate.swift rename to ChartsDemo-macOS/ChartsDemo-macOS/AppDelegate.swift diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Assets.xcassets/AppIcon.appiconset/Contents.json b/ChartsDemo-macOS/ChartsDemo-macOS/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/Assets.xcassets/AppIcon.appiconset/Contents.json rename to ChartsDemo-macOS/ChartsDemo-macOS/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Base.lproj/Main.storyboard b/ChartsDemo-macOS/ChartsDemo-macOS/Base.lproj/Main.storyboard similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/Base.lproj/Main.storyboard rename to ChartsDemo-macOS/ChartsDemo-macOS/Base.lproj/Main.storyboard diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift b/ChartsDemo-macOS/ChartsDemo-macOS/Demos/BarDemoViewController.swift similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/Demos/BarDemoViewController.swift rename to ChartsDemo-macOS/ChartsDemo-macOS/Demos/BarDemoViewController.swift diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift b/ChartsDemo-macOS/ChartsDemo-macOS/Demos/LineDemoViewController.swift similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/Demos/LineDemoViewController.swift rename to ChartsDemo-macOS/ChartsDemo-macOS/Demos/LineDemoViewController.swift diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift b/ChartsDemo-macOS/ChartsDemo-macOS/Demos/PieDemoViewController.swift similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/Demos/PieDemoViewController.swift rename to ChartsDemo-macOS/ChartsDemo-macOS/Demos/PieDemoViewController.swift diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift b/ChartsDemo-macOS/ChartsDemo-macOS/Demos/RadarDemoViewController.swift similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/Demos/RadarDemoViewController.swift rename to ChartsDemo-macOS/ChartsDemo-macOS/Demos/RadarDemoViewController.swift diff --git a/ChartsDemo-OSX/ChartsDemo-OSX/Info.plist b/ChartsDemo-macOS/ChartsDemo-macOS/Info.plist similarity index 100% rename from ChartsDemo-OSX/ChartsDemo-OSX/Info.plist rename to ChartsDemo-macOS/ChartsDemo-macOS/Info.plist diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/BarChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/BarChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/BarChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/BarChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/BubbleChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/BubbleChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/BubbleChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/BubbleChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/CandleChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/CandleChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/CandleChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/CandleChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/CombinedChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/CombinedChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/CombinedChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/CombinedChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/HorizontalBarChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/HorizontalBarChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/HorizontalBarChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/HorizontalBarChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/LineChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/LineChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/LineChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/LineChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Resources/feature_graphic.png b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Resources/feature_graphic.png similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Resources/feature_graphic.png rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/Menu.xcplaygroundpage/Resources/feature_graphic.png diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/PieChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/PieChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/PieChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/PieChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/RadarChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/RadarChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/RadarChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/RadarChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/ScatterChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/ScatterChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/ScatterChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/ScatterChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/Pages/StackedBarChart.xcplaygroundpage/Contents.swift b/ChartsDemo-macOS/PlaygroundChart.playground/Pages/StackedBarChart.xcplaygroundpage/Contents.swift similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/Pages/StackedBarChart.xcplaygroundpage/Contents.swift rename to ChartsDemo-macOS/PlaygroundChart.playground/Pages/StackedBarChart.xcplaygroundpage/Contents.swift diff --git a/ChartsDemo-OSX/PlaygroundChart.playground/contents.xcplayground b/ChartsDemo-macOS/PlaygroundChart.playground/contents.xcplayground similarity index 100% rename from ChartsDemo-OSX/PlaygroundChart.playground/contents.xcplayground rename to ChartsDemo-macOS/PlaygroundChart.playground/contents.xcplayground diff --git a/Rakefile b/Rakefile index 516b385a96..3a8868f3c5 100644 --- a/Rakefile +++ b/Rakefile @@ -3,11 +3,11 @@ def type end def project_name - 'ChartsDemo/ChartsDemo.xcodeproj' + 'ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj' end def macos_project_name - 'ChartsDemo-OSX/ChartsDemo-OSX.xcodeproj' + 'ChartsDemo-macOS/ChartsDemo-macOS.xcodeproj' end def configuration @@ -35,14 +35,14 @@ end def build_demo_schemes %i[ - ChartsDemo - ChartsDemo-Swift + ChartsDemo-iOS + ChartsDemo-iOS-Swift ] end def build_macos_demo_schemes [ - 'ChartsDemo-OSX' + 'ChartsDemo-macOS' ] end From bb92e1f468fecc05318868a6347d711d1d64cf38 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Tue, 13 Mar 2018 22:00:04 -0300 Subject: [PATCH 21/84] Updated demo imports --- ChartsDemo-iOS/Objective-C/DemoBaseViewController.h | 2 +- .../Objective-C/Demos/AnotherBarChartViewController.m | 2 +- ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m | 2 +- .../Objective-C/Demos/BubbleChartViewController.m | 2 +- .../Objective-C/Demos/CandleStickChartViewController.m | 2 +- .../Objective-C/Demos/ColoredLineChartViewController.m | 2 +- .../Objective-C/Demos/CombinedChartViewController.m | 2 +- .../Objective-C/Demos/CubicLineChartViewController.m | 2 +- .../Objective-C/Demos/HalfPieChartViewController.m | 2 +- .../Objective-C/Demos/HorizontalBarChartViewController.m | 2 +- ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m | 2 +- ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m | 2 +- .../Objective-C/Demos/LineChartFilledViewController.m | 6 +++--- .../Objective-C/Demos/LineChartTimeViewController.m | 2 +- .../Objective-C/Demos/MultipleBarChartViewController.m | 2 +- .../Objective-C/Demos/MultipleLinesChartViewController.m | 2 +- .../Demos/NegativeStackedBarChartViewController.m | 2 +- ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m | 2 +- .../Objective-C/Demos/PiePolylineChartViewController.m | 2 +- .../Demos/PositiveNegativeBarChartViewController.m | 2 +- ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m | 4 ++-- .../Objective-C/Demos/ScatterChartViewController.m | 2 +- .../Objective-C/Demos/SinusBarChartViewController.m | 2 +- .../Objective-C/Demos/StackedBarChartViewController.m | 2 +- ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h | 2 +- .../Objective-C/Formatters/DayAxisValueFormatter.h | 2 +- .../Objective-C/Formatters/IntAxisValueFormatter.h | 2 +- 27 files changed, 30 insertions(+), 30 deletions(-) diff --git a/ChartsDemo-iOS/Objective-C/DemoBaseViewController.h b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.h index 3fe7ed2230..fd31bfd7da 100644 --- a/ChartsDemo-iOS/Objective-C/DemoBaseViewController.h +++ b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.h @@ -10,7 +10,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface DemoBaseViewController : UIViewController { diff --git a/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m index 91168fee79..f6b1adaa8b 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/AnotherBarChartViewController.m @@ -10,7 +10,7 @@ // #import "AnotherBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface AnotherBarChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m index d134a03dcd..52db459e9b 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/BarChartViewController.m @@ -10,7 +10,7 @@ // #import "BarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #import "DayAxisValueFormatter.h" @interface BarChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m index 56d7b24ce0..765639acfe 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/BubbleChartViewController.m @@ -10,7 +10,7 @@ // #import "BubbleChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface BubbleChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m index b1fb82346d..118b8286c1 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m @@ -10,7 +10,7 @@ // #import "CandleStickChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface CandleStickChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m index ee4fed4768..a639f6911d 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m @@ -10,7 +10,7 @@ // #import "ColoredLineChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface ColoredLineChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m index 4605c0e7fa..a361e4c001 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m @@ -10,7 +10,7 @@ // #import "CombinedChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #define ITEM_COUNT 12 diff --git a/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m index ffea9de365..b6a0cb38af 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CubicLineChartViewController.m @@ -10,7 +10,7 @@ // #import "CubicLineChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface CubicLineSampleFillFormatter : NSObject { diff --git a/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m index 80be2872a1..3e34b7fd32 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/HalfPieChartViewController.m @@ -10,7 +10,7 @@ // #import "HalfPieChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface HalfPieChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m index dac6e26e07..fea156a249 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/HorizontalBarChartViewController.m @@ -10,7 +10,7 @@ // #import "HorizontalBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface HorizontalBarChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m index 37b8ee2c83..feafb7b9a7 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m @@ -10,7 +10,7 @@ // #import "LineChart1ViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface LineChart1ViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m index 38f1bc0777..ccce0d614c 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m @@ -10,7 +10,7 @@ // #import "LineChart2ViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface LineChart2ViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m index 38d9c4a2bc..561d7e2ae0 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChartFilledViewController.m @@ -10,7 +10,7 @@ // #import "LineChartFilledViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface LineChartFilledViewController () @@ -123,7 +123,7 @@ - (void)setDataCount:(int)count range:(double)range set1.fillColor = UIColor.whiteColor; set1.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set1.drawCircleHoleEnabled = NO; - set1.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { + set1.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { return self.chartView.leftAxis.axisMinimum; }]; @@ -138,7 +138,7 @@ - (void)setDataCount:(int)count range:(double)range set2.fillColor = UIColor.whiteColor; set2.highlightColor = [UIColor colorWithRed:244/255.0 green:117/255.0 blue:117/255.0 alpha:1.0]; set2.drawCircleHoleEnabled = NO; - set2.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { + set2.fillFormatter = [ChartDefaultFillFormatter withBlock:^CGFloat(id _Nonnull dataSet, id _Nonnull dataProvider) { return self.chartView.leftAxis.axisMaximum; }]; diff --git a/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m index 4f09d8ef47..91c53348fa 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChartTimeViewController.m @@ -10,7 +10,7 @@ // #import "LineChartTimeViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #import "DateValueFormatter.h" @interface LineChartTimeViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m index b4157afb86..1a17776a2c 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/MultipleBarChartViewController.m @@ -10,7 +10,7 @@ // #import "MultipleBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" #import "IntAxisValueFormatter.h" @interface MultipleBarChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m index 738a89cad8..b4e3b2f23c 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/MultipleLinesChartViewController.m @@ -10,7 +10,7 @@ // #import "MultipleLinesChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface MultipleLinesChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m index 408947c5f8..65bc48c0c6 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/NegativeStackedBarChartViewController.m @@ -10,7 +10,7 @@ // #import "NegativeStackedBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface NegativeStackedBarChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m index dd9b0228bd..009800615d 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m @@ -10,7 +10,7 @@ // #import "PieChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface PieChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m index f68658f296..fbf3c366bb 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m @@ -7,7 +7,7 @@ // #import "PiePolylineChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface PiePolylineChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m index 3d36ecd6a3..48712550e2 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PositiveNegativeBarChartViewController.m @@ -10,7 +10,7 @@ // #import "PositiveNegativeBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface PositiveNegativeBarChartViewController () { diff --git a/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m index f1157e85f9..dce3df3d7e 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/RadarChartViewController.m @@ -10,9 +10,9 @@ // #import "RadarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" -@interface RadarChartViewController () +@interface RadarChartViewController () @property (nonatomic, strong) IBOutlet RadarChartView *chartView; @property (nonatomic, strong) NSArray *activities; diff --git a/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m index 177ba28fb7..5c5d6a9d16 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/ScatterChartViewController.m @@ -10,7 +10,7 @@ // #import "ScatterChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface ScatterChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m index 708aa727ad..c945986a36 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/SinusBarChartViewController.m @@ -10,7 +10,7 @@ // #import "SinusBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface SinusBarChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m index 2f3e728132..0a572b4cf8 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/StackedBarChartViewController.m @@ -10,7 +10,7 @@ // #import "StackedBarChartViewController.h" -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface StackedBarChartViewController () diff --git a/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h index e7f0c31dec..770ff31643 100644 --- a/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h +++ b/ChartsDemo-iOS/Objective-C/Formatters/DateValueFormatter.h @@ -10,7 +10,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface DateValueFormatter : NSObject diff --git a/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h index d9a7c78570..3189325a90 100644 --- a/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h +++ b/ChartsDemo-iOS/Objective-C/Formatters/DayAxisValueFormatter.h @@ -5,7 +5,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface DayAxisValueFormatter : NSObject diff --git a/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h b/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h index aac046df7d..c390c0bcc3 100644 --- a/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h +++ b/ChartsDemo-iOS/Objective-C/Formatters/IntAxisValueFormatter.h @@ -5,7 +5,7 @@ // #import -#import "ChartsDemo-Swift.h" +#import "ChartsDemo_iOS-Swift.h" @interface IntAxisValueFormatter : NSObject From ea87d1f0e17077badbeab28ed631e73b69984e31 Mon Sep 17 00:00:00 2001 From: Chinh Tran Date: Thu, 15 Mar 2018 15:54:12 +0100 Subject: [PATCH 22/84] Rename valueRotationAngle -> valueLabelAngle --- Source/Charts/Data/Implementations/ChartBaseDataSet.swift | 4 ++-- Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift | 4 ++-- Source/Charts/Renderers/BarChartRenderer.swift | 2 +- Source/Charts/Renderers/BubbleChartRenderer.swift | 2 +- Source/Charts/Renderers/CandleStickChartRenderer.swift | 2 +- Source/Charts/Renderers/HorizontalBarChartRenderer.swift | 2 +- Source/Charts/Renderers/LineChartRenderer.swift | 2 +- Source/Charts/Renderers/PieChartRenderer.swift | 2 +- Source/Charts/Renderers/RadarChartRenderer.swift | 2 +- Source/Charts/Renderers/ScatterChartRenderer.swift | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index f4c394c862..2f10622c92 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -302,8 +302,8 @@ open class ChartBaseDataSet: NSObject, ChartDataSetProtocol /// the font for the value-text labels open var valueFont: NSUIFont = NSUIFont.systemFont(ofSize: 7.0) - /// the rotation angle for value-text labels - open var valueRotationAngle: CGFloat = CGFloat(0.0) + /// The rotation angle (in degrees) for value-text labels + open var valueLabelAngle: CGFloat = CGFloat(0.0) /// The form to draw for this dataset in the legend. open var form = Legend.Form.default diff --git a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift index fab28d45f5..6e4e775836 100644 --- a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift +++ b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift @@ -200,8 +200,8 @@ public protocol ChartDataSetProtocol /// the font for the value-text labels var valueFont: NSUIFont { get set } - /// the rotation angle for value-text labels - var valueRotationAngle: CGFloat { get set } + /// The rotation angle (in degrees) for value-text labels + var valueLabelAngle: CGFloat { get set } /// The form to draw for this dataset in the legend. /// diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index 2b48276ee0..610f8ebb65 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -317,7 +317,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer shouldDrawValues(forDataSet: dataSet) else { continue } - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD let isInverted = dataProvider.isInverted(axis: dataSet.axisDependency) diff --git a/Source/Charts/Renderers/BubbleChartRenderer.swift b/Source/Charts/Renderers/BubbleChartRenderer.swift index 4abd8e39d4..6ee21bdefa 100644 --- a/Source/Charts/Renderers/BubbleChartRenderer.swift +++ b/Source/Charts/Renderers/BubbleChartRenderer.swift @@ -149,7 +149,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer let iconsOffset = dataSet.iconsOffset - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD for j in _xBounds.min..._xBounds.range + _xBounds.min { diff --git a/Source/Charts/Renderers/CandleStickChartRenderer.swift b/Source/Charts/Renderers/CandleStickChartRenderer.swift index 4b7338efac..0d5c700f37 100644 --- a/Source/Charts/Renderers/CandleStickChartRenderer.swift +++ b/Source/Charts/Renderers/CandleStickChartRenderer.swift @@ -267,7 +267,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer let iconsOffset = dataSet.iconsOffset - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD _xBounds.set(chart: dataProvider, dataSet: dataSet, animator: animator) diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index 11bbd6e28a..fdca0687e5 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -318,7 +318,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer { guard let dataSet = dataSets[dataSetIndex] as? BarChartDataSetProtocol else { continue } - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD if !shouldDrawValues(forDataSet: dataSet) || !(dataSet.isDrawIconsEnabled && dataSet.isVisible) { diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index fae5559422..2e3accd60d 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -523,7 +523,7 @@ open class LineChartRenderer: LineRadarRenderer let formatter = dataSet.valueFormatter - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD let trans = dataProvider.getTransformer(forAxis: dataSet.axisDependency) let valueToPixelMatrix = trans.valueToPixelMatrix diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index 88642b2fe6..8f70f5fd37 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -314,7 +314,7 @@ open class PieChartRenderer: NSObject, DataRenderer let iconsOffset = dataSet.iconsOffset - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD let xValuePosition = dataSet.xValuePosition let yValuePosition = dataSet.yValuePosition diff --git a/Source/Charts/Renderers/RadarChartRenderer.swift b/Source/Charts/Renderers/RadarChartRenderer.swift index 57518cbb2b..f5ee307c52 100644 --- a/Source/Charts/Renderers/RadarChartRenderer.swift +++ b/Source/Charts/Renderers/RadarChartRenderer.swift @@ -160,7 +160,7 @@ open class RadarChartRenderer: LineRadarRenderer continue } - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD let entryCount = dataSet.entryCount diff --git a/Source/Charts/Renderers/ScatterChartRenderer.swift b/Source/Charts/Renderers/ScatterChartRenderer.swift index d5fce840c1..630c851a7b 100644 --- a/Source/Charts/Renderers/ScatterChartRenderer.swift +++ b/Source/Charts/Renderers/ScatterChartRenderer.swift @@ -132,7 +132,7 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer let iconsOffset = dataSet.iconsOffset - let angleRadians = dataSet.valueRotationAngle.DEG2RAD + let angleRadians = dataSet.valueLabelAngle.DEG2RAD let shapeSize = dataSet.scatterShapeSize let lineHeight = valueFont.lineHeight From 66cd4359f4b3ef1317f6f947ac538bb41222d07c Mon Sep 17 00:00:00 2001 From: Chinh Tran Date: Thu, 15 Mar 2018 15:59:21 +0100 Subject: [PATCH 23/84] Make function private & remove line break --- Source/Charts/Renderers/BarChartRenderer.swift | 3 +-- Source/Charts/Utils/ChartUtils.swift | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index 610f8ebb65..5a43d363fb 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -545,8 +545,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer else { // align left to center text with rotation - context.drawText(value, at: CGPoint(x: xPos, y: yPos), align: align, anchor: anchor, - angleRadians: angleRadians, attributes: [.font: font, .foregroundColor: color]) + context.drawText(value, at: CGPoint(x: xPos, y: yPos), align: align, anchor: anchor, angleRadians: angleRadians, attributes: [.font: font, .foregroundColor: color]) } } diff --git a/Source/Charts/Utils/ChartUtils.swift b/Source/Charts/Utils/ChartUtils.swift index c8e8a7d87d..7d94841a44 100644 --- a/Source/Charts/Utils/ChartUtils.swift +++ b/Source/Charts/Utils/ChartUtils.swift @@ -207,7 +207,7 @@ extension CGContext { NSUIGraphicsPopContext() } - func getDrawPoint(text: String, point: CGPoint, align: NSTextAlignment, attributes: [NSAttributedStringKey : Any]?) -> CGPoint + private func getDrawPoint(text: String, point: CGPoint, align: NSTextAlignment, attributes: [NSAttributedStringKey : Any]?) -> CGPoint { var point = point From d74ce6147967082f15eabbbf79f62f6b717b9d7c Mon Sep 17 00:00:00 2001 From: jjatie Date: Sat, 7 Apr 2018 21:07:16 -0400 Subject: [PATCH 24/84] Refactored ChartData (#3169) * Added Collection conformances MutableCollection RandomAccessCollection RangeReplaceableCollection * [#3018] Refactored use of `ChartData` to use new `Collection` conformances * Fixed required initializers * ChartData adopts ExressibleByArrayLiteral * Modified demos to take advantage of collection conformance. * Updates for PR Also added remove subrange. * Refactored ChartData Removed redundancy from min/max logic. Lots of naming changes. Cleaner implementations. * PR review fixes * Removed unnecessary `get` from subscripts. * Disabled `remove(at:)` for CombinedChartView * Removed redundant methods * Relocated `appendEntry(_:todataSet:)` * pulled latest 4.0.0 * Disabled Collection support for CombinedChartData * Removed methods from CombinedChartData * Pulled latest 4.0 * Fixes after merge * Removed used of dataSet(forIndex:) * Fixed merge conflicts * Fixed merge conflicts * updated demos * Pulled latest 4.0.0 * Fixed demos * Fixed objective c demos * Moved travis to Xcode 9.3 beta temporarily * Fixed macOS demo info.plist and tv demo device name * PR Fixes * Fixed objective-c naming * PR Fixes * fix comment --- Charts.xcodeproj/project.pbxproj | 86 ++-- .../Objective-C/DemoBaseViewController.m | 2 +- .../Demos/ColoredLineChartViewController.m | 2 +- .../Demos/CombinedChartViewController.m | 2 +- .../Demos/LineChart2ViewController.m | 2 +- .../Swift/DemoBaseViewController.swift | 2 +- .../ColoredLineChartViewController.swift | 2 +- .../Demos/CombinedChartViewController.swift | 2 +- .../Demos/LineChart2ViewController.swift | 2 +- .../Charts/Charts/BarLineChartViewBase.swift | 4 +- Source/Charts/Charts/ChartViewBase.swift | 16 +- Source/Charts/Charts/CombinedChartView.swift | 2 +- Source/Charts/Charts/PieChartView.swift | 5 +- .../Standard/BarChartData.swift | 2 +- .../BarLineScatterCandleBubbleChartData.swift | 2 +- .../Standard/BubbleChartData.swift | 2 +- .../Standard/CandleChartData.swift | 2 +- .../Implementations/Standard/ChartData.swift | 424 +++++------------- .../Standard/CombinedChartData.swift | 84 ++-- .../Standard/LineChartData.swift | 2 +- .../Standard/PieChartData.swift | 15 +- .../Standard/RadarChartData.swift | 6 +- .../Standard/ScatterChartData.swift | 2 +- .../Interfaces/ChartDataSetProtocol.swift | 2 +- Source/Charts/Highlight/BarHighlighter.swift | 2 +- .../Highlight/CombinedHighlighter.swift | 8 +- .../Highlight/HorizontalBarHighlighter.swift | 2 +- .../Charts/Highlight/RadarHighlighter.swift | 7 +- .../Charts/Renderers/BarChartRenderer.swift | 12 +- .../Renderers/BubbleChartRenderer.swift | 2 +- .../Renderers/CandleStickChartRenderer.swift | 2 +- .../HorizontalBarChartRenderer.swift | 10 +- Source/Charts/Renderers/LegendRenderer.swift | 6 +- .../Charts/Renderers/LineChartRenderer.swift | 21 +- .../Charts/Renderers/PieChartRenderer.swift | 2 +- .../Charts/Renderers/RadarChartRenderer.swift | 6 +- .../Renderers/ScatterChartRenderer.swift | 21 +- 37 files changed, 281 insertions(+), 492 deletions(-) diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 4ed4d10d2a..325b35e639 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -360,7 +360,9 @@ 098621EDFBF928494B94BEA1 /* Data */ = { isa = PBXGroup; children = ( - 3B9DD76FCE8D873300A822C7 /* Implementations */, + 22C014222006FFE800D5B025 /* ChartData */, + 3B9DD76FCE8D873300A822C7 /* ChartDataSet */, + 22C014232006FFFA00D5B025 /* ChartEntry */, DB2D9648877455028EBEAA8F /* DataSet Protocols */, ); name = Data; @@ -409,6 +411,37 @@ name = ChartRenderers; sourceTree = ""; }; + 22C014222006FFE800D5B025 /* ChartData */ = { + isa = PBXGroup; + children = ( + 0108D5925E21A47DA36A66AA /* BarChartData.swift */, + 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */, + 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */, + F4785FEACAE4367F36FB8868 /* CandleChartData.swift */, + E120E76C6F1B5877D56126DD /* ChartData.swift */, + 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */, + 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */, + 6E03A4987F72414A02A0631B /* PieChartData.swift */, + 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */, + E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */, + ); + name = ChartData; + sourceTree = ""; + }; + 22C014232006FFFA00D5B025 /* ChartEntry */ = { + isa = PBXGroup; + children = ( + E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */, + DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */, + D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */, + F22750328058DEC2F019646F /* ChartDataEntry.swift */, + 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */, + BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */, + 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */, + ); + name = ChartEntry; + sourceTree = ""; + }; 2647844720BC6574A544A337 /* Charts */ = { isa = PBXGroup; children = ( @@ -427,13 +460,23 @@ name = Charts; sourceTree = ""; }; - 3B9DD76FCE8D873300A822C7 /* Implementations */ = { + 3B9DD76FCE8D873300A822C7 /* ChartDataSet */ = { isa = PBXGroup; children = ( C9FE42E868A225C116537368 /* ChartBaseDataSet.swift */, - 740017197A160047EBB8A9A0 /* Standard */, + C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */, + 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */, + B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */, + 274116834B1B0345D622E027 /* CandleChartDataSet.swift */, + 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */, + A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */, + 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */, + C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */, + A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */, + B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */, + CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */, ); - name = Implementations; + name = ChartDataSet; sourceTree = ""; }; 42824E1F334B0C484AF4C594 /* Highlight */ = { @@ -471,41 +514,6 @@ name = Components; sourceTree = ""; }; - 740017197A160047EBB8A9A0 /* Standard */ = { - isa = PBXGroup; - children = ( - 0108D5925E21A47DA36A66AA /* BarChartData.swift */, - E3F8BFF1CBC58D5B9DBFFB9B /* BarChartDataEntry.swift */, - C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */, - 559DB735FEA17AB90676D6CA /* BarLineScatterCandleBubbleChartData.swift */, - 6D717F0808DE7EC8A4AE9C2A /* BarLineScatterCandleBubbleChartDataSet.swift */, - 7EDA3AD550AEFC93C8D15B9C /* BubbleChartData.swift */, - DD8ED233775EEC31243A6919 /* BubbleChartDataEntry.swift */, - B44829AF0ADA583F1F0279B7 /* BubbleChartDataSet.swift */, - F4785FEACAE4367F36FB8868 /* CandleChartData.swift */, - D2E698FF540029B70AC97AD7 /* CandleChartDataEntry.swift */, - 274116834B1B0345D622E027 /* CandleChartDataSet.swift */, - E120E76C6F1B5877D56126DD /* ChartData.swift */, - F22750328058DEC2F019646F /* ChartDataEntry.swift */, - 12409C3EA15787C11AF0D2BC /* ChartDataEntryBase.swift */, - 6CEC0C69C89CE9B99F3B4409 /* ChartDataSet.swift */, - 0DDE409E9ECF54D2C146A6F0 /* CombinedChartData.swift */, - 4C978F31F23C7D21197DC2A1 /* LineChartData.swift */, - A5A75AA73C5AA381DA517959 /* LineChartDataSet.swift */, - 45E31A4356CC6F283C29954B /* LineRadarChartDataSet.swift */, - C58BD7B14BEA440783ED8D2B /* LineScatterCandleRadarChartDataSet.swift */, - 6E03A4987F72414A02A0631B /* PieChartData.swift */, - BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */, - A4FB5E3761EF8B4D1E1E1014 /* PieChartDataSet.swift */, - 4BBB57D6FA41029B08F26D7B /* RadarChartData.swift */, - 91EEEDE2AB8F2DA3AFCF0733 /* RadarChartDataEntry.swift */, - B1BA6B21CBDF77A15848994F /* RadarChartDataSet.swift */, - E7AD2FC320A16CA1EE0A52F4 /* ScatterChartData.swift */, - CB1DD1A0F64266A10EE94194 /* ScatterChartDataSet.swift */, - ); - name = Standard; - sourceTree = ""; - }; 74A391010038924F637D6752 /* Formatters */ = { isa = PBXGroup; children = ( diff --git a/ChartsDemo-iOS/Objective-C/DemoBaseViewController.m b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.m index df5c159c63..a264f2a712 100644 --- a/ChartsDemo-iOS/Objective-C/DemoBaseViewController.m +++ b/ChartsDemo-iOS/Objective-C/DemoBaseViewController.m @@ -95,7 +95,7 @@ - (void)handleOption:(NSString *)key forChartView:(ChartViewBase *)chartView if ([key isEqualToString:@"toggleHighlight"]) { - chartView.data.highlightEnabled = !chartView.data.isHighlightEnabled; + chartView.data.isHighlightEnabled = !chartView.data.isHighlightEnabled; [chartView setNeedsDisplay]; } diff --git a/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m index a639f6911d..867b8627dc 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/ColoredLineChartViewController.m @@ -44,7 +44,7 @@ - (void)viewDidLoad - (void)setupChart:(LineChartView *)chart data:(LineChartData *)data color:(UIColor *)color { - [(LineChartDataSet *)[data getDataSetByIndex:0] setCircleHoleColor:color]; + [(LineChartDataSet *)[data dataSetAtIndex:0] setCircleHoleColor:color]; chart.delegate = self; chart.backgroundColor = color; diff --git a/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m index a361e4c001..68b6abd969 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CombinedChartViewController.m @@ -151,7 +151,7 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"removeDataSet"]) { int rnd = (int)arc4random_uniform((float)_chartView.data.dataSetCount); - [_chartView.data removeDataSet:[_chartView.data getDataSetByIndex:rnd]]; + [_chartView.data removeDataSet:[_chartView.data dataSetAtIndex:rnd]]; [_chartView.data notifyDataChanged]; [_chartView notifyDataSetChanged]; } diff --git a/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m index ccce0d614c..c192f4a9b3 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChart2ViewController.m @@ -282,7 +282,7 @@ - (void)chartValueSelected:(ChartViewBase * __nonnull)chartView entry:(ChartData { NSLog(@"chartValueSelected"); - [_chartView centerViewToAnimatedWithXValue:entry.x yValue:entry.y axis:[_chartView.data getDataSetByIndex:highlight.dataSetIndex].axisDependency duration:1.0]; + [_chartView centerViewToAnimatedWithXValue:entry.x yValue:entry.y axis:[_chartView.data dataSetAtIndex:highlight.dataSetIndex].axisDependency duration:1.0]; //[_chartView moveViewToAnimatedWithXValue:entry.x yValue:entry.y axis:[_chartView.data getDataSetByIndex:dataSetIndex].axisDependency duration:1.0]; //[_chartView zoomAndCenterViewAnimatedWithScaleX:1.8 scaleY:1.8 xValue:entry.x yValue:entry.y axis:[_chartView.data getDataSetByIndex:dataSetIndex].axisDependency duration:1.0]; diff --git a/ChartsDemo-iOS/Swift/DemoBaseViewController.swift b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift index 82265eb594..b643420520 100644 --- a/ChartsDemo-iOS/Swift/DemoBaseViewController.swift +++ b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift @@ -129,7 +129,7 @@ class DemoBaseViewController: UIViewController, ChartViewDelegate { chartView.setNeedsDisplay() case .toggleHighlight: - chartView.data!.highlightEnabled = !chartView.data!.isHighlightEnabled + chartView.data!.isHighlightEnabled = !chartView.data!.isHighlightEnabled chartView.setNeedsDisplay() case .animateX: diff --git a/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift index 7a8e443502..dfc3a2464c 100644 --- a/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/ColoredLineChartViewController.swift @@ -31,7 +31,7 @@ class ColoredLineChartViewController: DemoBaseViewController { } func setupChart(_ chart: LineChartView, data: LineChartData, color: UIColor) { - (data.getDataSetByIndex(0) as! LineChartDataSet).circleHoleColor = color + (data[0] as! LineChartDataSet).circleHoleColor = color chart.delegate = self chart.backgroundColor = color diff --git a/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift index 82d26e6523..7e779f1a3f 100644 --- a/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/CombinedChartViewController.swift @@ -112,7 +112,7 @@ class CombinedChartViewController: DemoBaseViewController { case .removeDataSet: let rnd = Int(arc4random_uniform(UInt32(chartView.data!.dataSetCount))) - chartView.data?.removeDataSet(chartView.data!.getDataSetByIndex(rnd)) + chartView.data?.removeDataSet(chartView.data![rnd]) chartView.data?.notifyDataChanged() chartView.notifyDataSetChanged() diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift index 3132199f91..f7d8e5a1fb 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift @@ -194,7 +194,7 @@ class LineChart2ViewController: DemoBaseViewController { super.chartValueSelected(chartView, entry: entry, highlight: highlight) self.chartView.centerViewToAnimated(xValue: entry.x, yValue: entry.y, - axis: self.chartView.data!.getDataSetByIndex(highlight.dataSetIndex).axisDependency, + axis: self.chartView.data![highlight.dataSetIndex].axisDependency, duration: 1) //[_chartView moveViewToAnimatedWithXValue:entry.x yValue:entry.y axis:[_chartView.data getDataSetByIndex:dataSetIndex].axisDependency duration:1.0]; //[_chartView zoomAndCenterViewAnimatedWithScaleX:1.8 scaleY:1.8 xValue:entry.x yValue:entry.y axis:[_chartView.data getDataSetByIndex:dataSetIndex].axisDependency duration:1.0]; diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index 6b06ec6c5e..2bdce16c2f 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -1684,7 +1684,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { if let h = getHighlightByTouchPoint(pt) { - return data!.entryForHighlight(h) + return data!.entry(for: h) } return nil } @@ -1695,7 +1695,7 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD let h = getHighlightByTouchPoint(pt) if let h = h { - return data?.getDataSetByIndex(h.dataSetIndex) as? BarLineScatterCandleBubbleChartDataSetProtocol + return data?[h.dataSetIndex] as? BarLineScatterCandleBubbleChartDataSetProtocol } return nil } diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index 8ddbb226ff..0f21234ad1 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -52,7 +52,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate guard let data = data else { return } // calculate how many digits are needed - setupDefaultFormatter(min: data.getYMin(), max: data.getYMax()) + setupDefaultFormatter(min: data.yMin, max: data.yMax) for set in data.dataSets { @@ -411,14 +411,14 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate Swift.print("Value not highlighted because data is nil") return } - - if dataSetIndex < 0 || dataSetIndex >= data.dataSetCount + + if data.indices.contains(dataSetIndex) { - highlightValue(nil, callDelegate: callDelegate) + highlightValue(Highlight(x: x, y: y, dataSetIndex: dataSetIndex, dataIndex: dataIndex), callDelegate: callDelegate) } else { - highlightValue(Highlight(x: x, y: y, dataSetIndex: dataSetIndex, dataIndex: dataIndex), callDelegate: callDelegate) + highlightValue(nil, callDelegate: callDelegate) } } @@ -436,7 +436,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate var high = highlight guard let h = high, - let entry = data?.entryForHighlight(h) + let entry = data?.entry(for: h) else { high = nil @@ -493,8 +493,8 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate for highlight in highlighted { guard - let set = data?.getDataSetByIndex(highlight.dataSetIndex), - let e = data?.entryForHighlight(highlight) + let set = data?[highlight.dataSetIndex], + let e = data?.entry(for: highlight) else { continue } let entryIndex = set.entryIndex(entry: e) diff --git a/Source/Charts/Charts/CombinedChartView.swift b/Source/Charts/Charts/CombinedChartView.swift index 8d13d2292a..dd548067ac 100644 --- a/Source/Charts/Charts/CombinedChartView.swift +++ b/Source/Charts/Charts/CombinedChartView.swift @@ -219,7 +219,7 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider guard let set = combinedData?.getDataSetByHighlight(highlight), - let e = data?.entryForHighlight(highlight) + let e = data?.entry(for: highlight) else { continue } let entryIndex = set.entryIndex(entry: e) diff --git a/Source/Charts/Charts/PieChartView.swift b/Source/Charts/Charts/PieChartView.swift index b4bfbd6b7f..8ab6dd7b5b 100644 --- a/Source/Charts/Charts/PieChartView.swift +++ b/Source/Charts/Charts/PieChartView.swift @@ -194,14 +194,11 @@ open class PieChartView: PieRadarChartViewBase _absoluteAngles.reserveCapacity(entryCount) let yValueSum = (data as! PieChartData).yValueSum - - var dataSets = data.dataSets var cnt = 0 - for i in 0 ..< data.dataSetCount + for set in data { - let set = dataSets[i] let entryCount = set.entryCount for j in 0 ..< entryCount diff --git a/Source/Charts/Data/Implementations/Standard/BarChartData.swift b/Source/Charts/Data/Implementations/Standard/BarChartData.swift index 6516428275..04e1e6f8de 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartData.swift @@ -19,7 +19,7 @@ open class BarChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift index 715709708b..75eb8a278e 100644 --- a/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BarLineScatterCandleBubbleChartData.swift @@ -18,7 +18,7 @@ open class BarLineScatterCandleBubbleChartData: ChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift b/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift index 89fd484804..5a0a85563d 100644 --- a/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/BubbleChartData.swift @@ -19,7 +19,7 @@ open class BubbleChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/CandleChartData.swift b/Source/Charts/Data/Implementations/Standard/CandleChartData.swift index 2c0d3bd443..3cfe5bac35 100644 --- a/Source/Charts/Data/Implementations/Standard/CandleChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CandleChartData.swift @@ -18,7 +18,7 @@ open class CandleChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 16a4547699..ac9eb3aeda 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -13,50 +13,40 @@ import Foundation open class ChartData: NSObject, ExpressibleByArrayLiteral { - internal var _yMax: Double = -Double.greatestFiniteMagnitude - internal var _yMin: Double = Double.greatestFiniteMagnitude - internal var _xMax: Double = -Double.greatestFiniteMagnitude - internal var _xMin: Double = Double.greatestFiniteMagnitude - internal var _leftAxisMax: Double = -Double.greatestFiniteMagnitude - internal var _leftAxisMin: Double = Double.greatestFiniteMagnitude - internal var _rightAxisMax: Double = -Double.greatestFiniteMagnitude - internal var _rightAxisMin: Double = Double.greatestFiniteMagnitude + + @objc public internal(set) var xMax = -Double.greatestFiniteMagnitude + @objc public internal(set) var xMin = Double.greatestFiniteMagnitude + @objc public internal(set) var yMax = -Double.greatestFiniteMagnitude + @objc public internal(set) var yMin = Double.greatestFiniteMagnitude + var leftAxisMax = -Double.greatestFiniteMagnitude + var leftAxisMin = Double.greatestFiniteMagnitude + var rightAxisMax = -Double.greatestFiniteMagnitude + var rightAxisMin = Double.greatestFiniteMagnitude - internal var _dataSets = [ChartDataSetProtocol]() + var _dataSets = [Element]() public override required init() { super.init() } - public required init(arrayLiteral elements: ChartDataSetProtocol...) + public required init(arrayLiteral elements: Element...) { super.init() - - _dataSets = elements - - self.initialize(dataSets: _dataSets) + self.dataSets = elements } - @objc public init(dataSets: [ChartDataSetProtocol]?) + @objc public init(dataSets: [Element]) { super.init() - - _dataSets = dataSets ?? [ChartDataSetProtocol]() - - self.initialize(dataSets: _dataSets) + self.dataSets = dataSets } - @objc public convenience init(dataSet: ChartDataSetProtocol?) + @objc public convenience init(dataSet: Element) { - self.init(dataSets: dataSet === nil ? nil : [dataSet!]) - } - - internal func initialize(dataSets: [ChartDataSetProtocol]) - { - notifyDataChanged() + self.init(dataSets: [dataSet]) } - + /// Call this method to let the ChartData know that the underlying data has changed. /// Calling this performs all necessary recalculations needed when the contained data has changed. @objc open func notifyDataChanged() @@ -75,256 +65,120 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// calc minimum and maximum y value over all datasets @objc open func calcMinMax() { - _yMax = -Double.greatestFiniteMagnitude - _yMin = Double.greatestFiniteMagnitude - _xMax = -Double.greatestFiniteMagnitude - _xMin = Double.greatestFiniteMagnitude - - forEach { calcMinMax(dataSet: $0) } - - _leftAxisMax = -Double.greatestFiniteMagnitude - _leftAxisMin = Double.greatestFiniteMagnitude - _rightAxisMax = -Double.greatestFiniteMagnitude - _rightAxisMin = Double.greatestFiniteMagnitude - - // left axis - let firstLeft = getFirstLeft(dataSets: dataSets) - - if firstLeft !== nil - { - _leftAxisMax = firstLeft!.yMax - _leftAxisMin = firstLeft!.yMin + leftAxisMax = -.greatestFiniteMagnitude + leftAxisMin = .greatestFiniteMagnitude + rightAxisMax = -.greatestFiniteMagnitude + rightAxisMin = .greatestFiniteMagnitude + yMax = -.greatestFiniteMagnitude + yMin = .greatestFiniteMagnitude + xMax = -.greatestFiniteMagnitude + xMin = .greatestFiniteMagnitude - for dataSet in _dataSets where dataSet.axisDependency == .left - { - if dataSet.yMin < _leftAxisMin - { - _leftAxisMin = dataSet.yMin - } - - if dataSet.yMax > _leftAxisMax - { - _leftAxisMax = dataSet.yMax - } - } - } - - // right axis - let firstRight = getFirstRight(dataSets: dataSets) - - if firstRight !== nil - { - _rightAxisMax = firstRight!.yMax - _rightAxisMin = firstRight!.yMin - - for dataSet in _dataSets where dataSet.axisDependency == .right - { - if dataSet.yMin < _rightAxisMin - { - _rightAxisMin = dataSet.yMin - } - - if dataSet.yMax > _rightAxisMax - { - _rightAxisMax = dataSet.yMax - } - } - } + forEach { calcMinMax(dataSet: $0) } } - + /// Adjusts the current minimum and maximum values based on the provided Entry object. @objc open func calcMinMax(entry e: ChartDataEntry, axis: YAxis.AxisDependency) { - if _yMax < e.y - { - _yMax = e.y - } - - if _yMin > e.y - { - _yMin = e.y - } - - if _xMax < e.x - { - _xMax = e.x - } - - if _xMin > e.x - { - _xMin = e.x - } - - if axis == .left - { - if _leftAxisMax < e.y - { - _leftAxisMax = e.y - } - - if _leftAxisMin > e.y - { - _leftAxisMin = e.y - } - } - else + xMax = Swift.max(xMax, e.x) + xMin = Swift.min(xMin, e.x) + yMax = Swift.max(yMax, e.y) + yMin = Swift.min(yMin, e.y) + + switch axis { - if _rightAxisMax < e.y - { - _rightAxisMax = e.y - } - - if _rightAxisMin > e.y - { - _rightAxisMin = e.y - } + case .left: + leftAxisMax = Swift.max(leftAxisMax, e.y) + leftAxisMin = Swift.min(leftAxisMin, e.y) + + case .right: + rightAxisMax = Swift.max(rightAxisMax, e.y) + rightAxisMin = Swift.min(rightAxisMin, e.y) } } /// Adjusts the minimum and maximum values based on the given DataSet. - @objc open func calcMinMax(dataSet d: ChartDataSetProtocol) + @objc open func calcMinMax(dataSet d: Element) { - if _yMax < d.yMax - { - _yMax = d.yMax - } - - if _yMin > d.yMin - { - _yMin = d.yMin - } - - if _xMax < d.xMax - { - _xMax = d.xMax - } - - if _xMin > d.xMin - { - _xMin = d.xMin - } - - if d.axisDependency == .left - { - if _leftAxisMax < d.yMax - { - _leftAxisMax = d.yMax - } - - if _leftAxisMin > d.yMin - { - _leftAxisMin = d.yMin - } - } - else + xMax = Swift.max(xMax, d.xMax) + xMin = Swift.min(xMin, d.xMin) + yMax = Swift.max(yMax, d.yMax) + yMin = Swift.min(yMin, d.yMin) + + switch d.axisDependency { - if _rightAxisMax < d.yMax - { - _rightAxisMax = d.yMax - } - - if _rightAxisMin > d.yMin - { - _rightAxisMin = d.yMin - } + case .left: + leftAxisMax = Swift.max(leftAxisMax, d.yMax) + leftAxisMin = Swift.min(leftAxisMin, d.yMin) + + case .right: + rightAxisMax = Swift.max(rightAxisMax, d.yMax) + rightAxisMin = Swift.min(rightAxisMin, d.yMin) } } /// - returns: The number of LineDataSets this object contains + // exists only for objc compatibility @objc open var dataSetCount: Int { - return _dataSets.count + return dataSets.count } - - /// - returns: The smallest y-value the data object contains. - @objc open var yMin: Double - { - return _yMin - } - - @nonobjc - open func getYMin() -> Double - { - return _yMin - } - + @objc open func getYMin(axis: YAxis.AxisDependency) -> Double { - if axis == .left + // TODO: Why does it make sense to return the other axisMin if there is none for the one requested? + switch axis { - if _leftAxisMin == Double.greatestFiniteMagnitude + case .left: + if leftAxisMin == .greatestFiniteMagnitude { - return _rightAxisMin + return rightAxisMin } else { - return _leftAxisMin + return leftAxisMin } - } - else - { - if _rightAxisMin == Double.greatestFiniteMagnitude + + case .right: + if rightAxisMin == .greatestFiniteMagnitude { - return _leftAxisMin + return leftAxisMin } else { - return _rightAxisMin + return rightAxisMin } } } - - /// - returns: The greatest y-value the data object contains. - @objc open var yMax: Double - { - return _yMax - } - - @nonobjc - open func getYMax() -> Double - { - return _yMax - } - + @objc open func getYMax(axis: YAxis.AxisDependency) -> Double { if axis == .left { - if _leftAxisMax == -Double.greatestFiniteMagnitude + if leftAxisMax == -.greatestFiniteMagnitude { - return _rightAxisMax + return rightAxisMax } else { - return _leftAxisMax + return leftAxisMax } } else { - if _rightAxisMax == -Double.greatestFiniteMagnitude + if rightAxisMax == -.greatestFiniteMagnitude { - return _leftAxisMax + return leftAxisMax } else { - return _rightAxisMax + return rightAxisMax } } } - - /// - returns: The minimum x-value the data object contains. - @objc open var xMin: Double - { - return _xMin - } - /// - returns: The maximum x-value the data object contains. - @objc open var xMax: Double - { - return _xMax - } - + /// - returns: All DataSet objects this ChartData object holds. - @objc open var dataSets: [ChartDataSetProtocol] + @objc open var dataSets: [Element] { get { @@ -336,33 +190,12 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral notifyDataChanged() } } - - /// Retrieve the index of a ChartDataSet with a specific label from the ChartData. Search can be case sensitive or not. - /// - /// **IMPORTANT: This method does calculations at runtime, do not over-use in performance critical situations.** - /// - /// - parameter dataSets: the DataSet array to search - /// - parameter type: - /// - parameter ignorecase: if true, the search is not case-sensitive - /// - returns: The index of the DataSet Object with the given label. Sensitive or not. - internal func getDataSetIndexByLabel(_ label: String, ignorecase: Bool) -> Int - { - return ignorecase - ? index { $0.label?.caseInsensitiveCompare(label) == .orderedSame } ?? -1 - : index { $0.label == label } ?? -1 - } - - /// - returns: The labels of all DataSets as a string array. - internal func dataSetLabels() -> [String] - { - return compactMap { $0.label } - } - + /// Get the Entry for a corresponding highlight object /// /// - parameter highlight: /// - returns: The entry that is highlighted - @objc open func entryForHighlight(_ highlight: Highlight) -> ChartDataEntry? + @objc open func entry(for highlight: Highlight) -> ChartDataEntry? { guard indices.contains(highlight.dataSetIndex) else { return nil } return self[highlight.dataSetIndex].entryForXValue(highlight.x, closestToY: highlight.y) @@ -373,19 +206,16 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - parameter label: /// - parameter ignorecase: /// - returns: The DataSet Object with the given label. Sensitive or not. - @objc open func getDataSetByLabel(_ label: String, ignorecase: Bool) -> Element? + @objc open func dataSet(forLabel label: String, ignorecase: Bool) -> Element? { guard let index = index(forLabel: label, ignoreCase: ignorecase) else { return nil } return self[index] } - @objc open func getDataSetByIndex(_ index: Index) -> Element! + @objc(dataSetAtIndex:) + open func dataSet(at index: Index) -> Element? { - if index < 0 || index >= _dataSets.count - { - return nil - } - + guard dataSets.indices.contains(index) else { return nil } return self[index] } @@ -393,15 +223,10 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// Also recalculates all minimum and maximum values. /// /// - returns: `true` if a DataSet was removed, `false` ifno DataSet could be removed. - @objc @discardableResult open func removeDataSet(_ dataSet: Element!) -> Bool + @objc @discardableResult open func removeDataSet(_ dataSet: Element) -> Element? { - guard - dataSet != nil, - let index = index(where: { $0 === dataSet }) - else { return false } - - _ = remove(at: index) - return true + guard let index = index(where: { $0 === dataSet }) else { return nil } + return remove(at: index) } /// Adds an Entry to the DataSet at the specified index. Entries are added to the end of the list. @@ -418,7 +243,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral } /// Removes the given Entry object from the DataSet at the specified index. - @objc @discardableResult open func removeEntry(_ entry: ChartDataEntry, dataSetIndex: Int) -> Bool + @objc @discardableResult open func removeEntry(_ entry: ChartDataEntry, dataSetIndex: Index) -> Bool { guard indices.contains(dataSetIndex) else { return false } @@ -436,7 +261,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// Removes the Entry object closest to the given xIndex from the ChartDataSet at the /// specified index. /// - returns: `true` if an entry was removed, `false` ifno Entry was found that meets the specified requirements. - @objc @discardableResult open func removeEntry(xValue: Double, dataSetIndex: Int) -> Bool + @objc @discardableResult open func removeEntry(xValue: Double, dataSetIndex: Index) -> Bool { guard indices.contains(dataSetIndex), @@ -447,57 +272,51 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral } /// - returns: The DataSet that contains the provided Entry, or null, if no DataSet contains this entry. - @objc open func getDataSetForEntry(_ e: ChartDataEntry!) -> ChartDataSetProtocol? + @objc open func getDataSetForEntry(_ e: ChartDataEntry) -> Element? { - guard e != nil else { return nil } - return first { $0.entryForXValue(e.x, closestToY: e.y) === e } } /// - returns: The index of the provided DataSet in the DataSet array of this data object, or -1 if it does not exist. - @objc open func indexOfDataSet(_ dataSet: ChartDataSetProtocol) -> Int + @objc open func index(of dataSet: Element) -> Index { return index(where: { $0 === dataSet }) ?? -1 } /// - returns: The first DataSet from the datasets-array that has it's dependency on the left axis. Returns null if no DataSet with left dependency could be found. - @objc open func getFirstLeft(dataSets: [ChartDataSetProtocol]) -> ChartDataSetProtocol? + @objc open func getFirstLeft(dataSets: [Element]) -> Element? { return first { $0.axisDependency == .left } } /// - returns: The first DataSet from the datasets-array that has it's dependency on the right axis. Returns null if no DataSet with right dependency could be found. - @objc open func getFirstRight(dataSets: [ChartDataSetProtocol]) -> ChartDataSetProtocol? + @objc open func getFirstRight(dataSets: [Element]) -> Element? { return first { $0.axisDependency == .right } } /// - returns: All colors used across all DataSet objects this object represents. - // TODO: This should return a non-optional array - @objc open func getColors() -> [NSUIColor]? + @objc open func getColors() -> [NSUIColor] { - return flatMap { $0.colors.map { $0 } } + return reduce(into: []) { $0 += $1.colors } } /// Sets a custom ValueFormatter for all DataSets this data object contains. - @objc open func setValueFormatter(_ formatter: ValueFormatter?) + @objc open func setValueFormatter(_ formatter: ValueFormatter) { - guard let formatter = formatter - else { return } - forEach { $0.valueFormatter = formatter } } /// Sets the color of the value-text (color in which the value-labels are drawn) for all DataSets this data object contains. - @objc open func setValueTextColor(_ color: NSUIColor!) + @objc open func setValueTextColor(_ color: NSUIColor) { - forEach { $0.valueTextColor = color ?? $0.valueTextColor } + forEach { $0.valueTextColor = color } } /// Sets the font for all value-labels for all DataSets this data object contains. - @objc open func setValueFont(_ font: NSUIFont!) + @objc open func setValueFont(_ font: NSUIFont) { - forEach { $0.valueFont = font ?? $0.valueFont } + forEach { $0.valueFont = font } } /// Enables / disables drawing values (value-text) for all DataSets this data object contains. @@ -508,32 +327,22 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// Enables / disables highlighting values for all DataSets this data object contains. /// If set to true, this means that values can be highlighted programmatically or by touch gesture. - @objc open var highlightEnabled: Bool + @objc open var isHighlightEnabled: Bool { - get - { - return first { $0.highlightEnabled == false } == nil - } - set - { - forEach { $0.highlightEnabled = newValue } - } + get { return first { $0.highlightEnabled == false } == nil } + set { forEach { $0.highlightEnabled = newValue } } } - - /// if true, value highlightning is enabled - @objc open var isHighlightEnabled: Bool { return highlightEnabled } - + /// Clears this data object from all DataSets and removes all Entries. /// Don't forget to invalidate the chart after this. @objc open func clearValues() { - dataSets.removeAll(keepingCapacity: false) - notifyDataChanged() + removeAll(keepingCapacity: false) } /// Checks if this data object contains the specified DataSet. /// - returns: `true` if so, `false` ifnot. - @objc open func contains(dataSet: ChartDataSetProtocol) -> Bool + @objc open func contains(dataSet: Element) -> Bool { return contains { $0 === dataSet } } @@ -545,7 +354,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral } /// - returns: The DataSet object with the maximum number of entries or null if there are no DataSets. - @objc open var maxEntryCountSet: ChartDataSetProtocol? + @objc open var maxEntryCountSet: Element? { return self.max { $0.entryCount > $1.entryCount } } @@ -559,23 +368,23 @@ extension ChartData: MutableCollection public var startIndex: Index { - return _dataSets.startIndex + return dataSets.startIndex } public var endIndex: Index { - return _dataSets.endIndex + return dataSets.endIndex } public func index(after: Index) -> Index { - return _dataSets.index(after: after) + return dataSets.index(after: after) } public subscript(position: Index) -> Element { - get{ return _dataSets[position] } - set{ self._dataSets[position] = newValue } + get { return dataSets[position] } + set { self._dataSets[position] = newValue } } } @@ -584,7 +393,7 @@ extension ChartData: RandomAccessCollection { public func index(before: Index) -> Index { - return _dataSets.index(before: before) + return dataSets.index(before: before) } } @@ -704,14 +513,19 @@ extension ChartData : index { $0.label == label } } - public subscript(label: String, ignoreCase: Bool) -> Element? + public subscript(label label: String, ignoreCase ignoreCase: Bool) -> Element? { guard let index = index(forLabel: label, ignoreCase: ignoreCase) else { return nil } return self[index] } - public subscript(entry: ChartDataEntry) -> Element? + public subscript(entry entry: ChartDataEntry) -> Element? { + guard !(self is CombinedChartData) else + { + fatalError("subscript(entry:) not supported for CombinedData") + } + guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { return nil } return self[index] } diff --git a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift index 23e6992ebe..dbd4048b66 100644 --- a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift @@ -24,7 +24,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } @@ -103,15 +103,15 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData { _dataSets.removeAll() - _yMax = -Double.greatestFiniteMagnitude - _yMin = Double.greatestFiniteMagnitude - _xMax = -Double.greatestFiniteMagnitude - _xMin = Double.greatestFiniteMagnitude + yMax = -Double.greatestFiniteMagnitude + yMin = Double.greatestFiniteMagnitude + xMax = -Double.greatestFiniteMagnitude + xMin = Double.greatestFiniteMagnitude - _leftAxisMax = -Double.greatestFiniteMagnitude - _leftAxisMin = Double.greatestFiniteMagnitude - _rightAxisMax = -Double.greatestFiniteMagnitude - _rightAxisMin = Double.greatestFiniteMagnitude + leftAxisMax = -Double.greatestFiniteMagnitude + leftAxisMin = Double.greatestFiniteMagnitude + rightAxisMax = -Double.greatestFiniteMagnitude + rightAxisMin = Double.greatestFiniteMagnitude let allData = self.allData @@ -122,48 +122,48 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData let sets = data.dataSets _dataSets.append(contentsOf: sets) - if data.yMax > _yMax + if data.yMax > yMax { - _yMax = data.yMax + yMax = data.yMax } - if data.yMin < _yMin + if data.yMin < yMin { - _yMin = data.yMin + yMin = data.yMin } - if data.xMax > _xMax + if data.xMax > xMax { - _xMax = data.xMax + xMax = data.xMax } - if data.xMin < _xMin + if data.xMin < xMin { - _xMin = data.xMin + xMin = data.xMin } for dataset in sets { if dataset.axisDependency == .left { - if dataset.yMax > _leftAxisMax + if dataset.yMax > leftAxisMax { - _leftAxisMax = dataset.yMax + leftAxisMax = dataset.yMax } - if dataset.yMin < _leftAxisMin + if dataset.yMin < leftAxisMin { - _leftAxisMin = dataset.yMin + leftAxisMin = dataset.yMin } } else { - if dataset.yMax > _rightAxisMax + if dataset.yMax > rightAxisMax { - _rightAxisMax = dataset.yMax + rightAxisMax = dataset.yMax } - if dataset.yMin < _rightAxisMin + if dataset.yMin < rightAxisMin { - _rightAxisMin = dataset.yMin + rightAxisMin = dataset.yMin } } } @@ -209,23 +209,17 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData return allData.index(of: data) } - open override func removeDataSet(_ dataSet: ChartDataSetProtocol!) -> Bool + open override func removeDataSet(_ dataSet: ChartDataSetProtocol) -> Element? { - let datas = allData - - var success = false - - for data in datas + for data in allData { - success = data.removeDataSet(dataSet) - - if success + if let e = data.removeDataSet(dataSet) { - break + return e } } - return success + return nil } open override func removeEntry(_ entry: ChartDataEntry, dataSetIndex: Int) -> Bool @@ -255,7 +249,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData /// /// - parameter highlight: /// - returns: The entry that is highlighted - open override func entryForHighlight(_ highlight: Highlight) -> ChartDataEntry? + @objc override open func entry(for highlight: Highlight) -> ChartDataEntry? { if highlight.dataIndex >= allData.count { @@ -264,21 +258,15 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData let data = dataByIndex(highlight.dataIndex) - if highlight.dataSetIndex >= data.dataSetCount + if highlight.dataSetIndex >= data.endIndex { return nil } // The value of the highlighted entry could be NaN - if we are not interested in highlighting a specific value. - let entries = data.getDataSetByIndex(highlight.dataSetIndex).entriesForXValue(highlight.x) - for e in entries - { - if e.y == highlight.y || highlight.y.isNaN - { - return e - } - } - return nil + return data[highlight.dataSetIndex] + .entriesForXValue(highlight.x) + .first { $0.y == highlight.y || highlight.y.isNaN } } /// Get dataset for highlight @@ -294,7 +282,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData let data = dataByIndex(highlight.dataIndex) - if highlight.dataSetIndex >= data.dataSetCount + if highlight.dataSetIndex >= data.endIndex { return nil } diff --git a/Source/Charts/Data/Implementations/Standard/LineChartData.swift b/Source/Charts/Data/Implementations/Standard/LineChartData.swift index 468620ff49..fe3eb92862 100644 --- a/Source/Charts/Data/Implementations/Standard/LineChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/LineChartData.swift @@ -19,7 +19,7 @@ open class LineChartData: ChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Implementations/Standard/PieChartData.swift b/Source/Charts/Data/Implementations/Standard/PieChartData.swift index 775474327d..2c26535b8e 100644 --- a/Source/Charts/Data/Implementations/Standard/PieChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/PieChartData.swift @@ -18,7 +18,7 @@ open class PieChartData: ChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } @@ -61,16 +61,13 @@ open class PieChartData: ChartData } } - open override func getDataSetByIndex(_ index: Int) -> ChartDataSetProtocol? + open override func dataSet(at index: ChartData.Index) -> ChartData.Element? { - if index != 0 - { - return nil - } - return super.getDataSetByIndex(index) + guard index == 0 else { return nil } + return self[index] } - open override func getDataSetByLabel(_ label: String, ignorecase: Bool) -> ChartDataSetProtocol? + open override func dataSet(forLabel label: String, ignorecase: Bool) -> ChartDataSetProtocol? { if dataSets.count == 0 || dataSets[0].label == nil { @@ -94,7 +91,7 @@ open class PieChartData: ChartData return nil } - open override func entryForHighlight(_ highlight: Highlight) -> ChartDataEntry? + @objc override open func entry(for highlight: Highlight) -> ChartDataEntry? { return dataSet?.entryForIndex(Int(highlight.x)) } diff --git a/Source/Charts/Data/Implementations/Standard/RadarChartData.swift b/Source/Charts/Data/Implementations/Standard/RadarChartData.swift index 313ca65147..2f8a2db7ae 100644 --- a/Source/Charts/Data/Implementations/Standard/RadarChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/RadarChartData.swift @@ -34,7 +34,7 @@ open class RadarChartData: ChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } @@ -44,8 +44,8 @@ open class RadarChartData: ChartData super.init(dataSets: elements) } - open override func entryForHighlight(_ highlight: Highlight) -> ChartDataEntry? + @objc open override func entry(for highlight: Highlight) -> ChartDataEntry? { - return getDataSetByIndex(highlight.dataSetIndex)?.entryForIndex(Int(highlight.x)) + return self[highlight.dataSetIndex].entryForIndex(Int(highlight.x)) } } diff --git a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift index b30304a1b2..6fbc7bbe3e 100644 --- a/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ScatterChartData.swift @@ -19,7 +19,7 @@ open class ScatterChartData: BarLineScatterCandleBubbleChartData super.init() } - public override init(dataSets: [ChartDataSetProtocol]?) + public override init(dataSets: [ChartDataSetProtocol]) { super.init(dataSets: dataSets) } diff --git a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift index 8c6945f9ff..ee017d786a 100644 --- a/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift +++ b/Source/Charts/Data/Interfaces/ChartDataSetProtocol.swift @@ -20,7 +20,7 @@ public protocol ChartDataSetProtocol /// Use this method to tell the data set that the underlying data has changed func notifyDataSetChanged() - /// Calculates the minimum and maximum x and y values (_xMin, _xMax, _yMin, _yMax). + /// Calculates the minimum and maximum x and y values (xMin, xMax, yMin, yMax). func calcMinMax() /// Calculates the min and max y-values from the Entry closest to the given fromX to the Entry closest to the given toX value. diff --git a/Source/Charts/Highlight/BarHighlighter.swift b/Source/Charts/Highlight/BarHighlighter.swift index 11ecfb631e..21e670d6c7 100644 --- a/Source/Charts/Highlight/BarHighlighter.swift +++ b/Source/Charts/Highlight/BarHighlighter.swift @@ -24,7 +24,7 @@ open class BarHighlighter: ChartHighlighter let pos = getValsForTouch(x: x, y: y) - if let set = barData.getDataSetByIndex(high.dataSetIndex) as? BarChartDataSetProtocol, + if let set = barData[high.dataSetIndex] as? BarChartDataSetProtocol, set.isStacked { return getStackedHighlight(high: high, diff --git a/Source/Charts/Highlight/CombinedHighlighter.swift b/Source/Charts/Highlight/CombinedHighlighter.swift index 7053df09d3..c292ec5515 100644 --- a/Source/Charts/Highlight/CombinedHighlighter.swift +++ b/Source/Charts/Highlight/CombinedHighlighter.swift @@ -48,13 +48,9 @@ open class CombinedHighlighter: ChartHighlighter } else { - for j in 0.. barData.dataSetCount + while _buffers.count > barData.count { _buffers.removeLast() } @@ -164,9 +164,9 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer let barData = dataProvider.barData else { return } - for i in 0 ..< barData.dataSetCount + for i in barData.indices { - guard let set = barData.getDataSetByIndex(i) as? BarChartDataSetProtocol else { + guard let set = barData[i] as? BarChartDataSetProtocol else { fatalError("Datasets for BarChartRenderer must conform to IBarChartDataset") } @@ -551,7 +551,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer for high in indices { guard - let set = barData.getDataSetByIndex(high.dataSetIndex) as? BarChartDataSetProtocol, + let set = barData[high.dataSetIndex] as? BarChartDataSetProtocol, set.isHighlightEnabled else { continue } diff --git a/Source/Charts/Renderers/BubbleChartRenderer.swift b/Source/Charts/Renderers/BubbleChartRenderer.swift index 8a70d37eab..e6c7131715 100644 --- a/Source/Charts/Renderers/BubbleChartRenderer.swift +++ b/Source/Charts/Renderers/BubbleChartRenderer.swift @@ -217,7 +217,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer for high in indices { guard - let dataSet = bubbleData.getDataSetByIndex(high.dataSetIndex) as? BubbleChartDataSetProtocol, + let dataSet = bubbleData[high.dataSetIndex] as? BubbleChartDataSetProtocol, dataSet.isHighlightEnabled, let entry = dataSet.entryForXValue(high.x, closestToY: high.y) as? BubbleChartDataEntry, isInBoundsX(entry: entry, dataSet: dataSet) diff --git a/Source/Charts/Renderers/CandleStickChartRenderer.swift b/Source/Charts/Renderers/CandleStickChartRenderer.swift index 53bd613708..0173e09af1 100644 --- a/Source/Charts/Renderers/CandleStickChartRenderer.swift +++ b/Source/Charts/Renderers/CandleStickChartRenderer.swift @@ -331,7 +331,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer for high in indices { guard - let set = candleData.getDataSetByIndex(high.dataSetIndex) as? CandleChartDataSetProtocol, + let set = candleData[high.dataSetIndex] as? CandleChartDataSetProtocol, set.isHighlightEnabled else { continue } diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index f95648206a..98df256f1a 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -37,19 +37,19 @@ open class HorizontalBarChartRenderer: BarChartRenderer if let barData = dataProvider?.barData { // Matche buffers count to dataset count - if _buffers.count != barData.dataSetCount + if _buffers.count != barData.count { - while _buffers.count < barData.dataSetCount + while _buffers.count < barData.count { _buffers.append(Buffer()) } - while _buffers.count > barData.dataSetCount + while _buffers.count > barData.count { _buffers.removeLast() } } - for i in stride(from: 0, to: barData.dataSetCount, by: 1) + for i in barData.indices { let set = barData.dataSets[i] as! BarChartDataSetProtocol let size = set.entryCount * (set.isStacked ? set.stackSize : 1) @@ -314,7 +314,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer var negOffset: CGFloat let drawValueAboveBar = dataProvider.isDrawValueAboveBarEnabled - for dataSetIndex in 0 ..< barData.dataSetCount + for dataSetIndex in barData.indices { guard let dataSet = dataSets[dataSetIndex] as? BarChartDataSetProtocol else { continue } diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index e3b39aed3e..10ac1dff1a 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -42,10 +42,8 @@ open class LegendRenderer: NSObject, Renderer var entries: [LegendEntry] = [] // loop for building up the colors and labels used in the legend - for i in 0.. Date: Mon, 30 Apr 2018 02:56:45 +0300 Subject: [PATCH 25/84] Remove unnecessary file (#3432) --- .../Charts/Renderers/AxisRendererBase.swift | 216 ------------------ 1 file changed, 216 deletions(-) delete mode 100644 Source/Charts/Renderers/AxisRendererBase.swift diff --git a/Source/Charts/Renderers/AxisRendererBase.swift b/Source/Charts/Renderers/AxisRendererBase.swift deleted file mode 100644 index 15a9206e51..0000000000 --- a/Source/Charts/Renderers/AxisRendererBase.swift +++ /dev/null @@ -1,216 +0,0 @@ -// -// AxisRendererBase.swift -// Charts -// -// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda -// A port of MPAndroidChart for iOS -// Licensed under Apache License 2.0 -// -// https://github.com/danielgindi/Charts -// - -import Foundation -import CoreGraphics - -@objc(ChartAxisRendererBase) -open class AxisRendererBase: Renderer -{ - /// base axis this axis renderer works with - @objc open var axis: AxisBase? - - /// transformer to transform values to screen pixels and return - @objc open var transformer: Transformer? - - @objc public init(viewPortHandler: ViewPortHandler, transformer: Transformer?, axis: AxisBase?) - { - super.init(viewPortHandler: viewPortHandler) - - self.transformer = transformer - self.axis = axis - } - - /// Draws the axis labels on the specified context - @objc open func renderAxisLabels(context: CGContext) - { - fatalError("renderAxisLabels() cannot be called on AxisRendererBase") - } - - /// Draws the grid lines belonging to the axis. - @objc open func renderGridLines(context: CGContext) - { - fatalError("renderGridLines() cannot be called on AxisRendererBase") - } - - /// Draws the line that goes alongside the axis. - @objc open func renderAxisLine(context: CGContext) - { - fatalError("renderAxisLine() cannot be called on AxisRendererBase") - } - - /// Draws the LimitLines associated with this axis to the screen. - @objc open func renderLimitLines(context: CGContext) - { - fatalError("renderLimitLines() cannot be called on AxisRendererBase") - } - - /// Computes the axis values. - /// - parameter min: the minimum value in the data object for this axis - /// - parameter max: the maximum value in the data object for this axis - @objc open func computeAxis(min: Double, max: Double, inverted: Bool) - { - var min = min, max = max - - if let transformer = self.transformer - { - // calculate the starting and entry point of the y-labels (depending on zoom / contentrect bounds) - if viewPortHandler.contentWidth > 10.0 && !viewPortHandler.isFullyZoomedOutY - { - let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) - let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) - - if !inverted - { - min = Double(p2.y) - max = Double(p1.y) - } - else - { - min = Double(p1.y) - max = Double(p2.y) - } - } - } - - computeAxisValues(min: min, max: max) - } - - /// Sets up the axis values. Computes the desired number of labels between the two given extremes. - @objc open func computeAxisValues(min: Double, max: Double) - { - guard let axis = self.axis else { return } - - let yMin = min - let yMax = max - - let labelCount = axis.labelCount - let range = abs(yMax - yMin) - - if labelCount == 0 || range <= 0 || range.isInfinite - { - axis.entries = [Double]() - axis.centeredEntries = [Double]() - return - } - - // Find out how much spacing (in y value space) between axis values - let rawInterval = range / Double(labelCount) - var interval = rawInterval.roundedToNextSignficant() - - // If granularity is enabled, then do not allow the interval to go below specified granularity. - // This is used to avoid repeated values when rounding values for display. - if axis.granularityEnabled - { - interval = interval < axis.granularity ? axis.granularity : interval - } - - // Normalize interval - let intervalMagnitude = pow(10.0, Double(Int(log10(interval)))).roundedToNextSignficant() - let intervalSigDigit = Int(interval / intervalMagnitude) - if intervalSigDigit > 5 - { - // Use one order of magnitude higher, to avoid intervals like 0.9 or 90 - // if it's 0.0 after floor(), we use the old value - interval = floor(10.0 * intervalMagnitude) == 0.0 ? interval : floor(10.0 * intervalMagnitude) - } - - var n = axis.centerAxisLabelsEnabled ? 1 : 0 - - // force label count - if axis.isForceLabelsEnabled - { - interval = Double(range) / Double(labelCount - 1) - - // Ensure stops contains at least n elements. - axis.entries.removeAll(keepingCapacity: true) - axis.entries.reserveCapacity(labelCount) - - var v = yMin - - for _ in 0 ..< labelCount - { - axis.entries.append(v) - v += interval - } - - n = labelCount - } - else - { - // no forced count - - var first = interval == 0.0 ? 0.0 : ceil(yMin / interval) * interval - - if axis.centerAxisLabelsEnabled - { - first -= interval - } - - let last = interval == 0.0 ? 0.0 : (floor(yMax / interval) * interval).nextUp - - if interval != 0.0 && last != first - { - for _ in stride(from: first, through: last, by: interval) - { - n += 1 - } - } - else if last == first && n == 0 - { - n = 1 - } - - // Ensure stops contains at least n elements. - axis.entries.removeAll(keepingCapacity: true) - axis.entries.reserveCapacity(labelCount) - - var f = first - var i = 0 - while i < n - { - if f == 0.0 - { - // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) - f = 0.0 - } - - axis.entries.append(Double(f)) - - f += interval - i += 1 - } - } - - // set decimals - if interval < 1 - { - axis.decimals = Int(ceil(-log10(interval))) - } - else - { - axis.decimals = 0 - } - - if axis.centerAxisLabelsEnabled - { - axis.centeredEntries.reserveCapacity(n) - axis.centeredEntries.removeAll() - - let offset: Double = interval / 2.0 - - for i in 0 ..< n - { - axis.centeredEntries.append(axis.entries[i] + offset) - } - } - } -} From 08bd20c4eb37a48a78c72b5196bba233091d397f Mon Sep 17 00:00:00 2001 From: jjatie Date: Tue, 1 May 2018 23:35:20 -0300 Subject: [PATCH 26/84] Dataset logic cleanup (#3001) * Cleaned up `ChartDataSet` logic Added TODOs for areas where simple changes can help improve Swift consistency. * Tidied up logic for `ChartDataSet` subclasses Minor changes to take advantage of Swift features and help improve readability. * Added Collection conformances MutableCollection RandomAccessCollection RangeReplaceableCollection * [#3018] Refactored use of `ChartData` to use new `Collection` conformances * Fixed required initializers * ChartData adopts ExressibleByArrayLiteral * Modified demos to take advantage of collection conformance. * Pulled latest master * Pulled latest master * Updates for PR Also added remove subrange. * Refactored ChartData Removed redundancy from min/max logic. Lots of naming changes. Cleaner implementations. * PR review fixes * Removed unnecessary `get` from subscripts. * Disabled `remove(at:)` for CombinedChartView * Removed redundant methods * Relocated `appendEntry(_:todataSet:)` * pulled latest 4.0.0 * Disabled Collection support for CombinedChartData * Removed methods from CombinedChartData * Pulled latest 4.0 * Fixes after merge * Removed used of dataSet(forIndex:) * Fixed merge conflicts * Fixed merge conflicts * updated demos * Pulled latest 4.0.0 * Fixed demos * Fixed objective c demos * Moved travis to Xcode 9.3 beta temporarily * Fixed macOS demo info.plist and tv demo device name * PR Fixes * Fixed objective-c naming * PR Fixes * PR Fixes --- .../Implementations/ChartBaseDataSet.swift | 2 +- .../Standard/BarChartDataSet.swift | 64 +++------- .../Standard/BubbleChartDataSet.swift | 7 +- .../Standard/CandleChartDataSet.swift | 60 +++------ .../Implementations/Standard/ChartData.swift | 2 +- .../Standard/ChartDataSet.swift | 119 ++++++------------ .../Standard/LineChartDataSet.swift | 14 +-- .../Standard/LineRadarChartDataSet.swift | 15 +-- .../Standard/PieChartDataSet.swift | 15 +-- .../Standard/RadarChartDataSet.swift | 2 +- 10 files changed, 91 insertions(+), 209 deletions(-) diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index 190241efa3..c8515aa7c5 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -24,7 +24,7 @@ open class ChartBaseDataSet: NSObject, ChartDataSetProtocol valueColors.append(NSUIColor.black) } - @objc public init(label: String?) + @objc public init(label: String) { super.init() diff --git a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift index 6f88bf95cb..3ff93b004b 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift @@ -29,7 +29,7 @@ open class BarChartDataSet: BarLineScatterCandleBubbleChartDataSet, BarChartData initialize() } - public override init(values: [ChartDataEntry]?, label: String?) + public override init(values: [ChartDataEntry], label: String) { super.init(values: values, label: label) initialize() @@ -50,68 +50,36 @@ open class BarChartDataSet: BarLineScatterCandleBubbleChartDataSet, BarChartData { _entryCountStacks = 0 - for i in 0 ..< entries.count - { - if let vals = entries[i].yValues - { - _entryCountStacks += vals.count - } - else - { - _entryCountStacks += 1 - } - } + entries.forEach { _entryCountStacks += $0.yValues?.count ?? 1 } } /// calculates the maximum stacksize that occurs in the Entries array of this DataSet private func calcStackSize(entries: [BarChartDataEntry]) { - for i in 0 ..< entries.count + for e in entries where (e.yValues?.count ?? 0) > _stackSize { - if let vals = entries[i].yValues - { - if vals.count > _stackSize - { - _stackSize = vals.count - } - } + _stackSize = e.yValues!.count } } open override func calcMinMax(entry e: ChartDataEntry) { - guard let e = e as? BarChartDataEntry + guard let e = e as? BarChartDataEntry, + !e.y.isNaN else { return } - if !e.y.isNaN + if e.yValues == nil { - if e.yValues == nil - { - if e.y < _yMin - { - _yMin = e.y - } - - if e.y > _yMax - { - _yMax = e.y - } - } - else - { - if -e.negativeSum < _yMin - { - _yMin = -e.negativeSum - } - - if e.positiveSum > _yMax - { - _yMax = e.positiveSum - } - } - - calcMinMaxX(entry: e) + _yMin = min(e.y, _yMin) + _yMax = max(e.y, _yMax) } + else + { + _yMin = min(-e.negativeSum, _yMin) + _yMax = max(e.positiveSum, _yMax) + } + + calcMinMaxX(entry: e) } /// - returns: The maximum number of bars that can be stacked upon another in this DataSet. diff --git a/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift index d93eef6645..2ccb540cb2 100644 --- a/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift @@ -30,12 +30,7 @@ open class BubbleChartDataSet: BarLineScatterCandleBubbleChartDataSet, BubbleCha super.calcMinMax(entry: e) - let size = e.size - - if size > _maxSize - { - _maxSize = size - } + _maxSize = max(e.size, maxSize) } // MARK: - Styling functions and accessors diff --git a/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift index c04a5edceb..a18078afb5 100644 --- a/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift @@ -21,7 +21,7 @@ open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, CandleChartDa super.init() } - public override init(values: [ChartDataEntry]?, label: String?) + public override init(values: [ChartDataEntry], label: String) { super.init(values: values, label: label) } @@ -32,17 +32,10 @@ open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, CandleChartDa { guard let e = e as? CandleChartDataEntry else { return } - - if e.low < _yMin - { - _yMin = e.low - } - - if e.high > _yMax - { - _yMax = e.high - } - + + _yMin = min(e.low, _yMin) + _yMax = max(e.high, _yMax) + calcMinMaxX(entry: e) } @@ -50,24 +43,12 @@ open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, CandleChartDa { guard let e = e as? CandleChartDataEntry else { return } - - if e.high < _yMin - { - _yMin = e.high - } - if e.high > _yMax - { - _yMax = e.high - } - - if e.low < _yMin - { - _yMin = e.low - } - if e.low > _yMax - { - _yMax = e.low - } + + _yMin = min(e.low, _yMin) + _yMax = max(e.high, _yMin) + + _yMin = min(e.low, _yMax) + _yMax = max(e.high, _yMax) } // MARK: - Styling functions and accessors @@ -75,25 +56,18 @@ open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, CandleChartDa /// the space between the candle entries /// /// **default**: 0.1 (10%) - private var _barSpace = CGFloat(0.1) - + private var _barSpace: CGFloat = 0.1 + /// the space that is left out on the left and right side of each candle, /// **default**: 0.1 (10%), max 0.45, min 0.0 open var barSpace: CGFloat { set { - if newValue < 0.0 - { - _barSpace = 0.0 - } - else if newValue > 0.45 - { - _barSpace = 0.45 - } - else - { - _barSpace = newValue + switch newValue { + case ..<0: _barSpace = 0.0 + case 0.45...: _barSpace = 0.45 + default: _barSpace = newValue } } get diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index ac9eb3aeda..69568fc725 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -296,7 +296,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral } /// - returns: All colors used across all DataSet objects this object represents. - @objc open func getColors() -> [NSUIColor] + @objc open var colors: [NSUIColor] { return reduce(into: []) { $0 += $1.colors } } diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index fa21e6b02e..8abbf3fe71 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -27,33 +27,33 @@ open class ChartDataSet: ChartBaseDataSet public required init() { values = [] - + super.init() } - public override init(label: String?) + public override init(label: String) { values = [] - + super.init(label: label) } - @objc public init(values: [ChartDataEntry]?, label: String?) + @objc public init(values: [ChartDataEntry], label: String) { - self.values = values ?? [] - + self.values = values + super.init(label: label) - + self.calcMinMax() } - @objc public convenience init(values: [ChartDataEntry]?) + @objc public convenience init(values: [ChartDataEntry]) { self.init(values: values, label: "DataSet") } // MARK: - Data functions and accessors - + /// * /// - note: Calls `notifyDataSetChanged()` after setting a new value. /// - returns: The array of y-values that this DataSet represents. @@ -69,6 +69,7 @@ open class ChartDataSet: ChartBaseDataSet notifyDataSetChanged() } } + // TODO: Temporary fix for performance. Will be removed in 4.0 private var isIndirectValuesCall = false @@ -103,39 +104,23 @@ open class ChartDataSet: ChartBaseDataSet guard !values.isEmpty else { return } - let indexFrom = entryIndex(x: fromX, closestToY: Double.nan, rounding: .down) - let indexTo = entryIndex(x: toX, closestToY: Double.nan, rounding: .up) - - guard !(indexTo < indexFrom) else { return } + let indexFrom = entryIndex(x: fromX, closestToY: .nan, rounding: .down) + let indexTo = entryIndex(x: toX, closestToY: .nan, rounding: .up) - (indexFrom...indexTo).forEach { - // only recalculate y - calcMinMaxY(entry: values[$0]) - } + guard indexTo >= indexFrom else { return } + (indexFrom...indexTo).forEach { calcMinMaxY(entry: values[$0]) } // only recalculate y } @objc open func calcMinMaxX(entry e: ChartDataEntry) { - if e.x < _xMin - { - _xMin = e.x - } - if e.x > _xMax - { - _xMax = e.x - } + _xMin = min(e.x, _xMin) + _xMax = max(e.x, _xMax) } @objc open func calcMinMaxY(entry e: ChartDataEntry) { - if e.y < _yMin - { - _yMin = e.y - } - if e.y > _yMax - { - _yMax = e.y - } + _yMin = min(e.y, _yMin) + _yMax = max(e.y, _yMax) } /// Updates the min and max x and y value of this DataSet based on the given Entry. @@ -148,16 +133,16 @@ open class ChartDataSet: ChartBaseDataSet } /// - returns: The minimum y-value this DataSet holds - open override var yMin: Double { return _yMin } + @objc open override var yMin: Double { return _yMin } /// - returns: The maximum y-value this DataSet holds - open override var yMax: Double { return _yMax } + @objc open override var yMax: Double { return _yMax } /// - returns: The minimum x-value this DataSet holds - open override var xMin: Double { return _xMin } + @objc open override var xMin: Double { return _xMin } /// - returns: The maximum x-value this DataSet holds - open override var xMax: Double { return _xMax } + @objc open override var xMax: Double { return _xMax } /// - returns: The number of y-values this DataSet represents open override var entryCount: Int { return values.count } @@ -268,6 +253,7 @@ open class ChartDataSet: ChartBaseDataSet /// - parameter xValue: x-value of the entry to search for /// - parameter closestToY: If there are multiple y-values for the specified x-value, /// - parameter rounding: Rounding method if exact value was not found + // TODO: This should return `nil` to follow Swift convention open override func entryIndex( x xValue: Double, closestToY yValue: Double, @@ -320,21 +306,15 @@ open class ChartDataSet: ChartBaseDataSet { let closestXValue = values[closest].x - if rounding == .up + if rounding == .up, closestXValue < xValue, closest < values.endIndex - 1 { // If rounding up, and found x-value is lower than specified x, and we can go upper... - if closestXValue < xValue && closest < values.endIndex - 1 - { - closest += 1 - } + closest += 1 } - else if rounding == .down + else if rounding == .down, closestXValue > xValue, closest > values.startIndex { // If rounding down, and found x-value is upper than specified x, and we can go lower... - if closestXValue > xValue && closest > 0 - { - closest -= 1 - } + closest -= 1 } // Search by closest to y-value @@ -373,17 +353,10 @@ open class ChartDataSet: ChartBaseDataSet /// - returns: The array-index of the specified entry /// /// - parameter e: the entry to search for + // TODO: Should be returning `nil` to follow Swift convention open override func entryIndex(entry e: ChartDataEntry) -> Int { - for i in 0 ..< values.count - { - if values[i] === e - { - return i - } - } - - return -1 + return values.index { $0 === e } ?? -1 } /// Adds an Entry to the DataSet dynamically. @@ -391,6 +364,7 @@ open class ChartDataSet: ChartBaseDataSet /// This will also recalculate the current minimum and maximum values of the DataSet and the value-sum. /// - parameter e: the entry to add /// - returns: True + // TODO: This should return `Void` to follow Swift convention open override func addEntry(_ e: ChartDataEntry) -> Bool { calcMinMax(entry: e) @@ -406,6 +380,7 @@ open class ChartDataSet: ChartBaseDataSet /// This will also recalculate the current minimum and maximum values of the DataSet and the value-sum. /// - parameter e: the entry to add /// - returns: True + // TODO: This should return `Void` to follow Swift convention open override func addEntryOrdered(_ e: ChartDataEntry) -> Bool { calcMinMax(entry: e) @@ -432,29 +407,22 @@ open class ChartDataSet: ChartBaseDataSet /// This will also recalculate the current minimum and maximum values of the DataSet and the value-sum. /// - parameter entry: the entry to remove /// - returns: `true` if the entry was removed successfully, else if the entry does not exist + // TODO: This should return the removed entry to follow Swift convention. open override func removeEntry(_ entry: ChartDataEntry) -> Bool { - var removed = false isIndirectValuesCall = true - for i in 0 ..< values.count - { - if values[i] === entry - { - values.remove(at: i) - removed = true - break - } - } + guard let i = values.index(where: { $0 === entry }) else { return false } + values.remove(at: i) notifyDataSetChanged() - - return removed + return true } /// Removes the first Entry (at index 0) of this DataSet from the entries array. /// /// - returns: `true` if successful, `false` if not. + // TODO: This should return the removed entry to follow Swift convention. open override func removeFirst() -> Bool { let entry: ChartDataEntry? = values.isEmpty ? nil : values.removeFirst() @@ -464,6 +432,7 @@ open class ChartDataSet: ChartBaseDataSet /// Removes the last Entry (at index size-1) of this DataSet from the entries array. /// /// - returns: `true` if successful, `false` if not. + // TODO: This should return the removed entry to follow Swift convention. open override func removeLast() -> Bool { let entry: ChartDataEntry? = values.isEmpty ? nil : values.removeLast() @@ -474,15 +443,7 @@ open class ChartDataSet: ChartBaseDataSet /// - returns: `true` if contains the entry, `false` if not. open override func contains(_ e: ChartDataEntry) -> Bool { - for entry in values - { - if entry == e - { - return true - } - } - - return false + return values.contains(e) } /// Removes all values from this DataSet and recalculates min and max value. @@ -492,7 +453,7 @@ open class ChartDataSet: ChartBaseDataSet } // MARK: - Data functions and accessors - + // MARK: - NSCopying open override func copyWithZone(_ zone: NSZone?) -> AnyObject @@ -502,7 +463,7 @@ open class ChartDataSet: ChartBaseDataSet copy.values = values copy._yMax = _yMax copy._yMin = _yMin - + return copy } } diff --git a/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift index 8c6f50b367..afee642da6 100644 --- a/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift @@ -36,7 +36,7 @@ open class LineChartDataSet: LineRadarChartDataSet, LineChartDataSetProtocol initialize() } - public override init(values: [ChartDataEntry]?, label: String?) + public override init(values: [ChartDataEntry], label: String) { super.init(values: values, label: label) initialize() @@ -64,14 +64,10 @@ open class LineChartDataSet: LineRadarChartDataSet, LineChartDataSetProtocol } set { - _cubicIntensity = newValue - if _cubicIntensity > 1.0 - { - _cubicIntensity = 1.0 - } - if _cubicIntensity < 0.05 - { - _cubicIntensity = 0.05 + switch newValue { + case ..<0.05: _cubicIntensity = 0.05 + case 1.0...: _cubicIntensity = 1.0 + default: _cubicIntensity = newValue } } } diff --git a/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift index f254ea6514..709655da44 100644 --- a/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/LineRadarChartDataSet.swift @@ -54,17 +54,10 @@ open class LineRadarChartDataSet: LineScatterCandleRadarChartDataSet, LineRadarC } set { - if newValue < 0.0 - { - _lineWidth = 0.0 - } - else if newValue > 10.0 - { - _lineWidth = 10.0 - } - else - { - _lineWidth = newValue + switch newValue { + case ..<0.0: _lineWidth = 0.0 + case 10.0...: _lineWidth = 10.0 + default: _lineWidth = newValue } } } diff --git a/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift index ea53d8666f..8d5154b64f 100644 --- a/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/PieChartDataSet.swift @@ -33,7 +33,7 @@ open class PieChartDataSet: ChartDataSet, PieChartDataSetProtocol initialize() } - public override init(values: [ChartDataEntry]?, label: String?) + public override init(values: [ChartDataEntry], label: String) { super.init(values: values, label: label) initialize() @@ -59,16 +59,11 @@ open class PieChartDataSet: ChartDataSet, PieChartDataSetProtocol } set { - var space = newValue - if space > 20.0 - { - space = 20.0 + switch newValue { + case ..<0.0: _sliceSpace = 0.0 + case 20.0...: _sliceSpace = 20.0 + default: _sliceSpace = newValue } - if space < 0.0 - { - space = 0.0 - } - _sliceSpace = space } } diff --git a/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift index b6da45866e..81ffd9be7a 100644 --- a/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/RadarChartDataSet.swift @@ -26,7 +26,7 @@ open class RadarChartDataSet: LineRadarChartDataSet, RadarChartDataSetProtocol initialize() } - public required override init(values: [ChartDataEntry]?, label: String?) + public required override init(values: [ChartDataEntry], label: String) { super.init(values: values, label: label) initialize() From 3db09d915cd094dbef2eacc61c81e6749b254d04 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Thu, 28 Dec 2017 10:10:04 -0400 Subject: [PATCH 27/84] Added gradient line drawing to LineChartRenderer --- .../Standard/LineChartDataSet.swift | 6 +- .../Interfaces/LineChartDataSetProtocol.swift | 8 +- .../Charts/Renderers/LineChartRenderer.swift | 163 ++++++++++++++++-- 3 files changed, 156 insertions(+), 21 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift index afee642da6..d92b65fd9f 100644 --- a/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/LineChartDataSet.swift @@ -71,7 +71,11 @@ open class LineChartDataSet: LineRadarChartDataSet, LineChartDataSetProtocol } } } - + + open var isDrawLineWithGradientEnabled = false + + open var gradientPositions: [CGFloat]? + /// The radius of the drawn circles. open var circleRadius = CGFloat(8.0) diff --git a/Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift b/Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift index 2da6ef4437..8431d433b0 100644 --- a/Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift +++ b/Source/Charts/Data/Interfaces/LineChartDataSetProtocol.swift @@ -29,7 +29,13 @@ public protocol LineChartDataSetProtocol: LineRadarChartDataSetProtocol /// /// **default**: 0.2 var cubicIntensity: CGFloat { get set } - + + /// If true, gradient lines are drawn instead of solid + var isDrawLineWithGradientEnabled: Bool { get set } + + /// The points where gradient should change color + var gradientPositions: [CGFloat]? { get set } + /// The radius of the drawn circles. var circleRadius: CGFloat { get set } diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 22810c3059..5fd9a2a844 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -158,7 +158,8 @@ open class LineChartRenderer: LineRadarRenderer } context.saveGState() - + defer { context.restoreGState() } + if dataSet.isDrawFilledEnabled { // Copy this path because we make changes to it @@ -166,13 +167,18 @@ open class LineChartRenderer: LineRadarRenderer drawCubicFill(context: context, dataSet: dataSet, spline: fillPath!, matrix: valueToPixelMatrix, bounds: _xBounds) } - - context.beginPath() - context.addPath(cubicPath) - context.setStrokeColor(drawingColor.cgColor) - context.strokePath() - - context.restoreGState() + + if dataSet.isDrawLineWithGradientEnabled + { + drawGradientLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix) + } + else + { + context.beginPath() + context.addPath(cubicPath) + context.setStrokeColor(drawingColor.cgColor) + context.strokePath() + } } @objc open func drawHorizontalBezier(context: CGContext, dataSet: LineChartDataSetProtocol) @@ -244,10 +250,10 @@ open class LineChartRenderer: LineRadarRenderer open func drawCubicFill( context: CGContext, - dataSet: LineChartDataSetProtocol, - spline: CGMutablePath, - matrix: CGAffineTransform, - bounds: XBounds) + dataSet: LineChartDataSetProtocol, + spline: CGMutablePath, + matrix: CGAffineTransform, + bounds: XBounds) { guard let dataProvider = dataProvider @@ -304,7 +310,8 @@ open class LineChartRenderer: LineRadarRenderer } context.saveGState() - + defer { context.restoreGState() } + context.setLineCap(dataSet.lineCapType) // more than 1 color @@ -413,8 +420,8 @@ open class LineChartRenderer: LineRadarRenderer } context.addLine(to: CGPoint( - x: CGFloat(e2.x), - y: CGFloat(e2.y * phaseY) + x: CGFloat(e2.x), + y: CGFloat(e2.y * phaseY) ).applying(valueToPixelMatrix)) } @@ -425,8 +432,17 @@ open class LineChartRenderer: LineRadarRenderer } } } - - context.restoreGState() + + if (dataSet.isDrawLineWithGradientEnabled) + { + let path = generateGradientLinePath(dataSet: dataSet, + fillMin: dataSet.fillFormatter?.getFillLinePosition(dataSet: dataSet, dataProvider: dataProvider) ?? 0.0, + from: _xBounds.min, + to: _xBounds.max, + matrix: trans.valueToPixelMatrix) + + drawGradientLine(context: context, dataSet: dataSet, spline: path, matrix: valueToPixelMatrix) + } } open func drawLinearFill(context: CGContext, dataSet: LineChartDataSetProtocol, trans: Transformer, bounds: XBounds) @@ -674,7 +690,7 @@ open class LineChartRenderer: LineRadarRenderer if drawCircleHole { context.setFillColor(dataSet.circleHoleColor!.cgColor) - + // The hole rect rect.origin.x = pt.x - circleHoleRadius rect.origin.y = pt.y - circleHoleRadius @@ -713,7 +729,7 @@ open class LineChartRenderer: LineRadarRenderer { continue } - + context.setStrokeColor(set.highlightColor.cgColor) context.setLineWidth(set.highlightLineWidth) if set.highlightLineDashLengths != nil @@ -745,4 +761,113 @@ open class LineChartRenderer: LineRadarRenderer context.restoreGState() } + + /// Generates the path that is used for gradient drawing. + private func generateGradientLinePath(dataSet: LineChartDataSetProtocol, fillMin: CGFloat, from: Int, to: Int, matrix: CGAffineTransform) -> CGPath + { + let phaseX = CGFloat(animator.phaseX) + let phaseY = CGFloat(animator.phaseY) + + var e: ChartDataEntry! + + let generatedPath = CGMutablePath() + e = dataSet.entryForIndex(from) + if e != nil + { + generatedPath.move(to: CGPoint(x: CGFloat(e.x), y: CGFloat(e.y) * phaseY), transform: matrix) + } + + // create a new path + let to = Int(ceil(CGFloat(to - from) * phaseX + CGFloat(from))) + for i in (from + 1).. 1) { + gradientLocations.append(1) + } else { + gradientLocations.append(normPositionLocation) + } + } + + for _ in dataSet.colors + { + cColor = dataSet.color(atIndex: 0) + if cColor.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) + { + gradientColors += [cRed, cGreen, cBlue, cAlpha] + } + } + + //Set upper bound color + gradientLocations.append(1) + cColor = dataSet.color(atIndex: dataSet.colors.count - 1) + if cColor.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) + { + gradientColors += [cRed, cGreen, cBlue, cAlpha] + } + + //Define gradient + let baseSpace = CGColorSpaceCreateDeviceRGB() + let gradient: CGGradient? + if gradientPositions.count > 1 + { + gradient = CGGradient(colorSpace: baseSpace, colorComponents: &gradientColors, locations: &gradientLocations, count: gradientColors.count / 4) + } else + { + gradient = CGGradient(colorSpace: baseSpace, colorComponents: gradientColors, locations: nil, count: gradientColors.count / 4) + } + + guard gradient != nil else { return } + + //Draw gradient path + context.beginPath() + context.addPath(gradientPath) + context.clip() + context.drawLinearGradient(gradient!, start: gradientStart, end: gradientEnd, options: []) + } } From 8981f32a51df889ea23a44f1ca045c1893e2eba5 Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Tue, 24 Apr 2018 14:31:40 +0300 Subject: [PATCH 28/84] Stabilize and clean the code --- .../Charts/Renderers/LineChartRenderer.swift | 57 ++++++++++--------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 5fd9a2a844..3bf2d78e92 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -779,6 +779,11 @@ open class LineChartRenderer: LineRadarRenderer // create a new path let to = Int(ceil(CGFloat(to - from) * phaseX + CGFloat(from))) + + guard (from + 1) < to else { + return generatedPath + } + for i in (from + 1).. 1) { + } else if normPositionLocation > 1 { gradientLocations.append(1) } else { gradientLocations.append(normPositionLocation) } } - for _ in dataSet.colors + // Lower bound color + gradientLocations.append(0) + var cColor = dataSet.color(atIndex: 0) + if cColor.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) { - cColor = dataSet.color(atIndex: 0) - if cColor.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) - { - gradientColors += [cRed, cGreen, cBlue, cAlpha] + gradientColors += [cRed, cGreen, cBlue, cAlpha] + } + + // Middle colors + for color in dataSet.colors + { + guard color.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) else { + continue } + + gradientColors += [cRed, cGreen, cBlue, cAlpha] } - //Set upper bound color + // Upper bound color gradientLocations.append(1) cColor = dataSet.color(atIndex: dataSet.colors.count - 1) if cColor.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) @@ -851,20 +857,19 @@ open class LineChartRenderer: LineRadarRenderer gradientColors += [cRed, cGreen, cBlue, cAlpha] } - //Define gradient + // Gradient let baseSpace = CGColorSpaceCreateDeviceRGB() let gradient: CGGradient? if gradientPositions.count > 1 { gradient = CGGradient(colorSpace: baseSpace, colorComponents: &gradientColors, locations: &gradientLocations, count: gradientColors.count / 4) - } else - { + } else { gradient = CGGradient(colorSpace: baseSpace, colorComponents: gradientColors, locations: nil, count: gradientColors.count / 4) } guard gradient != nil else { return } - //Draw gradient path + // Draw gradient path context.beginPath() context.addPath(gradientPath) context.clip() From 1c65999822636a5a6b3dfffd4a66797a2ec22a32 Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Tue, 24 Apr 2018 14:56:21 +0300 Subject: [PATCH 29/84] Extract line drawing into function --- .../Charts/Renderers/LineChartRenderer.swift | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 3bf2d78e92..4c44336e3e 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -80,6 +80,26 @@ open class LineChartRenderer: LineRadarRenderer context.restoreGState() } + + private func drawLine( + context: CGContext, + dataSet: LineChartDataSetProtocol, + spline: CGMutablePath, + matrix: CGAffineTransform, + drawingColor: NSUIColor) { + + if dataSet.isDrawLineWithGradientEnabled + { + drawGradientLine(context: context, dataSet: dataSet, spline: spline, matrix: matrix) + } + else + { + context.beginPath() + context.addPath(spline) + context.setStrokeColor(drawingColor.cgColor) + context.strokePath() + } + } @objc open func drawCubicBezier(context: CGContext, dataSet: LineChartDataSetProtocol) { @@ -168,17 +188,7 @@ open class LineChartRenderer: LineRadarRenderer drawCubicFill(context: context, dataSet: dataSet, spline: fillPath!, matrix: valueToPixelMatrix, bounds: _xBounds) } - if dataSet.isDrawLineWithGradientEnabled - { - drawGradientLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix) - } - else - { - context.beginPath() - context.addPath(cubicPath) - context.setStrokeColor(drawingColor.cgColor) - context.strokePath() - } + drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) } @objc open func drawHorizontalBezier(context: CGContext, dataSet: LineChartDataSetProtocol) @@ -231,6 +241,7 @@ open class LineChartRenderer: LineRadarRenderer } context.saveGState() + defer { context.restoreGState() } if dataSet.isDrawFilledEnabled { @@ -239,13 +250,8 @@ open class LineChartRenderer: LineRadarRenderer drawCubicFill(context: context, dataSet: dataSet, spline: fillPath!, matrix: valueToPixelMatrix, bounds: _xBounds) } - - context.beginPath() - context.addPath(cubicPath) - context.setStrokeColor(drawingColor.cgColor) - context.strokePath() - - context.restoreGState() + + drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) } open func drawCubicFill( From 25eb16454499969a126c29e82af0d4d71aee6b4f Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Wed, 25 Apr 2018 17:25:58 +0300 Subject: [PATCH 30/84] Fix macOS build --- .../Charts/Renderers/LineChartRenderer.swift | 41 +++++++------------ Source/Charts/Utils/Platform.swift | 36 ++++++++++++++++ 2 files changed, 50 insertions(+), 27 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 4c44336e3e..22367d7989 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -816,13 +816,10 @@ open class LineChartRenderer: LineRadarRenderer let boundingBox = gradientPath.boundingBox let gradientStart = CGPoint(x: 0, y: boundingBox.maxY) let gradientEnd = CGPoint(x: 0, y: boundingBox.minY) + var gradientColorComponents = [CGFloat]() var gradientLocations = [CGFloat]() - var gradientColors = [CGFloat]() - var cRed: CGFloat = 0 - var cGreen: CGFloat = 0 - var cBlue: CGFloat = 0 - var cAlpha: CGFloat = 0 + gradientLocations.append(0) for position in gradientPositions { let positionLocation = CGPoint(x: 0, y: position) @@ -836,41 +833,31 @@ open class LineChartRenderer: LineRadarRenderer gradientLocations.append(normPositionLocation) } } + gradientLocations.append(1) // Lower bound color - gradientLocations.append(0) - var cColor = dataSet.color(atIndex: 0) - if cColor.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) - { - gradientColors += [cRed, cGreen, cBlue, cAlpha] - } + // + Middle colors + // + Upper bound color + let colors = + [dataSet.color(atIndex: 0)] + dataSet.colors + [dataSet.color(atIndex: dataSet.colors.count - 1)] - // Middle colors - for color in dataSet.colors + for color in colors { - guard color.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) else { + guard let (r, g, b, a) = color.nsuiRGBA else { continue } - - gradientColors += [cRed, cGreen, cBlue, cAlpha] + gradientColorComponents += [r, g, b, a] } - // Upper bound color - gradientLocations.append(1) - cColor = dataSet.color(atIndex: dataSet.colors.count - 1) - if cColor.getRed(&cRed, green: &cGreen, blue: &cBlue, alpha: &cAlpha) - { - gradientColors += [cRed, cGreen, cBlue, cAlpha] - } + let baseColorSpace = CGColorSpaceCreateDeviceRGB() + let baseColorSpaceComponentsCount = baseColorSpace.numberOfComponents + 1 // // Add 1 for the alpha channel - // Gradient - let baseSpace = CGColorSpaceCreateDeviceRGB() let gradient: CGGradient? if gradientPositions.count > 1 { - gradient = CGGradient(colorSpace: baseSpace, colorComponents: &gradientColors, locations: &gradientLocations, count: gradientColors.count / 4) + gradient = CGGradient(colorSpace: baseColorSpace, colorComponents: &gradientColorComponents, locations: &gradientLocations, count: gradientColorComponents.count / baseColorSpaceComponentsCount) } else { - gradient = CGGradient(colorSpace: baseSpace, colorComponents: gradientColors, locations: nil, count: gradientColors.count / 4) + gradient = CGGradient(colorSpace: baseColorSpace, colorComponents: gradientColorComponents, locations: nil, count: gradientColorComponents.count / baseColorSpaceComponentsCount) } guard gradient != nil else { return } diff --git a/Source/Charts/Utils/Platform.swift b/Source/Charts/Utils/Platform.swift index ae17c109a3..8d7fb209cd 100644 --- a/Source/Charts/Utils/Platform.swift +++ b/Source/Charts/Utils/Platform.swift @@ -24,6 +24,22 @@ types are aliased to either their UI* implementation (on iOS) or their NS* imple public typealias NSUIScreen = UIScreen public typealias NSUIDisplayLink = CADisplayLink + + extension NSUIColor + { + var nsuiRGBA: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)? { + var red: CGFloat = 0 + var green: CGFloat = 0 + var blue: CGFloat = 0 + var alpha: CGFloat = 0 + + guard getRed(&red, green: &green, blue: &blue, alpha: &alpha) else { + return nil + } + + return (red: red, green: green, blue: blue, alpha: alpha) + } + } extension NSUITapGestureRecognizer { @@ -304,6 +320,26 @@ types are aliased to either their UI* implementation (on iOS) or their NS* imple } } + extension NSUIColor + { + var nsuiRGBA: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)? { + var red: CGFloat = 0 + var green: CGFloat = 0 + var blue: CGFloat = 0 + var alpha: CGFloat = 0 + + guard let colorSpaceModel = cgColor.colorSpace?.model else { + return nil + } + guard colorSpaceModel == .rgb else { + return nil + } + + getRed(&red, green: &green, blue: &blue, alpha: &alpha) + return (red: red, green: green, blue: blue, alpha: alpha) + } + } + /** The 'tap' gesture is mapped to clicks. */ extension NSUITapGestureRecognizer { From a13978f3cc1311b55056f37803fd9caa864e3c0e Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Wed, 25 Apr 2018 17:35:08 +0300 Subject: [PATCH 31/84] Move `drawGradientLine` out of `drawLine` method --- .../Charts/Renderers/LineChartRenderer.swift | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 22367d7989..7aaca704df 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -86,19 +86,12 @@ open class LineChartRenderer: LineRadarRenderer dataSet: LineChartDataSetProtocol, spline: CGMutablePath, matrix: CGAffineTransform, - drawingColor: NSUIColor) { - - if dataSet.isDrawLineWithGradientEnabled - { - drawGradientLine(context: context, dataSet: dataSet, spline: spline, matrix: matrix) - } - else - { - context.beginPath() - context.addPath(spline) - context.setStrokeColor(drawingColor.cgColor) - context.strokePath() - } + drawingColor: NSUIColor) + { + context.beginPath() + context.addPath(spline) + context.setStrokeColor(drawingColor.cgColor) + context.strokePath() } @objc open func drawCubicBezier(context: CGContext, dataSet: LineChartDataSetProtocol) @@ -188,7 +181,14 @@ open class LineChartRenderer: LineRadarRenderer drawCubicFill(context: context, dataSet: dataSet, spline: fillPath!, matrix: valueToPixelMatrix, bounds: _xBounds) } - drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) + if dataSet.isDrawLineWithGradientEnabled + { + drawGradientLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix) + } + else + { + drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) + } } @objc open func drawHorizontalBezier(context: CGContext, dataSet: LineChartDataSetProtocol) @@ -251,7 +251,14 @@ open class LineChartRenderer: LineRadarRenderer drawCubicFill(context: context, dataSet: dataSet, spline: fillPath!, matrix: valueToPixelMatrix, bounds: _xBounds) } - drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) + if dataSet.isDrawLineWithGradientEnabled + { + drawGradientLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix) + } + else + { + drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) + } } open func drawCubicFill( From 470328a9e4fa1fafe6f733b7fccc07861b74a5b9 Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Wed, 25 Apr 2018 17:41:06 +0300 Subject: [PATCH 32/84] Remove unused parameters from `drawLine` function --- Source/Charts/Renderers/LineChartRenderer.swift | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 7aaca704df..d8dbd510d5 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -83,9 +83,7 @@ open class LineChartRenderer: LineRadarRenderer private func drawLine( context: CGContext, - dataSet: LineChartDataSetProtocol, spline: CGMutablePath, - matrix: CGAffineTransform, drawingColor: NSUIColor) { context.beginPath() @@ -187,7 +185,7 @@ open class LineChartRenderer: LineRadarRenderer } else { - drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) + drawLine(context: context, spline: cubicPath, drawingColor: drawingColor) } } @@ -257,7 +255,7 @@ open class LineChartRenderer: LineRadarRenderer } else { - drawLine(context: context, dataSet: dataSet, spline: cubicPath, matrix: valueToPixelMatrix, drawingColor: drawingColor) + drawLine(context: context, spline: cubicPath, drawingColor: drawingColor) } } From 6bd7bbd7d4cbfcf2c5ff852a1e152ddead862762 Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Thu, 26 Apr 2018 14:55:06 +0300 Subject: [PATCH 33/84] Fix gradient location calculation --- .../Charts/Renderers/LineChartRenderer.swift | 71 ++++++++----------- 1 file changed, 31 insertions(+), 40 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index d8dbd510d5..c28aa1f17a 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -811,42 +811,35 @@ open class LineChartRenderer: LineRadarRenderer return } - context.saveGState() - defer { context.restoreGState() } - - let gradientPath = spline.copy(strokingWithWidth: dataSet.lineWidth, lineCap: .butt, lineJoin: .miter, miterLimit: 10) - context.addPath(gradientPath) - context.drawPath(using: .fill) + let boundingBox = spline.boundingBox + guard !boundingBox.isNull && !boundingBox.isInfinite && !boundingBox.isEmpty else { + return + } - let boundingBox = gradientPath.boundingBox - let gradientStart = CGPoint(x: 0, y: boundingBox.maxY) - let gradientEnd = CGPoint(x: 0, y: boundingBox.minY) - var gradientColorComponents = [CGFloat]() - var gradientLocations = [CGFloat]() + let gradientStart = CGPoint(x: 0, y: boundingBox.minY) + let gradientEnd = CGPoint(x: 0, y: boundingBox.maxY) + var gradientColorComponents: [CGFloat] = [] + var gradientLocations: [CGFloat] = [] - gradientLocations.append(0) - for position in gradientPositions + for position in gradientPositions.reversed() { - let positionLocation = CGPoint(x: 0, y: position) + let location = CGPoint(x: boundingBox.minX, y: position) .applying(matrix) - let normPositionLocation = (positionLocation.y - gradientStart.y) / (gradientEnd.y - gradientStart.y) - if normPositionLocation < 0 { + let normalizedLocation = + (location.y - boundingBox.minY) / (boundingBox.maxY - boundingBox.minY) + switch normalizedLocation { + case ..<0: gradientLocations.append(0) - } else if normPositionLocation > 1 { + case 0..<1: + gradientLocations.append(normalizedLocation) + case 1...: gradientLocations.append(1) - } else { - gradientLocations.append(normPositionLocation) + default: + assertionFailure() } } - gradientLocations.append(1) - - // Lower bound color - // + Middle colors - // + Upper bound color - let colors = - [dataSet.color(atIndex: 0)] + dataSet.colors + [dataSet.color(atIndex: dataSet.colors.count - 1)] - for color in colors + for color in dataSet.colors.reversed() { guard let (r, g, b, a) = color.nsuiRGBA else { continue @@ -855,22 +848,20 @@ open class LineChartRenderer: LineRadarRenderer } let baseColorSpace = CGColorSpaceCreateDeviceRGB() - let baseColorSpaceComponentsCount = baseColorSpace.numberOfComponents + 1 // // Add 1 for the alpha channel - - let gradient: CGGradient? - if gradientPositions.count > 1 - { - gradient = CGGradient(colorSpace: baseColorSpace, colorComponents: &gradientColorComponents, locations: &gradientLocations, count: gradientColorComponents.count / baseColorSpaceComponentsCount) - } else { - gradient = CGGradient(colorSpace: baseColorSpace, colorComponents: gradientColorComponents, locations: nil, count: gradientColorComponents.count / baseColorSpaceComponentsCount) + guard let gradient = CGGradient( + colorSpace: baseColorSpace, + colorComponents: &gradientColorComponents, + locations: &gradientLocations, + count: gradientLocations.count) else { + return } - guard gradient != nil else { return } + context.saveGState() + defer { context.restoreGState() } - // Draw gradient path - context.beginPath() - context.addPath(gradientPath) + context.addPath(spline) + context.replacePathWithStrokedPath() context.clip() - context.drawLinearGradient(gradient!, start: gradientStart, end: gradientEnd, options: []) + context.drawLinearGradient(gradient, start: gradientStart, end: gradientEnd, options: []) } } From 9f2067984d6097bcd04366d2d5fd093604f6c565 Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Fri, 27 Apr 2018 15:24:22 +0300 Subject: [PATCH 34/84] Add toggle gradient line into demo options --- .../Swift/DemoBaseViewController.swift | 4 + .../Demos/LineChart1ViewController.swift | 99 ++++++++++++------- 2 files changed, 66 insertions(+), 37 deletions(-) diff --git a/ChartsDemo-iOS/Swift/DemoBaseViewController.swift b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift index b643420520..1f1a20144f 100644 --- a/ChartsDemo-iOS/Swift/DemoBaseViewController.swift +++ b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift @@ -21,6 +21,8 @@ enum Option { case toggleAutoScaleMinMax case toggleData case toggleBarBorders + // LineChart + case toggleGradientLine // CandleChart case toggleShadowColorSameAsCandle // CombinedChart @@ -58,6 +60,8 @@ enum Option { case .toggleAutoScaleMinMax: return "Toggle auto scale min/max" case .toggleData: return "Toggle Data" case .toggleBarBorders: return "Toggle Bar Borders" + // LineChart + case .toggleGradientLine: return "Toggle Gradient Line" // CandleChart case .toggleShadowColorSameAsCandle: return "Toggle shadow same color" // CombinedChart diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift index b3f242873f..2d76df33ef 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift @@ -30,6 +30,7 @@ class LineChart1ViewController: DemoBaseViewController { .toggleIcons, .toggleStepped, .toggleHighlight, + .toggleGradientLine, .animateX, .animateY, .animateXY, @@ -37,36 +38,36 @@ class LineChart1ViewController: DemoBaseViewController { .togglePinchZoom, .toggleAutoScaleMinMax, .toggleData] - + chartView.delegate = self - + chartView.chartDescription.enabled = false chartView.dragEnabled = true chartView.setScaleEnabled(true) chartView.pinchZoomEnabled = true - + // x-axis limit line let llXAxis = ChartLimitLine(limit: 10, label: "Index 10") llXAxis.lineWidth = 4 llXAxis.lineDashLengths = [10, 10, 0] llXAxis.labelPosition = .rightBottom llXAxis.valueFont = .systemFont(ofSize: 10) - + chartView.xAxis.gridLineDashLengths = [10, 10] chartView.xAxis.gridLineDashPhase = 0 - + let ll1 = ChartLimitLine(limit: 150, label: "Upper Limit") ll1.lineWidth = 4 ll1.lineDashLengths = [5, 5] ll1.labelPosition = .rightTop ll1.valueFont = .systemFont(ofSize: 10) - + let ll2 = ChartLimitLine(limit: -30, label: "Lower Limit") ll2.lineWidth = 4 ll2.lineDashLengths = [5,5] ll2.labelPosition = .rightBottom ll2.valueFont = .systemFont(ofSize: 10) - + let leftAxis = chartView.leftAxis leftAxis.removeAllLimitLines() leftAxis.addLimitLine(ll1) @@ -75,9 +76,9 @@ class LineChart1ViewController: DemoBaseViewController { leftAxis.axisMinimum = -50 leftAxis.gridLineDashLengths = [5, 5] leftAxis.drawLimitLinesBehindDataEnabled = true - + chartView.rightAxis.enabled = false - + //[_chartView.viewPortHandler setMaximumScaleY: 2.f]; //[_chartView.viewPortHandler setMaximumScaleX: 2.f]; @@ -88,13 +89,13 @@ class LineChart1ViewController: DemoBaseViewController { marker.chartView = chartView marker.minimumSize = CGSize(width: 80, height: 40) chartView.marker = marker - + chartView.legend.form = .line - + sliderX.value = 45 sliderY.value = 100 slidersValueChanged(nil) - + chartView.animate(xAxisDuration: 2.5) } @@ -103,7 +104,7 @@ class LineChart1ViewController: DemoBaseViewController { chartView.data = nil return } - + self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value)) } @@ -112,35 +113,54 @@ class LineChart1ViewController: DemoBaseViewController { let val = Double(arc4random_uniform(range) + 3) return ChartDataEntry(x: Double(i), y: val, icon: #imageLiteral(resourceName: "icon")) } - + let set1 = LineChartDataSet(values: values, label: "DataSet 1") set1.drawIconsEnabled = false - - set1.lineDashLengths = [5, 2.5] - set1.highlightLineDashLengths = [5, 2.5] - set1.setColor(.black) - set1.setCircleColor(.black) - set1.lineWidth = 1 - set1.circleRadius = 3 - set1.drawCircleHoleEnabled = false - set1.valueFont = .systemFont(ofSize: 9) - set1.formLineDashLengths = [5, 2.5] - set1.formLineWidth = 1 - set1.formSize = 15 - + setup(set1) + let gradientColors = [ChartColorTemplates.colorFromString("#00ff0000").cgColor, ChartColorTemplates.colorFromString("#ffff0000").cgColor] let gradient = CGGradient(colorsSpace: nil, colors: gradientColors as CFArray, locations: nil)! - + set1.fillAlpha = 1 set1.fill = Fill(linearGradient: gradient, angle: 90) //.linearGradient(gradient, angle: 90) set1.drawFilledEnabled = true - + let data = LineChartData(dataSet: set1) - + chartView.data = data } - + + private func setup(_ dataSet: LineChartDataSet) { + if dataSet.isDrawLineWithGradientEnabled { + dataSet.lineDashLengths = nil + dataSet.highlightLineDashLengths = nil + dataSet.setColors(.black, .red, .white) + dataSet.setCircleColor(.black) + dataSet.gradientPositions = [0, 40, 100] + dataSet.lineWidth = 1 + dataSet.circleRadius = 3 + dataSet.drawCircleHoleEnabled = false + dataSet.valueFont = .systemFont(ofSize: 9) + dataSet.formLineDashLengths = nil + dataSet.formLineWidth = 1 + dataSet.formSize = 15 + } else { + dataSet.lineDashLengths = [5, 2.5] + dataSet.highlightLineDashLengths = [5, 2.5] + dataSet.setColor(.black) + dataSet.setCircleColor(.black) + dataSet.gradientPositions = nil + dataSet.lineWidth = 1 + dataSet.circleRadius = 3 + dataSet.drawCircleHoleEnabled = false + dataSet.valueFont = .systemFont(ofSize: 9) + dataSet.formLineDashLengths = [5, 2.5] + dataSet.formLineWidth = 1 + dataSet.formSize = 15 + } + } + override func optionTapped(_ option: Option) { guard let data = chartView.data else { return } @@ -150,31 +170,36 @@ class LineChart1ViewController: DemoBaseViewController { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() - + case .toggleCircles: for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() - + case .toggleCubic: for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() - + case .toggleStepped: for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() - + case .toggleHorizontalCubic: for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() - + case .toggleGradientLine: + for set in chartView.data!.dataSets as! [LineChartDataSet] { + set.isDrawLineWithGradientEnabled = !set.isDrawLineWithGradientEnabled + setup(set) + } + chartView.setNeedsDisplay() default: super.handleOption(option, forChartView: chartView) } @@ -183,7 +208,7 @@ class LineChart1ViewController: DemoBaseViewController { @IBAction func slidersValueChanged(_ sender: Any?) { sliderTextX.text = "\(Int(sliderX.value))" sliderTextY.text = "\(Int(sliderY.value))" - + self.updateChartData() } } From 342e08849b0927209561bcf869750e5bfefbfbdf Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Sat, 28 Apr 2018 08:28:22 +0300 Subject: [PATCH 35/84] Improvements after code review --- Source/Charts/Renderers/LineChartRenderer.swift | 4 ++-- Source/Charts/Utils/Platform.swift | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index c28aa1f17a..a2e4babf71 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -812,7 +812,7 @@ open class LineChartRenderer: LineRadarRenderer } let boundingBox = spline.boundingBox - guard !boundingBox.isNull && !boundingBox.isInfinite && !boundingBox.isEmpty else { + guard !boundingBox.isNull, !boundingBox.isInfinite, !boundingBox.isEmpty else { return } @@ -841,7 +841,7 @@ open class LineChartRenderer: LineRadarRenderer for color in dataSet.colors.reversed() { - guard let (r, g, b, a) = color.nsuiRGBA else { + guard let (r, g, b, a) = color.nsuirgba else { continue } gradientColorComponents += [r, g, b, a] diff --git a/Source/Charts/Utils/Platform.swift b/Source/Charts/Utils/Platform.swift index 8d7fb209cd..5055619ba4 100644 --- a/Source/Charts/Utils/Platform.swift +++ b/Source/Charts/Utils/Platform.swift @@ -27,7 +27,7 @@ types are aliased to either their UI* implementation (on iOS) or their NS* imple extension NSUIColor { - var nsuiRGBA: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)? { + var nsuirgba: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)? { var red: CGFloat = 0 var green: CGFloat = 0 var blue: CGFloat = 0 @@ -322,7 +322,7 @@ types are aliased to either their UI* implementation (on iOS) or their NS* imple extension NSUIColor { - var nsuiRGBA: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)? { + var nsuirgba: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)? { var red: CGFloat = 0 var green: CGFloat = 0 var blue: CGFloat = 0 From 50b29b45f6de53b4abe51270425c7084d9563e8f Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Sat, 28 Apr 2018 08:40:13 +0300 Subject: [PATCH 36/84] Code cleanup --- Source/Charts/Renderers/LineChartRenderer.swift | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index a2e4babf71..d5f30492b9 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -779,11 +779,9 @@ open class LineChartRenderer: LineRadarRenderer let phaseX = CGFloat(animator.phaseX) let phaseY = CGFloat(animator.phaseY) - var e: ChartDataEntry! - let generatedPath = CGMutablePath() - e = dataSet.entryForIndex(from) - if e != nil + + if let e = dataSet.entryForIndex(from) { generatedPath.move(to: CGPoint(x: CGFloat(e.x), y: CGFloat(e.y) * phaseY), transform: matrix) } @@ -795,7 +793,8 @@ open class LineChartRenderer: LineRadarRenderer return generatedPath } - for i in (from + 1).. Date: Sat, 28 Apr 2018 13:08:49 +0300 Subject: [PATCH 37/84] Remove unnecessary function for generating gradient line - additional code optimizations --- .../Charts/Renderers/LineChartRenderer.swift | 133 +++++++----------- 1 file changed, 49 insertions(+), 84 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index d5f30492b9..6eaae925f2 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -326,7 +326,7 @@ open class LineChartRenderer: LineRadarRenderer context.setLineCap(dataSet.lineCapType) // more than 1 color - if dataSet.colors.count > 1 + if dataSet.colors.count > 1, !dataSet.isDrawLineWithGradientEnabled { if _lineSegments.count != pointsPerEntryPair { @@ -389,71 +389,64 @@ open class LineChartRenderer: LineRadarRenderer } else { // only one color per dataset - - var e1: ChartDataEntry! - var e2: ChartDataEntry! - - e1 = dataSet.entryForIndex(_xBounds.min) - - if e1 != nil + guard dataSet.entryForIndex(_xBounds.min) != nil else { + return + } + + var firstPoint = true + + let path = CGMutablePath() + for x in stride(from: _xBounds.min, through: _xBounds.range + _xBounds.min, by: 1) { - context.beginPath() - var firstPoint = true + guard let e1 = dataSet.entryForIndex(x == 0 ? 0 : (x - 1)) else { continue } + guard let e2 = dataSet.entryForIndex(x) else { continue } - for x in stride(from: _xBounds.min, through: _xBounds.range + _xBounds.min, by: 1) - { - e1 = dataSet.entryForIndex(x == 0 ? 0 : (x - 1)) - e2 = dataSet.entryForIndex(x) - - if e1 == nil || e2 == nil { continue } - - let pt = CGPoint( + let startPoint = + CGPoint( x: CGFloat(e1.x), - y: CGFloat(e1.y * phaseY) - ).applying(valueToPixelMatrix) - - if firstPoint - { - context.move(to: pt) - firstPoint = false - } - else - { - context.addLine(to: pt) - } - - if isDrawSteppedEnabled - { - context.addLine(to: CGPoint( - x: CGFloat(e2.x), - y: CGFloat(e1.y * phaseY) - ).applying(valueToPixelMatrix)) - } - - context.addLine(to: CGPoint( - x: CGFloat(e2.x), - y: CGFloat(e2.y * phaseY) - ).applying(valueToPixelMatrix)) + y: CGFloat(e1.y * phaseY)) + .applying(valueToPixelMatrix) + + if firstPoint + { + path.move(to: startPoint) + firstPoint = false + } + else + { + path.addLine(to: startPoint) } - if !firstPoint + if isDrawSteppedEnabled { + let steppedPoint = + CGPoint( + x: CGFloat(e2.x), + y: CGFloat(e1.y * phaseY)) + .applying(valueToPixelMatrix) + path.addLine(to: steppedPoint) + } + + let endPoint = + CGPoint( + x: CGFloat(e2.x), + y: CGFloat(e2.y * phaseY)) + .applying(valueToPixelMatrix) + path.addLine(to: endPoint) + } + + if !firstPoint + { + if dataSet.isDrawLineWithGradientEnabled { + drawGradientLine(context: context, dataSet: dataSet, spline: path, matrix: valueToPixelMatrix) + } else { + context.beginPath() + context.addPath(path) context.setStrokeColor(dataSet.color(atIndex: 0).cgColor) context.strokePath() } } } - - if (dataSet.isDrawLineWithGradientEnabled) - { - let path = generateGradientLinePath(dataSet: dataSet, - fillMin: dataSet.fillFormatter?.getFillLinePosition(dataSet: dataSet, dataProvider: dataProvider) ?? 0.0, - from: _xBounds.min, - to: _xBounds.max, - matrix: trans.valueToPixelMatrix) - - drawGradientLine(context: context, dataSet: dataSet, spline: path, matrix: valueToPixelMatrix) - } } open func drawLinearFill(context: CGContext, dataSet: LineChartDataSetProtocol, trans: Transformer, bounds: XBounds) @@ -773,35 +766,6 @@ open class LineChartRenderer: LineRadarRenderer context.restoreGState() } - /// Generates the path that is used for gradient drawing. - private func generateGradientLinePath(dataSet: LineChartDataSetProtocol, fillMin: CGFloat, from: Int, to: Int, matrix: CGAffineTransform) -> CGPath - { - let phaseX = CGFloat(animator.phaseX) - let phaseY = CGFloat(animator.phaseY) - - let generatedPath = CGMutablePath() - - if let e = dataSet.entryForIndex(from) - { - generatedPath.move(to: CGPoint(x: CGFloat(e.x), y: CGFloat(e.y) * phaseY), transform: matrix) - } - - // create a new path - let to = Int(ceil(CGFloat(to - from) * phaseX + CGFloat(from))) - - guard (from + 1) < to else { - return generatedPath - } - - // enumerate from `from + 1` since the first entry was already used - for i in stride(from: (from + 1), to: to, by: 1) - { - guard let e = dataSet.entryForIndex(i) else { continue } - generatedPath.addLine(to: CGPoint(x: CGFloat(e.x), y: CGFloat(e.y) * phaseY), transform: matrix) - } - return generatedPath - } - func drawGradientLine(context: CGContext, dataSet: LineChartDataSetProtocol, spline: CGPath, matrix: CGAffineTransform) { guard let gradientPositions = dataSet.gradientPositions else @@ -858,6 +822,7 @@ open class LineChartRenderer: LineRadarRenderer context.saveGState() defer { context.restoreGState() } + context.beginPath() context.addPath(spline) context.replacePathWithStrokedPath() context.clip() From aee20f004cc4bfcbda6d1b5431564074cd2e3302 Mon Sep 17 00:00:00 2001 From: Ilya Laryionau Date: Sat, 28 Apr 2018 13:58:45 +0300 Subject: [PATCH 38/84] Fix: gradient lines peaks are truncated when line width > 1 --- Source/Charts/Renderers/LineChartRenderer.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 6eaae925f2..74793b3648 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -774,7 +774,13 @@ open class LineChartRenderer: LineRadarRenderer return } + // `insetBy` is applied since bounding box + // doesn't take into account line width + // so that peaks are trimmed since + // gradient start and gradient end calculated wrong let boundingBox = spline.boundingBox + .insetBy(dx: -dataSet.lineWidth / 2, dy: -dataSet.lineWidth / 2) + guard !boundingBox.isNull, !boundingBox.isInfinite, !boundingBox.isEmpty else { return } From 4d2e335ead8de57ec72041ab5b7352a2157a139b Mon Sep 17 00:00:00 2001 From: Katalin Nagy Date: Mon, 7 May 2018 21:10:31 +0300 Subject: [PATCH 39/84] Make legendRenderer property public in order to be externally customizable --- Source/Charts/Charts/ChartViewBase.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index 0f21234ad1..473ab09c35 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -102,7 +102,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate open var noDataTextAlignment: NSTextAlignment = .left /// The renderer object responsible for rendering / drawing the Legend. - @objc open internal(set) lazy var legendRenderer = LegendRenderer(viewPortHandler: viewPortHandler, legend: legend) + @objc open lazy var legendRenderer = LegendRenderer(viewPortHandler: viewPortHandler, legend: legend) /// object responsible for rendering the data @objc open var renderer: DataRenderer? From 0a7b71251774a0a14ab489a2b60e866321499eb6 Mon Sep 17 00:00:00 2001 From: Pierre-Marc Airoldi Date: Sun, 10 Jun 2018 19:19:35 -0400 Subject: [PATCH 40/84] fix build issue in objc demo --- .../Objective-C/Demos/CandleStickChartViewController.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m index aba3b96343..40715a4964 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/CandleStickChartViewController.m @@ -137,7 +137,7 @@ - (void)optionTapped:(NSString *)key return; } else if ([key isEqualToString:@"toggleShowCandleBar"]) { - for (id set in _chartView.data.dataSets) + for (id set in _chartView.data.dataSets) { set.showCandleBar = !set.showCandleBar; } From 96345f65cfec133f388a78e17099d0237f046a35 Mon Sep 17 00:00:00 2001 From: Marshall Weir Date: Sat, 27 Jan 2018 13:39:38 -0500 Subject: [PATCH 41/84] Add minimum slice angle for value labels to PieChartView --- .../Objective-C/Demos/PieChartViewController.m | 11 +++++++++-- .../Demos/PiePolylineChartViewController.m | 7 +++++++ .../Swift/DemoBaseViewController.swift | 2 ++ .../Swift/Demos/PieChartViewController.swift | 9 +++++++-- .../Demos/PiePolylineChartViewController.swift | 5 +++++ Source/Charts/Charts/PieChartView.swift | 16 ++++++++++++++++ Source/Charts/Renderers/PieChartRenderer.swift | 9 +++++---- 7 files changed, 51 insertions(+), 8 deletions(-) diff --git a/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m index 009800615d..5462577a95 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m @@ -36,6 +36,7 @@ - (void)viewDidLoad @{@"key": @"togglePercent", @"label": @"Toggle Percent"}, @{@"key": @"toggleHole", @"label": @"Toggle Hole"}, @{@"key": @"toggleIcons", @"label": @"Toggle Icons"}, + @{@"key": @"toggleLabelsMinimumAngle", @"label": @"Toggle Labels Minimum Angle"}, @{@"key": @"animateX", @"label": @"Animate X"}, @{@"key": @"animateY", @"label": @"Animate Y"}, @{@"key": @"animateXY", @"label": @"Animate XY"}, @@ -59,7 +60,7 @@ - (void)viewDidLoad l.yOffset = 0.0; // entry label styling - _chartView.entryLabelColor = UIColor.whiteColor; + _chartView.entryLabelColor = UIColor.blackColor; _chartView.entryLabelFont = [UIFont fontWithName:@"HelveticaNeue-Light" size:12.f]; _sliderX.value = 4.0; @@ -125,7 +126,7 @@ - (void)setDataCount:(int)count range:(double)range pFormatter.percentSymbol = @" %"; [data setValueFormatter:[[ChartDefaultValueFormatter alloc] initWithFormatter:pFormatter]]; [data setValueFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:11.f]]; - [data setValueTextColor:UIColor.whiteColor]; + [data setValueTextColor:UIColor.blackColor]; _chartView.data = data; [_chartView highlightValues:nil]; @@ -157,6 +158,12 @@ - (void)optionTapped:(NSString *)key return; } + if ([key isEqualToString:@"toggleLabelsMinimumAngle"]) + { + CGFloat newMinimum = _chartView.drawSliceTextMinimumAngle == 20.0 ? 0.0 : 20.0; + _chartView.drawSliceTextMinimumAngle = newMinimum; + } + if ([key isEqualToString:@"drawCenter"]) { _chartView.drawCenterTextEnabled = !_chartView.isDrawCenterTextEnabled; diff --git a/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m index fbf3c366bb..e8c058a329 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m @@ -31,6 +31,7 @@ - (void)viewDidLoad @{@"key": @"toggleXValues", @"label": @"Toggle X-Values"}, @{@"key": @"togglePercent", @"label": @"Toggle Percent"}, @{@"key": @"toggleHole", @"label": @"Toggle Hole"}, + @{@"key": @"toggleLabelsMinimumAngle", @"label": @"Toggle Labels Minimum Angle"}, @{@"key": @"animateX", @"label": @"Animate X"}, @{@"key": @"animateY", @"label": @"Animate Y"}, @{@"key": @"animateXY", @"label": @"Animate XY"}, @@ -144,6 +145,12 @@ - (void)optionTapped:(NSString *)key return; } + if ([key isEqualToString:@"toggleLabelsMinimumAngle"]) + { + CGFloat newMinimum = _chartView.drawSliceTextMinimumAngle == 20.0 ? 0.0 : 20.0; + _chartView.drawSliceTextMinimumAngle = newMinimum; + } + if ([key isEqualToString:@"drawCenter"]) { _chartView.drawCenterTextEnabled = !_chartView.isDrawCenterTextEnabled; diff --git a/ChartsDemo-iOS/Swift/DemoBaseViewController.swift b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift index aee58eb646..27e911a7a2 100644 --- a/ChartsDemo-iOS/Swift/DemoBaseViewController.swift +++ b/ChartsDemo-iOS/Swift/DemoBaseViewController.swift @@ -42,6 +42,7 @@ enum Option { case toggleHole case spin case drawCenter + case toggleLabelsMinimumAngle // RadarChart case toggleXLabels case toggleYLabels @@ -82,6 +83,7 @@ enum Option { case .toggleHole: return "Toggle Hole" case .spin: return "Spin" case .drawCenter: return "Draw CenterText" + case .toggleLabelsMinimumAngle: return "Toggle Labels Minimum Angle" // RadarChart case .toggleXLabels: return "Toggle X-Labels" case .toggleYLabels: return "Toggle Y-Labels" diff --git a/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift index 5b0acf4b64..3f6397b0c9 100644 --- a/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift @@ -21,13 +21,14 @@ class PieChartViewController: DemoBaseViewController { super.viewDidLoad() // Do any additional setup after loading the view. - self.title = "Half Pie Bar Chart" + self.title = "Pie Chart" self.options = [.toggleValues, .toggleXValues, .togglePercent, .toggleHole, .toggleIcons, + .toggleLabelsMinimumAngle, .animateX, .animateY, .animateXY, @@ -99,7 +100,7 @@ class PieChartViewController: DemoBaseViewController { data.setValueFormatter(DefaultValueFormatter(formatter: pFormatter)) data.setValueFont(.systemFont(ofSize: 11, weight: .light)) - data.setValueTextColor(.white) + data.setValueTextColor(.black) chartView.data = data chartView.highlightValues(nil) @@ -119,6 +120,10 @@ class PieChartViewController: DemoBaseViewController { chartView.drawHoleEnabled = !chartView.drawHoleEnabled chartView.setNeedsDisplay() + case .toggleLabelsMinimumAngle: + chartView.drawSliceTextMinimumAngle = chartView.drawSliceTextMinimumAngle == 0.0 ? 20.0 : 0.0 + chartView.setNeedsDisplay() + case .drawCenter: chartView.drawCenterTextEnabled = !chartView.drawCenterTextEnabled chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift index 5b48713b2f..9ed93d043b 100644 --- a/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift @@ -27,6 +27,7 @@ class PiePolylineChartViewController: DemoBaseViewController { .toggleXValues, .togglePercent, .toggleHole, + .toggleLabelsMinimumAngle, .animateX, .animateY, .animateXY, @@ -111,6 +112,10 @@ class PiePolylineChartViewController: DemoBaseViewController { chartView.drawHoleEnabled = !chartView.drawHoleEnabled chartView.setNeedsDisplay() + case .toggleLabelsMinimumAngle: + chartView.drawSliceTextMinimumAngle = chartView.drawSliceTextMinimumAngle == 0.0 ? 20.0 : 0.0 + chartView.setNeedsDisplay() + case .drawCenter: chartView.drawCenterTextEnabled = !chartView.drawCenterTextEnabled chartView.setNeedsDisplay() diff --git a/Source/Charts/Charts/PieChartView.swift b/Source/Charts/Charts/PieChartView.swift index 8ab6dd7b5b..1b70ccc352 100644 --- a/Source/Charts/Charts/PieChartView.swift +++ b/Source/Charts/Charts/PieChartView.swift @@ -72,6 +72,8 @@ open class PieChartView: PieRadarChartViewBase /// maximum angle for this pie private var _maxAngle: CGFloat = 360.0 + private var _drawSliceTextMinimumAngle: CGFloat = 0.0 + public override init(frame: CGRect) { super.init(frame: frame) @@ -635,4 +637,18 @@ open class PieChartView: PieRadarChartViewBase } } } + + /// smallest pie slice angle that will have a label drawn + @objc open var drawSliceTextMinimumAngle: CGFloat + { + get + { + return _drawSliceTextMinimumAngle + } + set + { + _drawSliceTextMinimumAngle = newValue + setNeedsDisplay() + } + } } diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index fdc8f9417c..be271cb47e 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -292,6 +292,7 @@ open class PieChartRenderer: NSObject, DataRenderer let drawEntryLabels = chart.isDrawEntryLabelsEnabled let usePercentValuesEnabled = chart.usePercentValuesEnabled + let drawSliceTextMinimumAngle = chart.drawSliceTextMinimumAngle let entryLabelColor = chart.entryLabelColor let entryLabelFont = chart.entryLabelFont @@ -358,10 +359,10 @@ open class PieChartRenderer: NSObject, DataRenderer let sliceXBase = cos(transformedAngle.DEG2RAD) let sliceYBase = sin(transformedAngle.DEG2RAD) - let drawXOutside = drawEntryLabels && xValuePosition == .outsideSlice - let drawYOutside = drawValues && yValuePosition == .outsideSlice - let drawXInside = drawEntryLabels && xValuePosition == .insideSlice - let drawYInside = drawValues && yValuePosition == .insideSlice + let drawXOutside = sliceAngle > drawSliceTextMinimumAngle && drawEntryLabels && xValuePosition == .outsideSlice + let drawYOutside = sliceAngle > drawSliceTextMinimumAngle && drawValues && yValuePosition == .outsideSlice + let drawXInside = sliceAngle > drawSliceTextMinimumAngle && drawEntryLabels && xValuePosition == .insideSlice + let drawYInside = sliceAngle > drawSliceTextMinimumAngle && drawValues && yValuePosition == .insideSlice let valueTextColor = dataSet.valueTextColorAt(j) let entryLabelColor = dataSet.entryLabelColor From 75c4fa589ed88040af07b45b3e208590c998151a Mon Sep 17 00:00:00 2001 From: Marshall Weir Date: Mon, 26 Mar 2018 14:43:03 -0400 Subject: [PATCH 42/84] Rename drawSliceTextMinimumAngle to sliceTextDrawingThreshold --- Source/Charts/Charts/PieChartView.swift | 14 +++----------- Source/Charts/Renderers/PieChartRenderer.swift | 10 +++++----- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/Source/Charts/Charts/PieChartView.swift b/Source/Charts/Charts/PieChartView.swift index 1b70ccc352..d41f073c3e 100644 --- a/Source/Charts/Charts/PieChartView.swift +++ b/Source/Charts/Charts/PieChartView.swift @@ -72,8 +72,6 @@ open class PieChartView: PieRadarChartViewBase /// maximum angle for this pie private var _maxAngle: CGFloat = 360.0 - private var _drawSliceTextMinimumAngle: CGFloat = 0.0 - public override init(frame: CGRect) { super.init(frame: frame) @@ -638,16 +636,10 @@ open class PieChartView: PieRadarChartViewBase } } - /// smallest pie slice angle that will have a label drawn - @objc open var drawSliceTextMinimumAngle: CGFloat + /// smallest pie slice angle that will have a label drawn in degrees, 0 by default + @objc open var sliceTextDrawingThreshold: CGFloat = 0.0 { - get - { - return _drawSliceTextMinimumAngle - } - set - { - _drawSliceTextMinimumAngle = newValue + didSet { setNeedsDisplay() } } diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index be271cb47e..2482fe0e59 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -292,7 +292,7 @@ open class PieChartRenderer: NSObject, DataRenderer let drawEntryLabels = chart.isDrawEntryLabelsEnabled let usePercentValuesEnabled = chart.usePercentValuesEnabled - let drawSliceTextMinimumAngle = chart.drawSliceTextMinimumAngle + let sliceTextDrawingThreshold = chart.sliceTextDrawingThreshold let entryLabelColor = chart.entryLabelColor let entryLabelFont = chart.entryLabelFont @@ -359,10 +359,10 @@ open class PieChartRenderer: NSObject, DataRenderer let sliceXBase = cos(transformedAngle.DEG2RAD) let sliceYBase = sin(transformedAngle.DEG2RAD) - let drawXOutside = sliceAngle > drawSliceTextMinimumAngle && drawEntryLabels && xValuePosition == .outsideSlice - let drawYOutside = sliceAngle > drawSliceTextMinimumAngle && drawValues && yValuePosition == .outsideSlice - let drawXInside = sliceAngle > drawSliceTextMinimumAngle && drawEntryLabels && xValuePosition == .insideSlice - let drawYInside = sliceAngle > drawSliceTextMinimumAngle && drawValues && yValuePosition == .insideSlice + let drawXOutside = sliceAngle > sliceTextDrawingThreshold && drawEntryLabels && xValuePosition == .outsideSlice + let drawYOutside = sliceAngle > sliceTextDrawingThreshold && drawValues && yValuePosition == .outsideSlice + let drawXInside = sliceAngle > sliceTextDrawingThreshold && drawEntryLabels && xValuePosition == .insideSlice + let drawYInside = sliceAngle > sliceTextDrawingThreshold && drawValues && yValuePosition == .insideSlice let valueTextColor = dataSet.valueTextColorAt(j) let entryLabelColor = dataSet.entryLabelColor From ba6bbc1c893b39025bc6433d6cab072545260969 Mon Sep 17 00:00:00 2001 From: Marshall Weir Date: Mon, 26 Mar 2018 15:03:11 -0400 Subject: [PATCH 43/84] Fix sliceTextDrawingThreshold renaming in demo --- ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift | 2 +- ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift index 3f6397b0c9..1c9b61ad9a 100644 --- a/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/PieChartViewController.swift @@ -121,7 +121,7 @@ class PieChartViewController: DemoBaseViewController { chartView.setNeedsDisplay() case .toggleLabelsMinimumAngle: - chartView.drawSliceTextMinimumAngle = chartView.drawSliceTextMinimumAngle == 0.0 ? 20.0 : 0.0 + chartView.sliceTextDrawingThreshold = chartView.sliceTextDrawingThreshold == 0.0 ? 20.0 : 0.0 chartView.setNeedsDisplay() case .drawCenter: diff --git a/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift index 9ed93d043b..0691bc6094 100644 --- a/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/PiePolylineChartViewController.swift @@ -113,7 +113,7 @@ class PiePolylineChartViewController: DemoBaseViewController { chartView.setNeedsDisplay() case .toggleLabelsMinimumAngle: - chartView.drawSliceTextMinimumAngle = chartView.drawSliceTextMinimumAngle == 0.0 ? 20.0 : 0.0 + chartView.sliceTextDrawingThreshold = chartView.sliceTextDrawingThreshold == 0.0 ? 20.0 : 0.0 chartView.setNeedsDisplay() case .drawCenter: From 89706c0b9c4be20d7d73673d7b85c79432f838eb Mon Sep 17 00:00:00 2001 From: Pierre-Marc Airoldi Date: Sun, 10 Jun 2018 19:54:57 -0400 Subject: [PATCH 44/84] fix build of demos --- ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m | 4 ++-- .../Objective-C/Demos/PiePolylineChartViewController.m | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m index 5462577a95..8dd0844c0e 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PieChartViewController.m @@ -160,8 +160,8 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleLabelsMinimumAngle"]) { - CGFloat newMinimum = _chartView.drawSliceTextMinimumAngle == 20.0 ? 0.0 : 20.0; - _chartView.drawSliceTextMinimumAngle = newMinimum; + CGFloat newMinimum = _chartView.sliceTextDrawingThreshold == 20.0 ? 0.0 : 20.0; + _chartView.sliceTextDrawingThreshold = newMinimum; } if ([key isEqualToString:@"drawCenter"]) diff --git a/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m index e8c058a329..2f041f9c57 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/PiePolylineChartViewController.m @@ -147,8 +147,8 @@ - (void)optionTapped:(NSString *)key if ([key isEqualToString:@"toggleLabelsMinimumAngle"]) { - CGFloat newMinimum = _chartView.drawSliceTextMinimumAngle == 20.0 ? 0.0 : 20.0; - _chartView.drawSliceTextMinimumAngle = newMinimum; + CGFloat newMinimum = _chartView.sliceTextDrawingThreshold == 20.0 ? 0.0 : 20.0; + _chartView.sliceTextDrawingThreshold = newMinimum; } if ([key isEqualToString:@"drawCenter"]) From 7a5239a50a1288d7f80a6773f90e7533abda3476 Mon Sep 17 00:00:00 2001 From: Pierre-Marc Airoldi Date: Fri, 20 Jul 2018 10:50:14 -0400 Subject: [PATCH 45/84] Add label colors to legend entries (#3558) * add label colors to legend entries * Change interface of LegendEntry --- Source/Charts/Components/LegendEntry.swift | 29 +--- Source/Charts/Renderers/LegendRenderer.swift | 144 ++++++++----------- 2 files changed, 66 insertions(+), 107 deletions(-) diff --git a/Source/Charts/Components/LegendEntry.swift b/Source/Charts/Components/LegendEntry.swift index 88ed2e115c..15f52476e6 100644 --- a/Source/Charts/Components/LegendEntry.swift +++ b/Source/Charts/Components/LegendEntry.swift @@ -23,36 +23,21 @@ open class LegendEntry: NSObject { super.init() } - + /// - parameter label: The legend entry text. /// A `nil` label will start a group. - /// - parameter form: The form to draw for this entry. - /// - parameter formSize: Set to NaN to use the legend's default. - /// - parameter formLineWidth: Set to NaN to use the legend's default. - /// - parameter formLineDashPhase: Line dash configuration. - /// - parameter formLineDashLengths: Line dash configurationas NaN to use the legend's default. - /// - parameter formColor: The color for drawing the form. - @objc public init(label: String?, - form: Legend.Form, - formSize: CGFloat, - formLineWidth: CGFloat, - formLineDashPhase: CGFloat, - formLineDashLengths: [CGFloat]?, - formColor: NSUIColor?) + @objc public init(label: String?) { self.label = label - self.form = form - self.formSize = formSize - self.formLineWidth = formLineWidth - self.formLineDashPhase = formLineDashPhase - self.formLineDashLengths = formLineDashLengths - self.formColor = formColor } - + /// The legend entry text. /// A `nil` label will start a group. @objc open var label: String? - + + /// The color for drawing the label + @objc open var labelColor: NSUIColor? + /// The form to draw for this entry. /// /// `None` will avoid drawing a form, and any related space. diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index 10ac1dff1a..dcb438bf87 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -56,34 +56,24 @@ open class LegendRenderer: NSObject, Renderer for j in 0.. Date: Tue, 21 Aug 2018 11:06:53 +0300 Subject: [PATCH 46/84] Add Swift version 4.1 to podspec --- Charts.podspec | 1 + 1 file changed, 1 insertion(+) diff --git a/Charts.podspec b/Charts.podspec index 2ae9bd88e6..84316875d3 100644 --- a/Charts.podspec +++ b/Charts.podspec @@ -5,6 +5,7 @@ Pod::Spec.new do |s| s.homepage = "https://github.com/danielgindi/Charts" s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE" } s.authors = "Daniel Cohen Gindi", "Philipp Jahoda" + s.swift_version = '4.1' s.ios.deployment_target = "8.0" s.tvos.deployment_target = "9.0" s.osx.deployment_target = "10.11" From be8b386fdb27d662839063dd90c08fdf79e2ae21 Mon Sep 17 00:00:00 2001 From: jjatie Date: Tue, 25 Dec 2018 01:02:41 -0400 Subject: [PATCH 47/84] Turned gradient components and locations into constants (#3775) --- .../Charts/Renderers/LineChartRenderer.swift | 44 +++++++------------ 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 85b9337b82..1fdd82e0a3 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -836,40 +836,28 @@ open class LineChartRenderer: LineRadarRenderer let gradientStart = CGPoint(x: 0, y: boundingBox.minY) let gradientEnd = CGPoint(x: 0, y: boundingBox.maxY) - var gradientColorComponents: [CGFloat] = [] - var gradientLocations: [CGFloat] = [] - - for position in gradientPositions.reversed() - { - let location = CGPoint(x: boundingBox.minX, y: position) - .applying(matrix) - let normalizedLocation = - (location.y - boundingBox.minY) / (boundingBox.maxY - boundingBox.minY) - switch normalizedLocation { - case ..<0: - gradientLocations.append(0) - case 0..<1: - gradientLocations.append(normalizedLocation) - case 1...: - gradientLocations.append(1) - default: - assertionFailure() - } + let gradientColorComponents: [CGFloat] = dataSet.colors + .reversed() + .reduce(into: []) { (components, color) in + guard let (r, g, b, a) = color.nsuirgba else { + return + } + components += [r, g, b, a] } - - for color in dataSet.colors.reversed() - { - guard let (r, g, b, a) = color.nsuirgba else { - continue - } - gradientColorComponents += [r, g, b, a] + let gradientLocations: [CGFloat] = gradientPositions.reversed() + .map { (position) in + let location = CGPoint(x: boundingBox.minX, y: position) + .applying(matrix) + let normalizedLocation = (location.y - boundingBox.minY) + / (boundingBox.maxY - boundingBox.minY) + return normalizedLocation.clamped(to: 0...1) } let baseColorSpace = CGColorSpaceCreateDeviceRGB() guard let gradient = CGGradient( colorSpace: baseColorSpace, - colorComponents: &gradientColorComponents, - locations: &gradientLocations, + colorComponents: gradientColorComponents, + locations: gradientLocations, count: gradientLocations.count) else { return } From aa7e20ab931b9726026614763fa0030750e3b711 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Mon, 13 Nov 2017 17:45:45 -0800 Subject: [PATCH 48/84] Cleaned up `ChartDataSet` logic Added TODOs for areas where simple changes can help improve Swift consistency. --- .../Implementations/Standard/ChartDataSet.swift | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index 7f90119ae9..44f06aa94f 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -41,9 +41,9 @@ open class ChartDataSet: ChartBaseDataSet @objc public init(values: [ChartDataEntry], label: String) { self.values = values - + super.init(label: label) - + self.calcMinMax() } @@ -99,6 +99,8 @@ open class ChartDataSet: ChartBaseDataSet open override func calcMinMaxY(fromX: Double, toX: Double) { + guard !_values.isEmpty else { return } + _yMax = -Double.greatestFiniteMagnitude _yMin = Double.greatestFiniteMagnitude @@ -152,7 +154,7 @@ open class ChartDataSet: ChartBaseDataSet /// if `i` is out of bounds, it may throw an out-of-bounds exception open override func entryForIndex(_ i: Int) -> ChartDataEntry? { - guard i >= values.startIndex, i < values.endIndex else { + guard _values.indices.contains(i) else { return nil } return values[i] @@ -425,8 +427,12 @@ open class ChartDataSet: ChartBaseDataSet // TODO: This should return the removed entry to follow Swift convention. open override func removeFirst() -> Bool { - let entry: ChartDataEntry? = values.isEmpty ? nil : values.removeFirst() - return entry != nil + guard !_values.isEmpty else { return false } + + _values.removeFirst() + calcMinMax() + + return true } /// Removes the last Entry (at index size-1) of this DataSet from the entries array. From 438dae757969b27239d281f906ac1500be5fa9dd Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sat, 18 Nov 2017 14:25:17 -0800 Subject: [PATCH 49/84] Added Collection conformances MutableCollection RandomAccessCollection RangeReplaceableCollection --- .../Implementations/Standard/ChartData.swift | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index ef4d1430db..7c4f26eba6 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -546,3 +546,118 @@ extension ChartData return self[index] } } + +// MARK: MutableCollection +extension ChartData: MutableCollection { + public typealias Index = Int + public typealias Element = IChartDataSet + + public var startIndex: Index { + return _dataSets.startIndex + } + + public var endIndex: Index { + return _dataSets.endIndex + } + + public func index(after: Index) -> Index { + return _dataSets.index(after: after) + } + + public subscript(position: Index) -> Element { + get{ return _dataSets[position] } + set{ self._dataSets[position] = newValue } + } +} + +// MARK: RandomAccessCollection +extension ChartData: RandomAccessCollection { + public func index(before: Index) -> Index { + return _dataSets.index(before: before) + } +} + +// MARK: RangeReplaceableCollection +extension ChartData: RangeReplaceableCollection { + public func append(_ newElement: Element) { + self._dataSets.append(newElement) + calcMinMax(dataSet: newElement) + } + + public func remove(at position: Index) -> Element { + let element = self._dataSets.remove(at: position) + calcMinMax() + return element + } + + public func removeFirst() -> Element { + let element = self._dataSets.removeFirst() + notifyDataChanged() + return element + } + + public func removeFirst(_ n: Int) { + self._dataSets.removeFirst(n) + notifyDataChanged() + } + + public func removeLast() -> Element { + let element = self._dataSets.removeLast() + notifyDataChanged() + return element + } + + public func removeLast(_ n: Int) { + self._dataSets.removeLast(n) + notifyDataChanged() + } + +// public func removeSubrange(_ bounds: Range) { +// self.dataSets.removeSubrange(bounds) +// notifyDataChanged() +// } +} + +// MARK: Swift Accessors +extension ChartData { + //TODO: Reevaluate if warning is still true + /// Retrieve the index of a ChartDataSet with a specific label from the ChartData. Search can be case sensitive or not. + /// **IMPORTANT: This method does calculations at runtime, do not over-use in performance critical situations.** + /// + /// - Parameters: + /// - label: The label to search for + /// - ignoreCase: if true, the search is not case-sensitive + /// - Returns: The index of the DataSet Object with the given label. `nil` if not found + public func index(forLabel label: String, ignoreCase: Bool) -> Index? { + return ignoreCase + ? index { $0.label?.caseInsensitiveCompare(label) == .orderedSame } + : index { $0.label == label } + } + + public subscript(label: String, ignoreCase: Bool) -> Element? { + get { + guard let index = index(forLabel: label, ignoreCase: ignoreCase) else { return nil } + return self[index] + } + } + + public subscript(entry: ChartDataEntry) -> Element? { + get { + guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { + return nil + } + return self[index] + } + } + + public func appendEntry(_ e: ChartDataEntry, toDataSet dataSetIndex: Index) { + guard indices.contains(dataSetIndex) else { + print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") + } + + let set = self[dataSetIndex] + if !set.addEntry(e) { return } + calcMinMax(entry: e, axis: set.axisDependency) + } + +} From 8aba0227a2e17ec82e8fd9d124f04ca6d987bb57 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sat, 18 Nov 2017 16:04:02 -0800 Subject: [PATCH 50/84] [#3018] Refactored use of `ChartData` to use new `Collection` conformances --- .../Implementations/Standard/ChartData.swift | 161 +++++------------- .../Standard/ChartDataSet.swift | 8 +- .../Charts/Highlight/ChartHighlighter.swift | 2 +- 3 files changed, 50 insertions(+), 121 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 7c4f26eba6..f39c966866 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -91,6 +91,50 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral xMin = .greatestFiniteMagnitude forEach { calcMinMax(dataSet: $0) } + + // left axis + let firstLeft = getFirstLeft(dataSets: dataSets) + + if firstLeft !== nil + { + leftAxisMax = firstLeft!.yMax + leftAxisMin = firstLeft!.yMin + + for dataSet in _dataSets where dataSet.axisDependency == .left + { + if dataSet.yMin < leftAxisMin + { + leftAxisMin = dataSet.yMin + } + + if dataSet.yMax > leftAxisMax + { + leftAxisMax = dataSet.yMax + } + } + } + + // right axis + let firstRight = getFirstRight(dataSets: dataSets) + + if firstRight !== nil + { + rightAxisMax = firstRight!.yMax + rightAxisMin = firstRight!.yMin + + for dataSet in _dataSets where dataSet.axisDependency == .right + { + if dataSet.yMin < rightAxisMin + { + rightAxisMin = dataSet.yMin + } + + if dataSet.yMax > rightAxisMax + { + rightAxisMax = dataSet.yMax + } + } + } } /// Adjusts the current minimum and maximum values based on the provided Entry object. @@ -345,7 +389,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// If set to true, this means that values can be highlighted programmatically or by touch gesture. @objc open var isHighlightEnabled: Bool { - get { return first { $0.highlightEnabled == false } == nil } + get { return allSatisfy { $0.isHighlightEnabled } } set { forEach { $0.highlightEnabled = newValue } } } @@ -546,118 +590,3 @@ extension ChartData return self[index] } } - -// MARK: MutableCollection -extension ChartData: MutableCollection { - public typealias Index = Int - public typealias Element = IChartDataSet - - public var startIndex: Index { - return _dataSets.startIndex - } - - public var endIndex: Index { - return _dataSets.endIndex - } - - public func index(after: Index) -> Index { - return _dataSets.index(after: after) - } - - public subscript(position: Index) -> Element { - get{ return _dataSets[position] } - set{ self._dataSets[position] = newValue } - } -} - -// MARK: RandomAccessCollection -extension ChartData: RandomAccessCollection { - public func index(before: Index) -> Index { - return _dataSets.index(before: before) - } -} - -// MARK: RangeReplaceableCollection -extension ChartData: RangeReplaceableCollection { - public func append(_ newElement: Element) { - self._dataSets.append(newElement) - calcMinMax(dataSet: newElement) - } - - public func remove(at position: Index) -> Element { - let element = self._dataSets.remove(at: position) - calcMinMax() - return element - } - - public func removeFirst() -> Element { - let element = self._dataSets.removeFirst() - notifyDataChanged() - return element - } - - public func removeFirst(_ n: Int) { - self._dataSets.removeFirst(n) - notifyDataChanged() - } - - public func removeLast() -> Element { - let element = self._dataSets.removeLast() - notifyDataChanged() - return element - } - - public func removeLast(_ n: Int) { - self._dataSets.removeLast(n) - notifyDataChanged() - } - -// public func removeSubrange(_ bounds: Range) { -// self.dataSets.removeSubrange(bounds) -// notifyDataChanged() -// } -} - -// MARK: Swift Accessors -extension ChartData { - //TODO: Reevaluate if warning is still true - /// Retrieve the index of a ChartDataSet with a specific label from the ChartData. Search can be case sensitive or not. - /// **IMPORTANT: This method does calculations at runtime, do not over-use in performance critical situations.** - /// - /// - Parameters: - /// - label: The label to search for - /// - ignoreCase: if true, the search is not case-sensitive - /// - Returns: The index of the DataSet Object with the given label. `nil` if not found - public func index(forLabel label: String, ignoreCase: Bool) -> Index? { - return ignoreCase - ? index { $0.label?.caseInsensitiveCompare(label) == .orderedSame } - : index { $0.label == label } - } - - public subscript(label: String, ignoreCase: Bool) -> Element? { - get { - guard let index = index(forLabel: label, ignoreCase: ignoreCase) else { return nil } - return self[index] - } - } - - public subscript(entry: ChartDataEntry) -> Element? { - get { - guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { - return nil - } - return self[index] - } - } - - public func appendEntry(_ e: ChartDataEntry, toDataSet dataSetIndex: Index) { - guard indices.contains(dataSetIndex) else { - print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") - } - - let set = self[dataSetIndex] - if !set.addEntry(e) { return } - calcMinMax(entry: e, axis: set.axisDependency) - } - -} diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index 44f06aa94f..a945a8aabe 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -99,7 +99,7 @@ open class ChartDataSet: ChartBaseDataSet open override func calcMinMaxY(fromX: Double, toX: Double) { - guard !_values.isEmpty else { return } + guard !values.isEmpty else { return } _yMax = -Double.greatestFiniteMagnitude _yMin = Double.greatestFiniteMagnitude @@ -154,7 +154,7 @@ open class ChartDataSet: ChartBaseDataSet /// if `i` is out of bounds, it may throw an out-of-bounds exception open override func entryForIndex(_ i: Int) -> ChartDataEntry? { - guard _values.indices.contains(i) else { + guard values.indices.contains(i) else { return nil } return values[i] @@ -427,9 +427,9 @@ open class ChartDataSet: ChartBaseDataSet // TODO: This should return the removed entry to follow Swift convention. open override func removeFirst() -> Bool { - guard !_values.isEmpty else { return false } + guard !values.isEmpty else { return false } - _values.removeFirst() + values.removeFirst() calcMinMax() return true diff --git a/Source/Charts/Highlight/ChartHighlighter.swift b/Source/Charts/Highlight/ChartHighlighter.swift index d22302cf45..a75cc940a2 100644 --- a/Source/Charts/Highlight/ChartHighlighter.swift +++ b/Source/Charts/Highlight/ChartHighlighter.swift @@ -74,7 +74,7 @@ open class ChartHighlighter : NSObject, Highlighter guard let data = self.data else { return vals } for (i, set) in zip(data.indices, data) where set.isHighlightEnabled - { + { // extract all y-values from all DataSets at the given x-value. // some datasets (i.e bubble charts) make sense to have multiple values for an x-value. We'll have to find a way to handle that later on. It's more complicated now when x-indices are floating point. vals.append(contentsOf: buildHighlights(dataSet: set, dataSetIndex: i, xValue: xValue, rounding: .closest)) From 2ced54fd113b943ca3d262f4aac3edcbc1476e97 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sun, 19 Nov 2017 21:10:47 -0500 Subject: [PATCH 51/84] Fixed required initializers --- .../Charts/Data/Implementations/Standard/ChartData.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index f39c966866..23fcec2097 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -578,12 +578,20 @@ extension ChartData guard let index = index(forLabel: label, ignoreCase: ignoreCase) else { return nil } return self[index] } +<<<<<<< refs/remotes/origin/4.0.0 public subscript(entry entry: ChartDataEntry) -> Element? { guard !(self is CombinedChartData) else { fatalError("subscript(entry:) not supported for CombinedData") +======= + + public func appendEntry(_ e: ChartDataEntry, toDataSet dataSetIndex: Index) { + guard indices.contains(dataSetIndex) else { + print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") + return +>>>>>>> HEAD~31 } guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { return nil } From 7dfb59e6acc5ff07ee087514b1e812d0e08c4a79 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Fri, 1 Dec 2017 12:07:29 -0500 Subject: [PATCH 52/84] ChartData adopts ExressibleByArrayLiteral --- .../Data/Implementations/Standard/ChartData.swift | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 23fcec2097..f1b580d2e4 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -578,20 +578,12 @@ extension ChartData guard let index = index(forLabel: label, ignoreCase: ignoreCase) else { return nil } return self[index] } -<<<<<<< refs/remotes/origin/4.0.0 - + public subscript(entry entry: ChartDataEntry) -> Element? { guard !(self is CombinedChartData) else { fatalError("subscript(entry:) not supported for CombinedData") -======= - - public func appendEntry(_ e: ChartDataEntry, toDataSet dataSetIndex: Index) { - guard indices.contains(dataSetIndex) else { - print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") - return ->>>>>>> HEAD~31 } guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { return nil } From b554fb0a499ec5963d3e1164857158fcd9381d12 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Fri, 1 Dec 2017 12:22:09 -0500 Subject: [PATCH 53/84] Modified demos to take advantage of collection conformance. --- .../Swift/Demos/CubicLineChartViewController.swift | 2 +- .../Swift/Demos/LineChart2ViewController.swift | 10 +++++----- .../Swift/Demos/LineChartTimeViewController.swift | 10 +++++----- .../Swift/Demos/MultipleLinesChartViewController.swift | 8 ++++---- .../Swift/Demos/RadarChartViewController.swift | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift index 320b02e2c0..ee55bcee50 100644 --- a/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift @@ -131,7 +131,7 @@ class CubicLineChartViewController: DemoBaseViewController { chartView.setNeedsDisplay() case .toggleStepped: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift index f7d8e5a1fb..a0d0582051 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift @@ -147,31 +147,31 @@ class LineChart2ViewController: DemoBaseViewController { switch option { case .toggleFilled: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift index caacc15e07..5a39c8d5e8 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift @@ -122,31 +122,31 @@ class LineChartTimeViewController: DemoBaseViewController { switch option { case .toggleFilled: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift index c358e8b3a2..f12418cb8c 100644 --- a/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift @@ -103,25 +103,25 @@ class MultipleLinesChartViewController: DemoBaseViewController { switch option { case .toggleFilled: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for case let set as LineChartDataSet in data { + for set in chartView.data as! LineChartData { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift index ce5443ff04..91c89a89d6 100644 --- a/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift @@ -168,14 +168,14 @@ class RadarChartViewController: DemoBaseViewController { chartView.rotationEnabled = !chartView.rotationEnabled case .toggleFilled: - for case let set as RadarChartDataSet in data { + for set in chartView.data as! RadarChartData { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleHighlightCircle: - for case let set as RadarChartDataSet in data { + for set in chartView.data as! RadarChartData { set.drawHighlightCircleEnabled = !set.drawHighlightCircleEnabled } chartView.setNeedsDisplay() From 51501a15011406e21248581efb27c52e3afa53fa Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Wed, 13 Dec 2017 22:02:23 -0400 Subject: [PATCH 54/84] Pulled latest master --- Source/Charts/Data/Implementations/Standard/ChartDataSet.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index a945a8aabe..7769bf653a 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -41,9 +41,8 @@ open class ChartDataSet: ChartBaseDataSet @objc public init(values: [ChartDataEntry], label: String) { self.values = values - super.init(label: label) - + self.calcMinMax() } From 78fb68274091aafa172b2a48c712d66ccc3870af Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Mon, 8 Jan 2018 20:31:15 -0400 Subject: [PATCH 55/84] Unified Style Replaced custom algorithms with built-in ones Made axis renderer implementations feel "Swift-ier" --- Source/Charts/Renderers/XAxisRenderer.swift | 364 +++++++----------- .../XAxisRendererHorizontalBarChart.swift | 157 +++----- .../Renderers/XAxisRendererRadarChart.swift | 21 +- Source/Charts/Renderers/YAxisRenderer.swift | 240 +++++------- .../YAxisRendererHorizontalBarChart.swift | 136 +++---- .../Renderers/YAxisRendererRadarChart.swift | 109 ++---- 6 files changed, 381 insertions(+), 646 deletions(-) diff --git a/Source/Charts/Renderers/XAxisRenderer.swift b/Source/Charts/Renderers/XAxisRenderer.swift index b802486b75..d4f14d9928 100644 --- a/Source/Charts/Renderers/XAxisRenderer.swift +++ b/Source/Charts/Renderers/XAxisRenderer.swift @@ -12,9 +12,6 @@ import Foundation import CoreGraphics -#if !os(OSX) - import UIKit -#endif @objc(ChartXAxisRenderer) open class XAxisRenderer: NSObject, AxisRenderer @@ -36,26 +33,16 @@ open class XAxisRenderer: NSObject, AxisRenderer { var min = min, max = max - if let transformer = self.transformer + if let transformer = self.transformer, + viewPortHandler.contentWidth > 10 && !viewPortHandler.isFullyZoomedOutX { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) - if viewPortHandler.contentWidth > 10 && !viewPortHandler.isFullyZoomedOutX - { - let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) - let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentRight, y: viewPortHandler.contentTop)) - - if inverted - { - min = Double(p2.x) - max = Double(p1.x) - } - else - { - min = Double(p1.x) - max = Double(p2.x) - } - } + let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) + let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentRight, y: viewPortHandler.contentTop)) + + min = inverted ? Double(p2.x) : Double(p1.x) + max = inverted ? Double(p1.x) : Double(p2.x) } computeAxisValues(min: min, max: max) @@ -69,10 +56,14 @@ open class XAxisRenderer: NSObject, AxisRenderer let labelCount = axis.labelCount let range = abs(yMax - yMin) - if labelCount == 0 || range <= 0 || range.isInfinite + guard + labelCount != 0, + range > 0, + range.isFinite + else { - axis.entries = [Double]() - axis.centeredEntries = [Double]() + axis.entries = [] + axis.centeredEntries = [] return } @@ -84,7 +75,7 @@ open class XAxisRenderer: NSObject, AxisRenderer // This is used to avoid repeated values when rounding values for display. if axis.granularityEnabled { - interval = interval < axis.granularity ? axis.granularity : interval + interval = Swift.max(interval, axis.granularity) } // Normalize interval @@ -101,19 +92,14 @@ open class XAxisRenderer: NSObject, AxisRenderer // force label count if axis.isForceLabelsEnabled { - interval = Double(range) / Double(labelCount - 1) + interval = range / Double(labelCount - 1) // Ensure stops contains at least n elements. axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - var v = yMin - - for _ in 0 ..< labelCount - { - axis.entries.append(v) - v += interval - } + let values = stride(from: yMin, to: Double(labelCount) * interval + yMin, by: interval) + axis.entries.append(contentsOf: values) n = labelCount } @@ -130,33 +116,17 @@ open class XAxisRenderer: NSObject, AxisRenderer let last = interval == 0.0 ? 0.0 : (floor(yMax / interval) * interval).nextUp - if interval != 0.0 && last != first + if interval != 0.0, last != first { - for _ in stride(from: first, through: last, by: interval) - { - n += 1 - } + stride(from: first, through: last, by: interval).forEach { _ in n += 1 } } // Ensure stops contains at least n elements. axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - var f = first - var i = 0 - while i < n - { - if f == 0.0 - { - // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) - f = 0.0 - } - - axis.entries.append(Double(f)) - - f += interval - i += 1 - } + let values = stride(from: first, to: Double(n) * interval + first, by: interval) + axis.entries.append(contentsOf: values) } // set decimals @@ -171,15 +141,11 @@ open class XAxisRenderer: NSObject, AxisRenderer if axis.centerAxisLabelsEnabled { + axis.centeredEntries.removeAll(keepingCapacity: true) axis.centeredEntries.reserveCapacity(n) - axis.centeredEntries.removeAll() let offset: Double = interval / 2.0 - - for i in 0 ..< n - { - axis.centeredEntries.append(axis.entries[i] + offset) - } + axis.centeredEntries.append(contentsOf: axis.entries.map { $0 + offset }) } computeSize() @@ -204,46 +170,43 @@ open class XAxisRenderer: NSObject, AxisRenderer open func renderAxisLabels(context: CGContext) { - if !axis.isEnabled || !axis.isDrawLabelsEnabled - { - return - } - + guard + axis.isEnabled, + axis.isDrawLabelsEnabled + else { return } + let yOffset = axis.yOffset - if axis.labelPosition == .top - { + switch axis.labelPosition { + case .top: drawLabels(context: context, pos: viewPortHandler.contentTop - yOffset, anchor: CGPoint(x: 0.5, y: 1.0)) - } - else if axis.labelPosition == .topInside - { + + case .topInside: drawLabels(context: context, pos: viewPortHandler.contentTop + yOffset + axis.labelRotatedHeight, anchor: CGPoint(x: 0.5, y: 1.0)) - } - else if axis.labelPosition == .bottom - { + + case .bottom: drawLabels(context: context, pos: viewPortHandler.contentBottom + yOffset, anchor: CGPoint(x: 0.5, y: 0.0)) - } - else if axis.labelPosition == .bottomInside - { + + case .bottomInside: drawLabels(context: context, pos: viewPortHandler.contentBottom - yOffset - axis.labelRotatedHeight, anchor: CGPoint(x: 0.5, y: 0.0)) - } - else - { // BOTH SIDED + + case .bothSided: drawLabels(context: context, pos: viewPortHandler.contentTop - yOffset, anchor: CGPoint(x: 0.5, y: 1.0)) drawLabels(context: context, pos: viewPortHandler.contentBottom + yOffset, anchor: CGPoint(x: 0.5, y: 0.0)) } } - private var _axisLineSegmentsBuffer = [CGPoint](repeating: CGPoint(), count: 2) + private var axisLineSegmentsBuffer = [CGPoint](repeating: .zero, count: 2) open func renderAxisLine(context: CGContext) - { - if !axis.isEnabled || !axis.isDrawAxisLineEnabled - { - return - } - + { + guard + axis.isEnabled, + axis.isDrawAxisLineEnabled + else { return } + context.saveGState() + defer { context.restoreGState() } context.setStrokeColor(axis.axisLineColor.cgColor) context.setLineWidth(axis.axisLineWidth) @@ -260,25 +223,23 @@ open class XAxisRenderer: NSObject, AxisRenderer || axis.labelPosition == .topInside || axis.labelPosition == .bothSided { - _axisLineSegmentsBuffer[0].x = viewPortHandler.contentLeft - _axisLineSegmentsBuffer[0].y = viewPortHandler.contentTop - _axisLineSegmentsBuffer[1].x = viewPortHandler.contentRight - _axisLineSegmentsBuffer[1].y = viewPortHandler.contentTop - context.strokeLineSegments(between: _axisLineSegmentsBuffer) + axisLineSegmentsBuffer[0].x = viewPortHandler.contentLeft + axisLineSegmentsBuffer[0].y = viewPortHandler.contentTop + axisLineSegmentsBuffer[1].x = viewPortHandler.contentRight + axisLineSegmentsBuffer[1].y = viewPortHandler.contentTop + context.strokeLineSegments(between: axisLineSegmentsBuffer) } if axis.labelPosition == .bottom || axis.labelPosition == .bottomInside || axis.labelPosition == .bothSided { - _axisLineSegmentsBuffer[0].x = viewPortHandler.contentLeft - _axisLineSegmentsBuffer[0].y = viewPortHandler.contentBottom - _axisLineSegmentsBuffer[1].x = viewPortHandler.contentRight - _axisLineSegmentsBuffer[1].y = viewPortHandler.contentBottom - context.strokeLineSegments(between: _axisLineSegmentsBuffer) + axisLineSegmentsBuffer[0].x = viewPortHandler.contentLeft + axisLineSegmentsBuffer[0].y = viewPortHandler.contentBottom + axisLineSegmentsBuffer[1].x = viewPortHandler.contentRight + axisLineSegmentsBuffer[1].y = viewPortHandler.contentBottom + context.strokeLineSegments(between: axisLineSegmentsBuffer) } - - context.restoreGState() } /// draws the x-labels on the specified y-position @@ -286,25 +247,19 @@ open class XAxisRenderer: NSObject, AxisRenderer { guard let transformer = self.transformer else { return } - #if os(OSX) - let paraStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle - #else - let paraStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle - #endif + let paraStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle paraStyle.alignment = .center let labelAttrs: [NSAttributedString.Key : Any] = [.font: axis.labelFont, .foregroundColor: axis.labelTextColor, .paragraphStyle: paraStyle] - let labelRotationAngleRadians = axis.labelRotationAngle.DEG2RAD - - let centeringEnabled = axis.isCenterAxisLabelsEnabled + let labelRotationAngleRadians = axis.labelRotationAngle.DEG2RAD + let isCenteringEnabled = axis.isCenterAxisLabelsEnabled let valueToPixelMatrix = transformer.valueToPixelMatrix - - var position = CGPoint(x: 0.0, y: 0.0) - - var labelMaxSize = CGSize() + + var position = CGPoint.zero + var labelMaxSize = CGSize.zero if axis.isWordWrapEnabled { @@ -313,55 +268,45 @@ open class XAxisRenderer: NSObject, AxisRenderer let entries = axis.entries - for i in stride(from: 0, to: entries.count, by: 1) + for i in entries.indices { - if centeringEnabled - { - position.x = CGFloat(axis.centeredEntries[i]) - } - else - { - position.x = CGFloat(entries[i]) - } + let px = isCenteringEnabled ? CGFloat(axis.centeredEntries[i]) : CGFloat(entries[i]) + position = CGPoint(x: px, y: 0) + .applying(valueToPixelMatrix) + + guard viewPortHandler.isInBoundsX(position.x) else { continue } - position.y = 0.0 - position = position.applying(valueToPixelMatrix) + let label = axis.valueFormatter?.stringForValue(axis.entries[i], axis: axis) ?? "" + let labelns = label as NSString - if viewPortHandler.isInBoundsX(position.x) + if axis.isAvoidFirstLastClippingEnabled { - let label = axis.valueFormatter?.stringForValue(axis.entries[i], axis: axis) ?? "" - - let labelns = label as NSString - - if axis.isAvoidFirstLastClippingEnabled + // avoid clipping of the last + if i == axis.entryCount - 1 && axis.entryCount > 1 { - // avoid clipping of the last - if i == axis.entryCount - 1 && axis.entryCount > 1 + let width = labelns.boundingRect(with: labelMaxSize, options: .usesLineFragmentOrigin, attributes: labelAttrs, context: nil).size.width + + if width > viewPortHandler.offsetRight * 2.0, + position.x + width > viewPortHandler.chartWidth { - let width = labelns.boundingRect(with: labelMaxSize, options: .usesLineFragmentOrigin, attributes: labelAttrs, context: nil).size.width - - if width > viewPortHandler.offsetRight * 2.0 - && position.x + width > viewPortHandler.chartWidth - { - position.x -= width / 2.0 - } - } - else if i == 0 - { // avoid clipping of the first - let width = labelns.boundingRect(with: labelMaxSize, options: .usesLineFragmentOrigin, attributes: labelAttrs, context: nil).size.width - position.x += width / 2.0 + position.x -= width / 2.0 } } - - drawLabel(context: context, - formattedLabel: label, - x: position.x, - y: pos, - attributes: labelAttrs, - constrainedTo: labelMaxSize, - anchor: anchor, - angleRadians: labelRotationAngleRadians) + else if i == 0 + { // avoid clipping of the first + let width = labelns.boundingRect(with: labelMaxSize, options: .usesLineFragmentOrigin, attributes: labelAttrs, context: nil).size.width + position.x += width / 2.0 + } } + + drawLabel(context: context, + formattedLabel: label, + x: position.x, + y: pos, + attributes: labelAttrs, + constrainedTo: labelMaxSize, + anchor: anchor, + angleRadians: labelRotationAngleRadians) } } @@ -385,15 +330,15 @@ open class XAxisRenderer: NSObject, AxisRenderer open func renderGridLines(context: CGContext) { - guard let transformer = self.transformer else { return } - - if !axis.isDrawGridLinesEnabled || !axis.isEnabled - { - return - } + guard + let transformer = self.transformer, + axis.isEnabled, + axis.isDrawGridLinesEnabled + else { return } context.saveGState() defer { context.restoreGState() } + context.clip(to: self.gridClippingRect) context.setShouldAntialias(axis.gridAntialiasEnabled) @@ -412,14 +357,14 @@ open class XAxisRenderer: NSObject, AxisRenderer let valueToPixelMatrix = transformer.valueToPixelMatrix - var position = CGPoint(x: 0.0, y: 0.0) + var position = CGPoint.zero let entries = axis.entries - for i in stride(from: 0, to: entries.count, by: 1) + for entry in entries { - position.x = CGFloat(entries[i]) - position.y = position.x + position.x = CGFloat(entry) + position.y = CGFloat(entry) position = position.applying(valueToPixelMatrix) drawGridLine(context: context, x: position.x, y: position.y) @@ -437,14 +382,12 @@ open class XAxisRenderer: NSObject, AxisRenderer @objc open func drawGridLine(context: CGContext, x: CGFloat, y: CGFloat) { - if x >= viewPortHandler.offsetLeft - && x <= viewPortHandler.chartWidth - { - context.beginPath() - context.move(to: CGPoint(x: x, y: viewPortHandler.contentTop)) - context.addLine(to: CGPoint(x: x, y: viewPortHandler.contentBottom)) - context.strokePath() - } + guard (viewPortHandler.offsetLeft...viewPortHandler.chartWidth).contains(x) else { return } + + context.beginPath() + context.move(to: CGPoint(x: x, y: viewPortHandler.contentTop)) + context.addLine(to: CGPoint(x: x, y: viewPortHandler.contentBottom)) + context.strokePath() } open func renderLimitLines(context: CGContext) @@ -453,24 +396,14 @@ open class XAxisRenderer: NSObject, AxisRenderer var limitLines = axis.limitLines - if limitLines.count == 0 - { - return - } - + guard !limitLines.isEmpty else { return } + let trans = transformer.valueToPixelMatrix - var position = CGPoint(x: 0.0, y: 0.0) + var position = CGPoint.zero - for i in 0 ..< limitLines.count + for l in limitLines where l.isEnabled { - let l = limitLines[i] - - if !l.isEnabled - { - continue - } - context.saveGState() defer { context.restoreGState() } @@ -490,7 +423,6 @@ open class XAxisRenderer: NSObject, AxisRenderer @objc open func renderLimitLineLine(context: CGContext, limitLine: ChartLimitLine, position: CGPoint) { - context.beginPath() context.move(to: CGPoint(x: position.x, y: viewPortHandler.contentTop)) context.addLine(to: CGPoint(x: position.x, y: viewPortHandler.contentBottom)) @@ -511,47 +443,45 @@ open class XAxisRenderer: NSObject, AxisRenderer @objc open func renderLimitLineLabel(context: CGContext, limitLine: ChartLimitLine, position: CGPoint, yOffset: CGFloat) { - let label = limitLine.label // if drawing the limit-value label is enabled - if limitLine.drawLabelEnabled && label.count > 0 - { - let labelLineHeight = limitLine.valueFont.lineHeight - - let xOffset: CGFloat = limitLine.lineWidth + limitLine.xOffset + guard limitLine.drawLabelEnabled, !label.isEmpty else { return } - let align: NSTextAlignment - let point: CGPoint + let labelLineHeight = limitLine.valueFont.lineHeight - switch limitLine.labelPosition - { - case .rightTop: - align = .left - point = CGPoint(x: position.x + xOffset, - y: viewPortHandler.contentTop + yOffset) - - case .rightBottom: - align = .left - point = CGPoint(x: position.x + xOffset, - y: viewPortHandler.contentBottom - labelLineHeight - yOffset) - - case .leftTop: - align = .right - point = CGPoint(x: position.x - xOffset, - y: viewPortHandler.contentTop + yOffset) - - case .leftBottom: - align = .right - point = CGPoint(x: position.x - xOffset, - y: viewPortHandler.contentBottom - labelLineHeight - yOffset) - } + let xOffset: CGFloat = limitLine.lineWidth + limitLine.xOffset - context.drawText(label, - at: point, - align: align, - attributes: [.font: limitLine.valueFont, - .foregroundColor: limitLine.valueTextColor]) - } + let align: NSTextAlignment + let point: CGPoint + + switch limitLine.labelPosition + { + case .rightTop: + align = .left + point = CGPoint(x: position.x + xOffset, + y: viewPortHandler.contentTop + yOffset) + + case .rightBottom: + align = .left + point = CGPoint(x: position.x + xOffset, + y: viewPortHandler.contentBottom - labelLineHeight - yOffset) + + case .leftTop: + align = .right + point = CGPoint(x: position.x - xOffset, + y: viewPortHandler.contentTop + yOffset) + + case .leftBottom: + align = .right + point = CGPoint(x: position.x - xOffset, + y: viewPortHandler.contentBottom - labelLineHeight - yOffset) + } + + context.drawText(label, + at: point, + align: align, + attributes: [.font: limitLine.valueFont, + .foregroundColor: limitLine.valueTextColor]) } } diff --git a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift index 94d7bf2b1b..8242c224e3 100644 --- a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift @@ -12,9 +12,6 @@ import Foundation import CoreGraphics -#if !os(OSX) - import UIKit -#endif open class XAxisRendererHorizontalBarChart: XAxisRenderer { @@ -31,26 +28,17 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer { var min = min, max = max - if let transformer = self.transformer + if let transformer = self.transformer, + viewPortHandler.contentWidth > 10, + !viewPortHandler.isFullyZoomedOutY { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) - if viewPortHandler.contentWidth > 10 && !viewPortHandler.isFullyZoomedOutY - { - let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) - let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) - - if inverted - { - min = Double(p2.y) - max = Double(p1.y) - } - else - { - min = Double(p1.y) - max = Double(p2.y) - } - } + let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) + let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) + + min = inverted ? Double(p2.y) : Double(p1.y) + max = inverted ? Double(p1.y) : Double(p2.y) } computeAxisValues(min: min, max: max) @@ -74,31 +62,28 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer open override func renderAxisLabels(context: CGContext) { - if !axis.isEnabled || !axis.isDrawLabelsEnabled || chart?.data === nil - { - return - } + guard + axis.isEnabled, + axis.isDrawLabelsEnabled, + chart?.data === nil + else { return } let xoffset = axis.xOffset - - if axis.labelPosition == .top - { + + switch axis.labelPosition { + case .top: drawLabels(context: context, pos: viewPortHandler.contentRight + xoffset, anchor: CGPoint(x: 0.0, y: 0.5)) - } - else if axis.labelPosition == .topInside - { + + case .topInside: drawLabels(context: context, pos: viewPortHandler.contentRight - xoffset, anchor: CGPoint(x: 1.0, y: 0.5)) - } - else if axis.labelPosition == .bottom - { + + case .bottom: drawLabels(context: context, pos: viewPortHandler.contentLeft - xoffset, anchor: CGPoint(x: 1.0, y: 0.5)) - } - else if axis.labelPosition == .bottomInside - { + + case .bottomInside: drawLabels(context: context, pos: viewPortHandler.contentLeft + xoffset, anchor: CGPoint(x: 0.0, y: 0.5)) - } - else - { // BOTH SIDED + + case .bothSided: drawLabels(context: context, pos: viewPortHandler.contentRight + xoffset, anchor: CGPoint(x: 0.0, y: 0.5)) drawLabels(context: context, pos: viewPortHandler.contentLeft - xoffset, anchor: CGPoint(x: 1.0, y: 0.5)) } @@ -116,38 +101,26 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer let centeringEnabled = axis.isCenterAxisLabelsEnabled // pre allocate to save performance (dont allocate in loop) - var position = CGPoint(x: 0.0, y: 0.0) + var position = CGPoint.zero - for i in stride(from: 0, to: axis.entryCount, by: 1) + for i in 0.. 0 + if l.drawLabelEnabled, !label.isEmpty { let labelLineHeight = l.valueFont.lineHeight - let xOffset: CGFloat = 4.0 + l.xOffset - let yOffset: CGFloat = l.lineWidth + labelLineHeight + l.yOffset + let xOffset = 4.0 + l.xOffset + let yOffset = l.lineWidth + labelLineHeight + l.yOffset let align: NSTextAlignment let point: CGPoint diff --git a/Source/Charts/Renderers/XAxisRendererRadarChart.swift b/Source/Charts/Renderers/XAxisRendererRadarChart.swift index e517d4911b..4ee9fef72a 100644 --- a/Source/Charts/Renderers/XAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererRadarChart.swift @@ -12,9 +12,6 @@ import Foundation import CoreGraphics -#if !os(OSX) - import UIKit -#endif open class XAxisRendererRadarChart: XAxisRenderer { @@ -29,13 +26,12 @@ open class XAxisRendererRadarChart: XAxisRenderer open override func renderAxisLabels(context: CGContext) { - guard let chart = chart else { return } - - if !axis.isEnabled || !axis.isDrawLabelsEnabled - { - return - } - + guard + let chart = chart, + axis.isEnabled, + axis.isDrawLabelsEnabled + else { return } + let labelFont = axis.labelFont let labelTextColor = axis.labelTextColor let labelRotationAngleRadians = axis.labelRotationAngle.RAD2DEG @@ -48,13 +44,10 @@ open class XAxisRendererRadarChart: XAxisRenderer let center = chart.centerOffsets - for i in stride(from: 0, to: chart.data?.maxEntryCountSet?.entryCount ?? 0, by: 1) + for i in 0..<(chart.data?.maxEntryCountSet?.entryCount ?? 0) { - let label = axis.valueFormatter?.stringForValue(Double(i), axis: axis) ?? "" - let angle = (sliceangle * CGFloat(i) + chart.rotationAngle).truncatingRemainder(dividingBy: 360.0) - let p = center.moving(distance: CGFloat(chart.yRange) * factor + axis.labelRotatedWidth / 2.0, atAngle: angle) drawLabel(context: context, diff --git a/Source/Charts/Renderers/YAxisRenderer.swift b/Source/Charts/Renderers/YAxisRenderer.swift index d77cb0f31b..b4de50942b 100644 --- a/Source/Charts/Renderers/YAxisRenderer.swift +++ b/Source/Charts/Renderers/YAxisRenderer.swift @@ -12,9 +12,6 @@ import Foundation import CoreGraphics -#if !os(OSX) - import UIKit -#endif @objc(ChartYAxisRenderer) open class YAxisRenderer: NSObject, AxisRenderer @@ -35,20 +32,19 @@ open class YAxisRenderer: NSObject, AxisRenderer /// draws the y-axis labels to the screen open func renderAxisLabels(context: CGContext) { - if !axis.isEnabled || !axis.isDrawLabelsEnabled - { - return - } - + guard + axis.isEnabled, + axis.isDrawLabelsEnabled + else { return } + let xoffset = axis.xOffset let yoffset = axis.labelFont.lineHeight / 2.5 + axis.yOffset let dependency = axis.axisDependency let labelPosition = axis.labelPosition - var xPos = CGFloat(0.0) - - var textAlign: NSTextAlignment + let xPos: CGFloat + let textAlign: NSTextAlignment if dependency == .left { @@ -62,7 +58,6 @@ open class YAxisRenderer: NSObject, AxisRenderer textAlign = .left xPos = viewPortHandler.offsetLeft + xoffset } - } else { @@ -78,23 +73,23 @@ open class YAxisRenderer: NSObject, AxisRenderer } } - drawYLabels( - context: context, - fixedPosition: xPos, - positions: transformedPositions(), - offset: yoffset - axis.labelFont.lineHeight, - textAlign: textAlign) + drawYLabels(context: context, + fixedPosition: xPos, + positions: transformedPositions(), + offset: yoffset - axis.labelFont.lineHeight, + textAlign: textAlign) } open func renderAxisLine(context: CGContext) { - if !axis.isEnabled || !axis.drawAxisLineEnabled - { - return - } - + guard + axis.isEnabled, + axis.drawAxisLineEnabled + else { return } + context.saveGState() - + defer { context.restoreGState() } + context.setStrokeColor(axis.axisLineColor.cgColor) context.setLineWidth(axis.axisLineWidth) if axis.axisLineDashLengths != nil @@ -120,8 +115,6 @@ open class YAxisRenderer: NSObject, AxisRenderer context.addLine(to: CGPoint(x: viewPortHandler.contentRight, y: viewPortHandler.contentBottom)) context.strokePath() } - - context.restoreGState() } /// draws the y-labels on the specified x-position @@ -138,10 +131,9 @@ open class YAxisRenderer: NSObject, AxisRenderer let from = axis.isDrawBottomYLabelEntryEnabled ? 0 : 1 let to = axis.isDrawTopYLabelEntryEnabled ? axis.entryCount : (axis.entryCount - 1) - for i in stride(from: from, to: to, by: 1) + for i in from.. 0 + guard l.drawLabelEnabled, !label.isEmpty else { return } + + let labelLineHeight = l.valueFont.lineHeight + + let xOffset = 4.0 + l.xOffset + let yOffset = l.lineWidth + labelLineHeight + l.yOffset + + let align: NSTextAlignment + let point: CGPoint + + switch l.labelPosition { - let labelLineHeight = l.valueFont.lineHeight - - let xOffset = 4.0 + l.xOffset - let yOffset = l.lineWidth + labelLineHeight + l.yOffset - - let align: NSTextAlignment - let point: CGPoint - - switch l.labelPosition - { - case .rightTop: - align = .right - point = CGPoint(x: viewPortHandler.contentRight - xOffset, - y: position.y - yOffset) - - case .rightBottom: - align = .right - point = CGPoint(x: viewPortHandler.contentRight - xOffset, - y: position.y + yOffset - labelLineHeight) - - case .leftTop: - align = .left - point = CGPoint(x: viewPortHandler.contentLeft + xOffset, - y: position.y - yOffset) - - case .leftBottom: - align = .left - point = CGPoint(x: viewPortHandler.contentLeft + xOffset, - y: position.y + yOffset - labelLineHeight) - } - - context.drawText(label, - at: point, - align: align, - attributes: [.font: l.valueFont, .foregroundColor: l.valueTextColor]) + case .rightTop: + align = .right + point = CGPoint(x: viewPortHandler.contentRight - xOffset, + y: position.y - yOffset) + + case .rightBottom: + align = .right + point = CGPoint(x: viewPortHandler.contentRight - xOffset, + y: position.y + yOffset - labelLineHeight) + + case .leftTop: + align = .left + point = CGPoint(x: viewPortHandler.contentLeft + xOffset, + y: position.y - yOffset) + + case .leftBottom: + align = .left + point = CGPoint(x: viewPortHandler.contentLeft + xOffset, + y: position.y + yOffset - labelLineHeight) } + + context.drawText(label, + at: point, + align: align, + attributes: [.font: l.valueFont, .foregroundColor: l.valueTextColor]) } - - context.restoreGState() } @objc open func computeAxis(min: Double, max: Double, inverted: Bool) { var min = min, max = max - if let transformer = self.transformer + if let transformer = self.transformer, + viewPortHandler.contentWidth > 10.0, + !viewPortHandler.isFullyZoomedOutY { // calculate the starting and entry point of the y-labels (depending on zoom / contentrect bounds) - if viewPortHandler.contentWidth > 10.0 && !viewPortHandler.isFullyZoomedOutY - { - let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) - let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) - - if !inverted - { - min = Double(p2.y) - max = Double(p1.y) - } - else - { - min = Double(p1.y) - max = Double(p2.y) - } - } + let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) + let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) + + min = inverted ? Double(p1.y) : Double(p2.y) + max = inverted ? Double(p2.y) : Double(p1.y) } computeAxisValues(min: min, max: max) @@ -403,10 +358,14 @@ open class YAxisRenderer: NSObject, AxisRenderer let labelCount = axis.labelCount let range = abs(yMax - yMin) - if labelCount == 0 || range <= 0 || range.isInfinite + guard + labelCount != 0, + range > 0, + range.isFinite + else { - axis.entries = [Double]() - axis.centeredEntries = [Double]() + axis.entries = [] + axis.centeredEntries = [] return } @@ -418,7 +377,7 @@ open class YAxisRenderer: NSObject, AxisRenderer // This is used to avoid repeated values when rounding values for display. if axis.granularityEnabled { - interval = interval < axis.granularity ? axis.granularity : interval + interval = Swift.max(interval, axis.granularity) } // Normalize interval @@ -441,13 +400,8 @@ open class YAxisRenderer: NSObject, AxisRenderer axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - var v = yMin - - for _ in 0 ..< labelCount - { - axis.entries.append(v) - v += interval - } + let values = stride(from: yMin, to: Double(labelCount) * interval + yMin, by: interval) + axis.entries.append(contentsOf: values) n = labelCount } @@ -464,33 +418,17 @@ open class YAxisRenderer: NSObject, AxisRenderer let last = interval == 0.0 ? 0.0 : (floor(yMax / interval) * interval).nextUp - if interval != 0.0 && last != first + if interval != 0.0, last != first { - for _ in stride(from: first, through: last, by: interval) - { - n += 1 - } + stride(from: first, through: last, by: interval).forEach { _ in n += 1 } } // Ensure stops contains at least n elements. axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - var f = first - var i = 0 - while i < n - { - if f == 0.0 - { - // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) - f = 0.0 - } - - axis.entries.append(Double(f)) - - f += interval - i += 1 - } + let values = stride(from: first, to: Double(n) * interval + first, by: interval) + axis.entries.append(contentsOf: values) } // set decimals @@ -509,11 +447,7 @@ open class YAxisRenderer: NSObject, AxisRenderer axis.centeredEntries.removeAll() let offset: Double = interval / 2.0 - - for i in 0 ..< n - { - axis.centeredEntries.append(axis.entries[i] + offset) - } + axis.centeredEntries.append(contentsOf: axis.entries.map { $0 + offset }) } } } diff --git a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift index 78e36e8f36..b3177cbfed 100644 --- a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift @@ -12,9 +12,6 @@ import Foundation import CoreGraphics -#if !os(OSX) - import UIKit -#endif open class YAxisRendererHorizontalBarChart: YAxisRenderer { @@ -26,26 +23,18 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer /// Computes the axis values. open override func computeAxis(min: Double, max: Double, inverted: Bool) { - guard let transformer = self.transformer else { return } - var min = min, max = max // calculate the starting and entry point of the y-labels (depending on zoom / contentrect bounds) - if viewPortHandler.contentHeight > 10.0 && !viewPortHandler.isFullyZoomedOutX + if let transformer = transformer, + viewPortHandler.contentHeight > 10.0, + !viewPortHandler.isFullyZoomedOutX { let p1 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) let p2 = transformer.valueForTouchPoint(CGPoint(x: viewPortHandler.contentRight, y: viewPortHandler.contentTop)) - - if !inverted - { - min = Double(p1.x) - max = Double(p2.x) - } - else - { - min = Double(p2.x) - max = Double(p1.x) - } + + min = inverted ? Double(p2.x) : Double(p1.x) + max = inverted ? Double(p1.x) : Double(p2.x) } computeAxisValues(min: min, max: max) @@ -54,18 +43,21 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer /// draws the y-axis labels to the screen open override func renderAxisLabels(context: CGContext) { - if !axis.isEnabled || !axis.isDrawLabelsEnabled - { - return - } - + guard + axis.isEnabled, + axis.isDrawLabelsEnabled + else { return } + let lineHeight = axis.labelFont.lineHeight let baseYOffset: CGFloat = 2.5 let dependency = axis.axisDependency let labelPosition = axis.labelPosition - - var yPos: CGFloat = 0.0 + + + // For compatibility with Android code, we keep the calculation below the same, + // And here we pull the line back up + var yPos = -lineHeight if dependency == .left { @@ -89,26 +81,22 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer yPos = viewPortHandler.contentBottom + lineHeight + baseYOffset } } - - // For compatibility with Android code, we keep above calculation the same, - // And here we pull the line back up - yPos -= lineHeight - - drawYLabels( - context: context, - fixedPosition: yPos, - positions: transformedPositions(), - offset: axis.yOffset) + + drawYLabels(context: context, + fixedPosition: yPos, + positions: transformedPositions(), + offset: axis.yOffset) } open override func renderAxisLine(context: CGContext) { - if !axis.isEnabled || !axis.drawAxisLineEnabled - { - return - } - + guard + axis.isEnabled, + axis.drawAxisLineEnabled + else { return } + context.saveGState() + defer { context.restoreGState() } context.setStrokeColor(axis.axisLineColor.cgColor) context.setLineWidth(axis.axisLineWidth) @@ -121,21 +109,18 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer context.setLineDash(phase: 0.0, lengths: []) } + context.beginPath() if axis.axisDependency == .left { - context.beginPath() context.move(to: CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentTop)) context.addLine(to: CGPoint(x: viewPortHandler.contentRight, y: viewPortHandler.contentTop)) - context.strokePath() } else { - context.beginPath() context.move(to: CGPoint(x: viewPortHandler.contentLeft, y: viewPortHandler.contentBottom)) context.addLine(to: CGPoint(x: viewPortHandler.contentRight, y: viewPortHandler.contentBottom)) - context.strokePath() } - - context.restoreGState() + } + context.strokePath() } /// draws the y-labels on the specified x-position @@ -151,10 +136,9 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer let from = axis.isDrawBottomYLabelEntryEnabled ? 0 : 1 let to = axis.isDrawTopYLabelEntryEnabled ? axis.entryCount : (axis.entryCount - 1) - for i in stride(from: from, to: to, by: 1) + for i in from.. 0 + if l.drawLabelEnabled, !label.isEmpty { let labelLineHeight = l.valueFont.lineHeight - let xOffset: CGFloat = l.lineWidth + l.xOffset - let yOffset: CGFloat = 2.0 + l.yOffset + let xOffset = l.lineWidth + l.xOffset + let yOffset = 2.0 + l.yOffset let align: NSTextAlignment let point: CGPoint @@ -334,7 +296,5 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer attributes: [.font: l.valueFont, .foregroundColor: l.valueTextColor]) } } - - context.restoreGState() } } diff --git a/Source/Charts/Renderers/YAxisRendererRadarChart.swift b/Source/Charts/Renderers/YAxisRendererRadarChart.swift index 4b495ad160..bb7508d43b 100644 --- a/Source/Charts/Renderers/YAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererRadarChart.swift @@ -12,9 +12,6 @@ import Foundation import CoreGraphics -#if !os(OSX) - import UIKit -#endif open class YAxisRendererRadarChart: YAxisRenderer { @@ -22,9 +19,9 @@ open class YAxisRendererRadarChart: YAxisRenderer @objc public init(viewPortHandler: ViewPortHandler, axis: YAxis, chart: RadarChartView) { - super.init(viewPortHandler: viewPortHandler, axis: axis, transformer: nil) - self.chart = chart + + super.init(viewPortHandler: viewPortHandler, axis: axis, transformer: nil) } open override func computeAxisValues(min yMin: Double, max yMax: Double) @@ -32,10 +29,13 @@ open class YAxisRendererRadarChart: YAxisRenderer let labelCount = axis.labelCount let range = abs(yMax - yMin) - if labelCount == 0 || range <= 0 || range.isInfinite + guard labelCount != 0, + range > 0, + range.isFinite + else { - axis.entries = [Double]() - axis.centeredEntries = [Double]() + axis.entries = [] + axis.centeredEntries = [] return } @@ -47,7 +47,7 @@ open class YAxisRendererRadarChart: YAxisRenderer // This is used to avoid repeated values when rounding values for display. if axis.isGranularityEnabled { - interval = interval < axis.granularity ? axis.granularity : interval + interval = Swift.max(interval, axis.granularity) } // Normalize interval @@ -67,19 +67,14 @@ open class YAxisRendererRadarChart: YAxisRenderer // force label count if axis.isForceLabelsEnabled { - let step = Double(range) / Double(labelCount - 1) + let step = range / Double(labelCount - 1) // Ensure stops contains at least n elements. axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - - var v = yMin - - for _ in 0 ..< labelCount - { - axis.entries.append(v) - v += step - } + + let values = stride(from: yMin, to: Double(labelCount) * step + yMin, by: step) + axis.entries.append(contentsOf: values) n = labelCount } @@ -98,10 +93,7 @@ open class YAxisRendererRadarChart: YAxisRenderer if interval != 0.0 { - for _ in stride(from: first, through: last, by: interval) - { - n += 1 - } + stride(from: first, through: last, by: interval).forEach { _ in n += 1 } } n += 1 @@ -109,22 +101,9 @@ open class YAxisRendererRadarChart: YAxisRenderer // Ensure stops contains at least n elements. axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - - var f = first - var i = 0 - while i < n - { - if f == 0.0 - { - // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) - f = 0.0 - } - axis.entries.append(Double(f)) - - f += interval - i += 1 - } + let values = stride(from: first, to: Double(n) * interval + first, by: interval) + axis.entries.append(contentsOf: values) } // set decimals @@ -139,15 +118,8 @@ open class YAxisRendererRadarChart: YAxisRenderer if centeringEnabled { - axis.centeredEntries.reserveCapacity(n) - axis.centeredEntries.removeAll() - let offset = (axis.entries[1] - axis.entries[0]) / 2.0 - - for i in 0 ..< n - { - axis.centeredEntries.append(axis.entries[i] + offset) - } + axis.centeredEntries = axis.entries.map { $0 + offset } } axis._axisMinimum = axis.entries[0] @@ -157,13 +129,12 @@ open class YAxisRendererRadarChart: YAxisRenderer open override func renderAxisLabels(context: CGContext) { - guard let chart = chart else { return } - - if !axis.isEnabled || !axis.isDrawLabelsEnabled - { - return - } - + guard + let chart = chart, + axis.isEnabled, + axis.isDrawLabelsEnabled + else { return } + let labelFont = axis.labelFont let labelTextColor = axis.labelTextColor @@ -178,13 +149,13 @@ open class YAxisRendererRadarChart: YAxisRenderer let alignment = axis.labelAlignment let xOffset = axis.labelXOffset - for j in stride(from: from, to: to, by: 1) + for i in from.. Date: Wed, 10 Jan 2018 21:31:57 -0400 Subject: [PATCH 56/84] Updates for PR Also added remove subrange. --- .../Implementations/Standard/ChartData.swift | 35 ++++--------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index f1b580d2e4..1447d2295e 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -478,10 +478,7 @@ extension ChartData//: RangeReplaceableCollection public func removeFirst() -> Element { - guard !(self is CombinedChartData) else - { - fatalError("removeFirst() not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") let element = _dataSets.removeFirst() notifyDataChanged() @@ -490,10 +487,7 @@ extension ChartData//: RangeReplaceableCollection public func removeFirst(_ n: Int) { - guard !(self is CombinedChartData) else - { - fatalError("removeFirst(_:) not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") _dataSets.removeFirst(n) notifyDataChanged() @@ -501,10 +495,7 @@ extension ChartData//: RangeReplaceableCollection public func removeLast() -> Element { - guard !(self is CombinedChartData) else - { - fatalError("removeLast() not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") let element = _dataSets.removeLast() notifyDataChanged() @@ -513,10 +504,7 @@ extension ChartData//: RangeReplaceableCollection public func removeLast(_ n: Int) { - guard !(self is CombinedChartData) else - { - fatalError("removeLast(_:) not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") _dataSets.removeLast(n) notifyDataChanged() @@ -524,10 +512,7 @@ extension ChartData//: RangeReplaceableCollection public func removeSubrange(_ bounds: R) where R : RangeExpression, Index == R.Bound { - guard !(self is CombinedChartData) else - { - fatalError("removeSubrange(_:) not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") _dataSets.removeSubrange(bounds) notifyDataChanged() @@ -535,10 +520,7 @@ extension ChartData//: RangeReplaceableCollection public func removeAll(keepingCapacity keepCapacity: Bool) { - guard !(self is CombinedChartData) else - { - fatalError("removeAll(keepingCapacity:) not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") _dataSets.removeAll(keepingCapacity: keepCapacity) notifyDataChanged() @@ -546,10 +528,7 @@ extension ChartData//: RangeReplaceableCollection public func replaceSubrange(_ subrange: Swift.Range, with newElements: C) where C : Collection, Element == C.Element { - guard !(self is CombinedChartData) else - { - fatalError("replaceSubrange(_:) not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") _dataSets.replaceSubrange(subrange, with: newElements) newElements.forEach { self.calcMinMax(dataSet: $0) } From da2ff2d43e7429992117d0ffc3036e31831f193a Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Wed, 10 Jan 2018 23:50:42 -0400 Subject: [PATCH 57/84] Refactored ChartData Removed redundancy from min/max logic. Lots of naming changes. Cleaner implementations. --- Source/Charts/Charts/BarLineChartViewBase.swift | 9 ++++----- .../Charts/Data/Implementations/Standard/ChartData.swift | 2 +- Source/Charts/Renderers/LineChartRenderer.swift | 6 +++--- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index 82b3520da1..3f3f5214ef 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -1692,12 +1692,11 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD /// - returns: The DataSet object displayed at the touched position of the chart @objc open func getDataSetByTouchPoint(point pt: CGPoint) -> BarLineScatterCandleBubbleChartDataSetProtocol? { - let h = getHighlightByTouchPoint(pt) - if let h = h - { - return data?[h.dataSetIndex] as? BarLineScatterCandleBubbleChartDataSetProtocol + guard let h = getHighlightByTouchPoint(pt) else { + return nil } - return nil + + return data?[h.dataSetIndex] as? BarLineScatterCandleBubbleChartDataSetProtocol } /// - returns: The current x-scale factor diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 1447d2295e..089c6d3a0f 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -22,7 +22,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral var leftAxisMin = Double.greatestFiniteMagnitude var rightAxisMax = -Double.greatestFiniteMagnitude var rightAxisMin = Double.greatestFiniteMagnitude - + // MARK: - Accessibility /// When the data entry labels are generated identifiers, set this property to prepend a string before each identifier diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 1fdd82e0a3..31f9eaf609 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -642,7 +642,7 @@ open class LineChartRenderer: LineRadarRenderer for i in 0 ..< dataSets.count { guard let dataSet = lineData[i] as? LineChartDataSetProtocol else { continue } - + if !dataSet.isVisible || dataSet.entryCount == 0 { continue @@ -772,8 +772,8 @@ open class LineChartRenderer: LineRadarRenderer for high in indices { - guard let set = lineData[high.dataSetIndex] as? LineChartDataSetProtocol - , set.isHighlightEnabled + guard let set = lineData[high.dataSetIndex] as? LineChartDataSetProtocol, + set.isHighlightEnabled else { continue } guard let e = set.entryForXValue(high.x, closestToY: high.y) else { continue } From 9aaee1335982438f63b3acb26f7ee408903a3b70 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Thu, 11 Jan 2018 22:02:19 -0400 Subject: [PATCH 58/84] Fixed horizontal barchart bug, --- Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift index 8242c224e3..9e9a39ffac 100644 --- a/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/XAxisRendererHorizontalBarChart.swift @@ -65,7 +65,7 @@ open class XAxisRendererHorizontalBarChart: XAxisRenderer guard axis.isEnabled, axis.isDrawLabelsEnabled, - chart?.data === nil + chart?.data != nil else { return } let xoffset = axis.xOffset From f399bca158f3484d15bbb57c4a5898caa65f88f7 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Fri, 12 Jan 2018 07:31:59 -0400 Subject: [PATCH 59/84] Removed unnecessary `get` from subscripts. --- Source/Charts/Data/Implementations/Standard/ChartData.swift | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 089c6d3a0f..e9ad8d2116 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -560,10 +560,7 @@ extension ChartData public subscript(entry entry: ChartDataEntry) -> Element? { - guard !(self is CombinedChartData) else - { - fatalError("subscript(entry:) not supported for CombinedData") - } + assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { return nil } return self[index] From bd1bc8faea2bf851f2e87b5b803fc58a753e72f8 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sun, 14 Jan 2018 22:30:35 -0400 Subject: [PATCH 60/84] Disabled `remove(at:)` for CombinedChartView --- Source/Charts/Data/Implementations/Standard/ChartData.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index e9ad8d2116..ccad62e2db 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -471,6 +471,10 @@ extension ChartData//: RangeReplaceableCollection @objc(removeDataSetByIndex:) public func remove(at position: Index) -> Element { + guard !(self is CombinedChartData) else + { + fatalError("remove(at:) not supported for CombinedData") + } let element = _dataSets.remove(at: position) calcMinMax() return element From 74f28b11bad0dbce63be564e749f4234fbb07767 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sun, 14 Jan 2018 23:01:26 -0400 Subject: [PATCH 61/84] Relocated `appendEntry(_:todataSet:)` --- Source/Charts/Data/Implementations/Standard/ChartData.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index ccad62e2db..be975d3aec 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -296,7 +296,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral guard indices.contains(dataSetIndex) else { return print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") } - + let set = self[dataSetIndex] if !set.addEntry(e) { return } calcMinMax(entry: e, axis: set.axisDependency) From aec150ebfcd04160c67df2bcc2b7ff4688214cb4 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sun, 14 Jan 2018 23:34:08 -0400 Subject: [PATCH 62/84] Disabled Collection support for CombinedChartData --- Source/Charts/Data/Implementations/Standard/ChartData.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index be975d3aec..89adda595b 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -464,6 +464,11 @@ extension ChartData//: RangeReplaceableCollection @objc(addDataSet:) public func append(_ newElement: Element) { + guard !(self is CombinedChartData) else + { + fatalError("append(_:) not supported for CombinedData") + } + _dataSets.append(newElement) calcMinMax(dataSet: newElement) } @@ -475,6 +480,7 @@ extension ChartData//: RangeReplaceableCollection { fatalError("remove(at:) not supported for CombinedData") } + let element = _dataSets.remove(at: position) calcMinMax() return element From f6061750fa5f9a550d084d9a6100b3560d33a484 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Mon, 15 Jan 2018 20:33:37 -0400 Subject: [PATCH 63/84] Removed used of dataSet(forIndex:) --- Source/Charts/Renderers/LineChartRenderer.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 31f9eaf609..e46182b9ee 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -643,7 +643,7 @@ open class LineChartRenderer: LineRadarRenderer { guard let dataSet = lineData[i] as? LineChartDataSetProtocol else { continue } - if !dataSet.isVisible || dataSet.entryCount == 0 + if !dataSet.isVisible || !dataSet.isDrawCirclesEnabled || dataSet.entryCount == 0 { continue } From 6db01d27963432d24102b23d5924e8fe6fc49147 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Sun, 21 Jan 2018 17:56:51 -0400 Subject: [PATCH 64/84] Fixed merge conflicts --- .../Data/Implementations/Standard/ChartData.swift | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 89adda595b..a548a8ccc5 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -464,11 +464,6 @@ extension ChartData//: RangeReplaceableCollection @objc(addDataSet:) public func append(_ newElement: Element) { - guard !(self is CombinedChartData) else - { - fatalError("append(_:) not supported for CombinedData") - } - _dataSets.append(newElement) calcMinMax(dataSet: newElement) } @@ -476,11 +471,6 @@ extension ChartData//: RangeReplaceableCollection @objc(removeDataSetByIndex:) public func remove(at position: Index) -> Element { - guard !(self is CombinedChartData) else - { - fatalError("remove(at:) not supported for CombinedData") - } - let element = _dataSets.remove(at: position) calcMinMax() return element From b8aa08ed7b766737c1698fb463aae7762ffb2205 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Fri, 26 Jan 2018 07:03:33 -0400 Subject: [PATCH 65/84] updated demos --- .../Swift/Demos/CubicLineChartViewController.swift | 2 +- .../Swift/Demos/LineChart2ViewController.swift | 10 +++++----- .../Swift/Demos/LineChartTimeViewController.swift | 10 +++++----- .../Swift/Demos/MultipleLinesChartViewController.swift | 8 ++++---- .../Swift/Demos/RadarChartViewController.swift | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift index ee55bcee50..320b02e2c0 100644 --- a/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/CubicLineChartViewController.swift @@ -131,7 +131,7 @@ class CubicLineChartViewController: DemoBaseViewController { chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift index a0d0582051..f7d8e5a1fb 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChart2ViewController.swift @@ -147,31 +147,31 @@ class LineChart2ViewController: DemoBaseViewController { switch option { case .toggleFilled: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift index 5a39c8d5e8..caacc15e07 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChartTimeViewController.swift @@ -122,31 +122,31 @@ class LineChartTimeViewController: DemoBaseViewController { switch option { case .toggleFilled: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() case .toggleHorizontalCubic: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .horizontalBezier : .cubicBezier } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift index f12418cb8c..c358e8b3a2 100644 --- a/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/MultipleLinesChartViewController.swift @@ -103,25 +103,25 @@ class MultipleLinesChartViewController: DemoBaseViewController { switch option { case .toggleFilled: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleCircles: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.drawCirclesEnabled = !set.drawCirclesEnabled } chartView.setNeedsDisplay() case .toggleCubic: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .cubicBezier) ? .linear : .cubicBezier } chartView.setNeedsDisplay() case .toggleStepped: - for set in chartView.data as! LineChartData { + for case let set as LineChartDataSet in data { set.mode = (set.mode == .stepped) ? .linear : .stepped } chartView.setNeedsDisplay() diff --git a/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift b/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift index 91c89a89d6..ce5443ff04 100644 --- a/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/RadarChartViewController.swift @@ -168,14 +168,14 @@ class RadarChartViewController: DemoBaseViewController { chartView.rotationEnabled = !chartView.rotationEnabled case .toggleFilled: - for set in chartView.data as! RadarChartData { + for case let set as RadarChartDataSet in data { set.drawFilledEnabled = !set.drawFilledEnabled } chartView.setNeedsDisplay() case .toggleHighlightCircle: - for set in chartView.data as! RadarChartData { + for case let set as RadarChartDataSet in data { set.drawHighlightCircleEnabled = !set.drawHighlightCircleEnabled } chartView.setNeedsDisplay() From 6d8471dc58c055923d4bd477f7c7a434ebbccd38 Mon Sep 17 00:00:00 2001 From: Jacob Christie Date: Tue, 25 Dec 2018 02:09:32 -0400 Subject: [PATCH 66/84] PR Fixes --- .../Standard/ChartDataSet.swift | 20 +++++---- Source/Charts/Renderers/XAxisRenderer.swift | 12 ++--- .../YAxisRendererHorizontalBarChart.swift | 45 ++++++++----------- .../Renderers/YAxisRendererRadarChart.swift | 45 +++++++++---------- 4 files changed, 57 insertions(+), 65 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index 7769bf653a..6452405ed0 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -98,8 +98,6 @@ open class ChartDataSet: ChartBaseDataSet open override func calcMinMaxY(fromX: Double, toX: Double) { - guard !values.isEmpty else { return } - _yMax = -Double.greatestFiniteMagnitude _yMin = Double.greatestFiniteMagnitude @@ -411,9 +409,9 @@ open class ChartDataSet: ChartBaseDataSet // TODO: This should return the removed entry to follow Swift convention. open override func removeEntry(_ entry: ChartDataEntry) -> Bool { - isIndirectValuesCall = true - guard let i = values.index(where: { $0 === entry }) else { return false } + + isIndirectValuesCall = true values.remove(at: i) notifyDataSetChanged() @@ -428,9 +426,10 @@ open class ChartDataSet: ChartBaseDataSet { guard !values.isEmpty else { return false } + isIndirectValuesCall = true values.removeFirst() - calcMinMax() - + + notifyDataSetChanged() return true } @@ -440,8 +439,13 @@ open class ChartDataSet: ChartBaseDataSet // TODO: This should return the removed entry to follow Swift convention. open override func removeLast() -> Bool { - let entry: ChartDataEntry? = values.isEmpty ? nil : values.removeLast() - return entry != nil + guard !values.isEmpty else { return false } + + isIndirectValuesCall = true + values.removeLast() + + notifyDataSetChanged() + return true } /// Checks if this DataSet contains the specified Entry. diff --git a/Source/Charts/Renderers/XAxisRenderer.swift b/Source/Charts/Renderers/XAxisRenderer.swift index d4f14d9928..358446c6d2 100644 --- a/Source/Charts/Renderers/XAxisRenderer.swift +++ b/Source/Charts/Renderers/XAxisRenderer.swift @@ -34,7 +34,8 @@ open class XAxisRenderer: NSObject, AxisRenderer var min = min, max = max if let transformer = self.transformer, - viewPortHandler.contentWidth > 10 && !viewPortHandler.isFullyZoomedOutX + viewPortHandler.contentWidth > 10, + !viewPortHandler.isFullyZoomedOutX { // calculate the starting and entry point of the y-labels (depending on // zoom / contentrect bounds) @@ -125,7 +126,8 @@ open class XAxisRenderer: NSObject, AxisRenderer axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - let values = stride(from: first, to: Double(n) * interval + first, by: interval) + let start = first, end = first + Double(n) * interval + let values = stride(from: start, to: end, by: interval) axis.entries.append(contentsOf: values) } @@ -141,11 +143,9 @@ open class XAxisRenderer: NSObject, AxisRenderer if axis.centerAxisLabelsEnabled { - axis.centeredEntries.removeAll(keepingCapacity: true) - axis.centeredEntries.reserveCapacity(n) - let offset: Double = interval / 2.0 - axis.centeredEntries.append(contentsOf: axis.entries.map { $0 + offset }) + axis.centeredEntries = axis.entries[.. Date: Thu, 3 Jan 2019 06:46:13 -0400 Subject: [PATCH 67/84] Fixed axisLabels calculation --- .../YAxisRendererHorizontalBarChart.swift | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift index b46e10cad8..eb452b2c4a 100644 --- a/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererHorizontalBarChart.swift @@ -54,24 +54,23 @@ open class YAxisRendererHorizontalBarChart: YAxisRenderer let dependency = axis.axisDependency let labelPosition = axis.labelPosition - - // For compatibility with Android code, we keep the calculation below the same, - // And here we pull the line back up - let yPos: CGFloat - switch (dependency, labelPosition) + let yPos: CGFloat = { - case (.left, .outsideChart): - yPos = viewPortHandler.contentTop - baseYOffset + switch (dependency, labelPosition) + { + case (.left, .outsideChart): + return viewPortHandler.contentTop - baseYOffset - lineHeight - case (.left, .insideChart): - yPos = viewPortHandler.contentTop - baseYOffset + case (.left, .insideChart): + return viewPortHandler.contentTop - baseYOffset - lineHeight - case (.right, .outsideChart): - yPos = viewPortHandler.contentBottom + lineHeight + baseYOffset + case (.right, .outsideChart): + return viewPortHandler.contentBottom + baseYOffset - case (.right, .insideChart): - yPos = viewPortHandler.contentBottom + lineHeight + baseYOffset - } + case (.right, .insideChart): + return viewPortHandler.contentBottom + baseYOffset + } + }() drawYLabels( context: context, From 4b2332765e61c6ce78ac7892266784532962a39b Mon Sep 17 00:00:00 2001 From: Jacob Christie <19879272+jjatie@users.noreply.github.com> Date: Thu, 16 Apr 2020 05:22:34 -0300 Subject: [PATCH 68/84] Fill rewrite (#3084) close #3140 * Fill is now a protocol Different fill logic is broken up into separate classes. This has a few benefits: 1. It makes the `Fill` types more readable (logic is grouped together) 2. No optionals 3. Most importantly it allows consumers to create new Fill types without looking into the framework. * Added super.init() for objc * Updated Fill access No need to subclass existing fills now that the system is more flexible. If functionality is needed from another fill, user can call it within their own `fillPath(context: CGContext, rect: CGRect)` implementation. * Updated Fill Names * Update Fill.swift update code style Co-authored-by: Jacob Christie Co-authored-by: Xuan --- .../Demos/LineChart1ViewController.m | 2 +- .../Demos/LineChart1ViewController.swift | 2 +- Source/Charts/Utils/Fill.swift | 353 ++++++++---------- 3 files changed, 160 insertions(+), 197 deletions(-) diff --git a/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m index feafb7b9a7..fe8e5df608 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m @@ -174,7 +174,7 @@ - (void)setDataCount:(int)count range:(double)range CGGradientRef gradient = CGGradientCreateWithColors(nil, (CFArrayRef)gradientColors, nil); set1.fillAlpha = 1.f; - set1.fill = [ChartFill fillWithLinearGradient:gradient angle:90.f]; + set1.fill = [[ChartLinearGradientFill alloc] initWithGradient:gradient angle:90.0f]; set1.drawFilledEnabled = YES; CGGradientRelease(gradient); diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift index 2d76df33ef..44f9a36a2b 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift @@ -123,7 +123,7 @@ class LineChart1ViewController: DemoBaseViewController { let gradient = CGGradient(colorsSpace: nil, colors: gradientColors as CFArray, locations: nil)! set1.fillAlpha = 1 - set1.fill = Fill(linearGradient: gradient, angle: 90) //.linearGradient(gradient, angle: 90) + set1.fill = LinearGradientFill(gradient: gradient, angle: 90) set1.drawFilledEnabled = true let data = LineChartData(dataSet: set1) diff --git a/Source/Charts/Utils/Fill.swift b/Source/Charts/Utils/Fill.swift index 1eacfd4a88..7a6520f191 100644 --- a/Source/Charts/Utils/Fill.swift +++ b/Source/Charts/Utils/Fill.swift @@ -12,236 +12,199 @@ import Foundation import CoreGraphics -@objc(ChartFillType) -public enum FillType: Int +@objc(ChartFill) +public protocol Fill { - case empty - case color - case linearGradient - case radialGradient - case image - case tiledImage - case layer + + /// Draws the provided path in filled mode with the provided area + @objc func fillPath(context: CGContext, rect: CGRect) } -@objc(ChartFill) -open class Fill: NSObject +@objc(ChartEmptyFill) +public class EmptyFill: NSObject, Fill +{ + + public func fillPath(context: CGContext, rect: CGRect) { } +} + +@objc(ChartColorFill) +public class ColorFill: NSObject, Fill { - // MARK: Properties - - @objc open private(set) var type: FillType = .empty - @objc open private(set) var color: CGColor? - @objc open private(set) var gradient: CGGradient? - @objc open private(set) var gradientAngle: CGFloat = 0.0 - @objc open private(set) var gradientStartOffsetPercent = CGPoint.zero - @objc open private(set) var gradientStartRadiusPercent: CGFloat = 0.0 - @objc open private(set) var gradientEndOffsetPercent = CGPoint.zero - @objc open private(set) var gradientEndRadiusPercent: CGFloat = 0.0 - @objc open private(set) var image: CGImage? - @objc open private(set) var layer: CGLayer? - - // MARK: Constructors - - @objc public init(CGColor: CGColor) + + @objc public let color: CGColor + + @objc public init(cgColor: CGColor) { - type = .color - color = CGColor + self.color = cgColor + super.init() } - + @objc public convenience init(color: NSUIColor) { - self.init(CGColor: color.cgColor) - } - - @objc public init(linearGradient: CGGradient, angle: CGFloat) - { - type = .linearGradient - gradient = linearGradient - gradientAngle = angle + self.init(cgColor: color.cgColor) } - - @objc public init( - radialGradient: CGGradient, - startOffsetPercent: CGPoint, - startRadiusPercent: CGFloat, - endOffsetPercent: CGPoint, - endRadiusPercent: CGFloat - ) + + public func fillPath(context: CGContext, rect: CGRect) { - type = .radialGradient - gradient = radialGradient - gradientStartOffsetPercent = startOffsetPercent - gradientStartRadiusPercent = startRadiusPercent - gradientEndOffsetPercent = endOffsetPercent - gradientEndRadiusPercent = endRadiusPercent + context.saveGState() + defer { context.restoreGState() } + + context.setFillColor(color) + context.fillPath() } - - @objc public convenience init(radialGradient: CGGradient) +} + +@objc(ChartImageFill) +public class ImageFill: NSObject, Fill +{ + + @objc public let image: CGImage + @objc public let isTiled: Bool + + @objc public init(cgImage: CGImage, isTiled: Bool = false) { - self.init( - radialGradient: radialGradient, - startOffsetPercent: CGPoint(x: 0.0, y: 0.0), - startRadiusPercent: 0.0, - endOffsetPercent: CGPoint(x: 0.0, y: 0.0), - endRadiusPercent: 1.0 - ) + image = cgImage + self.isTiled = isTiled + super.init() } - - @objc public init(CGImage: CGImage, tiled: Bool = false) + + @objc public convenience init(image: NSUIImage, isTiled: Bool = false) { - type = tiled ? .tiledImage : .image - image = CGImage + self.init(cgImage: image.cgImage!, isTiled: isTiled) } - - @objc public convenience init(image: NSUIImage, tiled: Bool = false) + + public func fillPath(context: CGContext, rect: CGRect) { - self.init(CGImage: image.cgImage!, tiled: tiled) + context.saveGState() + defer { context.restoreGState() } + + context.clip() + context.draw(image, in: rect, byTiling: isTiled) } +} - @objc public init(CGLayer: CGLayer) +@objc(ChartLayerFill) +public class LayerFill: NSObject, Fill +{ + + @objc public let layer: CGLayer + + @objc public init(layer: CGLayer) { - type = .layer - layer = CGLayer + self.layer = layer + super.init() } - - // MARK: Constructors - - @objc open class func fillWithCGColor(_ CGColor: CGColor) -> Fill + + public func fillPath(context: CGContext, rect: CGRect) { - return Fill(CGColor: CGColor) + context.saveGState() + defer { context.restoreGState() } + + context.clip() + context.draw(layer, in: rect) } - - @objc open class func fillWithColor(_ color: NSUIColor) -> Fill +} + +@objc(ChartLinearGradientFill) +public class LinearGradientFill: NSObject, Fill +{ + + @objc public let gradient: CGGradient + @objc public let angle: CGFloat + + @objc public init(gradient: CGGradient, angle: CGFloat = 0) { - return Fill(color: color) + self.gradient = gradient + self.angle = angle + super.init() } - - @objc open class func fillWithLinearGradient( - _ linearGradient: CGGradient, - angle: CGFloat) -> Fill + + public func fillPath(context: CGContext, rect: CGRect) { - return Fill(linearGradient: linearGradient, angle: angle) + context.saveGState() + defer { context.restoreGState() } + + let radians = (360.0 - angle).DEG2RAD + let centerPoint = CGPoint(x: rect.midX, y: rect.midY) + let xAngleDelta = cos(radians) * rect.width / 2.0 + let yAngleDelta = sin(radians) * rect.height / 2.0 + let startPoint = CGPoint( + x: centerPoint.x - xAngleDelta, + y: centerPoint.y - yAngleDelta + ) + let endPoint = CGPoint( + x: centerPoint.x + xAngleDelta, + y: centerPoint.y + yAngleDelta + ) + + context.clip() + context.drawLinearGradient( + gradient, + start: startPoint, + end: endPoint, + options: [.drawsAfterEndLocation, .drawsBeforeStartLocation] + ) } - - @objc open class func fillWithRadialGradient( - _ radialGradient: CGGradient, +} + +@objc(ChartRadialGradientFill) +public class RadialGradientFill: NSObject, Fill +{ + + @objc public let gradient: CGGradient + @objc public let startOffsetPercent: CGPoint + @objc public let endOffsetPercent: CGPoint + @objc public let startRadiusPercent: CGFloat + @objc public let endRadiusPercent: CGFloat + + @objc public init( + gradient: CGGradient, startOffsetPercent: CGPoint, - startRadiusPercent: CGFloat, endOffsetPercent: CGPoint, - endRadiusPercent: CGFloat - ) -> Fill - { - return Fill( - radialGradient: radialGradient, - startOffsetPercent: startOffsetPercent, - startRadiusPercent: startRadiusPercent, - endOffsetPercent: endOffsetPercent, - endRadiusPercent: endRadiusPercent - ) - } - - @objc open class func fillWithRadialGradient(_ radialGradient: CGGradient) -> Fill - { - return Fill(radialGradient: radialGradient) - } - - @objc open class func fillWithCGImage(_ CGImage: CGImage, tiled: Bool = false) -> Fill - { - return Fill(CGImage: CGImage, tiled: tiled) - } - - @objc open class func fillWithImage(_ image: NSUIImage, tiled: Bool = false) -> Fill + startRadiusPercent: CGFloat, + endRadiusPercent: CGFloat) { - return Fill(image: image, tiled: tiled) + self.gradient = gradient + self.startOffsetPercent = startOffsetPercent + self.endOffsetPercent = endOffsetPercent + self.startRadiusPercent = startRadiusPercent + self.endRadiusPercent = endRadiusPercent + super.init() } - @objc open class func fillWithCGLayer(_ CGLayer: CGLayer) -> Fill + @objc public convenience init(gradient: CGGradient) { - return Fill(CGLayer: CGLayer) + self.init( + gradient: gradient, + startOffsetPercent: .zero, + endOffsetPercent: .zero, + startRadiusPercent: 0, + endRadiusPercent: 1 + ) } - - // MARK: Drawing code - - /// Draws the provided path in filled mode with the provided area - @objc open func fillPath( - context: CGContext, - rect: CGRect) + + @objc public func fillPath(context: CGContext, rect: CGRect) { - let fillType = type - if fillType == .empty - { - return - } - context.saveGState() defer { context.restoreGState() } - - switch fillType - { - case .color: - - context.setFillColor(color!) - context.fillPath() - - case .image: - - context.clip() - context.draw(image!, in: rect) - - case .tiledImage: - - context.clip() - context.draw(image!, in: rect, byTiling: true) - - case .layer: - - context.clip() - context.draw(layer!, in: rect) - - case .linearGradient: - - let radians = (360.0 - gradientAngle).DEG2RAD - let centerPoint = CGPoint(x: rect.midX, y: rect.midY) - let xAngleDelta = cos(radians) * rect.width / 2.0 - let yAngleDelta = sin(radians) * rect.height / 2.0 - let startPoint = CGPoint( - x: centerPoint.x - xAngleDelta, - y: centerPoint.y - yAngleDelta - ) - let endPoint = CGPoint( - x: centerPoint.x + xAngleDelta, - y: centerPoint.y + yAngleDelta - ) - - context.clip() - context.drawLinearGradient(gradient!, - start: startPoint, - end: endPoint, - options: [.drawsAfterEndLocation, .drawsBeforeStartLocation] - ) - - case .radialGradient: - - let centerPoint = CGPoint(x: rect.midX, y: rect.midY) - let radius = max(rect.width, rect.height) / 2.0 - - context.clip() - context.drawRadialGradient(gradient!, - startCenter: CGPoint( - x: centerPoint.x + rect.width * gradientStartOffsetPercent.x, - y: centerPoint.y + rect.height * gradientStartOffsetPercent.y - ), - startRadius: radius * gradientStartRadiusPercent, - endCenter: CGPoint( - x: centerPoint.x + rect.width * gradientEndOffsetPercent.x, - y: centerPoint.y + rect.height * gradientEndOffsetPercent.y - ), - endRadius: radius * gradientEndRadiusPercent, - options: [.drawsAfterEndLocation, .drawsBeforeStartLocation] - ) - - case .empty: - break - } + + let centerPoint = CGPoint(x: rect.midX, y: rect.midY) + let radius = max(rect.width, rect.height) / 2.0 + + context.clip() + context.drawRadialGradient( + gradient, + startCenter: CGPoint( + x: centerPoint.x + rect.width * startOffsetPercent.x, + y: centerPoint.y + rect.height * startOffsetPercent.y + ), + startRadius: radius * startRadiusPercent, + endCenter: CGPoint( + x: centerPoint.x + rect.width * endOffsetPercent.x, + y: centerPoint.y + rect.height * endOffsetPercent.y + ), + endRadius: radius * endRadiusPercent, + options: [.drawsAfterEndLocation, .drawsBeforeStartLocation] + ) } } From 9275d373136dfc98cdb365bff5280c37066df4dc Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Mon, 27 Jul 2020 11:11:13 +0800 Subject: [PATCH 69/84] update to Swift 5, Xcode 13.5.1, and fix warnings --- Charts.xcodeproj/project.pbxproj | 11 +++++--- .../xcshareddata/xcschemes/Charts.xcscheme | 6 +---- .../xcschemes/ChartsTests.xcscheme | 10 +++---- .../ChartsDemo-iOS.xcodeproj/project.pbxproj | 25 +++++++++++++----- .../PlaygroundChart.playground/Contents.o | Bin 25100 -> 1052 bytes Source/Charts/Charts/ChartViewBase.swift | 4 +-- Source/Charts/Charts/PieChartView.swift | 2 +- .../Implementations/Standard/ChartData.swift | 10 +++---- .../Standard/ChartDataSet.swift | 4 +-- .../Standard/CombinedChartData.swift | 2 +- .../Standard/RadarChartDataEntry.swift | 2 +- .../Formatters/DefaultValueFormatter.swift | 2 +- .../Charts/Renderers/BarChartRenderer.swift | 2 +- .../Renderers/CandleStickChartRenderer.swift | 2 +- .../Renderers/CombinedChartRenderer.swift | 2 +- .../HorizontalBarChartRenderer.swift | 2 +- Source/Charts/Renderers/LegendRenderer.swift | 12 ++++----- .../Charts/Renderers/LineChartRenderer.swift | 2 +- .../Charts/Renderers/PieChartRenderer.swift | 14 +++++----- Source/Charts/Renderers/XAxisRenderer.swift | 2 +- .../XAxisRendererHorizontalBarChart.swift | 2 +- Source/Charts/Renderers/YAxisRenderer.swift | 2 +- .../YAxisRendererHorizontalBarChart.swift | 2 +- .../Renderers/YAxisRendererRadarChart.swift | 2 +- .../Charts/Utils/Platform+Accessibility.swift | 2 +- 25 files changed, 65 insertions(+), 61 deletions(-) diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 36c2a815f6..61ac9caf07 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -759,10 +759,10 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1150; TargetAttributes = { A58A4ED274A941CA248EA921 = { - LastSwiftMigration = 0900; + LastSwiftMigration = 1150; }; F2749BD5443C1CB5FE2080C2 = { LastSwiftMigration = 0900; @@ -774,6 +774,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 865A1CF149F52850CAB7F177; @@ -1033,7 +1034,7 @@ SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1075,6 +1076,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -1126,6 +1128,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -1206,7 +1209,7 @@ SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; diff --git a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme index 6029c01d57..9de9a0d033 100644 --- a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme +++ b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme @@ -1,6 +1,6 @@ - - - - + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> @@ -40,8 +40,6 @@ - - - - FDhK2D0+$rGOXu!?#e!ny}eVcf`ueq z%9NItVx1zOz5jw1cG_54B+l&4=XyRG2j-jK%>L&0J@?}N_Fo1dkpddX2?KDFX8_Pc zK9CIItHTee=DCMV=d8ot%0)87KUB=M)YDUiOx~|kHOc|j-CfJwqV>(hYIH}E2w}3|ME#4)1cAFLc56T(w-URy{v_EX>pE6yCJwD`>9s-4T&&rTFuD^zX)5 z3R?ag9N&ze&Xz{b*YB>re&erGnPdyc*s>7}k0GuCbW4)hUxLJ5E|F``WPcH>pX#5< zfB%n6`T+`^xx?gihyH)Ko#?H76gyLS(C?8a`jR{X-PcQb*VEZizieMsY*h{{&&7uF YYZL(;!*an!+ip0+kMF;3D-8dE2j(7ijsO4v literal 25100 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 diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index b551a0b17f..4435af3eea 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -281,7 +281,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate constrainedTo: bounds.size, anchor: CGPoint(x: 0.5, y: 0.5), angleRadians: 0.0, - attributes: [.font: noDataFont, + attributes: [.font: noDataFont!, .foregroundColor: noDataTextColor, .paragraphStyle: paragraphStyle]) @@ -782,7 +782,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate @objc open func removeViewportJob(_ job: ViewPortJob) { - if let index = _viewportJobs.index(where: { $0 === job }) + if let index = _viewportJobs.firstIndex(where: { $0 === job }) { _viewportJobs.remove(at: index) } diff --git a/Source/Charts/Charts/PieChartView.swift b/Source/Charts/Charts/PieChartView.swift index 9dd566b12b..b98937368c 100644 --- a/Source/Charts/Charts/PieChartView.swift +++ b/Source/Charts/Charts/PieChartView.swift @@ -279,7 +279,7 @@ open class PieChartView: PieRadarChartViewBase /// - returns: The index of the DataSet this x-index belongs to. @objc open func dataSetIndexForIndex(_ xValue: Double) -> Int { - var dataSets = data?.dataSets ?? [] + let dataSets = data?.dataSets ?? [] for i in 0 ..< dataSets.count { diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index a548a8ccc5..4a02c0b9d4 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -285,7 +285,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - returns: `true` if a DataSet was removed, `false` ifno DataSet could be removed. @objc @discardableResult open func removeDataSet(_ dataSet: Element) -> Element? { - guard let index = index(where: { $0 === dataSet }) else { return nil } + guard let index = firstIndex(where: { $0 === dataSet }) else { return nil } return remove(at: index) } @@ -340,7 +340,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - returns: The index of the provided DataSet in the DataSet array of this data object, or -1 if it does not exist. @objc open func index(of dataSet: Element) -> Index { - return index(where: { $0 === dataSet }) ?? -1 + return firstIndex(where: { $0 === dataSet }) ?? -1 } /// - returns: The first DataSet from the datasets-array that has it's dependency on the left axis. Returns null if no DataSet with left dependency could be found. @@ -548,8 +548,8 @@ extension ChartData public func index(forLabel label: String, ignoreCase: Bool) -> Index? { return ignoreCase - ? index { $0.label?.caseInsensitiveCompare(label) == .orderedSame } - : index { $0.label == label } + ? firstIndex { $0.label?.caseInsensitiveCompare(label) == .orderedSame } + : firstIndex { $0.label == label } } public subscript(label label: String, ignoreCase ignoreCase: Bool) -> Element? @@ -562,7 +562,7 @@ extension ChartData { assert(!(self is CombinedChartData), "\(#function) not supported for CombinedData") - guard let index = index(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { return nil } + guard let index = firstIndex(where: { $0.entryForXValue(entry.x, closestToY: entry.y) === entry }) else { return nil } return self[index] } } diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index 6452405ed0..2f1654fe6a 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -355,7 +355,7 @@ open class ChartDataSet: ChartBaseDataSet // TODO: Should be returning `nil` to follow Swift convention open override func entryIndex(entry e: ChartDataEntry) -> Int { - return values.index { $0 === e } ?? -1 + return values.firstIndex { $0 === e } ?? -1 } /// Adds an Entry to the DataSet dynamically. @@ -409,7 +409,7 @@ open class ChartDataSet: ChartBaseDataSet // TODO: This should return the removed entry to follow Swift convention. open override func removeEntry(_ entry: ChartDataEntry) -> Bool { - guard let i = values.index(where: { $0 === entry }) else { return false } + guard let i = values.firstIndex(where: { $0 === entry }) else { return false } isIndirectValuesCall = true values.remove(at: i) diff --git a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift index dbd4048b66..34643a6323 100644 --- a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift @@ -206,7 +206,7 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData open func dataIndex(_ data: ChartData) -> Int? { - return allData.index(of: data) + return allData.firstIndex(of: data) } open override func removeDataSet(_ dataSet: ChartDataSetProtocol) -> Element? diff --git a/Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift b/Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift index 4cf7189008..60b7af6f14 100644 --- a/Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift +++ b/Source/Charts/Data/Implementations/Standard/RadarChartDataEntry.swift @@ -37,7 +37,7 @@ open class RadarChartDataEntry: ChartDataEntry @objc open var value: Double { get { return y } - set { y = value } + set { y = newValue } } // MARK: NSCopying diff --git a/Source/Charts/Formatters/DefaultValueFormatter.swift b/Source/Charts/Formatters/DefaultValueFormatter.swift index 8affc862a0..ddb3777745 100644 --- a/Source/Charts/Formatters/DefaultValueFormatter.swift +++ b/Source/Charts/Formatters/DefaultValueFormatter.swift @@ -80,7 +80,7 @@ open class DefaultValueFormatter: NSObject, ValueFormatter /// This function is deprecated - Use `init(block:)` instead. // DEC 11, 2017 - @available(*, deprecated: 3.0, message: "Use `init(block:)` instead.") + @available(*, deprecated, message: "Use `init(block:)` instead.") @objc public static func with(block: @escaping Block) -> DefaultValueFormatter { return DefaultValueFormatter(block: block) diff --git a/Source/Charts/Renderers/BarChartRenderer.swift b/Source/Charts/Renderers/BarChartRenderer.swift index de94e87d42..e2ff3855a0 100644 --- a/Source/Charts/Renderers/BarChartRenderer.swift +++ b/Source/Charts/Renderers/BarChartRenderer.swift @@ -381,7 +381,7 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer let barData = dataProvider.barData else { return } - var dataSets = barData.dataSets + let dataSets = barData.dataSets let valueOffsetPlus: CGFloat = 4.5 var posOffset: CGFloat diff --git a/Source/Charts/Renderers/CandleStickChartRenderer.swift b/Source/Charts/Renderers/CandleStickChartRenderer.swift index 31e1e0278f..d133c0ce31 100644 --- a/Source/Charts/Renderers/CandleStickChartRenderer.swift +++ b/Source/Charts/Renderers/CandleStickChartRenderer.swift @@ -284,7 +284,7 @@ open class CandleStickChartRenderer: LineScatterCandleRadarRenderer // if values are drawn if isDrawingValuesAllowed(dataProvider: dataProvider) { - var dataSets = candleData.dataSets + let dataSets = candleData.dataSets let phaseY = animator.phaseY diff --git a/Source/Charts/Renderers/CombinedChartRenderer.swift b/Source/Charts/Renderers/CombinedChartRenderer.swift index 734c54c468..9aa7b2bf35 100644 --- a/Source/Charts/Renderers/CombinedChartRenderer.swift +++ b/Source/Charts/Renderers/CombinedChartRenderer.swift @@ -168,7 +168,7 @@ open class CombinedChartRenderer: NSObject, DataRenderer data = (renderer as! BubbleChartRenderer).dataProvider?.bubbleData } - let dataIndex = data == nil ? nil : (chart?.data as? CombinedChartData)?.allData.index(of: data!) + let dataIndex = data == nil ? nil : (chart?.data as? CombinedChartData)?.allData.firstIndex(of: data!) let dataIndices = indices.filter{ $0.dataIndex == dataIndex || $0.dataIndex == -1 } diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index d992f49da5..b2e20e5bd7 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -324,7 +324,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer let barData = dataProvider.barData else { return } - var dataSets = barData.dataSets + let dataSets = barData.dataSets let textAlign = NSTextAlignment.left diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index 9cd43439c5..80030cf87b 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -44,7 +44,7 @@ open class LegendRenderer: NSObject, Renderer // loop for building up the colors and labels used in the legend for dataSet in data { - var clrs: [NSUIColor] = dataSet.colors + let clrs: [NSUIColor] = dataSet.colors let entryCount = dataSet.entryCount // if we have a barchart with stacked bars @@ -52,7 +52,7 @@ open class LegendRenderer: NSObject, Renderer (dataSet as! BarChartDataSetProtocol).isStacked { let bds = dataSet as! BarChartDataSetProtocol - var sLabels = bds.stackLabels + let sLabels = bds.stackLabels let minEntries = min(clrs.count, bds.stackSize) for j in 0.. Int { guard let axElement = element as? NSUIAccessibilityElement else { return NSNotFound } - return (accessibilityChildren() as? [NSUIAccessibilityElement])?.index(of: axElement) ?? NSNotFound + return (accessibilityChildren() as? [NSUIAccessibilityElement])?.firstIndex(of: axElement) ?? NSNotFound } } From 3f84f8777e18ba241292a5c2bc023ab47c6cc3b2 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Thu, 27 Aug 2020 11:57:05 +0800 Subject: [PATCH 70/84] fix all compile errors and wrong symbols either by git or me. --- Charts.podspec | 2 +- Charts.xcodeproj/project.pbxproj | 8 +- .../ChartsDemo-iOS.xcodeproj/project.pbxproj | 1 - .../Demos/LineChart1ViewController.m | 6 +- .../Demos/LineChart1ViewController.swift | 2 +- README.md | 6 +- Source/Charts/Charts/PieChartView.swift | 2 +- Source/Charts/Components/AxisBase.swift | 6 +- Source/Charts/Components/ChartLimitLine.swift | 10 +- .../Implementations/ChartBaseDataSet.swift | 2 +- .../Standard/BarChartDataSet.swift | 8 +- .../Standard/BubbleChartDataSet.swift | 2 +- .../Standard/CandleChartDataSet.swift | 12 +- .../Implementations/Standard/ChartData.swift | 32 +- .../Standard/ChartDataSet.swift | 21 +- .../HorizontalBarChartRenderer.swift | 2 +- .../Renderers/ScatterChartRenderer.swift | 4 +- Source/Charts/Renderers/XAxisRenderer.swift | 4 +- Source/Charts/Renderers/YAxisRenderer.swift | 2 +- .../YAxisRendererHorizontalBarChart.swift | 2 +- .../Charts/Utils/Platform+Accessibility.swift | 2 +- Source/Charts/Utils/Platform.swift | 409 +----------------- 22 files changed, 75 insertions(+), 470 deletions(-) diff --git a/Charts.podspec b/Charts.podspec index ddca6ecff9..c98022a69f 100644 --- a/Charts.podspec +++ b/Charts.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "Charts" - s.version = "3.5.0" + s.version = "4.0.0" s.summary = "Charts is a powerful & easy to use chart library for iOS, tvOS and OSX (and Android)" s.homepage = "https://github.com/danielgindi/Charts" s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE" } diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 8702a1a5c3..9832d61a44 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -788,11 +788,11 @@ }; buildConfigurationList = 493FF4FB1D40FC7C51DDDA6B /* Build configuration list for PBXProject "Charts" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - English, en, + Base, ); mainGroup = 865A1CF149F52850CAB7F177; productRefGroup = AB2D554102718F209377399E /* Products */; @@ -1048,7 +1048,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11; - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 4.0.0; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1225,7 +1225,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11; - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 4.0.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = com.dcg.Charts; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj b/ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj index 92cdd95952..9a8081ab84 100644 --- a/ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj +++ b/ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj @@ -670,7 +670,6 @@ developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - English, en, Base, ); diff --git a/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m index b137d93b25..c191983f40 100644 --- a/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m +++ b/ChartsDemo-iOS/Objective-C/Demos/LineChart1ViewController.m @@ -61,7 +61,7 @@ - (void)viewDidLoad ChartLimitLine *llXAxis = [[ChartLimitLine alloc] initWithLimit:10.0 label:@"Index 10"]; llXAxis.lineWidth = 4.0; llXAxis.lineDashLengths = @[@(10.f), @(10.f), @(0.f)]; - llXAxis.labelPosition = ChartLimitLabelPositionBottomRight; + llXAxis.labelPosition = ChartLimitLabelPositionRightBottom; llXAxis.valueFont = [UIFont systemFontOfSize:10.f]; //[_chartView.xAxis addLimitLine:llXAxis]; @@ -72,13 +72,13 @@ - (void)viewDidLoad ChartLimitLine *ll1 = [[ChartLimitLine alloc] initWithLimit:150.0 label:@"Upper Limit"]; ll1.lineWidth = 4.0; ll1.lineDashLengths = @[@5.f, @5.f]; - ll1.labelPosition = ChartLimitLabelPositionTopRight; + ll1.labelPosition = ChartLimitLabelPositionRightTop; ll1.valueFont = [UIFont systemFontOfSize:10.0]; ChartLimitLine *ll2 = [[ChartLimitLine alloc] initWithLimit:-30.0 label:@"Lower Limit"]; ll2.lineWidth = 4.0; ll2.lineDashLengths = @[@5.f, @5.f]; - ll2.labelPosition = ChartLimitLabelPositionBottomRight; + ll2.labelPosition = ChartLimitLabelPositionRightBottom; ll2.valueFont = [UIFont systemFontOfSize:10.0]; ChartYAxis *leftAxis = _chartView.leftAxis; diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift index 44f9a36a2b..6c97f55b89 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift @@ -114,7 +114,7 @@ class LineChart1ViewController: DemoBaseViewController { return ChartDataEntry(x: Double(i), y: val, icon: #imageLiteral(resourceName: "icon")) } - let set1 = LineChartDataSet(values: values, label: "DataSet 1") + let set1 = LineChartDataSet(entries: values, label: "DataSet 1") set1.drawIconsEnabled = false setup(set1) diff --git a/README.md b/README.md index a469fbd5ba..c32e9ce25b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -**Version 3.5.0**, synced to [MPAndroidChart #f6a398b](https://github.com/PhilJay/MPAndroidChart/commit/f6a398b) +**Version 4.0.0**, synced to [MPAndroidChart #f6a398b](https://github.com/PhilJay/MPAndroidChart/commit/f6a398b) ![alt tag](https://raw.github.com/danielgindi/Charts/master/Assets/feature_graphic.png) ![Supported Platforms](https://img.shields.io/cocoapods/p/Charts.svg) [![Releases](https://img.shields.io/github/release/danielgindi/Charts.svg)](https://github.com/danielgindi/Charts/releases) [![Latest pod release](https://img.shields.io/cocoapods/v/Charts.svg)](http://cocoapods.org/pods/charts) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Build Status](https://travis-ci.org/danielgindi/Charts.svg?branch=master)](https://travis-ci.org/danielgindi/Charts) [![codecov](https://codecov.io/gh/danielgindi/Charts/branch/master/graph/badge.svg)](https://codecov.io/gh/danielgindi/Charts) @@ -86,8 +86,8 @@ For [Realm](https://realm.io/) support, please add `pod 'ChartsRealm'` too. Charts now include Carthage prebuilt binaries. ```carthage -github "danielgindi/Charts" == 3.5.0 -github "danielgindi/Charts" ~> 3.5.0 +github "danielgindi/Charts" == 4.0.0 +github "danielgindi/Charts" ~> 4.0.0 ``` In order to build the binaries for a new release, use `carthage build --no-skip-current && carthage archive Charts`. diff --git a/Source/Charts/Charts/PieChartView.swift b/Source/Charts/Charts/PieChartView.swift index bacaa3b70b..ed2b898687 100644 --- a/Source/Charts/Charts/PieChartView.swift +++ b/Source/Charts/Charts/PieChartView.swift @@ -127,7 +127,7 @@ open class PieChartView: PieRadarChartViewBase /// if width is larger than height private var widthLarger: Bool { - return _viewPortHandler.contentRect.orientation == .landscape + return viewPortHandler.contentRect.orientation == .landscape } /// adjusted radius. Use diameter when it's half pie and width is larger diff --git a/Source/Charts/Components/AxisBase.swift b/Source/Charts/Components/AxisBase.swift index 8feaed8e09..119fb4f971 100644 --- a/Source/Charts/Components/AxisBase.swift +++ b/Source/Charts/Components/AxisBase.swift @@ -166,11 +166,7 @@ open class AxisBase: ComponentBase { get { - if _axisValueFormatter == nil - { - _axisValueFormatter = DefaultAxisValueFormatter(decimals: decimals) - } - else if _axisValueFormatter is DefaultAxisValueFormatter && + if _axisValueFormatter is DefaultAxisValueFormatter && (_axisValueFormatter as! DefaultAxisValueFormatter).hasAutoDecimals && (_axisValueFormatter as! DefaultAxisValueFormatter).decimals != decimals { diff --git a/Source/Charts/Components/ChartLimitLine.swift b/Source/Charts/Components/ChartLimitLine.swift index 407c7cd4cc..fc876b4d80 100644 --- a/Source/Charts/Components/ChartLimitLine.swift +++ b/Source/Charts/Components/ChartLimitLine.swift @@ -20,10 +20,10 @@ open class ChartLimitLine: ComponentBase @objc(ChartLimitLabelPosition) public enum LabelPosition: Int { - case topLeft - case topRight - case bottomLeft - case bottomRight + case leftTop + case leftBottom + case rightTop + case rightBottom } /// limit / maximum (the y-value or xIndex) @@ -39,7 +39,7 @@ open class ChartLimitLine: ComponentBase @objc open var drawLabelEnabled = true @objc open var label = "" - @objc open var labelPosition = LabelPosition.topRight + @objc open var labelPosition = LabelPosition.rightTop public override init() { diff --git a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift index e39b42fde7..fc485db5ae 100644 --- a/Source/Charts/Data/Implementations/ChartBaseDataSet.swift +++ b/Source/Charts/Data/Implementations/ChartBaseDataSet.swift @@ -396,7 +396,7 @@ open class ChartBaseDataSet: NSObject, ChartDataSetProtocol, NSCopying copy.label = label copy.axisDependency = axisDependency copy.highlightEnabled = highlightEnabled - copy._valueFormatter = _valueFormatter + copy.valueFormatter = valueFormatter copy.valueFont = valueFont copy.form = form copy.formSize = formSize diff --git a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift index 6a1b3ae288..4a4582bc6b 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift @@ -70,13 +70,13 @@ open class BarChartDataSet: BarLineScatterCandleBubbleChartDataSet, BarChartData if e.yValues == nil { - _yMin = min(e.y, _yMin) - _yMax = max(e.y, _yMax) + _yMin = Swift.min(e.y, _yMin) + _yMax = Swift.max(e.y, _yMax) } else { - _yMin = min(-e.negativeSum, _yMin) - _yMax = max(e.positiveSum, _yMax) + _yMin = Swift.min(-e.negativeSum, _yMin) + _yMax = Swift.max(e.positiveSum, _yMax) } calcMinMaxX(entry: e) diff --git a/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift index 5b7d8c0c68..02bdc399d0 100644 --- a/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BubbleChartDataSet.swift @@ -30,7 +30,7 @@ open class BubbleChartDataSet: BarLineScatterCandleBubbleChartDataSet, BubbleCha super.calcMinMax(entry: e) - _maxSize = max(e.size, maxSize) + _maxSize = Swift.max(e.size, maxSize) } // MARK: - Styling functions and accessors diff --git a/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift index 2ac137a93d..a860a3b91f 100644 --- a/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/CandleChartDataSet.swift @@ -33,8 +33,8 @@ open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, CandleChartDa guard let e = e as? CandleChartDataEntry else { return } - _yMin = min(e.low, _yMin) - _yMax = max(e.high, _yMax) + _yMin = Swift.min(e.low, _yMin) + _yMax = Swift.max(e.high, _yMax) calcMinMaxX(entry: e) } @@ -44,11 +44,11 @@ open class CandleChartDataSet: LineScatterCandleRadarChartDataSet, CandleChartDa guard let e = e as? CandleChartDataEntry else { return } - _yMin = min(e.low, _yMin) - _yMax = max(e.high, _yMin) + _yMin = Swift.min(e.low, _yMin) + _yMax = Swift.max(e.high, _yMin) - _yMin = min(e.low, _yMax) - _yMax = max(e.high, _yMax) + _yMin = Swift.min(e.low, _yMax) + _yMax = Swift.max(e.high, _yMax) } // MARK: - Styling functions and accessors diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 8e6b581167..72cd3da893 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -140,40 +140,40 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// Adjusts the current minimum and maximum values based on the provided Entry object. @objc open func calcMinMax(entry e: ChartDataEntry, axis: YAxis.AxisDependency) { - xMax = max(xMax, e.x) - xMin = min(xMin, e.x) - yMax = max(yMax, e.y) - yMin = min(yMin, e.y) + xMax = Swift.max(xMax, e.x) + xMin = Swift.min(xMin, e.x) + yMax = Swift.max(yMax, e.y) + yMin = Swift.min(yMin, e.y) switch axis { case .left: - leftAxisMax = max(leftAxisMax, e.y) - leftAxisMin = min(leftAxisMin, e.y) + leftAxisMax = Swift.max(leftAxisMax, e.y) + leftAxisMin = Swift.min(leftAxisMin, e.y) case .right: - rightAxisMax = max(rightAxisMax, e.y) - rightAxisMin = min(rightAxisMin, e.y) + rightAxisMax = Swift.max(rightAxisMax, e.y) + rightAxisMin = Swift.min(rightAxisMin, e.y) } } /// Adjusts the minimum and maximum values based on the given DataSet. @objc open func calcMinMax(dataSet d: Element) { - xMax = max(xMax, d.xMax) - xMin = min(xMin, d.xMin) - yMax = max(yMax, d.yMax) - yMin = min(yMin, d.yMin) + xMax = Swift.max(xMax, d.xMax) + xMin = Swift.min(xMin, d.xMin) + yMax = Swift.max(yMax, d.yMax) + yMin = Swift.min(yMin, d.yMin) switch d.axisDependency { case .left: - leftAxisMax = max(leftAxisMax, d.yMax) - leftAxisMin = min(leftAxisMin, d.yMin) + leftAxisMax = Swift.max(leftAxisMax, d.yMax) + leftAxisMin = Swift.min(leftAxisMin, d.yMin) case .right: - rightAxisMax = max(rightAxisMax, d.yMax) - rightAxisMin = min(rightAxisMin, d.yMin) + rightAxisMax = Swift.max(rightAxisMax, d.yMax) + rightAxisMin = Swift.min(rightAxisMin, d.yMin) } } diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index a4540ebe59..771a44b234 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -31,14 +31,15 @@ open class ChartDataSet: ChartBaseDataSet super.init() } - public override convenience init(label: String) + public override init(label: String) { - self.init(entries: nil, label: label) + entries = [] + super.init(label: label) } @objc public init(entries: [ChartDataEntry], label: String) { - self.entries = entries ?? [] + self.entries = entries super.init(label: label) @@ -55,9 +56,8 @@ open class ChartDataSet: ChartBaseDataSet /// - Note: Calls `notifyDataSetChanged()` after setting a new value. /// - Returns: The array of y-values that this DataSet represents. /// the entries that this dataset represents / holds together - @available(*, unavailable, renamed: "entries") @objc - open var values: [ChartDataEntry] { return entries } + open private(set) var entries: [ChartDataEntry] { didSet { @@ -69,9 +69,6 @@ open class ChartDataSet: ChartBaseDataSet } } - @objc - open private(set) var entries: [ChartDataEntry] - /// Used to replace all entries of a data set while retaining styling properties. /// This is a separate method from a setter on `entries` to encourage usage /// of `Collection` conformances. @@ -126,14 +123,14 @@ open class ChartDataSet: ChartBaseDataSet @objc open func calcMinMaxX(entry e: ChartDataEntry) { - _xMin = min(e.x, _xMin) - _xMax = max(e.x, _xMax) + _xMin = Swift.min(e.x, _xMin) + _xMax = Swift.max(e.x, _xMax) } @objc open func calcMinMaxY(entry e: ChartDataEntry) { - _yMin = min(e.y, _yMin) - _yMax = max(e.y, _yMax) + _yMin = Swift.min(e.y, _yMin) + _yMax = Swift.max(e.y, _yMax) } /// Updates the min and max x and y value of this DataSet based on the given Entry. diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index 9eccc584b7..bef0b60cf5 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -336,7 +336,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer for dataSetIndex in barData.indices { guard let - dataSet = dataSets[dataSetIndex] as? IBarChartDataSet, + dataSet = dataSets[dataSetIndex] as? BarChartDataSetProtocol, shouldDrawValues(forDataSet: dataSet) else { continue } diff --git a/Source/Charts/Renderers/ScatterChartRenderer.swift b/Source/Charts/Renderers/ScatterChartRenderer.swift index f2cbe18f4c..0bf420b26a 100644 --- a/Source/Charts/Renderers/ScatterChartRenderer.swift +++ b/Source/Charts/Renderers/ScatterChartRenderer.swift @@ -122,11 +122,11 @@ open class ScatterChartRenderer: LineScatterCandleRadarRenderer for i in scatterData.indices { + let dataSet = dataSets[i] + guard shouldDrawValues(forDataSet: dataSet) else { continue } - let dataSet = dataSets[i] - let valueFont = dataSet.valueFont let formatter = dataSet.valueFormatter diff --git a/Source/Charts/Renderers/XAxisRenderer.swift b/Source/Charts/Renderers/XAxisRenderer.swift index 302923a0d2..9afa032a8c 100644 --- a/Source/Charts/Renderers/XAxisRenderer.swift +++ b/Source/Charts/Renderers/XAxisRenderer.swift @@ -394,14 +394,14 @@ open class XAxisRenderer: NSObject, AxisRenderer { guard let transformer = self.transformer, - !xAxis.limitLines.isEmpty + !axis.limitLines.isEmpty else { return } let trans = transformer.valueToPixelMatrix var position = CGPoint.zero - for l in xAxis.limitLines where l.isEnabled + for l in axis.limitLines where l.isEnabled { context.saveGState() defer { context.restoreGState() } diff --git a/Source/Charts/Renderers/YAxisRenderer.swift b/Source/Charts/Renderers/YAxisRenderer.swift index 5b0ad73258..ab972f3bf6 100644 --- a/Source/Charts/Renderers/YAxisRenderer.swift +++ b/Source/Charts/Renderers/YAxisRenderer.swift @@ -131,7 +131,7 @@ open class YAxisRenderer: NSObject, AxisRenderer let from = axis.isDrawBottomYLabelEntryEnabled ? 0 : 1 let to = axis.isDrawTopYLabelEntryEnabled ? axis.entryCount : (axis.entryCount - 1) - let xOffset = yAxis.labelXOffset + let xOffset = axis.labelXOffset for i in from.. Int - { - return numberOfTouches - } - - @objc final var nsuiNumberOfTapsRequired: Int - { - get - { - return self.numberOfTapsRequired - } - set - { - self.numberOfTapsRequired = newValue - } - } - } - - extension NSUIPanGestureRecognizer - { - @objc final func nsuiNumberOfTouches() -> Int - { - return numberOfTouches - } - - @objc final func nsuiLocationOfTouch(_ touch: Int, inView: UIView?) -> CGPoint - { - return super.location(ofTouch: touch, in: inView) - } - } - -#if !os(tvOS) - extension NSUIRotationGestureRecognizer - { - @objc final var nsuiRotation: CGFloat - { - get { return rotation } - set { rotation = newValue } - } - } -#endif - -#if !os(tvOS) - extension NSUIPinchGestureRecognizer + + open class NSUIView: UIView { - @objc final var nsuiScale: CGFloat - { - get - { - return scale - } - set - { - scale = newValue - } - } - - @objc final func nsuiLocationOfTouch(_ touch: Int, inView: UIView?) -> CGPoint + @objc var nsuiLayer: CALayer? { - return super.location(ofTouch: touch, in: inView) + return self.layer } } -#endif - - open class NSUIView: UIView - { - public final override func touchesBegan(_ touches: Set, with event: NSUIEvent?) - { - self.nsuiTouchesBegan(touches, withEvent: event) - } - - public final override func touchesMoved(_ touches: Set, with event: NSUIEvent?) - { - self.nsuiTouchesMoved(touches, withEvent: event) - } - - public final override func touchesEnded(_ touches: Set, with event: NSUIEvent?) - { - self.nsuiTouchesEnded(touches, withEvent: event) - } - - public final override func touchesCancelled(_ touches: Set, with event: NSUIEvent?) - { - self.nsuiTouchesCancelled(touches, withEvent: event) - } - - @objc open func nsuiTouchesBegan(_ touches: Set, withEvent event: NSUIEvent?) - { - super.touchesBegan(touches, with: event!) - } - - @objc open func nsuiTouchesMoved(_ touches: Set, withEvent event: NSUIEvent?) - { - super.touchesMoved(touches, with: event!) - } - - @objc open func nsuiTouchesEnded(_ touches: Set, withEvent event: NSUIEvent?) - { - super.touchesEnded(touches, with: event!) - } - - @objc open func nsuiTouchesCancelled(_ touches: Set?, withEvent event: NSUIEvent?) - { - super.touchesCancelled(touches!, with: event!) - } - - @objc var nsuiLayer: CALayer? - { - return self.layer - } - } - extension UIView - { - @objc final var nsuiGestureRecognizers: [NSUIGestureRecognizer]? - { - return self.gestureRecognizers - } - } - extension UIScrollView { @objc var nsuiIsScrollEnabled: Bool @@ -180,50 +53,10 @@ public typealias NSUIGestureRecognizerState = UIGestureRecognizer.State } } - func NSUIGraphicsGetCurrentContext() -> CGContext? + func NSUIMainScreen() -> NSUIScreen? { - return UIGraphicsGetCurrentContext() - } - - func NSUIGraphicsGetImageFromCurrentImageContext() -> NSUIImage! - { - return UIGraphicsGetImageFromCurrentImageContext() - } - - func NSUIGraphicsPushContext(_ context: CGContext) - { - UIGraphicsPushContext(context) - } - - func NSUIGraphicsPopContext() - { - UIGraphicsPopContext() - } - - func NSUIGraphicsEndImageContext() - { - UIGraphicsEndImageContext() - } - - func NSUIImagePNGRepresentation(_ image: NSUIImage) -> Data? - { - return image.pngData() - } - - func NSUIImageJPEGRepresentation(_ image: NSUIImage, _ quality: CGFloat = 0.8) -> Data? - { - return image.jpegData(compressionQuality: quality) - } - - func NSUIMainScreen() -> NSUIScreen? - { - return NSUIScreen.main - } - - func NSUIGraphicsBeginImageContextWithOptions(_ size: CGSize, _ opaque: Bool, _ scale: CGFloat) - { - UIGraphicsBeginImageContextWithOptions(size, opaque, scale) - } + return NSUIScreen.main + } #endif @@ -231,20 +64,10 @@ public typealias NSUIGestureRecognizerState = UIGestureRecognizer.State import Cocoa import Quartz - public typealias NSUIFont = NSFont - public typealias NSUIColor = NSColor - public typealias NSUIEvent = NSEvent - public typealias NSUITouch = NSTouch - public typealias NSUIImage = NSImage - public typealias NSUIScrollView = NSScrollView - public typealias NSUIGestureRecognizer = NSGestureRecognizer - public typealias NSUIGestureRecognizerState = NSGestureRecognizer.State - public typealias NSUIGestureRecognizerDelegate = NSGestureRecognizerDelegate - public typealias NSUITapGestureRecognizer = NSClickGestureRecognizer - public typealias NSUIPanGestureRecognizer = NSPanGestureRecognizer - public typealias NSUIPinchGestureRecognizer = NSMagnificationGestureRecognizer - public typealias NSUIRotationGestureRecognizer = NSRotationGestureRecognizer - public typealias NSUIScreen = NSScreen + public typealias NSUIFont = NSFont + public typealias NSUIImage = NSImage + public typealias NSUIScrollView = NSScrollView + public typealias NSUIScreen = NSScreen /** On OS X there is no CADisplayLink. Use a 60 fps timer to render the animations. */ public class NSUIDisplayLink @@ -340,77 +163,6 @@ public typealias NSUIGestureRecognizerState = UIGestureRecognizer.State } } - /** The 'tap' gesture is mapped to clicks. */ - extension NSUITapGestureRecognizer - { - final func nsuiNumberOfTouches() -> Int - { - return 1 - } - - final var nsuiNumberOfTapsRequired: Int - { - get - { - return self.numberOfClicksRequired - } - set - { - self.numberOfClicksRequired = newValue - } - } - } - - extension NSUIPanGestureRecognizer - { - final func nsuiNumberOfTouches() -> Int - { - return 1 - } - - /// FIXME: Currently there are no more than 1 touch in OSX gestures, and not way to create custom touch gestures. - final func nsuiLocationOfTouch(_ touch: Int, inView: NSView?) -> NSPoint - { - return super.location(in: inView) - } - } - - extension NSUIRotationGestureRecognizer - { - /// FIXME: Currently there are no velocities in OSX gestures, and not way to create custom touch gestures. - final var velocity: CGFloat - { - return 0.1 - } - - final var nsuiRotation: CGFloat - { - get { return -rotation } - set { rotation = -newValue } - } - } - - extension NSUIPinchGestureRecognizer - { - final var nsuiScale: CGFloat - { - get - { - return magnification + 1.0 - } - set - { - magnification = newValue - 1.0 - } - } - - /// FIXME: Currently there are no more than 1 touch in OSX gestures, and not way to create custom touch gestures. - final func nsuiLocationOfTouch(_ touch: Int, inView view: NSView?) -> NSPoint - { - return super.location(in: view) - } - } - extension NSView { final var nsuiGestureRecognizers: [NSGestureRecognizer]? @@ -456,47 +208,7 @@ public typealias NSUIGestureRecognizerState = UIGestureRecognizer.State { self.setNeedsDisplay(self.bounds) } - - public final override func touchesBegan(with event: NSEvent) - { - self.nsuiTouchesBegan(event.touches(matching: .any, in: self), withEvent: event) - } - - public final override func touchesEnded(with event: NSEvent) - { - self.nsuiTouchesEnded(event.touches(matching: .any, in: self), withEvent: event) - } - - public final override func touchesMoved(with event: NSEvent) - { - self.nsuiTouchesMoved(event.touches(matching: .any, in: self), withEvent: event) - } - - open override func touchesCancelled(with event: NSEvent) - { - self.nsuiTouchesCancelled(event.touches(matching: .any, in: self), withEvent: event) - } - - open func nsuiTouchesBegan(_ touches: Set, withEvent event: NSUIEvent?) - { - super.touchesBegan(with: event!) - } - open func nsuiTouchesMoved(_ touches: Set, withEvent event: NSUIEvent?) - { - super.touchesMoved(with: event!) - } - - open func nsuiTouchesEnded(_ touches: Set, withEvent event: NSUIEvent?) - { - super.touchesEnded(with: event!) - } - - open func nsuiTouchesCancelled(_ touches: Set?, withEvent event: NSUIEvent?) - { - super.touchesCancelled(with: event!) - } - open var backgroundColor: NSUIColor? { get @@ -543,17 +255,6 @@ public typealias NSUIGestureRecognizerState = UIGestureRecognizer.State } } - extension NSTouch - { - /** Touch locations on OS X are relative to the trackpad, whereas on iOS they are actually *on* the view. */ - func locationInView(view: NSView) -> NSPoint - { - let n = self.normalizedPosition - let b = view.bounds - return NSPoint(x: b.origin.x + b.size.width * n.x, y: b.origin.y + b.size.height * n.y) - } - } - extension NSScrollView { var scrollEnabled: Bool @@ -569,94 +270,6 @@ public typealias NSUIGestureRecognizerState = UIGestureRecognizer.State } } - func NSUIGraphicsGetCurrentContext() -> CGContext? - { - return NSGraphicsContext.current?.cgContext - } - - func NSUIGraphicsPushContext(_ context: CGContext) - { - let cx = NSGraphicsContext(cgContext: context, flipped: true) - NSGraphicsContext.saveGraphicsState() - NSGraphicsContext.current = cx - } - - func NSUIGraphicsPopContext() - { - NSGraphicsContext.restoreGraphicsState() - } - - func NSUIImagePNGRepresentation(_ image: NSUIImage) -> Data? - { - image.lockFocus() - let rep = NSBitmapImageRep(focusedViewRect: NSMakeRect(0, 0, image.size.width, image.size.height)) - image.unlockFocus() - return rep?.representation(using: .png, properties: [:]) - } - - func NSUIImageJPEGRepresentation(_ image: NSUIImage, _ quality: CGFloat = 0.9) -> Data? - { - image.lockFocus() - let rep = NSBitmapImageRep(focusedViewRect: NSMakeRect(0, 0, image.size.width, image.size.height)) - image.unlockFocus() - return rep?.representation(using: .jpeg, properties: [NSBitmapImageRep.PropertyKey.compressionFactor: quality]) - } - - private var imageContextStack: [CGFloat] = [] - - func NSUIGraphicsBeginImageContextWithOptions(_ size: CGSize, _ opaque: Bool, _ scale: CGFloat) - { - var scale = scale - if scale == 0.0 - { - scale = NSScreen.main?.backingScaleFactor ?? 1.0 - } - - let width = Int(size.width * scale) - let height = Int(size.height * scale) - - if width > 0 && height > 0 - { - imageContextStack.append(scale) - - let colorSpace = CGColorSpaceCreateDeviceRGB() - - guard let ctx = CGContext(data: nil, width: width, height: height, bitsPerComponent: 8, bytesPerRow: 4*width, space: colorSpace, bitmapInfo: (opaque ? CGImageAlphaInfo.noneSkipFirst.rawValue : CGImageAlphaInfo.premultipliedFirst.rawValue)) - else { return } - - ctx.concatenate(CGAffineTransform(a: 1, b: 0, c: 0, d: -1, tx: 0, ty: CGFloat(height))) - ctx.scaleBy(x: scale, y: scale) - NSUIGraphicsPushContext(ctx) - } - } - - func NSUIGraphicsGetImageFromCurrentImageContext() -> NSUIImage? - { - if !imageContextStack.isEmpty - { - guard let ctx = NSUIGraphicsGetCurrentContext() - else { return nil } - - let scale = imageContextStack.last! - if let theCGImage = ctx.makeImage() - { - let size = CGSize(width: CGFloat(ctx.width) / scale, height: CGFloat(ctx.height) / scale) - let image = NSImage(cgImage: theCGImage, size: size) - return image - } - } - return nil - } - - func NSUIGraphicsEndImageContext() - { - if imageContextStack.last != nil - { - imageContextStack.removeLast() - NSUIGraphicsPopContext() - } - } - func NSUIMainScreen() -> NSUIScreen? { return NSUIScreen.main From 58ab2e01b765cba52421d0dd446c30b370fac919 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 28 Aug 2020 09:14:53 +0800 Subject: [PATCH 71/84] revert back to convenience init for BarChartDataSet fix ChartDataTests compile errors: use new API dataSet(forLabel:, ignorecase: ) --- Cartfile.resolved | 2 +- Charts.xcodeproj/project.pbxproj | 2 +- .../Standard/BarChartDataSet.swift | 5 ++++ .../Charts/ChartDataTests.swift | 24 +++++++++---------- 4 files changed, 19 insertions(+), 14 deletions(-) rename ChartDataTests.swift => Tests/Charts/ChartDataTests.swift (73%) diff --git a/Cartfile.resolved b/Cartfile.resolved index 8f69010a98..4f9d4369ab 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "uber/ios-snapshot-test-case" "6.1.0" +github "uber/ios-snapshot-test-case" "6.2.0" diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 9832d61a44..5b5ac68630 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -287,7 +287,7 @@ BD02157CF8CEE1189BF681DA /* PieChartDataEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PieChartDataEntry.swift; path = Source/Charts/Data/Implementations/Standard/PieChartDataEntry.swift; sourceTree = ""; }; BD5C6D20243EC2F19069AACD /* CandleStickChartRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CandleStickChartRenderer.swift; path = Source/Charts/Renderers/CandleStickChartRenderer.swift; sourceTree = ""; }; BFABD027DAF6851088F002AC /* LineChartDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineChartDataProvider.swift; path = Source/Charts/Interfaces/LineChartDataProvider.swift; sourceTree = ""; }; - C03E6D8023DAAB2600083010 /* ChartDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartDataTests.swift; sourceTree = ""; }; + C03E6D8023DAAB2600083010 /* ChartDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ChartDataTests.swift; path = Tests/Charts/ChartDataTests.swift; sourceTree = ""; }; C31AA65EA27776F8C653C7E8 /* BarChartDataSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarChartDataSet.swift; path = Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift; sourceTree = ""; }; C52E8344160B5E689DA3C25C /* ChevronDownShapeRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChevronDownShapeRenderer.swift; path = Source/Charts/Renderers/Scatter/ChevronDownShapeRenderer.swift; sourceTree = ""; }; C574E1BC7E12D937A5471EF8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Tests/Supporting Files/Info.plist"; sourceTree = ""; }; diff --git a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift index 4a4582bc6b..bbad89b3f9 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift @@ -28,6 +28,11 @@ open class BarChartDataSet: BarLineScatterCandleBubbleChartDataSet, BarChartData super.init() initialize() } + + public override convenience init(label: String) + { + self.init(entries:[], label: label) + } public override init(entries: [ChartDataEntry], label: String) { diff --git a/ChartDataTests.swift b/Tests/Charts/ChartDataTests.swift similarity index 73% rename from ChartDataTests.swift rename to Tests/Charts/ChartDataTests.swift index 4e4cdbab94..8dd52adfe9 100644 --- a/ChartDataTests.swift +++ b/Tests/Charts/ChartDataTests.swift @@ -45,25 +45,25 @@ class ChartDataTests: XCTestCase { } func testGetDataSetByLabelCaseSensitive() { - XCTAssertTrue(data.getDataSetByLabel(SetLabels.one, ignorecase: false)?.label == SetLabels.one) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.two, ignorecase: false)?.label == SetLabels.two) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.three, ignorecase: false)?.label == SetLabels.three) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.one.uppercased(), ignorecase: false) == nil) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.one, ignorecase: false)?.label == SetLabels.one) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.two, ignorecase: false)?.label == SetLabels.two) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.three, ignorecase: false)?.label == SetLabels.three) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.one.uppercased(), ignorecase: false) == nil) } func testGetDataSetByLabelIgnoreCase() { - XCTAssertTrue(data.getDataSetByLabel(SetLabels.one, ignorecase: true)?.label == SetLabels.one) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.two, ignorecase: true)?.label == SetLabels.two) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.three, ignorecase: true)?.label == SetLabels.three) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.one, ignorecase: true)?.label == SetLabels.one) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.two, ignorecase: true)?.label == SetLabels.two) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.three, ignorecase: true)?.label == SetLabels.three) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.one.uppercased(), ignorecase: true)?.label == SetLabels.one) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.two.uppercased(), ignorecase: true)?.label == SetLabels.two) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.three.uppercased(), ignorecase: true)?.label == SetLabels.three) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.one.uppercased(), ignorecase: true)?.label == SetLabels.one) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.two.uppercased(), ignorecase: true)?.label == SetLabels.two) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.three.uppercased(), ignorecase: true)?.label == SetLabels.three) } func testGetDataSetByLabelNilWithBadLabel() { - XCTAssertTrue(data.getDataSetByLabel(SetLabels.badLabel, ignorecase: true) == nil) - XCTAssertTrue(data.getDataSetByLabel(SetLabels.badLabel, ignorecase: false) == nil) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.badLabel, ignorecase: true) == nil) + XCTAssertTrue(data.dataSet(forLabel: SetLabels.badLabel, ignorecase: false) == nil) } } From 4229997528aab98f8eed43ed466a02151c66d957 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 28 Aug 2020 09:29:35 +0800 Subject: [PATCH 72/84] actually, I compared the old master and find this is a mistake while merging to make init(label:) in BarChartDataSet. It should be in ChartDataSet. --- .../Data/Implementations/Standard/BarChartDataSet.swift | 5 ----- .../Charts/Data/Implementations/Standard/ChartDataSet.swift | 5 ++--- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift index bbad89b3f9..4a4582bc6b 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartDataSet.swift @@ -28,11 +28,6 @@ open class BarChartDataSet: BarLineScatterCandleBubbleChartDataSet, BarChartData super.init() initialize() } - - public override convenience init(label: String) - { - self.init(entries:[], label: label) - } public override init(entries: [ChartDataEntry], label: String) { diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index 771a44b234..4d8b8f1f60 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -31,10 +31,9 @@ open class ChartDataSet: ChartBaseDataSet super.init() } - public override init(label: String) + public override convenience init(label: String) { - entries = [] - super.init(label: label) + self.init(entries: [], label: label) } @objc public init(entries: [ChartDataEntry], label: String) From 0705a42228f395e598dd50c6343497f7fa61dc53 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 28 Aug 2020 11:34:14 +0800 Subject: [PATCH 73/84] fix -0.0 issue in 4.0 merge. fix func calculateLegendOffsets in BarLineChartViewBase due to mistaking added back offsetBottom += xAxis.labelRotatedHeight. see #4277 for details now bar & horizontal bar chart tests should pass. --- Source/Charts/Charts/BarLineChartViewBase.swift | 8 -------- Source/Charts/Renderers/XAxisRenderer.swift | 4 +++- Source/Charts/Renderers/YAxisRenderer.swift | 3 ++- Source/Charts/Renderers/YAxisRendererRadarChart.swift | 3 ++- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Source/Charts/Charts/BarLineChartViewBase.swift b/Source/Charts/Charts/BarLineChartViewBase.swift index 8171f66efa..0724cabed3 100644 --- a/Source/Charts/Charts/BarLineChartViewBase.swift +++ b/Source/Charts/Charts/BarLineChartViewBase.swift @@ -405,17 +405,9 @@ open class BarLineChartViewBase: ChartViewBase, BarLineScatterCandleBubbleChartD { case .top: offsetTop += min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) + legend.yOffset - if xAxis.isEnabled && xAxis.isDrawLabelsEnabled - { - offsetTop += xAxis.labelRotatedHeight - } case .bottom: offsetBottom += min(legend.neededHeight, viewPortHandler.chartHeight * legend.maxSizePercent) + legend.yOffset - if xAxis.isEnabled && xAxis.isDrawLabelsEnabled - { - offsetBottom += xAxis.labelRotatedHeight - } default: break diff --git a/Source/Charts/Renderers/XAxisRenderer.swift b/Source/Charts/Renderers/XAxisRenderer.swift index 9afa032a8c..db820a1e50 100644 --- a/Source/Charts/Renderers/XAxisRenderer.swift +++ b/Source/Charts/Renderers/XAxisRenderer.swift @@ -127,7 +127,9 @@ open class XAxisRenderer: NSObject, AxisRenderer axis.entries.reserveCapacity(labelCount) let start = first, end = first + Double(n) * interval - let values = stride(from: start, to: end, by: interval) + + // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) + let values = stride(from: start, to: end, by: interval).map { $0 == 0.0 ? 0.0 : $0 } axis.entries.append(contentsOf: values) } diff --git a/Source/Charts/Renderers/YAxisRenderer.swift b/Source/Charts/Renderers/YAxisRenderer.swift index ab972f3bf6..74248f7fb3 100644 --- a/Source/Charts/Renderers/YAxisRenderer.swift +++ b/Source/Charts/Renderers/YAxisRenderer.swift @@ -429,7 +429,8 @@ open class YAxisRenderer: NSObject, AxisRenderer axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - let values = stride(from: first, to: Double(n) * interval + first, by: interval) + // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) + let values = stride(from: first, to: Double(n) * interval + first, by: interval).map { $0 == 0.0 ? 0.0 : $0 } axis.entries.append(contentsOf: values) } diff --git a/Source/Charts/Renderers/YAxisRendererRadarChart.swift b/Source/Charts/Renderers/YAxisRendererRadarChart.swift index c0c18d9fa3..a47bf6ac18 100644 --- a/Source/Charts/Renderers/YAxisRendererRadarChart.swift +++ b/Source/Charts/Renderers/YAxisRendererRadarChart.swift @@ -102,7 +102,8 @@ open class YAxisRendererRadarChart: YAxisRenderer axis.entries.removeAll(keepingCapacity: true) axis.entries.reserveCapacity(labelCount) - let values = stride(from: first, to: Double(n) * interval + first, by: interval) + // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) + let values = stride(from: first, to: Double(n) * interval + first, by: interval).map { $0 == 0.0 ? 0.0 : $0 } axis.entries.append(contentsOf: values) } From bcbb0aa8b0eb9ad3a5c1d7605a6a1a9cfa15c482 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 28 Aug 2020 13:17:44 +0800 Subject: [PATCH 74/84] fix pie chart UT failures. didSet will no be called in init(), so we call it manually also fix set.valueFormatter in data setter --- Source/Charts/Charts/ChartViewBase.swift | 2 +- .../Formatters/DefaultValueFormatter.swift | 31 +++++++++++++------ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index 06910fba32..ad145f180b 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -64,7 +64,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate for set in data.dataSets { - if set.valueFormatter === defaultValueFormatter + if set.valueFormatter is DefaultValueFormatter { set.valueFormatter = defaultValueFormatter } diff --git a/Source/Charts/Formatters/DefaultValueFormatter.swift b/Source/Charts/Formatters/DefaultValueFormatter.swift index ddb3777745..ee86dc79a2 100644 --- a/Source/Charts/Formatters/DefaultValueFormatter.swift +++ b/Source/Charts/Formatters/DefaultValueFormatter.swift @@ -25,20 +25,29 @@ open class DefaultValueFormatter: NSObject, ValueFormatter @objc open var hasAutoDecimals: Bool - @objc open var formatter: NumberFormatter? { - willSet { + @objc open var formatter: NumberFormatter? + { + willSet + { hasAutoDecimals = false } } - open var decimals: Int? { - didSet { - if let digits = decimals - { - formatter?.minimumFractionDigits = digits - formatter?.maximumFractionDigits = digits - formatter?.usesGroupingSeparator = true - } + open var decimals: Int? + { + didSet + { + setupDecimals(decimals: decimals) + } + } + + private func setupDecimals(decimals: Int?) + { + if let digits = decimals + { + formatter?.minimumFractionDigits = digits + formatter?.maximumFractionDigits = digits + formatter?.usesGroupingSeparator = true } } @@ -50,6 +59,7 @@ open class DefaultValueFormatter: NSObject, ValueFormatter hasAutoDecimals = true super.init() + setupDecimals(decimals: decimals) } @objc public init(formatter: NumberFormatter) @@ -68,6 +78,7 @@ open class DefaultValueFormatter: NSObject, ValueFormatter hasAutoDecimals = true super.init() + setupDecimals(decimals: decimals) } @objc public init(block: @escaping Block) From 1c3891eb55d1004187ad3184a7582711272e9c79 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 28 Aug 2020 14:43:26 +0800 Subject: [PATCH 75/84] fix line chart UT failures --- Source/Charts/Renderers/LineChartRenderer.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 80ce5096d7..1b7f134168 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -590,6 +590,7 @@ open class LineChartRenderer: LineRadarRenderer viewPortHandler: viewPortHandler), at: CGPoint(x: pt.x, y: pt.y - CGFloat(valOffset) - valueFont.lineHeight), + align: .center, angleRadians: angleRadians, attributes: [.font: valueFont, .foregroundColor: dataSet.valueTextColorAt(j)]) From 2e60d0c778e8ef873ee6b419c9d1945e7448cc98 Mon Sep 17 00:00:00 2001 From: Jacob Christie <19879272+jjatie@users.noreply.github.com> Date: Sun, 30 Aug 2020 20:56:48 -0300 Subject: [PATCH 76/84] Remove `isIndirectValuesCall` --- .../Demos/LineChart1ViewController.swift | 2 + .../Standard/ChartDataSet.swift | 40 +++---------------- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift index 6c97f55b89..e676cd9e1a 100644 --- a/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift +++ b/ChartsDemo-iOS/Swift/Demos/LineChart1ViewController.swift @@ -118,6 +118,8 @@ class LineChart1ViewController: DemoBaseViewController { set1.drawIconsEnabled = false setup(set1) + let value = ChartDataEntry(x: Double(3), y: 3) + set1.addEntryOrdered(value) let gradientColors = [ChartColorTemplates.colorFromString("#00ff0000").cgColor, ChartColorTemplates.colorFromString("#ffff0000").cgColor] let gradient = CGGradient(colorsSpace: nil, colors: gradientColors as CFArray, locations: nil)! diff --git a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift index 4d8b8f1f60..7d4ab9f709 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift @@ -57,16 +57,6 @@ open class ChartDataSet: ChartBaseDataSet /// the entries that this dataset represents / holds together @objc open private(set) var entries: [ChartDataEntry] - { - didSet - { - if isIndirectValuesCall { - isIndirectValuesCall = false - return - } - notifyDataSetChanged() - } - } /// Used to replace all entries of a data set while retaining styling properties. /// This is a separate method from a setter on `entries` to encourage usage @@ -78,8 +68,6 @@ open class ChartDataSet: ChartBaseDataSet self.entries = entries notifyDataSetChanged() } - // TODO: Temporary fix for performance. Will be removed in 4.0 - private var isIndirectValuesCall = false /// maximum y-value in the value array internal var _yMax: Double = -Double.greatestFiniteMagnitude @@ -164,7 +152,7 @@ open class ChartDataSet: ChartBaseDataSet @available(*, deprecated, message: "Use `subscript(index:)` instead.") open override func entryForIndex(_ i: Int) -> ChartDataEntry? { - guard i >= startIndex, i < endIndex else { + guard indices.contains(i) else { return nil } return self[i] @@ -390,9 +378,6 @@ open class ChartDataSet: ChartBaseDataSet @available(*, deprecated, message: "Use `append(_:)` instead") open override func addEntry(_ e: ChartDataEntry) -> Bool { - calcMinMax(entry: e) - - isIndirectValuesCall = true append(e) return true } @@ -407,16 +392,12 @@ open class ChartDataSet: ChartBaseDataSet // TODO: This should return `Void` to follow Swift convention open override func addEntryOrdered(_ e: ChartDataEntry) -> Bool { - calcMinMax(entry: e) - - isIndirectValuesCall = true if let last = last, last.x > e.x { - var closestIndex = entryIndex(x: e.x, closestToY: e.y, rounding: .up) - while self[closestIndex].x < e.x - { - closestIndex += 1 - } + let startIndex = entryIndex(x: e.x, closestToY: e.y, rounding: .up) + let closestIndex = self[startIndex...].lastIndex { $0.x < e.x } + ?? startIndex + calcMinMax(entry: e) entries.insert(e, at: closestIndex) } else @@ -430,10 +411,7 @@ open class ChartDataSet: ChartBaseDataSet @available(*, renamed: "remove(_:)") open override func removeEntry(_ entry: ChartDataEntry) -> Bool { - isIndirectValuesCall = true - let r = remove(entry) - notifyDataSetChanged() - return r + remove(entry) } /// Removes an Entry from the DataSet dynamically. @@ -444,10 +422,8 @@ open class ChartDataSet: ChartBaseDataSet /// - Returns: `true` if the entry was removed successfully, else if the entry does not exist open func remove(_ entry: ChartDataEntry) -> Bool { - isIndirectValuesCall = true guard let index = firstIndex(of: entry) else { return false } _ = remove(at: index) - notifyDataSetChanged() return true } @@ -458,9 +434,7 @@ open class ChartDataSet: ChartBaseDataSet @available(*, deprecated, message: "Use `func removeFirst() -> ChartDataEntry` instead.") open override func removeFirst() -> Bool { - isIndirectValuesCall = true let entry: ChartDataEntry? = isEmpty ? nil : removeFirst() - notifyDataSetChanged() return entry != nil } @@ -471,9 +445,7 @@ open class ChartDataSet: ChartBaseDataSet @available(*, deprecated, message: "Use `func removeLast() -> ChartDataEntry` instead.") open override func removeLast() -> Bool { - isIndirectValuesCall = true let entry: ChartDataEntry? = isEmpty ? nil : removeLast() - notifyDataSetChanged() return entry != nil } From f7dab2f85a3d84b7b268efd528ee2d6eee871b0f Mon Sep 17 00:00:00 2001 From: Jacob Christie <19879272+jjatie@users.noreply.github.com> Date: Wed, 23 Sep 2020 06:08:12 -0300 Subject: [PATCH 77/84] Bump Travis to Xcode 12 --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 70a7ecaee0..cbf0780287 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,12 @@ language: objective-c -osx_image: xcode11 +osx_image: xcode12 matrix: include: - - osx_image: xcode11 + - osx_image: xcode12 env: PLATFORM="iOS" - - osx_image: xcode11 + - osx_image: xcode12 env: PLATFORM="tvOS" - - osx_image: xcode11 + - osx_image: xcode12 env: PLATFORM="macOS" env: global: From 2864caca9a54aa779abe8378ff118dd6b57ed788 Mon Sep 17 00:00:00 2001 From: Jacob Christie <19879272+jjatie@users.noreply.github.com> Date: Fri, 25 Sep 2020 09:19:17 -0300 Subject: [PATCH 78/84] Remove misuse of `count` (#4461) * Remove misuse of `count` * Fix protocol method name * Update ChartColorTemplates.swift use fallbackColor for `colorFromString()` * Revert "Update ChartColorTemplates.swift" This reverts commit b4111fd39b209d00b7ddef7edef7a0f5bc91789b. Co-authored-by: Xuan --- Source/Charts/Charts/ChartViewBase.swift | 2 +- Source/Charts/Charts/CombinedChartView.swift | 2 +- .../Charts/Charts/PieRadarChartViewBase.swift | 1 - Source/Charts/Components/AxisBase.swift | 7 +-- Source/Charts/Components/Legend.swift | 6 +-- .../Standard/BarChartDataEntry.swift | 16 ++---- .../Implementations/Standard/ChartData.swift | 10 ++-- .../Standard/CombinedChartData.swift | 29 ++++------- .../Standard/PieChartData.swift | 2 +- .../Charts/Filters/DataApproximator+N.swift | 6 +-- Source/Charts/Filters/DataApproximator.swift | 8 +-- .../Formatters/IndexAxisValueFormatter.swift | 20 ++----- Source/Charts/Highlight/BarHighlighter.swift | 4 +- .../Charts/Highlight/ChartHighlighter.swift | 2 +- .../Highlight/CombinedHighlighter.swift | 2 +- .../Highlight/HorizontalBarHighlighter.swift | 2 +- .../Charts/Renderers/BarChartRenderer.swift | 8 +-- .../Renderers/BubbleChartRenderer.swift | 2 +- .../Renderers/CandleStickChartRenderer.swift | 2 +- .../Renderers/CombinedChartRenderer.swift | 15 +----- Source/Charts/Renderers/DataRenderer.swift | 3 +- .../HorizontalBarChartRenderer.swift | 10 ++-- Source/Charts/Renderers/LegendRenderer.swift | 12 ++--- .../Charts/Renderers/LineChartRenderer.swift | 11 ++-- .../Charts/Renderers/PieChartRenderer.swift | 17 +++--- Source/Charts/Utils/ChartColorTemplates.swift | 52 +++++++++---------- 26 files changed, 96 insertions(+), 155 deletions(-) diff --git a/Source/Charts/Charts/ChartViewBase.swift b/Source/Charts/Charts/ChartViewBase.swift index ad145f180b..f30e292a94 100644 --- a/Source/Charts/Charts/ChartViewBase.swift +++ b/Source/Charts/Charts/ChartViewBase.swift @@ -312,7 +312,7 @@ open class ChartViewBase: NSUIView, ChartDataProvider, AnimatorDelegate guard description.isEnabled, let descriptionText = description.text, - descriptionText.count > 0 + !descriptionText.isEmpty else { return } let position = description.position ?? CGPoint(x: bounds.width - viewPortHandler.offsetRight - description.xOffset, diff --git a/Source/Charts/Charts/CombinedChartView.swift b/Source/Charts/Charts/CombinedChartView.swift index f96c685e73..6b2ecbf107 100644 --- a/Source/Charts/Charts/CombinedChartView.swift +++ b/Source/Charts/Charts/CombinedChartView.swift @@ -213,7 +213,7 @@ open class CombinedChartView: BarLineChartViewBase, CombinedChartDataProvider isDrawMarkersEnabled && valuesToHighlight() else { return } - for i in 0 ..< highlighted.count + for i in highlighted.indices { let highlight = highlighted[i] diff --git a/Source/Charts/Charts/PieRadarChartViewBase.swift b/Source/Charts/Charts/PieRadarChartViewBase.swift index 4461c11e2b..45b8e0f1db 100644 --- a/Source/Charts/Charts/PieRadarChartViewBase.swift +++ b/Source/Charts/Charts/PieRadarChartViewBase.swift @@ -678,7 +678,6 @@ open class PieRadarChartViewBase: ChartViewBase // Remove samples older than our sample time - 1 seconds // while keeping at least one sample - var i = 0, count = velocitySamples.count while (i < count - 2) { diff --git a/Source/Charts/Components/AxisBase.swift b/Source/Charts/Components/AxisBase.swift index 119fb4f971..2544f90d77 100644 --- a/Source/Charts/Components/AxisBase.swift +++ b/Source/Charts/Components/AxisBase.swift @@ -135,7 +135,7 @@ open class AxisBase: ComponentBase { var longest = "" - for i in 0 ..< entries.count + for i in entries.indices { let text = getFormattedLabel(i) @@ -151,10 +151,7 @@ open class AxisBase: ComponentBase /// - Returns: The formatted label at the specified index. This will either use the auto-formatter or the custom formatter (if one is set). @objc open func getFormattedLabel(_ index: Int) -> String { - if index < 0 || index >= entries.count - { - return "" - } + guard entries.indices.contains(index) else { return "" } return valueFormatter?.stringForValue(entries[index], axis: self) ?? "" } diff --git a/Source/Charts/Components/Legend.swift b/Source/Charts/Components/Legend.swift index 1fe8bc66c1..e86d59ca53 100644 --- a/Source/Charts/Components/Legend.swift +++ b/Source/Charts/Components/Legend.swift @@ -229,7 +229,7 @@ open class Legend: ComponentBase var wasStacked = false - for i in 0 ..< entryCount + for i in entries.indices { let e = entries[i] let drawingForm = e.form != .none @@ -311,7 +311,7 @@ open class Legend: ComponentBase var requiredWidth: CGFloat = 0.0 var stackedStartIndex: Int = -1 - for i in 0 ..< entryCount + for i in entries.indices { let e = entries[i] let drawingForm = e.form != .none @@ -384,7 +384,7 @@ open class Legend: ComponentBase neededWidth = maxLineWidth neededHeight = labelLineHeight * CGFloat(calculatedLineSizes.count) + - yEntrySpace * CGFloat(calculatedLineSizes.count == 0 ? 0 : (calculatedLineSizes.count - 1)) + yEntrySpace * CGFloat(calculatedLineSizes.isEmpty ? 0 : (calculatedLineSizes.count - 1)) } neededWidth += xOffset diff --git a/Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift b/Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift index 31c51b0f86..196f1aecf8 100644 --- a/Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift +++ b/Source/Charts/Data/Implementations/Standard/BarChartDataEntry.swift @@ -89,22 +89,14 @@ open class BarChartDataEntry: ChartDataEntry self.data = data } - @objc open func sumBelow(stackIndex :Int) -> Double + @objc open func sumBelow(stackIndex: Int) -> Double { - guard let yVals = _yVals else + guard let yVals = _yVals, yVals.indices.contains(stackIndex) else { return 0 } - - var remainder: Double = 0.0 - var index = yVals.count - 1 - - while (index > stackIndex && index >= 0) - { - remainder += yVals[index] - index -= 1 - } - + + let remainder = yVals[stackIndex...].reduce(into: 0.0) { $0 += $1 } return remainder } diff --git a/Source/Charts/Data/Implementations/Standard/ChartData.swift b/Source/Charts/Data/Implementations/Standard/ChartData.swift index 72cd3da893..e5e22d0ac2 100644 --- a/Source/Charts/Data/Implementations/Standard/ChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/ChartData.swift @@ -258,7 +258,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// - Returns: The entry that is highlighted @objc open func entry(for highlight: Highlight) -> ChartDataEntry? { - guard highlight.dataSetIndex < dataSets.count else { return nil } + guard highlight.dataSetIndex < dataSets.endIndex else { return nil } return self[highlight.dataSetIndex].entryForXValue(highlight.x, closestToY: highlight.y) } @@ -277,7 +277,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral @objc(dataSetAtIndex:) open func dataSet(at index: Index) -> Element? { - guard index >= 0 && index < dataSets.count else { return nil } + guard dataSets.indices.contains(index) else { return nil } return self[index] } @@ -295,7 +295,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral @objc(addEntry:dataSetIndex:) open func appendEntry(_ e: ChartDataEntry, toDataSet dataSetIndex: Index) { - guard dataSets.count > dataSetIndex && dataSetIndex >= 0 else { + guard dataSets.indices.contains(dataSetIndex) else { return print("ChartData.addEntry() - Cannot add Entry because dataSetIndex too high or too low.", terminator: "\n") } @@ -307,7 +307,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral /// Removes the given Entry object from the DataSet at the specified index. @objc @discardableResult open func removeEntry(_ entry: ChartDataEntry, dataSetIndex: Index) -> Bool { - guard dataSetIndex < dataSets.count else { return false } + guard dataSets.indices.contains(dataSetIndex) else { return false } // remove the entry from the dataset let removed = self[dataSetIndex].removeEntry(entry) @@ -327,7 +327,7 @@ open class ChartData: NSObject, ExpressibleByArrayLiteral @objc @discardableResult open func removeEntry(xValue: Double, dataSetIndex: Index) -> Bool { guard - dataSetIndex < dataSets.count, + dataSets.indices.contains(dataSetIndex), let entry = self[dataSetIndex].entryForXValue(xValue, closestToY: .nan) else { return false } diff --git a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift index 7ffcb13d3e..ad463c0bae 100644 --- a/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/CombinedChartData.swift @@ -252,20 +252,8 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData /// - Returns: The entry that is highlighted @objc override open func entry(for highlight: Highlight) -> ChartDataEntry? { - if highlight.dataIndex >= allData.count - { - return nil - } - - let data = dataByIndex(highlight.dataIndex) - - if highlight.dataSetIndex >= data.endIndex - { - return nil - } - // The value of the highlighted entry could be NaN - if we are not interested in highlighting a specific value. - return data[highlight.dataSetIndex] + getDataSetByHighlight(highlight)? .entriesForXValue(highlight.x) .first { $0.y == highlight.y || highlight.y.isNaN } } @@ -276,20 +264,21 @@ open class CombinedChartData: BarLineScatterCandleBubbleChartData /// - highlight: current highlight /// - Returns: dataset related to highlight @objc open func getDataSetByHighlight(_ highlight: Highlight) -> ChartDataSetProtocol! - { - if highlight.dataIndex >= allData.count + { + guard allData.indices.contains(highlight.dataIndex) else { return nil } - + let data = dataByIndex(highlight.dataIndex) - - if highlight.dataSetIndex >= data.endIndex + + guard data.indices.contains(highlight.dataSetIndex) else { return nil } - - return data.dataSets[highlight.dataSetIndex] + + // The value of the highlighted entry could be NaN - if we are not interested in highlighting a specific value. + return data[highlight.dataSetIndex] } // MARK: Unsupported Collection Methods diff --git a/Source/Charts/Data/Implementations/Standard/PieChartData.swift b/Source/Charts/Data/Implementations/Standard/PieChartData.swift index dea7743a20..accda2ed89 100644 --- a/Source/Charts/Data/Implementations/Standard/PieChartData.swift +++ b/Source/Charts/Data/Implementations/Standard/PieChartData.swift @@ -69,7 +69,7 @@ open class PieChartData: ChartData open override func dataSet(forLabel label: String, ignorecase: Bool) -> ChartDataSetProtocol? { - if dataSets.count == 0 || dataSets[0].label == nil + if dataSets.first?.label == nil { return nil } diff --git a/Source/Charts/Filters/DataApproximator+N.swift b/Source/Charts/Filters/DataApproximator+N.swift index b194955003..e291d84a71 100644 --- a/Source/Charts/Filters/DataApproximator+N.swift +++ b/Source/Charts/Filters/DataApproximator+N.swift @@ -78,12 +78,12 @@ extension DataApproximator { var keep = [Bool](repeating: false, count: points.count) // first and last always stay - keep[0] = true - keep[points.count - 1] = true + keep[points.startIndex] = true + keep[points.endIndex - 1] = true var currentStoredPoints = 2 var queue = [LineAlt]() - let line = LineAlt(start: 0, end: points.count - 1, points: points) + let line = LineAlt(start: points.startIndex, end: points.endIndex - 1, points: points) queue.append(line) repeat { diff --git a/Source/Charts/Filters/DataApproximator.swift b/Source/Charts/Filters/DataApproximator.swift index 234a7d11e2..db665abfad 100644 --- a/Source/Charts/Filters/DataApproximator.swift +++ b/Source/Charts/Filters/DataApproximator.swift @@ -27,14 +27,14 @@ open class DataApproximator: NSObject var keep = [Bool](repeating: false, count: points.count) // first and last always stay - keep[0] = true - keep[points.count - 1] = true + keep[points.startIndex] = true + keep[points.endIndex - 1] = true // first and last entry are entry point to recursion reduceWithDouglasPeuker(points: points, tolerance: tolerance, - start: 0, - end: points.count - 1, + start: points.startIndex, + end: points.endIndex - 1, keep: &keep) // create a new array with series, only take the kept ones diff --git a/Source/Charts/Formatters/IndexAxisValueFormatter.swift b/Source/Charts/Formatters/IndexAxisValueFormatter.swift index 1c96e914fb..6f339eb36e 100644 --- a/Source/Charts/Formatters/IndexAxisValueFormatter.swift +++ b/Source/Charts/Formatters/IndexAxisValueFormatter.swift @@ -15,22 +15,8 @@ import Foundation @objc(ChartIndexAxisValueFormatter) open class IndexAxisValueFormatter: NSObject, AxisValueFormatter { - private var _values: [String] = [String]() - private var _valueCount: Int = 0 - - @objc public var values: [String] - { - get - { - return _values - } - set - { - _values = newValue - _valueCount = _values.count - } - } - + @objc public var values: [String] = [String]() + public override init() { super.init() @@ -54,6 +40,6 @@ open class IndexAxisValueFormatter: NSObject, AxisValueFormatter { let index = Int(value.rounded()) guard values.indices.contains(index), index == Int(value) else { return "" } - return _values[index] + return values[index] } } diff --git a/Source/Charts/Highlight/BarHighlighter.swift b/Source/Charts/Highlight/BarHighlighter.swift index 220bc077d0..3191b5d7a6 100644 --- a/Source/Charts/Highlight/BarHighlighter.swift +++ b/Source/Charts/Highlight/BarHighlighter.swift @@ -74,7 +74,7 @@ open class BarHighlighter: ChartHighlighter guard let ranges = entry.ranges, - ranges.count > 0 + !ranges.isEmpty else { return nil } let stackIndex = getClosestStackIndex(ranges: ranges, value: yValue) @@ -101,7 +101,7 @@ open class BarHighlighter: ChartHighlighter if let stackIndex = ranges.firstIndex(where: { $0.contains(value) }) { return stackIndex } else { - let length = max(ranges.count - 1, 0) + let length = max(ranges.endIndex - 1, 0) return (value > ranges[length].to) ? length : 0 } } diff --git a/Source/Charts/Highlight/ChartHighlighter.swift b/Source/Charts/Highlight/ChartHighlighter.swift index 9e76a2dee2..08b75ac89b 100644 --- a/Source/Charts/Highlight/ChartHighlighter.swift +++ b/Source/Charts/Highlight/ChartHighlighter.swift @@ -93,7 +93,7 @@ open class ChartHighlighter : NSObject, Highlighter guard let chart = self.chart as? BarLineScatterCandleBubbleChartDataProvider else { return [] } var entries = set.entriesForXValue(xValue) - if entries.count == 0, let closest = set.entryForXValue(xValue, closestToY: .nan, rounding: rounding) + if entries.isEmpty, let closest = set.entryForXValue(xValue, closestToY: .nan, rounding: rounding) { // Try to find closest x-value and take all entries for that x-value entries = set.entriesForXValue(closest.x) diff --git a/Source/Charts/Highlight/CombinedHighlighter.swift b/Source/Charts/Highlight/CombinedHighlighter.swift index c292ec5515..40c254cfbf 100644 --- a/Source/Charts/Highlight/CombinedHighlighter.swift +++ b/Source/Charts/Highlight/CombinedHighlighter.swift @@ -35,7 +35,7 @@ open class CombinedHighlighter: ChartHighlighter let dataObjects = chart.combinedData?.allData else { return vals } - for i in 0.. 0 && labelCount > 0) { + if (!dataSet.stackLabels.isEmpty && labelCount > 0) { let labelIndex = idx % labelCount stackLabel = dataSet.stackLabels.indices.contains(labelIndex) ? dataSet.stackLabels[labelIndex] : nil } else { diff --git a/Source/Charts/Renderers/BubbleChartRenderer.swift b/Source/Charts/Renderers/BubbleChartRenderer.swift index 1c06d93e7a..cf50e0a317 100644 --- a/Source/Charts/Renderers/BubbleChartRenderer.swift +++ b/Source/Charts/Renderers/BubbleChartRenderer.swift @@ -162,7 +162,7 @@ open class BubbleChartRenderer: BarLineScatterCandleBubbleRenderer var pt = CGPoint() - for i in 0.. DataRenderer? - { - if index >= _renderers.count || index < 0 - { - return nil - } - else - { - return _renderers[index] - } - } - /// All sub-renderers. @objc open var subRenderers: [DataRenderer] { @@ -209,7 +196,7 @@ open class CombinedChartRenderer: NSObject, DataRenderer } set { - if newValue.count > 0 + if !newValue.isEmpty { _drawOrder = newValue } diff --git a/Source/Charts/Renderers/DataRenderer.swift b/Source/Charts/Renderers/DataRenderer.swift index 9ed27b5b01..71525c539b 100644 --- a/Source/Charts/Renderers/DataRenderer.swift +++ b/Source/Charts/Renderers/DataRenderer.swift @@ -64,11 +64,10 @@ internal struct AccessibleHeader { let chartDescriptionText = chart.chartDescription.text ?? defaultDescription let dataSetDescriptions = data.dataSets.map { $0.label ?? "" } let dataSetDescriptionText = dataSetDescriptions.joined(separator: ", ") - let dataSetCount = data.dataSets.count let element = NSUIAccessibilityElement(accessibilityContainer: chart) - element.accessibilityLabel = chartDescriptionText + ". \(dataSetCount) dataset\(dataSetCount == 1 ? "" : "s"). \(dataSetDescriptionText)" + element.accessibilityLabel = chartDescriptionText + ". \(data.count) dataset\(data.count == 1 ? "" : "s"). \(dataSetDescriptionText)" element.accessibilityFrame = chart.bounds element.isHeader = true diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index bef0b60cf5..a309cd68bd 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -129,7 +129,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer var yStart = 0.0 // fill the stack - for k in 0 ..< vals!.count + for k in vals!.indices { let value = vals![k] @@ -245,7 +245,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer let isStacked = dataSet.isStacked let stackSize = isStacked ? dataSet.stackSize : 1 - for j in stride(from: 0, to: buffer.rects.count, by: 1) + for j in buffer.rects.indices { let barRect = buffer.rects[j] @@ -518,7 +518,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer var posY = 0.0 var negY = -e.negativeSum - for k in 0 ..< vals.count + for k in vals.indices { let value = vals[k] var y: Double @@ -544,7 +544,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer trans.pointValuesToPixel(&transformed) - for k in 0 ..< transformed.count + for k in transformed.indices { let val = vals[k] let valueText = formatter.stringForValue( @@ -607,7 +607,7 @@ open class HorizontalBarChartRenderer: BarChartRenderer } } - bufferIndex = vals == nil ? (bufferIndex + 1) : (bufferIndex + vals!.count) + bufferIndex += vals?.count ?? 1 } } } diff --git a/Source/Charts/Renderers/LegendRenderer.swift b/Source/Charts/Renderers/LegendRenderer.swift index 3d66209146..41fd499dbe 100755 --- a/Source/Charts/Renderers/LegendRenderer.swift +++ b/Source/Charts/Renderers/LegendRenderer.swift @@ -54,7 +54,7 @@ open class LegendRenderer: NSObject, Renderer for j in 0.. 0 && minEntries > 0 + if !sLabels.isEmpty && minEntries > 0 { let labelIndex = j % minEntries label = sLabels.indices.contains(labelIndex) ? sLabels[labelIndex] : nil @@ -295,13 +295,13 @@ open class LegendRenderer: NSObject, Renderer var lineIndex: Int = 0 - for i in 0 ..< entries.count + for i in entries.indices { let e = entries[i] let drawingForm = e.form != .none let formSize = e.formSize.isNaN ? defaultFormSize : e.formSize - if i < calculatedLabelBreakPoints.count && + if i < calculatedLabelBreakPoints.endIndex && calculatedLabelBreakPoints[i] { posX = originPosX @@ -310,7 +310,7 @@ open class LegendRenderer: NSObject, Renderer if posX == originPosX && horizontalAlignment == .center && - lineIndex < calculatedLineSizes.count + lineIndex < calculatedLineSizes.endIndex { posX += (direction == .rightToLeft ? calculatedLineSizes[lineIndex].width @@ -400,7 +400,7 @@ open class LegendRenderer: NSObject, Renderer posY = viewPortHandler.chartHeight / 2.0 - legend.neededHeight / 2.0 + legend.yOffset } - for i in 0 ..< entries.count + for i in entries.indices { let e = entries[i] let drawingForm = e.form != .none @@ -526,7 +526,7 @@ open class LegendRenderer: NSObject, Renderer context.setLineWidth(formLineWidth) - if formLineDashLengths != nil && formLineDashLengths!.count > 0 + if formLineDashLengths != nil && !formLineDashLengths!.isEmpty { context.setLineDash(phase: formLineDashPhase, lengths: formLineDashLengths!) } diff --git a/Source/Charts/Renderers/LineChartRenderer.swift b/Source/Charts/Renderers/LineChartRenderer.swift index 1b7f134168..f01831b8bd 100644 --- a/Source/Charts/Renderers/LineChartRenderer.swift +++ b/Source/Charts/Renderers/LineChartRenderer.swift @@ -367,11 +367,8 @@ open class LineChartRenderer: LineRadarRenderer _lineSegments[1] = _lineSegments[0] } - for i in 0..<_lineSegments.count - { - _lineSegments[i] = _lineSegments[i].applying(valueToPixelMatrix) - } - + _lineSegments = _lineSegments.map { $0.applying(valueToPixelMatrix) } + if (!viewPortHandler.isInBoundsRight(_lineSegments[0].x)) { break @@ -536,7 +533,7 @@ open class LineChartRenderer: LineRadarRenderer var pt = CGPoint() - for i in 0 ..< dataSets.count + for i in dataSets.indices { guard let dataSet = dataSets[i] as? LineChartDataSetProtocol, @@ -641,7 +638,7 @@ open class LineChartRenderer: LineRadarRenderer context.saveGState() - for i in 0 ..< dataSets.count + for i in dataSets.indices { guard let dataSet = lineData[i] as? LineChartDataSetProtocol else { continue } diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index c6a93f1c8e..f021e1b275 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -340,7 +340,7 @@ open class PieChartRenderer: NSObject, DataRenderer context.saveGState() defer { context.restoreGState() } - for i in 0 ..< dataSets.count + for i in dataSets.indices { guard let dataSet = dataSets[i] as? PieChartDataSetProtocol else { continue } @@ -704,7 +704,7 @@ open class PieChartRenderer: NSObject, DataRenderer } } - open func drawHighlighted(context: CGContext, indices: [Highlight]) + open func drawHighlighted(context: CGContext, indices highlights: [Highlight]) { guard let chart = chart, @@ -729,18 +729,17 @@ open class PieChartRenderer: NSObject, DataRenderer // Append highlighted accessibility slices into this array, so we can prioritize them over unselected slices var highlightedAccessibleElements: [NSUIAccessibilityElement] = [] - for i in 0 ..< indices.count + for hightlight in highlights { // get the index to highlight - let index = Int(indices[i].x) - if index >= drawAngles.count + let index = Int(hightlight.x) + guard index < drawAngles.count, + let set = data[hightlight.dataSetIndex] as? PieChartDataSetProtocol, + set.isHighlightEnabled + else { continue } - - guard let set = data[indices[i].dataSetIndex] as? PieChartDataSetProtocol else { continue } - - if !set.isHighlightEnabled { continue } let entryCount = set.entryCount var visibleAngleCount = 0 diff --git a/Source/Charts/Utils/ChartColorTemplates.swift b/Source/Charts/Utils/ChartColorTemplates.swift index 534f9cb880..5e692c527f 100644 --- a/Source/Charts/Utils/ChartColorTemplates.swift +++ b/Source/Charts/Utils/ChartColorTemplates.swift @@ -89,41 +89,37 @@ open class ChartColorTemplates: NSObject if colorString.hasPrefix("#") { var argb: [UInt] = [255, 0, 0, 0] - let colorString = colorString.unicodeScalars - var length = colorString.count + let colorString = colorString.unicodeScalars.dropFirst() + let length = colorString.count var index = colorString.startIndex let endIndex = colorString.endIndex - - index = colorString.index(after: index) - length = length - 1 - - if length == 3 || length == 6 || length == 8 + + guard [3, 6, 8].contains(length) else { return .black } + + var i = length == 8 ? 0 : 1 + while index < endIndex { - var i = length == 8 ? 0 : 1 - while index < endIndex + var c = colorString[index] + index = colorString.index(after: index) + + var val = (c.value >= 0x61 && c.value <= 0x66) ? (c.value - 0x61 + 10) : c.value - 0x30 + argb[i] = UInt(val) * 16 + if length == 3 + { + argb[i] = argb[i] + UInt(val) + } + else { - var c = colorString[index] + c = colorString[index] index = colorString.index(after: index) - - var val = (c.value >= 0x61 && c.value <= 0x66) ? (c.value - 0x61 + 10) : c.value - 0x30 - argb[i] = UInt(val) * 16 - if length == 3 - { - argb[i] = argb[i] + UInt(val) - } - else - { - c = colorString[index] - index = colorString.index(after: index) - - val = (c.value >= 0x61 && c.value <= 0x66) ? (c.value - 0x61 + 10) : c.value - 0x30 - argb[i] = argb[i] + UInt(val) - } - - i += 1 + + val = (c.value >= 0x61 && c.value <= 0x66) ? (c.value - 0x61 + 10) : c.value - 0x30 + argb[i] = argb[i] + UInt(val) } + + i += 1 } - + return NSUIColor(red: CGFloat(argb[1]) / 255.0, green: CGFloat(argb[2]) / 255.0, blue: CGFloat(argb[3]) / 255.0, alpha: CGFloat(argb[0]) / 255.0) } else if colorString.hasPrefix("rgba") From 771978c3b9f7b0a52cde5e4d4480efc8cb85dc2e Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 9 Oct 2020 08:53:55 +0800 Subject: [PATCH 79/84] switch to source compiling swift code --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index cbf0780287..12db4ce872 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ before_install: - brew update - brew upgrade carthage || true - carthage version - - carthage bootstrap --platform $PLATFORM + - carthage bootstrap --platform $PLATFORM --no-use-binaries script: - bundle exec rake ci[$PLATFORM] after_success: From 60bfc33919d43270159297ab3f32db153189e9da Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 9 Oct 2020 09:28:18 +0800 Subject: [PATCH 80/84] fix Carthage error after changing to source compile. https://github.com/Carthage/Carthage/issues/3019 there is a workaround mentioned [here](https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323) making travis to build from carthage.sh until the root issue is fixed. --- .travis.yml | 2 +- carthage.sh | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 carthage.sh diff --git a/.travis.yml b/.travis.yml index 12db4ce872..95863699f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ before_install: - brew update - brew upgrade carthage || true - carthage version - - carthage bootstrap --platform $PLATFORM --no-use-binaries + - ./carthage.sh bootstrap --platform $PLATFORM --no-use-binaries script: - bundle exec rake ci[$PLATFORM] after_success: diff --git a/carthage.sh b/carthage.sh new file mode 100755 index 0000000000..adffae883c --- /dev/null +++ b/carthage.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# carthage.sh +# Usage example: ./carthage.sh build --platform iOS + +set -euo pipefail + +xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) +trap 'rm -f "$xcconfig"' INT TERM HUP EXIT + +# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise +# the build will fail on lipo due to duplicate architectures. +echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig +echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig + +export XCODE_XCCONFIG_FILE="$xcconfig" +carthage "$@" From 9fc9f4675a32a54beacfe8bb76b0c50bf085b843 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Fri, 9 Oct 2020 10:14:16 +0800 Subject: [PATCH 81/84] update project settings --- Charts.xcodeproj/project.pbxproj | 8 ++++---- Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme | 2 +- .../xcshareddata/xcschemes/ChartsTests.xcscheme | 2 +- ChartsDemo-iOS/ChartsDemo-iOS.xcodeproj/project.pbxproj | 4 +++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Charts.xcodeproj/project.pbxproj b/Charts.xcodeproj/project.pbxproj index 5b5ac68630..3d4bf1b658 100644 --- a/Charts.xcodeproj/project.pbxproj +++ b/Charts.xcodeproj/project.pbxproj @@ -1045,7 +1045,7 @@ GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11; MARKETING_VERSION = 4.0.0; @@ -1080,7 +1080,7 @@ ); GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; @@ -1222,7 +1222,7 @@ GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Source/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11; MARKETING_VERSION = 4.0.0; @@ -1256,7 +1256,7 @@ ); GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; diff --git a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme index 9de9a0d033..393ece5592 100644 --- a/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme +++ b/Charts.xcodeproj/xcshareddata/xcschemes/Charts.xcscheme @@ -1,6 +1,6 @@ Date: Fri, 9 Oct 2020 10:46:43 +0800 Subject: [PATCH 82/84] recreate iOS+tvOS images due to iOS14 SDK uncertain changes. --- ...ultBarDataSetLabels_iOS_375_0_667_0@2x.png | Bin 53558 -> 53771 bytes ...BarDataSetLabels_tvOS_1920_0_1080_0@1x.png | Bin 20042 -> 20036 bytes .../testDefaultValues_iOS_375_0_667_0@2x.png | Bin 54837 -> 55132 bytes ...estDefaultValues_tvOS_1920_0_1080_0@1x.png | Bin 20517 -> 20428 bytes .../testDrawIcons_iOS_375_0_667_0@2x.png | Bin 98459 -> 98581 bytes .../testDrawIcons_tvOS_1920_0_1080_0@1x.png | Bin 52398 -> 52326 bytes ...HorizontalGridlines_iOS_375_0_667_0@2x.png | Bin 52933 -> 53357 bytes ...izontalGridlines_tvOS_1920_0_1080_0@1x.png | Bin 19452 -> 19273 bytes .../testHideLeftAxis_iOS_375_0_667_0@2x.png | Bin 53772 -> 53920 bytes ...testHideLeftAxis_tvOS_1920_0_1080_0@1x.png | Bin 19430 -> 19292 bytes .../testHideRightAxis_iOS_375_0_667_0@2x.png | Bin 52440 -> 52193 bytes ...estHideRightAxis_tvOS_1920_0_1080_0@1x.png | Bin 19547 -> 19433 bytes ...deVerticalGridlines_iOS_375_0_667_0@2x.png | Bin 48892 -> 49071 bytes ...erticalGridlines_tvOS_1920_0_1080_0@1x.png | Bin 18304 -> 18145 bytes .../testHidesValues_iOS_375_0_667_0@2x.png | Bin 46649 -> 46926 bytes .../testHidesValues_tvOS_1920_0_1080_0@1x.png | Bin 17341 -> 17313 bytes ...sWithNegativeValues_iOS_375_0_667_0@2x.png | Bin 62602 -> 61169 bytes ...thNegativeValues_tvOS_1920_0_1080_0@1x.png | Bin 23402 -> 23665 bytes ...sWithPositiveValues_iOS_375_0_667_0@2x.png | Bin 62650 -> 61446 bytes ...thPositiveValues_tvOS_1920_0_1080_0@1x.png | Bin 22650 -> 22478 bytes ...estInvertedLeftAxis_iOS_375_0_667_0@2x.png | Bin 58290 -> 58401 bytes ...InvertedLeftAxis_tvOS_1920_0_1080_0@1x.png | Bin 22667 -> 22640 bytes ...sWithNegativeValues_iOS_375_0_667_0@2x.png | Bin 62673 -> 61235 bytes ...thNegativeValues_tvOS_1920_0_1080_0@1x.png | Bin 23293 -> 23392 bytes ...sWithPositiveValues_iOS_375_0_667_0@2x.png | Bin 62526 -> 61441 bytes ...thPositiveValues_tvOS_1920_0_1080_0@1x.png | Bin 22604 -> 22509 bytes ...stInvertedRightAxis_iOS_375_0_667_0@2x.png | Bin 58275 -> 58484 bytes ...nvertedRightAxis_tvOS_1920_0_1080_0@1x.png | Bin 22612 -> 22590 bytes ...hCustomAxisMaximum2_iOS_375_0_667_0@2x.png | Bin 45441 -> 45020 bytes ...stomAxisMaximum2_tvOS_1920_0_1080_0@1x.png | Bin 14113 -> 14547 bytes ...ndCustomAxisMaximum_iOS_375_0_667_0@2x.png | Bin 62064 -> 59148 bytes ...ustomAxisMaximum_tvOS_1920_0_1080_0@1x.png | Bin 21268 -> 20648 bytes ...thCustomAxisMaximum_iOS_375_0_667_0@2x.png | Bin 63637 -> 62220 bytes ...ustomAxisMaximum_tvOS_1920_0_1080_0@1x.png | Bin 22957 -> 23310 bytes ...hCustomAxisMinimum2_iOS_375_0_667_0@2x.png | Bin 48558 -> 48076 bytes ...stomAxisMinimum2_tvOS_1920_0_1080_0@1x.png | Bin 14001 -> 13892 bytes ...thCustomAxisMinimum_iOS_375_0_667_0@2x.png | Bin 62108 -> 59195 bytes ...ustomAxisMinimum_tvOS_1920_0_1080_0@1x.png | Bin 21050 -> 20244 bytes .../testNegativeValues_iOS_375_0_667_0@2x.png | Bin 60688 -> 58972 bytes ...stNegativeValues_tvOS_1920_0_1080_0@1x.png | Bin 21827 -> 22142 bytes ...tDrawValueAboveBars_iOS_375_0_667_0@2x.png | Bin 60214 -> 60237 bytes ...awValueAboveBars_tvOS_1920_0_1080_0@1x.png | Bin 22160 -> 22065 bytes ...hCustomAxisMaximum2_iOS_375_0_667_0@2x.png | Bin 42367 -> 43371 bytes ...stomAxisMaximum2_tvOS_1920_0_1080_0@1x.png | Bin 15743 -> 13998 bytes ...ndCustomAxisMaximum_iOS_375_0_667_0@2x.png | Bin 62123 -> 58235 bytes ...ustomAxisMaximum_tvOS_1920_0_1080_0@1x.png | Bin 22292 -> 20740 bytes ...thCustomAxisMaximum_iOS_375_0_667_0@2x.png | Bin 63548 -> 61219 bytes ...ustomAxisMaximum_tvOS_1920_0_1080_0@1x.png | Bin 23013 -> 22573 bytes ...hCustomAxisMinimum2_iOS_375_0_667_0@2x.png | Bin 48761 -> 48586 bytes ...stomAxisMinimum2_tvOS_1920_0_1080_0@1x.png | Bin 15887 -> 16110 bytes ...thCustomAxisMinimum_iOS_375_0_667_0@2x.png | Bin 60646 -> 59212 bytes ...ustomAxisMinimum_tvOS_1920_0_1080_0@1x.png | Bin 20600 -> 20676 bytes .../testPositiveValues_iOS_375_0_667_0@2x.png | Bin 61264 -> 60703 bytes ...stPositiveValues_tvOS_1920_0_1080_0@1x.png | Bin 21631 -> 21489 bytes ...stStackedDrawValues_iOS_375_0_667_0@2x.png | Bin 57709 -> 56412 bytes ...tackedDrawValues_tvOS_1920_0_1080_0@1x.png | Bin 20072 -> 19552 bytes ...DrawValuesAboveBars_iOS_375_0_667_0@2x.png | Bin 58582 -> 57061 bytes ...wValuesAboveBars_tvOS_1920_0_1080_0@1x.png | Bin 20286 -> 19665 bytes ...tackedNotDrawValues_iOS_375_0_667_0@2x.png | Bin 47335 -> 45853 bytes ...kedNotDrawValues_tvOS_1920_0_1080_0@1x.png | Bin 15435 -> 14985 bytes .../testZeroValues_iOS_375_0_667_0@2x.png | Bin 51386 -> 47553 bytes .../testZeroValues_tvOS_1920_0_1080_0@1x.png | Bin 17041 -> 14035 bytes ...RightAxisDependency_iOS_375_0_667_0@2x.png | Bin 103489 -> 104609 bytes ...htAxisDependency_tvOS_1920_0_1080_0@1x.png | Bin 37780 -> 37795 bytes ...faultAxisDependency_iOS_375_0_667_0@2x.png | Bin 103489 -> 104609 bytes ...ltAxisDependency_tvOS_1920_0_1080_0@1x.png | Bin 37780 -> 37795 bytes ...RightAxisDependency_iOS_375_0_667_0@2x.png | Bin 101701 -> 103372 bytes ...htAxisDependency_tvOS_1920_0_1080_0@1x.png | Bin 38182 -> 38082 bytes .../testDefaultValues_iOS_375_0_667_0@2x.png | Bin 48506 -> 48351 bytes ...estDefaultValues_tvOS_1920_0_1080_0@1x.png | Bin 18844 -> 18782 bytes .../testHidesValues_iOS_375_0_667_0@2x.png | Bin 39744 -> 39504 bytes .../testHidesValues_tvOS_1920_0_1080_0@1x.png | Bin 15454 -> 15411 bytes ...tDrawValueAboveBars_iOS_375_0_667_0@2x.png | Bin 53487 -> 53247 bytes ...awValueAboveBars_tvOS_1920_0_1080_0@1x.png | Bin 20321 -> 20274 bytes ...stStackedDrawValues_iOS_375_0_667_0@2x.png | Bin 51115 -> 51278 bytes ...tackedDrawValues_tvOS_1920_0_1080_0@1x.png | Bin 19348 -> 19324 bytes ...DrawValuesAboveBars_iOS_375_0_667_0@2x.png | Bin 51375 -> 51500 bytes ...wValuesAboveBars_tvOS_1920_0_1080_0@1x.png | Bin 19694 -> 19686 bytes ...tackedNotDrawValues_iOS_375_0_667_0@2x.png | Bin 39050 -> 39081 bytes ...kedNotDrawValues_tvOS_1920_0_1080_0@1x.png | Bin 14433 -> 14480 bytes .../testDefaultValues_iOS_375_0_667_0@2x.png | Bin 119172 -> 120305 bytes ...estDefaultValues_tvOS_1920_0_1080_0@1x.png | Bin 45883 -> 45120 bytes ...oesntDrawCircleHole_iOS_375_0_667_0@2x.png | Bin 111805 -> 113080 bytes ...ntDrawCircleHole_tvOS_1920_0_1080_0@1x.png | Bin 42801 -> 41976 bytes ...stDoesntDrawCircles_iOS_375_0_667_0@2x.png | Bin 105319 -> 107286 bytes ...oesntDrawCircles_tvOS_1920_0_1080_0@1x.png | Bin 39103 -> 38095 bytes .../testDrawIcons_iOS_375_0_667_0@2x.png | Bin 154022 -> 153248 bytes .../testDrawIcons_tvOS_1920_0_1080_0@1x.png | Bin 73526 -> 73159 bytes .../testHidesValues_iOS_375_0_667_0@2x.png | Bin 112241 -> 113366 bytes .../testHidesValues_tvOS_1920_0_1080_0@1x.png | Bin 43035 -> 42374 bytes .../testIsCubic_iOS_375_0_667_0@2x.png | Bin 121310 -> 122263 bytes .../testIsCubic_tvOS_1920_0_1080_0@1x.png | Bin 46859 -> 46042 bytes .../testDefaultValues_iOS_375_0_667_0@2x.png | Bin 56198 -> 56005 bytes ...estDefaultValues_tvOS_1920_0_1080_0@1x.png | Bin 22759 -> 22798 bytes .../testDrawIcons_iOS_375_0_667_0@2x.png | Bin 65967 -> 65905 bytes .../testDrawIcons_tvOS_1920_0_1080_0@1x.png | Bin 30811 -> 30752 bytes ...testHideCenterLabel_iOS_375_0_667_0@2x.png | Bin 53179 -> 52964 bytes ...tHideCenterLabel_tvOS_1920_0_1080_0@1x.png | Bin 21352 -> 21436 bytes .../testHidesValues_iOS_375_0_667_0@2x.png | Bin 48805 -> 48592 bytes .../testHidesValues_tvOS_1920_0_1080_0@1x.png | Bin 19861 -> 19804 bytes ...stHighlightDisabled_iOS_375_0_667_0@2x.png | Bin 56198 -> 56005 bytes ...ighlightDisabled_tvOS_1920_0_1080_0@1x.png | Bin 22759 -> 22798 bytes ...estHighlightEnabled_iOS_375_0_667_0@2x.png | Bin 56721 -> 56512 bytes ...HighlightEnabled_tvOS_1920_0_1080_0@1x.png | Bin 22966 -> 23025 bytes 104 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testDefaultBarDataSetLabels_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testDefaultBarDataSetLabels_iOS_375_0_667_0@2x.png index ed12b4a0305daa60a034c191b9d30152ec7f8286..4eb66576a5f3440cb69c5c4ff5a748956abd7cd6 100644 GIT binary patch literal 53771 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 Sho?V7z~@EwcE9Zwnf)(Z#ODeC literal 53558 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

3p>=2a4Wmj6(gQJY^ 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 X{I$n;n%EKn0uE32lWtA_iu~bEDG!|1 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testDefaultBarDataSetLabels_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testDefaultBarDataSetLabels_tvOS_1920_0_1080_0@1x.png index 774b80ba5037aded758bb76fb24f57e6b73c5a89..66d68f1608c7976c29bcd9801efb7255dde9e26f 100644 GIT binary patch literal 20036 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 literal 20042 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 fip(V*xu$7apQ8b2+dyU zceM59vb;ev}JuWH%xrk9?_B&*%K3J%QR0>egDq2sZPAaE-u`zn`6JVpp8G zg~ndfRX)la0m_4ZeL4MLoL|Lk91bLr?^mss+3~d|c&4PFyHA(9wR1j zbe=yZd2~&E-diXrKIa9b4l%v`%R56C>w=a~`Y_pFuQ(hWovVAPc%)*ctC1;s{e|Ej zzBT_Z3uAkVDzGr7oZ#o6lm3@M z?n!x~Dm?u939pnaTYeQ}Fk^DZ$mXD!Bk(aZk|NUSa!J%jh6Cj+<^2zwU_>Hm%g52O z83Q2Cs>iovFQ~<@GChq2Sfx4O$57EVK5%o~glx8d(QK8cHPu6)>}9ih z$pC}#6wo{9i1jyw_5K@SK=lq!(n>Dn_+Kf4UGGyg76tXYBjyvUTitcaWr>{MNPN-- zh{0w(@Z|vhh5F%Ib!ME-k`zenl5#OZp?8Ypht5I;{$a|O`ZfbX(Pa@zb zPUNoJ>We_6PM3@PX?5;Qr|C$*mNs;x(~?#vWV3BO<}g;$n>y#vlQdaf$5Z#1g2b?9 z%pe`w7(4zSdpW$+bZA9DbGi-)XijG)pT9@P<^fBw{RM@YD{htzzcF|E+jznaaLSfT>sS=g^$fg`kqb#q zV`4#s84`DsDw?)}HObASqUxGniP)LhnMJ}mM_PqkVRFwmlnk$TXwMRy6epbJ*T2b1 z;5O!^6T@+N0y%jgsc)qb`MZJgiplu@Y_`2n`>G5s&+9cj%lB0Qo?{L!hpP^qzWQ&Y CV(B6P literal 54837 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

3p>=2a4Wmj6(gQJY^ z-3xonJ+WISVwf;0$c!t{*Aef0jz9pu)Q-vZ_-}|c=WBwV1hPk zux0jm3GP^$fVlAOVZA1Fl&h%H8Hb89YUk7+q(ii#@hLR2`V5fJ^FS7lSGOAbyHuT9 zoowzio#xA3P)`^>#s*B^Y3A$zSzjYQKVkrUkwpfFL_zWc;k&Zzz~5|B>uRYADArlL zilsD@bQ{I(saKBQ9`eEtzEBe>Q4*JoCh$h<#XkK4O{B3~Zu9A024a%a1X^f0l#_v7 zf3-2AnjEX9;ZUJ!iNv_~9BHlx9#L+Zp;v&%f`pbE26%W$9D0WV#Iu#6IcL$Vc<~Re zezL`jBj!_m17@|HfhIxaWv0-si-x}}U*3n&dG^qrX1ot;c}CSd*D`OtIYSy)?GY$D z4w4f!?n?0i|AV1g+b&aUxTP=i}Nn8g&v-1eQoRc8(_mKVEj8c(RjUv^@uXrDk)eUH~02sHHsa=^g{S zonU1%YEc|pUT^L?+Id>vVXN|WzYqfq6HNCm?A1Vk{-?Lk!A63|^DCzY^P!@dKj4vp zX=rWgNsyE;8E1X8MDn}s;UKJw2{vo|5Li^gml#=mEWbrJH+rdjv}s_|VTo_x6aEvm z;vfS?=-eeF=Dg8M9q1)0^BGs6IuWmA+>nQQpDOZnTpU_Sg)kCdB3LS375pMB?i?LK z&JK*|>=}&aoLv1dE$Osnh@W5O;-5IK zh7R>2^DKnj*aCaOeI7q%@e+q4QWbuU`f$XFpC8(bZ#XQyGY4}Q?&BdAyCRb4Y68H> zafU;tw*-vVGf1DMgT%HL?Ww`x!zfD;x4zMhS-&lBRMAtyc?I&DM2UBBx%%6>Liit*21vkTTF0U+#jTVQByY*3u-?9s5ufNwy3Ns-T z?vK8Lhq6Y0Z7Kk;j4@_0haetN@;Gzd_8J(`a5I~d&l65XVuZEm>uyFMF?3}w2@z1T z7k<*X)!ZRCQh_Cpi-mPh?~|XY7)B3v$A-klYEPxM48CPq%?i`phaFa?pLzCB z)$c`}q%TiX{GL=pGo7{R-i*v<;0LpMv-v?5*MMC8-AxBsFf?cV9HKh6Z1dRa*ZQ(|3 z0N+X?QoVy-pvx$We8+-V zsw)||pqwW^N`twN$|ii0z{=!y@MVUh$TXKPF&y+RaC z!I%UQs*%PIyein>`&`}gC26m8(2lsX+sP9@E%=r+5RR;*@qxHPq=16yl3 zuBXd2msp6jNUuaD7Y0S~By86bGy@$z->$A#_eg3Hi8NhRG0Cbl-+IoZ(xfU(E%g#r zF$kbd=7x+sxnfs>1al6eUhs_0Q>*u{Ga%+}w3@o|koUCqxg8`c+t(i->lZ-G@m~_B zsWe(^Cl1@JjyBI)=ZZVJ=lnFxxGX%bwcsSSEm_@e+2%;CZM;5{a)+IiGQE)}O?y;K zq31u0GjcEuu7GvDQQuG2X)j2!SPk=(t`yX0EP>qpzZzfV{`EUxuJgbn^n;~4VM?n2wo3W%4!*czUXK?Qj@drn(dF+z`9@DxOZ7Zbd zqTwUN9S z2lraM5x;qp@Im{gOV;{0wjyTw7$GI*bu<_5L&PcADkdTnL|-34;_sgpto?j&$EQ%s z8hX6km!y_ip|NsD!`okt0id=-X$wIwqW3Gr=i7;KKgwArVkucNNNCfI4Y5YQU9SFa zp<86|rcUxQ*F7kNGd!^$Pa=pvCrdqlVFdio2smaxgn5Kb%!1~379jljZrp8vv1D#^ zi{QKmCyY#LCdHLKZW<8|N+yw|alKW^Zh60OV#8y_o3o(BCzppA@bH4oD#GqkTZjl} z=n$r8B4xXg_?!UygJV!JKWD|jTn9phkwzp~mIw%kWdz;_%`Y6pcJ0LYUCE+8*@G(! z2ucXqTBaw&+mBP+hILUi-p25zOLTBM+r`>LVj%gR0HYi$@V8^vwyOjlNL{m`U4Z!B zNiD1c%&l{kEB`cHjx&&cE^bS($_eQjgi`rHaC6$sY2&-=n?dr%j>gA!&lo9WSe*?$ z2p0)Uuv+Q#+XJ!{%Uv1Q~2gP$zH^o*P0zRH-()@Tf>kP>hQP6%^AK&q@*y2%?bp4UTRECTLf{ zP8`6*f6RHBMGrLgE0EvP;hkuX)Ng=DSo5h_vf`!KiZ!m+v}nXlr)I7%YoS`}45)Xs zhKUfF+%UTB1pMDCFk(z&?lE#g#eHyi-)$J?Zri`q*M!bfP(9QfD!nQbCTMY_pr`wi zgQ-vJ)VNr1iP7ta3%!)0fsWN=i<>e{#{ny-*l7hSBW?yz=(elW<=a(iv3N@8b^-fS z8w@Ns=d(UfnQy-k=X_mp`g-_!kf*f7ZY;Mf#b~@i}{jLeeOVV zxj}m!oy#ac-*>&Ea7l9$*=|n|818!)ySd@v?4&m&-VHzK#*^|goQ;tnHM%;5at_;^ z={`4DG7r9=)H<;r2UgvvYGD-Q6DW>t|_oZJt4liYV{~ij6Qv=2CAt)k!5~_fG3i-#& zYPO&ocIeIDcB2X}FTvl)el^U_FCNTQ zGJVbhZ2acGA)MtR+3%yA_$1w9_@|1dwedl;{Kok>oX@O<{Yxd7J3Mp> z^#siAyP7=<3q}Wl+g_vJyGDas(F8jDULpVOUI&jh;VjPq!1r@fChH!MdX%*{1$Le2 z@UA~W6!cq-B1}36_`jqtdJT2&x~S5!AT>(Lh!>@#r|Nc%_Icz{+^l!=zJqH zNQWa?0LL#nhKxIb-tN28?GPYCDV=5bqmrupfca+7t-g-oedmdQiJ4Q&VFXe1mn*|n z$RDE32LH6ZzYs0hHhFqZFr;2qvkaRHFwdq!Ful{}`gXo(fZo-}fMNQaDSDe8leOc# z?eFAd}O%FJFJXv_;K+T!?z0+LV_N1-25BO{Ha?70n3YW7^ zSt9WB>qvkbK;l6$_wK7g@Ks?8PPmmj`%h2)C>eDOA&8+qx}^tzf_@`C8w+5M$}tuI z{jqFtvBURvh$HY<6+3gU03cD?bQ%_uNgJUP>|i`7z!$ne z8IaU3nC%4Y-S6Pl)YpIpxYyL_AL^6`>;pOr4VNe^&X=Xl}YuO0zmA z%{JEW$!b(@nwU7nJEEmyN!BKZ9oT5TpbjGJOqKrHRJ-oXyJ6 zCAeD%hxCq`@LC_0@ehe4rDB)yL(E%V4S*fr^MFYZVPETI*=!{6ZyURbMqZ1X45Fg9o9%Q~Mi- zxDP`Ps&DWR)=TJM>vIeYEZYL>7U+j9<&<2PEtR>9#@w#R z<>S9K=qHMpFxG5{zx3YPhM?RjSl7W6<9_XqL3JKXxQfJjb+9QVqhIk41BbPEw;s2h zSzg7`TKJAB>7olrcd%YqDmCPDN4&W9Do)h>OKl;fBJ2k?`Y-#~;NBGf#@-k)WP%Pi zDlML{96~ulb0(}x2c>qWpvL#z*=XTCE*(~*DDQD%aMYi%bg=TnpvqwWP1-zF?=oSw zfDu!R^)c89aMFJro8#qxi(wUxByFBRtIP3PDzr6r-F;_+gnxLsKC8X{NJ&;`tsWH# zONJe-mt&Tj%Hwpp3R}!-hxy3bX!k1DtxET?QbpjOD82ZJ4qtfpufuc(8yNg#R1~*y z1)WbijopeN6d_%sR18dX_4|v4-W**(XY|#vl7qf3iS=@~)mh1DT8eqclD=zR9PgD# zA5<+W=;=7l1!maR8(Vf8wVf!?%L4m%Si4!w&0hs6M)n(j8^@T&DM;A2G z*2-kAwarN}!oF!N7=;{`^1UHHw|#42;|R8p&s zj(etUa~;8_{sY;x=(NlPcj)llnZnT_(}%0RuPJ$It9MwgwRK*q z)P;q;3uHqgVne^YZ_d-*eE0Zz;b>kxHC=n&R(Xr= z2<2t^<`!R9EriBzj&N)&**bYjEAVYvW(YY4RnYaLD7Jdn7U%SR(1dQrL)h&W`hCyN zsm%uodxr)bGJLt!iyj}6cb0o(W5L%c#jWx9Az`#SB3-6s<7tuj^Jk~6%QZq+WJQRk zXXY0KL)3XGqgt*K%pNR05~(&r%D(^L*|o_aQ`qe}3B800nk1Q?4y9bA6$s-vhM1l*<&0dw3ZILQRuLM&EM14(E5B$$_bYNe zeJ{VMN$>Ypu;}k!4ZSAfhu7>lu?4}HVCo(~+I=TC0pett@n#1BkQ|YBKu#a{U+v2J z=xGQ-UoyJ7IF7CsWG3Z&$&dWJl{eat zYMAImi`O!~K|eas+#XAKO^uUENyr8_8&1G3R7JY=~l@ z0Dv?2Ys49!30%4>@3$RZW;Rb4BfXp~L3JBsk>m@aFZPUTrKlQE&m`zb3z9R{AIBfM zK-q=8UBm`Rh8anUpuczbUkC0|1hLtOWUjaTUJVDB zF-?xYQBRpIj&GbXON+A>$6cl>!i!#B)fvp&+#%zN*g*trBHxW;!i)v50(2R}Ulc%w z^du(H(<73nyLkMPEdmN^)kh2tz#21$T6*g3w9&c4_?`~`yaA=WAd$E?(!grVs zlXb6jUoRX&{%;NO4W-RH=0zB7(T%r0K}#T&N%OPP;rBS?Z11G@@9cyuHtuNe;{7nK=_n*8JE@4@^1D%cbEy(*MprA_G^oc^z-J5&ODkrEx-QOD5TZ zu&&+I#R(T6@wXPx-|Fp~Z`&$ysJ_m)NSR*ysC_()h!QYu`pbyuH`J=*Q&Vd{_#t5E zL?f&0lJ|9Ul3C&)Zx_L~W8i=ZP>8te9@DGl&ehwo)AGSuD? z@HaG2o{Sp?4ho-QL&fCoC0;g{h+> z;AOk5CO3&0$Q**je9U$+zx+u^l({n?-dRzr(nS!zT48o~8%~J-|n3tw|gf8=ct+va8U=oY<*Q^z(jjD zcd_k&{DTbOkr=9Z6ZT`2{REMC+aA{CG%0P|no`toX3s=gtXh`Qtl&1{bw$FG(cc{g zOYa0c_P+P82Fc~-gnWt z36E^={Ra#jbik&VPWl@kJhJ9L9vQ&PRkth$lo_ zP$ZKCX*zba)Z&g=Ri~c!;y;Fi8Xj?zg&>?z#t3ZgZAH&OMnSufw)|nZI2gj6)`W8O zVc%!y=?_WaK-bFmi$JF)RG|truTT(QQ-S=zlN+W6th{oowMjUKBd>35^F* zUh}uV3m~2luA-u59$IsSOMhU!w9RoSl^yR~a-O zb+#{xF&~-Tvs%~|iuU}t6D}>}4@U;+^8W_0RGL!wvqwn6`_oS3A?My2EjvRLrn$Bi zv-;-M$sS0U)9FC`^Q;j69@CA~)TabWKT|QI`j~TKD0$W5_Ty>x$`{6EQ2(Qi1%#yp zDh3QCabR4#Ut{%}Ni7r>dusQ?$4|E@2u{@;|2%bem__gZ*ID%Pmyn>!UPeOu*hnyN z8RbwtM?Fu_u%AKM#%*K4;f7AnZD-1%m|Nnl?;CB5#FTjX;hK?nvJVS^1)$*zD*PU> zgIFo1p9|ajrkpQoq9Dshi+TJtFNmCV#4WA55TdnJR>8`}flU=cWCmLA3gjIXW>mjH zRUwlzTLJOZMpO^%wEEBf2N&-{*?JLpusPHcJJaAxT>}Xj98Du0=L=V^o8BpkI<$jB zZhO=0f4S*r0)DTkWurbDSuIk0rwS`vQ6<6~$6!V{2T2{~?4 zAN`aRYH~$-rEJiP4dZ@fo9oc+1KCEud-8t`$~vX}_{okHS*b!nn&St<3KmT5If~3y zseLUH4@Hr9md=es(`9S>ZqR*>Z)NqDj3MlO5q3Q2xy%2ikH?Xi#|plsI>(j1g`^iu z>a%RSly{I&qh7W`duQQDs$49T1#?52VMUR1`w600F`#DZONkOn12FQ~PwrZd8kVSf zTE??$`&vyC4uOBlU~?DJYvybE!+wpe05jH&DUZ3n6a`W80<8mN@17n)EIf{xqR#7=(rbUtj$}Z?3YRVx)&Y6W$p4-DkqGy5%3r>OGEm??5FQSIC6nh*9N6bwC~N zzCA8G;A7xa0&j9=kZohhq9v9V%TG599Jqv`)L#v~j=7D1LKXk_LY*!#J_ks())h!R z)iOiv3GeZsYE}@pBlWvouWJ<9YG8uS?)J!ZK}TcW>~O|LR1@^@l~;3^;2obSoBz1l z3&4MxT+In=gk5#{X6S$($3B`HWeL0BUTr}jDH8-$3=?R&%wwO%z6V~*aQh5fGM^>P z)(`-y`oVv%>PrN%-5@m(=e85WFJ>**bj(y1L7cjE%@j?puxzC|#o8VlG?CLRGM!*0 zP$I-hV(S@Lx`uIk*nhUSdR)rj(DK<+eP=7V~(w2=P{krF0hxmV?8vx@tQs@lUW3rUTL%Qq*#Yek>hAZ1` z_zw$|nG*L8_(~>NpVpN|{Och4zbgbi@Sh-8GvdSfLn~FDcgnv~*#Sdz*uNURUw-&Q z#S9lHvM6f-m5He@m{XC~#wg8JFc+m*PADbuTaQzU~w$}E;;)++igBDfBl+cI&P-~ z`@I`M@&}jl#beQpjn1e8&6|2uG{MzAB~yr=XsLOaW=*M&GDfV}8ar~-;Oa@j(qQGD z0BPpbt0T}^H!gDhsWiF<2}jF0av^1q-07A#^nIhx!5HPC`S9Qqd=KM@4hCGb1 zRTwT{bwWj$ja!52ee~6#?Q-}#^N+`X|Jh%W7BTBVG5z z@$x^noY{iuD-YBE8qTv+ArU4dSI5>B(uxMf-_wUKPOE=)jVV zRmAJYE@Hp|edy@<>JkDSJIu8W&Ps zQhEVc^}geicHoK&W2zitgmJ5N{$vfj64~MSrT(`{Fqz+4NLtm{(< zU&584dY`3epiG+~WTq<)we534Vw7S_N^T?YDVkL^OfWTB-Tx=R`444NvatoljykFH zUq4N&vG_!V7${R-1$?DP_zS%t^-U_}_hggN+e}c;Wjf5*G;W^;RNSiFzgmSQv@@qhrS%Y(R~z{37>NAp;(?LJ@XEoPv{+0pyWR(kCxN0h8J{x`f6oXu{|3j#<5`x zAp9qSCx&-`jy${M4FtSk)}TC%R$P&|ZaIaM344Xsi-!09YV#plvuxg9x)-vM=s}Qf zIk1zzq$~vb1zLW}qmNiFv|*dU=10db<{6e&OVG0US|^Oi-h|dJjOBA~;C{lP5~-Yf zQ`#@!?YE`#fuj&`1v=Y-V9T5vqzXe!VoI^?8MRvZ)ylxqtilAHAcJA{0S8-BT4~8A zXZwy=SqR&&H~-`ZL0--uT2#NPROF`vfMg!c4PNVFs~D8D=no-zpRCp`v&mo|O;%~WBABkr99*ZrpKX$_d63{Yk zLT)!&hz`!g@_W}0^~M;?{lxnb-edcRu+$HXBGBWX_unvmY@|hpAf{);&yQS3)yL}4 z5!(rRAwtn3MNj)(+k#p)b>!GEYR_HK8Osvbn~GYT<)f;-Y$YvV?zr#7AS1x7A@Hfu zCqO^j9=)A_dJjt!1O9K=zhwu(;>IyLyi7WDxZ|)9sbV0?1~3%i0@lD$={}eJz^^?t zXJzU>*S%XaU!k>ub?Y)E_ZB=^Z3jBpQRh!&g1c{3uhm_asn z8dUo{s89f9oY}U%1ijA@Ksrr8VulaT#{j#>A}obS%mET6vKn4Tbe0CnGSx89ryfDh zRX@~N-gCH4Dz1Q_uohORwGqFEk*IVj!nRq}LLbEiG_KZbjn*EZr1QD{B5V|x%81A1 zrXXgO#L2?%li)Ws1poR?4Lyahn>o$+XNvb@m+%B5e+iAP3p(MJGg5bWP%vp|OXU#$6eth5 zT-q(nCSJ6Bg#cE|V%HKb(%IGCf?=pPx8hXk!`{sewq?Rl<8J4^y6X!L_ZOHmZtJ524(~?#z5ES|`%RU-PYIR)ijgJb|#lCC>3pi?3=0A)z0y)qn8x{vO}4 z7TR{YZmmbA9J_VC?{vtGv0jJ8pme>E$l&h5qeZf& zy?u#gYPHi3o>49)8K!Y%e*84R_R0EyVYfhE-30H$4}A<0kq>@L!~lEs+ESi)F?qJ8%t44YaS zmrmc(#8Q~k)I^PJ$WtBYHb;|b$Ne7yuuD2Rhz;@6Th2PmgF~CoWF6nJw)=7y;zGS` zPfUDzUstsGbuHT+pI$$g@~~wrczk|qb?I4Rp~}_++jyGuQ#Eax!gaU6N4>TyeI3`^ z=X=xEzO0T*@%nxVs^{KjoczYZcv>KfmFdhZ{P6PB>4l%S*3{dU-zP2>Rc0#6=RG83 zeaIP@#KwPeeZ-2-`xF}Rl#9=IK~(M0A(_VDjmCPjuj~6eD?-#8dU{mHS{DP~&%3X! z4X_kd$;I({Q!~X|He^4{luR)VI2JB)DaAj`$w_$_H@Vc}SGN@;MYHtodtWcMTybxG zx+u+06H0da>*F+;)cBAH*;64G*$OtEVx^bON2bG$%ghGl<|ivU)-SxFwGVz}H94QZ z9)zcKs~+pBweKy}<%D1KU@YGz)_M!AOyfA8{z`tsX<)f90xc%1y7p72uGDRBa%QKy z_V5Y8))OBKNo(QFkkK)HV#_U^Q)>p2IrwGVNYuiGU6BNZK&!URK2H`Ob2oPzDer0* z4vMZ{j;*LPER0MI> z*L5ep#Ket`I2}9cMbjk|1ruWy#1V67u6%2D`Aez&s22V|(L7Qw!ch7zBPf__`}PIK zG(NXmh4tazA0J6YlJ9C>auV8(p63{2ypo1bRW`PgwC34enV7c$`S=EOvas~HdG?JT zX87QIEU-%xdssk+Igl4-T1$sdm4&pxLpG4>$N{XvI1qTZM?O~5KW`}Vb)V#5f~gDl zkJROpng|3j>cJ4iWVKwIfp@E>M~x}J#@f437%*IX8a)p~ia^XBnAAj09{hon3&XAe zIOK{JDAtR8--p0I?5)om`PCJ(LNp!A1mI4##}*OFg_j&Uq<+9wtF7nYZ!Y(WmJz%J zl6w6|)(H101#i=iEWNDo@pgCBhy@-R=g|HKLFIX=1O6hvMr?sSKO*)Ftu^CRizm28Zy8aKn@{cpvsPVI91sPbxVnc4 z{2I*UAUTx}o--c|cn4p^WJ4Cca^sH_(_`cIQGF1aq3m~yG>f%t9uX@^vlz6H)1-2L zHEre-9aN`gNz+a&gxIGX1C@rSl};Z7L-!xCsO{KBY6xP2C!`xL0Q}POE`AYD}GMlhc{`h zy6(UN6$D~Xjm#k5Gyo9Sf*_gy`p*V0VV*J114BN%aE+E>$HA*ep%BGM+^YxDZyv*X6$`j@OnPQ>G2MbHD znvUy56Jm+=u^Zv=+UjVuZz3S-j+4IH0S{qmiS@(3fo`Gyq+6^2vmAXuGFAn@G_fC- zvu;B$$8xl^KdrS!E173OK^e8{vcsE+N5_8QKtlVp2mTILFf~*L9vdo<#V>VER39b+ z{*e&Axgv;bOc%evyW9bDdkFlv)S4IHWj8jK4Qf?RuYJIF#7!&0dTdHl|J2#-m0I<` z0ly*&jsK*^@Vfz)W0&Qc_`U?r-|f=*{wb7iN>6MsHG6?Gwz}%!Q$+uSL1^{T(AbC1 z0L*#$ANo~5M97W$j{=%sNZuel9o`IXj2b?-s=4+^n))$MbGRUOE16_(o+Y{m4EjBD zW&hMv7_;%1Gy!R|!WLGq2?TJ7*5b?Gd|e zMUlW1_gdI&aQPNlKB9H%CTC>a#szdN$tS^@+^&kix9&#%s=AEw|4DWK;TECz3rU;t zBv$j)BW6@<2b|8DS%S*9R?;QHb{ozd(i;4h!<7qygCcS}Q<(n;BkxA^+kK{oS=wuk zn-%kq9Mh-S=XxBCVcluMjaFAZoN{vJ|6}jH!LQE6g9=_=Bjii${6 zTIf}J7wG~KL<9tOMMS!Y^b&e6u^>uSDS^-;2q?WsD52aFEZ?r{?)p9VxzBCiKQ6oL zd&-A`B>Yi;Fkmk!|Qe>3R6Lp}Iq&tC7?+1FiCIh)S0 zhF*L}i4IqZUYWU!P=7oT>8-aqYj>D%m|)d3MK$MZK~RemDPjge@fV{8jLqL0HIgH# zQ$GyJs`~nZ%$)9OdBjnqZ@KnH`&EV4{7!_ky=kC>T@eU%g=Wfg>iJ~y)@^JTYn!Z% zvKCl)-3AYC&tl?~tISJ!t|nFo%-YY*=a-ofP}$IeNWon1fRcHSk{8kD37(X2UVWrTEk&Yy7$H2ms8zob#Cy5!YfmivszdEQ9VBJAT`8N*g%ZLc5M=UoNxZ=S9 zry<>CnY4}DuYOe)#pyejF6E_(J!JOKNlK426T&c*N@8-{h7Y2JH*RBBCAc z_0E?1ZM)}m?$qxj4!l2JNgF61*ZvTo7K0-Uz3uM3vg5BS;59baGY|MP zHJ4Z>o$8i}X92cB1kCMELOnm3yHC*|m+_ob{vbtg)z_KJ(~J%jXDIj0($;Ia$J*QV z9^SZl68k#o2q^LrDKc(yzkdW|JB<1n7D}#te+!$Gg&nZqY6d!mmJXo&j5wKv)A3ZHjuR5hQIXXpImG;JhiKCN`q|6h zZ@xVnmH47{?RdOLJP<{j@Y5qOd|=vB_Dhm`3k>-9{QW!f`!_VQ!Yyb*hYYgxJsBXQ z3TnxHsKGu1SklN7U|nydx2BBKB#Qvbv;XNt`tsQ8#iZ&MoUt)`F*?~^!ZMTgLJOBS zctRU-RAL*3`KayzT7FSF4NNuBl9Uz7*<8lwP+_pz_@L>5Z<4+5w=B)atI!|!1tS9t zsFcnCgr_}cK#&KLlLk;7fSRNz@@)pkW+%*3PGwQOm+VqUZR~=(()FdMIs{`&ve73X zd2(M$k8a0TXW%)^rIRl$iIyV0fmQ<6C=4 zH?$xB;vpYsvNawgnh&{>dv2yVQ0GG)2ZoC{;Q&XQZsTY|0zYsVzjz`G5B8cIm0pFD9Fc!#`=@Op-+0H{ZjjL6gRXZ2;k-nv|RoeJJ` zGo+>RLOsm8A%M>3n5+S;PxFGU+~Ev&taR`AIQiCoR{@O`cMYsZxJ z!_%oP%qOcwaDIbh7#Amo zK}|AZgj1K1cJJG|9E>|_5Fzk)nEfx~kk=6@FG_9Eym@`XO?@qGB9qh^?m@aVB4_g9s0T{Q zm~6_RWPK3nHT1fQeuViacYjYk+0>2@&?~~{oUSuS9@LV7s5Z`VKl}a>g#R_=?GXDb znX7bjF#f38V8#ifQX|gCrjGw`rN8pvpvwh21Sz~ZB>>4P3$On^)o#`D`J#gqlAtDx zWe!6-AJfGjF0qtl0YMq}7y!m5PIWS2_8j1#V>=E`UZ}A%hVzcZZ> z;X*z6;i2TFml&aQ2K4fgL&H#g4ZD4oK&LG>HRqp4zu(unsnKd5IX{&Sn+q)2U@0=Z z3eD;8gXhmO<1{q&Ru1Ejk0_R3jtw>u>2zM8i+Y{YZC6KTK%33AUEoT#oh)jn*as-? zKhOj-gD}V$q0#~27hc?eYHIf<2>3Kra6ty@yC6b>*r{7$q;7ym@lsyoC?%(NDV8Ad zl=OA1uY?8-18Qkd?&5DN2|8tKkKfMvJekM?2`(dBNIW3@IfTbrkBue+W?u=kxb$gb zh4AXPR*FfzQKw^W<3d0^%DIpkV*v9tfNq=t)H&ctNJG9SroHwLHLuyv@Abz4KatG^ zicEsXeoCO5gOVA9Nm|?iRWNaF@`Jt;K{!y~;;eW#q8PxAW57*Vcb;4 zHWUKS)E-^;&Vi$+(Ic zChA`><2OY(4I%*_5CaTI8PLJNfQ-{5xCFy|8TJ(Upe^WK;-dn?<3hD-;Rbe(Le*Zc z?0Zspl0=^o-?g1@zL|cKR5fQn8zQ|3hN=fqTNzX^9(WgA58xLdXBkHbU&XEU$U$!h zsv64#5%{gi(7*>wp3aA`SepEwM7!k3FC5EPk;cKDN@c(`PlpPe&a=9+LsM&XP(GUV zA6T8g&YEZaJRd047TB8`s5|)EtCrtL0~uhS@XTrVkzoexs34+ti76HcXbV`lDiWOh zF*g5Vnh_8dpyPZyb#h#~#kR~$hC)TBzze1&PRPJm>?@UYS_vAQI3ncr`V-(r9WvZL zlcy%eB|SQ2Q}5pK$`9$3vJ)U|3KZZ^wgZ6O0B^BE75R!$?G(oP|1hjPG^p6If|?4= zE5l7xIh6H|RW}XQw|0U>KYlO86R(@WsU~Dszc&2VNVuRpX ze770C&h)y*j&obqbD_YX0NK_rvFir^3-qj?0fh@dve7{c7t_`nm;ZE*B2g zYJ6&cG6sf8eHoWGrv?$7g(wzC@AD?B=*B%EXTauifOBJpoDCVreM_Ga`>_D-8G%b# z{e-3pa9;xyB#rpWeZ8Sa3B5bD`7XT(q%b;YWmoV-9-rE&L2c||aE9lfd#H;R(*jf# zU-K!wq${{fQFtVmT={-v1{%&LnKt>z7OJSzCf&%U6Ijq1#RJU)v6Z}_A@yRYqW**W zJmP|qQ*EZ4GcyAaF=&{CElzlG5+Z`H&onli8I$Tl$H+UF5dTdiO(VlDs_G*8`LkOGsh0> z1Nrt9oH5XVDgxV|G|AOpBg0#5Szp)KfHw>^oE%tnxfs8gCkPst7>WSi>ASvz&cg#D zK|`-NEHw)CA1#CSbrigyo%6#k5k<(^_br4%Mm!?D%XG@s7=2>jy=efOIUvaA4a^uN z5D?@%>MLqzSnMFlv!U)5q_t7XH!apq=m*6pVHe6170}Gf1LA9LUBSLFz(~6QwsI91 z>FtXKCXNyb3Xihc3)vYH+3}1PPKlktq_FwCc>`Vj#7=-DrQ~)3aDAuwQUV;qaEcry zBkE>~Gx^Z;kUF#7?8l~6pVYN%Vtm?L37Q06` z=(kRhtQaj08fb#q96u)|E%_zecT@pFX0V*m0atgaW2tMYdba4L^R>SD;3=_9$!8DD zZ%_Dmf5ryEfwor>89_CTu|xd^!JV&7t7yD=KUiuY-36c#o2Ho5al)U zibc>=s^1svlpWY6kF7cil({t(B$j^A{iET{+mQ6WA@*cItK3*37xH|X6cw6|2J7Rz z3ptNdi$VQo0L!TVvA%tMm--Rfvzs}xHitIa(0=JU16O_SBB2T*Y4pN$@VAp!^^hRn z->5gOAC|@g8EinQ382gxwsJez#KxFN>zsptJm#K)#_*e_;1BwkXgZ+63UBW7VG>Dd zIx_-9uLJaqxGV#)$%7x5_Z4cONkQX>?vSl8-!1mZTv}-6#(QvfvZjpS#m?8W17^38 z=gTUVXMG^?+h94;CHPl{pplM8+SLtlz{H0nJ*cQ3o<@|H>4pF_(!uwn)DZ~+qv)J& znk~f!`GTPSCw9RWKR)A%grG_flUVP{Pv|z+Ii0MHME+K*KOSq($3Vtcb`(7qZ z3uKB}f_QWU=%?-v?s`|{j)o(xb||q~5On!;XGm;-bB_=Kq1<;-ERo&4=1mggjW3;e zlA=JiV7mq&zcJh|(3vw*vsP;#e;ai|F+r>+PZc<&#;5!=Iekw!k*INmcVs%aoH`oB zIE~d>bj2vuT*7{UIdnCmm-Aj;i?INeRD#s1vMQu#+wW_%y%PYRZNUA-#hskp$%X`m z1ROQH9a!I9Bwr=Dw<;z-A3U}iKX*I(^LD)#;%m@J%D#}^K!5dQONVo9_HCQ}3Ud|k z$hLw!7pV2fa>|WIAdh#ws%Z2fV0HyHkAOB`Z0+Z_(=JoGx4!1oDmcV|`-n=%=sSF| z=_GAE4yt^7+ICN9RZ;m~a|@p>+67?&w4njtTYULmV&B(%|2LE-QwjTG3W1951ztqP zYUdJYCzZcbgqfThs+oEG))8J7cy>B-*>{DQQ}6S>SiTQEDDG`tIhiW7cly-q&gR?= ztmFQTGE%<*Fo`56D)?a%OJ9y#_GJGsjeX3byy|XTS)mEP2My^qRk&O?(Cz4Ai6q!g zCjYka;W;%aeM^SnNG8Ml$3-i?+Ao?zv+bmv8%gH%I8-w%5hz0HdDm3U0Cv3vN?o>V z?fxwL*ZdVUy&&xXT;ZR@Msmouyg;Xz&q(rvG{i%2j8{PdW*fv$x`5bOWarI(T?bMJ zz%NF12MXlMbkEjO0mSnzeQb*Yg0{A3v?ss?`tm#crW1G8969e*z7KJZ96=6iI1tJp zVr$?MMm_U_23v7X<$n8-6MiSI96n>&6T9y)?;TjYh zmMA)d%}A%tsAH*id5|cv-$~(=4En}8m))Mh0ZUF~p6*Kd!jg8rq35M|tOl(b9~j1M zbm^lgF?0E8j@eq;3D9m?f=$t z>&0w|-MTypJPy7T}B{W$KKg1OxF1(gUnV;!Sa1u)t9YRqS zY|+`%j&dAI=fF>m znZ9IE`|wo?`*i+1d6Z53+5k0Xy z@Vij^T%fGa9s&On+j#Wpc1+=VY)ZRH9o&#ZQzHKmX4--V#$go(VWoF*VMYRG zI03NJiZdt{;n?%u&Ep6D^X*+Q{t5ZnMZToD3AK0k-Dd24XMl0?ICF_Z}85AePTrA514&_?WAC$`VV#x^q7~kfj4# zzxA`NpOk8rgip0I!Q3rFp+gu-=T?np!;g0%dNw0JTY+})^Lrakk~i;0h`!xqWTH;1 z(4KTsKV?LZfB7mv?KG>NSrkhoE5h?clkX4~LPkBC-9Oif{=j~GI=V1|j z%DG{eKuE|^{Xws8H^X1{eS{w)m0gPDYt!g?k=DA&kzaAfB{#qVelsJd|HJafCO;z8 zXRXj;CRQXtW#AktV>ko{4rN6CCx=pe(P@8Sr`ltz4;0MIh36cq@x;Mj7yUW%l~vnMCAvoO?3=B_gO|-T z#tDu2stKs!b}dJfArVu5hZAsvu!b~x7)RrsU)Pg!S@XI zxjK~-8Y$y#*ZXn$j?+k&T0tYa^_RPEa;kK9Ky z;+CJ#!_)XIUay2ITPr;)zzj`v&ccrRq zVcgjG(VnIy?ahymn~_^0R|zGh;g%hbm?nI9CRBIP= z&`!@XKNS*l4Sbt)IHzlS4|eF!3LHtNVA~i?7PVbO=T}=S9eF?77g$Fu7BSx_wkz+c z*Pj$zn(emJH|ncN4{v@aLbpCq-sbS4i0C5P3~Y`1*a4*}Cw$xOenI^RfA;^m*1U z5p>{E^c`)h%BAS>jP@L%ECU7QcBjP*`|SEP|FpDsOWin^J9T5-+#Sp@{Pw+iBV@eV zLq@%pTc<3i>cdz&i@XP(CFPwoEOypWJ-t*(Fz~%ldo;au?b2t{ypvjOX1JJk!(gO9^>3IcY=Fk_BmHliK+hGp7MwL&#=q0^VEp%{J@BdIo!j=mAFhF@ zKzS!B2DdG-rY79?9A!1(b~>vm9F8R48b<;Qr~9d3Lx0z3rxEm7x^z7s86Is%}r zzpi=LQY^0G+!gVJS`KtYaljE2h9Eg+6RN-`x>LN4K#vfgF|DQ-@i~v$(Ai@^a;7a1 zc95!A5O|f2;GeBI$TljLAo9_Wc{zXPst+xK-bC){Y4G(y%qBlIKz?kFxvq5x09Dw2 zvYZ}HUXhm!;IE$}$w>EAoa~(ys_XbIYQy9D6U?xPYO8clQMhyxGr)NYy!w;{{@mNZ z#+e%UNB_*uy$TSF5G9J}iL~Hy*@k=KGfA<-y_9pF+VprAjx69?H)Fy0z@-Wt2b)S! zH)n$(den}CWj+8OGzaj&**w~n=j{=m(tH3|L~54Nn`|j>!?tZmyLmb5L<9t%I=Y{v z7-zdbpLv0Nv`Y2)>QPc;_(CgMv!&um=>Z$&lxZMEK>K?b)@r%cFYFli%p91gfGqFU)!iHg6a_&< zEBH1w>%e_e*t_nDU+eoVeEWRNOjt^KjeV|xG`Lvhfa9~hMxPUZtZ{>*bLCO|6LwnbbPwvg0LS` zrW^Abs)A%Rrk0Kr>l|Nb5AFpggbt~PBJwm+oJ_w_|&ivIBZ=1&d zm>=af)no{sU>O0-aLqrO;V-(~I50-xAqqZdV)*$7KipGps|+;=rYfueoQct2oeATQ zN-*NM7%0UGJ{bM^2ixA~4+op({Agc3Onu&Y0An*o37`q} zcWCncUj1nKo%uM#~VLC9ZzqrG} zw!zab_lLzo<&GJp9}_xiGonPr_+EfH8ENq7)wMG~xWKpl>@f9+}^q_obw z(s^B!SQkMhl*ki03e(fQY_Gxe;d3ZZ1d?qNseuO4$9`T(0 zy(DD=uJKotEg?}B26Te$Z*<~+-t>Ro6fgtd-S7W-Z~8y=2h7A@WBUJr$^S2bNnG)M zF>U`cj)vPxpQlZ6TbCLfLmgto-G?0k_w%DoP4c9$QecN6Dk3f|TL6$x`=6+QE>k~y zx9bam2boi0o?tAxG;c=_m`(ACRw zMb%e#N#V@1KZCKt%baOcj@l0weH|`Y2zAvBMMm)5SfIcSS~f`}&U#1dnS|Gxe3n#1 z4awoQcGk*XnYV3-4UK1tynIRza2!9nwTicfiGjeYH3FjQ4>(kON4Brj3R}Z@swli7 zye5@km?y4g8ueI|=u-ipaAD|S7U4xcrlUNA`NtXZ8SxpB1ok}af|>Enx=St(o}DHq zF^zvB1_GTT*&gzcJl2apdo1%u98aQJsgrXnu3R~anao*d3fg(iZTREm=-yTI<-_GS zv;~ULCx-OrXG0a?H|`Qhi7}=w3xDPwFSWdxhh^b^WUsV_UUl4d6(W4PIac*}%c15V zrgks)bu%g$!jme2)&tBux1HxB(SUf}l+85NQ=c~GG6NLh>(I0q#d^=jiiNNZ)dF9E zwZ743Ox@Eg(Rpv3SVb)3pe>!o1Ubq4H8Z(=1>T#5RpvO+uZPxrc76Nc=Srjw64y?X zV#KgNg?xD3N4VUXWu_QjQBJMnil}7t#uzHf(#yepMJ!eFo@b$)wZ+h(Uh?hrH>wY1qZyQO58CIrvcywF5@rpUO6J%0 zXjLhwNI$uDf>>AP_TkQ@)x)qs)kfX%&75mD3cZ5gZlamUxzInVi~P)8wkTnex=j69 zU1+j5kQdziR$lHOPS%dyI6v;ANl@91r~4%C`huMgOf34|me|ag-ymC#Bp%Xo|J`<7 z{u5PmiC>Xf;^P$~k3ye&P@lw(ktf5Lrb$&?nO$A6x~y9V!gFb0CTIhj}YaUut2 zqT306-MZ|;Xg*PVc9OG*@E|^HvwXhFtZO25eBfwxl0>KG>-|HOF`_w+)_pPIobHpx zK4lC3Irsa<4#WI%2)z>3J!eFkGc+xUIc>VGAE(YQzsYhdw8?6+vL4uPcGB*de#D3Z zQ8p7>%PhL6&rhg+#=^uJjm@y_o46sLc4H#_h}!&8ddiC}Z5P{)#VTpPE?qmnzL%`% zOxOBDk+QYTn{F=CUG+5!aip6#L#(6o&j|B#^J?v~bF^I!G#lj_ngFu$dtZ@UazZ;) z5}D+;i4!C?md5)hc?x$}bZV=CmA8l67)Olbe2P7j%jRvDAM6!e zd%8J$eUs;eTMMy2dOUZ-kd;47a+&zTYR9rc@kBsQz5q#dvI;lmO1vVY^3m8bXtwxT zR|xx3VF)yI<*a*TT!qj1&bl0j91r93y>t!(P5vpz$)mAOc75E2 zQpUM&yWjkFY|9^${8plSmB^Fb%*9)Lg#+E-S;=2JJT75jQVj7d>QG|z!Xpnd%Tt3k`> zI7Izr)B4N4NyFafM|w~GkS58MI--OoQA6o0e~y94yAb8li~9LkKMR5f712L%SwmXE zRQQ=#xY5!*LeYK5DR-<7nWAzptm5n>np7h42M6}}rCg`YI`_pXgv=WQu5jXm7clyh?=EpWy>KZoXs{DE#Rcg zXj1)Im^tPcm0SsSgxN#;vt_T5j91(<%TTe{Qsg(=6c)dK+wLVTIllI)q$hD{On>s4 zJ)9FC_B%Z8tlLqWGdvhY$GXDtgD9lu;y0nHND!7^{kO0jBw{wHPWh8d&WQfsjJ#ol zzWVboU0EC_hbE5L8HirXJVN&Yg#fzjLf1#>yz&SPq{D@AnN>uH+b1lo9wYfH5G8zN zt2dQ>^bWxjT+JBp6~PV&@f)8HVN7%B@fFL5;cTL9Yd4s{#dH6D@xYao$zy=ENfd&8 zJQszt$*wWrk8A(!rV8XblDh9e;|YM=oH1pE(QrX4>4Y)M2%N5*${Ph}rbzBnQFr#rX(dLosq|(h$C#x{rLen*$ z8Y~08O+CIPhyj09{X{oC!gE(}GsyD>xa95zKR4Ehab!{B%Av@-$~oCo-?I8U9d;4% zNCvpH&^reM3XmSZ3#wL=1}{XMM7x@oZrL{|dEjg^o`ckUo8(K&;BxH)7=hR5*WB=2 zhL`W`NMzTiKOWYOZqLbba@-*-goe zI#_91dDQrs$~?ORpx*F9k9R`bP#Tleg9)FKZtSrcGYbvG3Omk0u9t7mc41?f2N^mX z+~e@yTSpP#=!Cx>-TuoXob>{k=EixMj3z|fV(JAq0oGdg)d0vtQI3EEg`8{>x0SWk z1RGc{EcLdwSh{UlmdGfgII}h;naVFMeALN_8iF}027pAr_5JyG`lPjI{YfmHD~(Rn z6FmUu`yXC95VYZR5Xq;iE`9lJ7ntPy;7ApiWa>nO?SyA$(;gdc(OIIQ#ImnQ4E#3W@bYpMH>hy+2~WEuLs+^W-sF-@>>t0=D%#hw`6fD=#n`w~ zW%c3PwR!IWrNR_5XKIqAC<&f=O0!>5`T_*wc>a3}(5GaoFNKZmnj$zcVnCfh=Ewx1 zXMgF<4GrCHTc7evy)~i?c(30bMYyOk=+f>fz+`Hy*hA2{5&Swu#tLYhv^|GuqiI@asBBs^GR6t_} zD7tP@Edw_)Ze7EE!c?r`5FBLjf$1?Byadj`9MpS!P1+EwB-37=AKKGdh}KBR%JkEp zL-O_+n+~y+c;*aWYp@Iz+=Hl~o-o3mBiW@`U{^!_&8|M*?}43n^Cw^1Ta6cJ$x^ye!`V@V(m7By%NGFj~ZF&0;yT-m6Y7upjw;kNc_QX8ZhyL z28?oHe8)Pph5&=Gunlnj=cWG#lKv}@+I$wksIx;IJX?YnCaQ;=> zT-U$DM3JK~zrwwK$oZa2_OfQx7HRzvKH;77f_`q6(w-4axDrzqE=M z1@iuHPRsFxv`S&uowSX5Obnkps{@OWXxI(w!V@2mAZQ@|qB)9-f`(Lg$)#1CDb${) zXozPX9X)|7s9&#ft8~ts1Zp_;>uM-S@0cA;u0K)dFd}{K?yATX^(0U{%;51bmu_;9xZzj z%@@fxyF{va-`9Q5Jwn~z=+i*PHD5|+DX-=%ZGeSI)yQ6N#~W-$iOI`rO{LUo^G!le$ zQ;gsLrPy6Givi|%Hpin8un!qb-!A(;6>;!jj;&!OVqObh_F zrH$v8CJF8vY>^w+cb#-yYLzlfYn z8Otm)8uW(0}W?U8VRm*hKuh`8^TRSqXCDZHzF)U9Zoh z!dAB3EHzxT>NBCdeq;7R-%zH3i?D;gS&7s0CRx!%P#G!pVa_Ofq#@Lbw~RJ-)>LvP zI&^@kZ%0z`$KxQRH#&7pkM}f6AKtfU>lP`g=+d6#5j7(L2u5~ON$ns=>KU6BsQVVC z$#gl&zNiz{D7QK9BRlKWE~PiAz_Y1vg`W^>aqmW**_oRV_1X3Z0N=B}m_jq5FH7q% zoQ#-xGLn?GBGq8d)Xel+fV)oaN>6+$n{g+BJG82yN$v9e$a?KQr)(+Dtdpe0*xvP= zRzTHWq|M<#c!FQT^icplb>?k7?Kcmv7*1gRNa|xU+aZBG#(|Vv?$ax`T59B*@{&1c zaDA`R1q5yn-k&inp2=c}SX<^$bp73e`gDPL)A;)7zCLBil&}Q>x3@#bl#R9&U5p!^ zGY9kLzR%#9c(9!FhR}!QP0I8v9aauH<9+M#+W^3{gzr#(@s!dTQ3Fd3h3Ldrh27a< zNel+fz^`tCN231eDz>L!et0s@74}4pjkU!Y-s-$(Nt4sD?65tzk^~&6=48z*Mqa+` ziee&!2MjO~@&e+S+b?UzuxmM&K8q++yb`}rik=*LB(D8?i&;l+cO|x~S`jCw|`a+B#-| zHjjldXDm^XpCXI7JH%E#&xO08tiA5Jp;5%!+pV8*$c&ukP2K|6Bt4M1VFkoNMmSx& zFJ-~e*7u!35ZzI%k<58;a%5$7Afmo2KnrM@M0};}q*UmChxO=Dl@$9E_XQ%nFB?3trZx zq>ES*2#jeed_=!o2V&OgfrYEgdcIpa<*w@cfZ& z*1CY|7V_JkMN#jbL38IHMLzS>Dy*@uwC^plGnxxvxlv}I10I0#o%Sy2eE_jOcH*_) z;d!Xq_v+PP9Yd)d zV|maW`L1eu=&@$^>V(gQ@S@wy^9ym>4xnsdKF(MBdNs%le|ejF2vbUy8gv$vLuZm@ zg0#Ttdx_O|ASp7pY+9H*TsM0MOz`Q$+3XE1du-_`2s&a!`W=1)IUcnYy&vvC~79mdW~WQ#Cs{MCM;MF_*m~ ze4-)-jkX^fe5{iqe#JC={r<3Ms9CQnpZ2El`7@(kb;6FsdUc-Ust};b8WeX%R1rN4 zW2o%2D2n^`86efBdLS|93@Y(vwj{|In}ib_nnykx6tlwFF6R0Ni!kFa%bijuOy**b z`Q?ji&Z~ve9h z32|)Iz9JZ>yF_)lwt_4=G5qLrFfF@ROZmZAK?%W==q=6Ct^O9`n`O4rZaLS?H0hiY zxlTIHJlEVoG>`qY;+mda=na8mu9t`-+6`v)qIR?uN>?s>l`3lW)qAD&yDdg!PjiU4 zEWgvrmFKP}P!rsmU-F*nE!{V~U^Yaodt`7~&p*36&(+OeGv|8GO7=aEu;Ge*!&JVP z6HYz%DmG{yO^CKa*FN@kUGDFuXxM5FQJ`>;F~rtn22NJpO=iN?5@)KD`JZm6O3b*S zeGIRaR}Zuvp6~XXshZ5Ua;zMEP%pq~KI!DutY2ru7S%h+>|L>X*&? z)@}gN^jZ1XnJ?po+l)t6WA*dww%WJaBh6msyli!Ht;Xg`S`9emut}FM6WiPUgp`&r#`)TYYkC;Bh*Y$vquaO#m$@U@I5U1b$%?$fd)CL7|G`>*uoT(TJLa&mgO*YMP=*2-A+njdG7*>H) zx)4Q;>F|j-?9;WiE}kULU0qe$dHSAfHEZ`q+&-UPBjw?)+50?m7*uwsK09Bb&N}pD z>5x*NF50%GhYmL*k-|u@JIJciqcDGZr*(}qDUZF+dO2!Z)c7VrjRyQ-1z@5KmVb%) zBX^gJy%8eLk6g0EW47bwm@8epbAZf9?dC_kLA>P=Z28B82*}4OI`syEoofUtqTM@D`I?l2o^J!6{f1b|P1hkFKifkyc~bF#kB&hs~|uTw}?eGFA$&%;}cP zuP|__9X{7UOSOkGHyFy0p!`;8^&Nus?Z#V$+?RN?(dOh03pUWQguCYN*2o)_m?G7u z^2H5-_dS-~?9N+Y^-PJG$di;>u??JwE~(C)~ZuXbDof6oJKZ_9p(X9JHlb zb7CArg)Uz$mnQbMZ)PD@u(qD_TI0cX1CAg4jV4-D^|qp))lED<=?rN33<>BbvNj>J zXqV!yMDjM(Sw+E|G?n#|ve;veHI4VU4ksQ>eB-vt-i11P%pQkBh+XY9qL5KB-Ce8r zYNuP{0gRjGF}pwr&ZgXjnEi06zx*2E0j`WSbwlr*+lfzx+B`QR%ObPyj}}yJ?$Nh* z>C)DBSei|Hxf#|yog-VOBbQgtPrq^qhFFO_c25sHHR>R}bNdeW9W+qXI+Jz{ei)}Z zF&ncI@iI@5$WzJvTBeL#{BGb;iX`v-(lg*Z(`@T`O@(XSnprhh9yLWgFWm^aq)Qv` z?;0%C{~m{}-&|Ve5g{DX^UrwZhaN2luR=BzT5Ad zr*uA<_0d{DX0^=w#S*7U`7gz9xx1gwA-#OVA)9Z|`1g_7SB{U|x6aP*A4tvK zqMJ+N-AZ{}^AIvl^|Y`2ZOIgX`HmK_rk}+(_=MsZWFG^*W}(Z)&Ny!}8QoKG0X5Cn zPKcfn<59jpZTE(N-7U1=VKT_#73m#OaU@7YTYz|d>o)`^R-5hfWDo_hyh;uPs~fLJ zcgdVVS)m@Z@O%?JelVjaCy?M%!*WbH0Gq>L!snOy4AEOR=$rVgZnxp4jHyG>u4qyv z4R`>0YVmB2B?wvC+wv)_NEvieR^P{~lpWT_XPi~y9ssel3V*6qDtyX^AQgFziIa9l zofnq~!KJ0DITAuZaD5Jh%TuFW?g(-8jkI^TBM9+m%XbmCK$O4pNNOh&sEY{fG6H76 z=l7SoQa7RYOM*c_Uzm!H-xWQ8dH$-{Lx{n|>G1}d4upA);1s-4w2Hw4Fe@u;pfHI0 zqwYXzElC^5lg->S77FIzoXoE#9Dq|EfBp!RX;$zQuChf!?ZLvxSWZwq>6gn`vm2gZ zq8<=`3lciJWF6h(Uud=!JTc3xz${Kz*Jyfg>*8VZr$!*CkK!j)pO6HYm|8zqSghddBT&1E1F=}6;1%X|nUan(kh zl>vX^WaQfi8!^1B4=!yPOKpyjKh;9>f z&O2Mwb13K3Z}k|1$K?5`XM0b9m7S6tn3hLXo3}^zae+od&qbp281TxwwfdA1o(vD< zwH8EzTG#8&yQB{*hE|b-&rYW7f+az>hqJ)US)M(*@?fl+_f9jw6Hf284&VdwVzzRO z=E783tuR8}|` zPVrdo`rZc9Xfk{472BW?XSXw`oO9`*30J2c)tyN%D+sf z+lJcP(*;oxtVlDv8_w3oTYHEBUzkv%tsir2^O~mZ0#P(*=UjSf(E>HxAieN~B)kT3 zz#R(=fnDKcanK1#np`!wnjWu;??ZcSTy_Z@UJgCP9Dj^kfN0z36^d1pL@mexz1ezU zhOz@Z53odyMOJd`1Nx@VdDx*6=NdkNHP7BI8#BnAypl@mo&)fEc8$oj) z5lWA*Jo?nq7p*mwQLt3a=a;+k=&_?0ifS5J*QP$D>j7DefRl6KAnQ8|SRrw^L40jr z=4Zc92is+JaYnFjZu>yFoiL7ddh1<4Rqxsh9zB3@eQHqm%DluS(d@bU`ysoHsdw&P zpk#EVU|5_SZon;U3Ziq!axds{)8=&n<=SRsE#;f zi^vkEA_vW?1-_Eajd$*aRmIwZ8uodoQPjLjp#E72npk!OmSi26AuAzt*&&SAC|`8< zK}^=wgURls_nK6&nZrWC6WPWZJuS2POjf)}PXO*(`sm6ew2%29#zIn~n*q<`yjD*Q zj2JK^ZN1Go)0ECetC!MBDV=#^UuCcZ>r$y#YWY4kI9GRNynFZ^Ik77(_FDrEcFX)n z@r;}q%`@tu>`JXV#*=(Za>yHsE}_Fxq1jNqyoCZ^C^<~>GS+Ar zb@U{Y$3BNXpfLd_9GGEA7c!QK^nmER`_Ch)$$Q>)=g^kGSO!h|R~=_48#QSV2xV0= z?b|cXr}HHp@o7sC$dV1%nxDyX^#gC(1HxsLF<%`?eP8r`SazUd#H%P+5bBM3IA8NN z&f^A^u53=e#a+z;I-GNEM`<`%6zP2aW9jvPp;!LUL5mPiHc0Dy$3ZoBa{kZys;oa1 zX*oZ1K;_UWTrfm&dSaFf97`o|+&@#4#n)Pw1g29U7Egx<*v->DqUT{~S}f6{$c-?8t+6^OVk)dOv#T)8qZd%ku`gFb=;@ zJJnJ;`@8m8w$tN9KM{%@5f#Z^G*h6wjFR{Db9(&Yj(5!$xG=TKc9V%`QTht~)zk+t zwMw51ByU0O3-*2Be z1&48*iyM#%fvOKp`+^#fZk|ECysc1BDB>2nrLCju=2bvdm*Z*d)|lHz>aBL$hXXF% z-=8xMj`fqm-yUmPn&_lY`mkq1GS5u@@qL>Sk85fSSh0L<$Qvm&hb%#sEJduvl>u)$ z=GzIp!8j;C{2RT^e)lfenz*OIJ#E3E)GumS=z>LGWZ9M$I){mJj&hd}iGOWR_Bx9^ zhhn^RVI-YYIOX!}E--xip3&X;RZH8_(?juu_@o zhVVoL#Qf-jDCd-W#BFu}pSkOexP=Vj;h8u0A$b3Nos*4nR|G0AxCE<*iFU7XGI0t< zGv`n`p9#RK0%w$HqBi=NWOp8>v6D(<#I5##A;3Q=V3xa10pl%pL=-#X@vh6Ary*4d zIdpL{gID#+lxQg9=QXm145lvNba$Kjk{SXL;lO1#zG0oI zq?~hhm9uLHZ$w_Vj@Fb<@E(mBE{@I_H0pEGxS=?|uR()}6UmR%WI5wHh!>5@K0KJ%U)|z^TSL0u_IzvlmwA% zk17(M`E4yzHk30Hj1O!5mkWt`;T3s>Pf)#w^Lf>!d6l4zWQ-fImkL2emB3q$-TCEH#wV(FO{`OkmTI>H?*YEqf{MXI-syScH>MJM!h}pl~=qRp_ z8s!Hm(n`HkK??IjCMG~BTtGULd)m0?R7O{MjL-&15`>#Lui*Y5Ypc$GX!0;2rN;Dn zMefQ|CX3gam@W-A0sYUfk4>{-WZU@^Ac5kZkoTYCjdzNho&RgS>#MW-$hKUB59 z?~HEu7v!yfoNZ!k+|+W|3Q;p|&&+X;#9g~#j&j1P@w=UB$Tyrz-mc!voe%zrMLl*? zdhPmWZ+T!LQsvL5<&bXV6|{s096d+Fh+-;{<7XGJAAEMPKM)fy>qqZRzKA`97^-aA z`#vV*VVDJI7G^5-UANCyY+NsgT=DIC+Fb_AIrqx(id3a8iq9UcIe&+&8 z*B$~nSiDQ{xqI-p@XQ@CVowgx0~%;A-bX|{^$SDa_#J3(dV+UaxMBYcU%S~Q zJuG+`hclzGI;u23F#X)d+EFw6t_+@^@@3|@>Z3BDA_jr0_4Su^8&AqNgbMVA_CAh> z3{4)@SsS@qcfJ2nUZth0-e-Z~pG=vz;mM^2kR_>P>K@><*y&loV=#F_e4q= zMr@`aaRC!eh0oUf)Gwm-Y@BdEF|=Qs;j)9Dnxk3A9Gf}}j&Y#!Hi{*^GxN!exwWqs zGx|u)wVPPOw_%yl_|8CNGCJf%9ou3e$34_-++D?rQly9;sg#=8yoRZ78F}I47VV?4 za)@kQ{JP5_`!I)Fme&)Dsq_Q*QPno81G;e_6mQ7otQ_&dg1$s}{@uFMS`T&Wf=p*L3FrBvo-I&TGsOqw*C`>tb+tFK3 z+CLTQ!E10g>xNzF-suhg$D#vqQ0#n!z2q&D-GLnZV^LYwziMiS$EHE@La>&2gtF>H zi@KRPd_kEfnijVPhT5}?K`s%nfg;fd`ptnzyn;t*IN=vrS}F9W48?k(jMdoT090c# z#v}Y*N2JHqXRz3E#6m;-wlFvcl(_-whkSk*?;T?d#aqtWx=dEO*p%$|Zf=dmcRnW& zA-)g?2vf^h*{FjxwGeuzx?Od*8hXYu$~#mEihQQPl{brI64I{0d5@ewrda4scL{fd zh$8U)YBQ&%&AE52m#kiRiy>EkJ|x*LB!@9NxvJtqN%XMMmLBCQ@dX>r+&%y?S>b< zwpEZD2%U~G*5|QDNIFAkN*kc9%gxc$!E z0Ls84akAU8pL<2Z4>kGQKcX;Km9XvQlrQ9%3&=4^d_3a0J)C-P$*#jp+eriWEJ1BIm|r`*^j(m0jZp)|2x^}n39)xQ_}ipFD6kz& z`4n}zP*IPM^r4X4$YP6kAINqh6j3?3gr)BaJ4Lx?w2*HnYsvtAULc?zog}$)UqWIy zL=hiS5+4>-ZQ1|4_g+`yUV{P@+a7m6M(8`}qjxEf5j#dAx=7Xw@hdJE0K~YGwws&u zV03}G6>G_5>O4bv0U8U0nl*coi58~xOZm$%^VlV*vMj6AUF&3?f^F)%gJbF8r1A%& zMp!9F*bW=SZIEryHIc%ikR`BFx~(e9O*~6WH=m!epv;$VRIsyJV8&iWtej1j=dnK| z!S#!n4&XkHYcJv!sAaM$`Gfk&e4UA(!?J)2V*|SdeH;>|@5A$j$So5tb%w~yjb;`F z%q+?Bjak*g)j`V)a}fnSq3%hnw+f2@Jy5zY4mnj`UBGuNcy^J)1(HrzP;-z^`jkEHLrF<*ebxH$5*J z>RL437KZd@nvZm5V|Mkya*qFb^b0@J=vMU;_8igln7<9xu}_o(i$MZ9v8^op3!OM0 z{3~ddz>!sHy4cZ0UMjtP=%Cita8)>w3myR&6%}_#wRE?kih4GX>1xGQ3I$x2t(6zq z7`QmKxHcZ=X*^dc4aAx$^PesLOzAtDXrQqr$1q~g`lA~hj(T_CxTWu46dc;ML_&(B z4DHzZ^7@HTKWxSOMPVya$UXC%ItVC9(+tOhG6y3a^f`^~RYK{J??&SHj;hgu zim*HST8@ED3yr4o1QdfqT)gzb(ek{n zCV{kGM(ti=t?U*6M|TMYs4R5y)sBY%FIx7A3HLj`=wqcUl=|kP@pPqAywTHw-0KI1 ztIwMBJnass*?4a*k&(x+b$h7DsmD*u{Yp5=ct0!ccnEiA%IPC+OEZ0i{$E}m0D1kQBqR+A#dP~IpraGN?p>Gz~ z^ruN$o&Kd%Kq=viSND%iA>6hiplgnI?!e$H6N!!>UZOIisH1A^q{Xd%=SS@jGz&*j z&t%+}7_|~8k}2>hxoDl+we@O!@o&%5^oAQw(4u;k-UHNH+%1-TYq}zi6$pI9lz7pCJ(N9i$9&8Vh9&u;VXAkHE2#=`CfZk3Of+1WgPZSjP z{$NN-aRa{x76R$>a~rn{LIlD@ne~`IVSXoU$p18^lfaVlcG!HOdId839!%2&6SpbJ z@jLsT--lRI)`O$4Us_AzcF`>5Gu>cx+o#AOwFn!J*C>AyotWghw7U(x9ztFy<%2Z-bR9$&Wf*%mU|4_!gv3rJ29B#KB*3QCaFh>A$gAgKiek)#qODhjBiMsjYl1VM6> zn;=NeIla~Xd+)Q)+55ix&KURJ@!lAZF`7Z`A6u8zE|uR%)0L<9f;sg~v~ zLjZtaz=st99{7nRP0wra3F2X>aT6%&WmyK_+0=-g_oo=i? zD^C7ev{4hdx!Q0(eErhg+(gv+GC!!YcJ+Xj+2}RY@CK14gr5WV6N2VH-h}6&q|rmv z5tY>=j`olP&yFzhVln9oS?-WCJN4HZocB|HKBgSdy8NJTNiy^>m|?#&T=CB9At7_+ z6~8oTCLi_l0>0Qyam^XBTBd_Qw7%F2MqGW>Jsh-NNxgk;)nHcM{O?QH#C2np3rTL6 z*O9>5i7CDM%nQaDn>tZqc{;1``EwIApN(?JI;rF=*Oj7Bw==&;{~Y<9fRM(~K{Zl*o^1&mhY~D^(8uSoU-l2&|x$@=j?dIdt;?{+=^Y%DqXu_M_lJ1?3Ob1zN*kWWG&!6n88Kf-!rTx%$%WzT~!>IQ@6 zj2*u*CCzJTZyD1H$1$V+teT?<<64eL!{6@Ewf;yh9$Va+=`0MrzWR@d_^nF#82jdC zti;5o;c-_hUvv70-wGwRN*&OGi=n@fXOA|gdRFc0do5`; zD{D*GVTm_MG-HxZXPQW!&^vJQ6?vXnJ1XDu!oJz6hod0$9jnJho=a0x%m-%{Uf^&+ zH`ue@=+m&~(kH$9BB%+tIX7cVkLc7s!lvkRIOG7Z(iU z;dBzpey<5stTr1)OG1&VnMH?uN8zNXQx%a5qZvjq95_9Br(T2qR9O5Qg3J~VfGJH7 zUV5{=qe)tvGQwZ4`OPM+JX!Bh%ttGrm!Q*eRQ`q9+c7SCNkKIMP9SeV^O0CD0g7L3 zQNnW5KrK2%TMOumOj?|M^Z7_KdxzlDaUQ!$6CP&NMlUN=ShHYT|I>AwsHWqr2HEO- zH-vQ=V{Y&z#s28TN{tnsleCW|&gixdvwv`im5gfIW{u~n`}OvB6CZwfS&pE**1#nm z4w1AMWJv>den%{2XLqyrnO|GI`);EB7;<*MtbrvdgRouVZPu(Qy4^}(_j$Z?ZQZ8u ziyF6-B7|hBIB_09!wVa;DNR}}=F{aNTBId?(u4GV+P|A6{?2P5VmLGT@uscv3*ktf z2CD6-dCy;03E|TdvGDXMFLOsxm7d!x%4Si2IgGD*-;mv?yqb2juKM^xSY#>muPG@J ztUI3d%1ts|(5jaa#UXVwF9LDfBh6KbA1@|*g{t94fFc2ocZyasnz=e1-;}*e9A^+r$QfwhB}-VxAcX)=8OAAbiAp39Fc zZK|W^GN1lk2TcARlvI|dNAoY**+tadv$v(U_{S2F7pk4UW5%vYBwYAKIWGZf z!>G;0_*&*&yo>HuN&heJCfId%6o&$~_wS=ckZ%Zh!uf3-E33qa z$rwHgJ>N&e;Q2!JH?h0Yd659ynl+s`Mhe2~1UpgYKdHqo_@DdnNxc0*4n zC&LSZA728F39cP@D0v&o3u5XlNTWb$m9vT+jQ{)2NdG-C$$U4ceJ^~W($xE_qvESn zYAAm6A`1#}a0~Dz76fX`L6@RJOf}4YHCy<~khlZ!d9_f`Zux<+u}&nkjI(f}j_*I`jT?e6+&Fu(@;f#&a;(Af{6sc_<1wH7cZF2~NI^ zQ6#I@2;ZwENzu&)>nRw+5;I1c+Hfi1r*|t+-fgj}}->^Ipc!EP%Lk)u;R_g=k`r8@~0ibI+m)MrEpw9Ij ziIhAV^xv3@A8s3>VbOg-j7LdG+h<=UHOfd`)|1PPHePvuFMNnaYQRNJ;(ZF%j?z87-H0iE~&;0Aez6oF`BJ3NbaPz zps@P5BF4z)a--Gpcp>TcuOG^#p;M|errZFz@#XWP`W&D_&v9;n*9up1>)q;&&|;%7 zXA6MrUeWP746eXF&ZPKpfIDgViN|i=8vO95%m@K0bU66Eg9|^xi8_q{ejz+3z%WxJ z`JbgV1<1Ayv5Q1}9)B$@jElU}CtYHHwKOC!$apNd8#~ zAOuACmb(;CB2@1>X{IIN_)g#5^L|y>Pf6=iKGhluX1w(TvVayS5@4BoI9;N?8AA4^ zoY4t}LGEJKX`rqtNbX5(fDWNLIUx@U$@xwCV+_FJ%~qFj6Ck7Z4l^f2L0w<^`*$!w zWN(c;E~7-W^oCX%5uj|EV_gLypu}!2n^=jzk4H;8;cSKDe^lKz3bz$RvxVLspWugK zRK8EIcoAV|!THB5_RNT5yMcSWGH&4*j)VhmB8V@=x5{T3f5b$AVgmmgrG&bo{kFg* zWp&Y%&O87yigRO~)d7Z~FiYzP7nUcV*5?Ew2<4j#VQ`3SYkj>fXb~<4$#GEWr6#OO zVm2C8iCEKDRr+8}|IkUD86vx;;4A+EVBuXOsH8&RVkiy|Vx>T>3w}HS&69!el1G7P z31gi#{-fmd|4t?EJETpORImy=OyWHs{8MR1#h$PZ4mbI=r|3f)`6hQ2pjXTAD+;Ts{`WvvdVQKS{2W=5|g6axmA5pK4)Hiem?>-pQ zuvir^SMob_xh(9G?yK3B&+jg(opVonm1G^*(pd2ITUPwx*@lM2%vZgv>($z|U+^!E z(z4G}@@j56E!t-lC@C!jUdOfe#s3wjC#$rnR8X@ret2(Z^ECJ}pEHYlQ@p3;g64oP z*6rT4Ukq~O9Y5oWsKr~p^_N^l6P*&S?IPFVB*`eNA)Oxq7SX@AZZ%Xa;Fsh|iG`%h zz%)H{_F`V7$mLhNK~esIbIW5zI!roG^x69jX3X8XV?ne+UWZ1D9t?)htt{EpFs zUkLaf_0G*rp$jJYyx_B*R&DSpN*^rO_<5J@|g z-RF{a&)sg0Kp9%*;b-AnJm^Ze@oOT~ZC;K)(foepi3}w+n#r-#!NfKeO^r0o?P;x3bjl=7`}VjEgrwttg(NUKDYViCv6w{v|9MOT)5HH_;I)@Q9P2MN z-){Zf9Pad4NKO{)iWCITp=<{mIjj4S7o?qqdL|BkF#J%12331AYS+dHdDu}?2iZP^ zN6iI@3Ou;$UTvKFx9St^{fh z#2_gl1gN`Be^O)x@#w7KpDY**Vxd0Zf}pc&xqu#g2@`=LDOCY!?FCyb@b6}O)!o9T z*&2jTfjuAM5^}%p+Q|Ie|76&)b$#8AqNFr;3|K=@U^^RVECSa(VHL$XqTnKT{|&59j{rKCO18A?r4; z=w-@cEfwz`^R(t|9|1@hG&QzjrG%kd;f4LI$j=3kA$)pqfm?m*<@|s4TAdV?Hwz0O zXqPEbpsmnLw~9IvGX3(0)$p^Lm;JOu7Vk06bGzJprnp9poU)nb05{c&uS5tm8Vnxw zRG5E-12Kvjs)HWLZ1az^ZBM(M49Fg+V?)hf%5e-Dpn{ThZ1inRZr_f4Y0Z#F%ne#e z#FIiJ2b=X-yUO2Jg#uR32Y0y8%VHtuuu)F8y3V5qSSp z`siOdAs}Z+c2DTJiB0~!S4XlP@gY6Q!IBDW-s+-K(gy*pFpuRw3fK#qBQZDE=9{*I z8t}Iv$P9Shd7WgzT?%m54P)P$eaDhD#l_G!=4CVdT9`LSG|umOBv^?{*D)-T z{)ZMeXA%sy`VBSE_I#U@9%A^vwS(VdUt+h3ApJL3Zg>8DVyGgg*xL!81E^#|on4N1 z&+pcd&k@7Z!+hK=q>+D?#~BR52yR?OoQ@1*ow7lSt(=wsRfsFbe#hJLE;eq$BX}BQ6T%=wR;5IM;|Yo+JI1IQG9V*La2 zd`0V5>A6jE5koT9a)?p;P29)MLJ_D?lApH!JC>fA`Mry*(?(BYUw1{#d}f zJ^*%a)}|F;5xMmu3F}Zr?;p3&(IVDG@j5Vq0RG8W7ZicT`p>js05b$*gC70<7#Ac+ zwt$1QYfgn>Tx^4n(s%L2E~dv0b|`5M>0y|aljD=YPk@ExP;MF4(P{$wW#B{g^(uwM zct9TS)>`A`MaO#is8zaREulB9b=^cQsvNl$qL@pEcNcIA@afCImyQXySSxj{4LD z^U%ptye(5aROtA+dU2&5V0C_@tS=S+BTg67S=*Ub#3svD|E*=rs(}<#_BwH9N3+>< z`nsh#N`dg4-PKSJoJ#*hmDPR*ai>E%yo3x=6_hvugP*}xas}eITpcw`X>@MJ41>KM z&&bV>qPP#NgTE4@e}Euy;Zkn%w`b%hj`&-P;j0P@^~1b zA@3L20qwo60*;qfUAwcO7!X-`;_0kdYij6wcI>Oe|_T}d9qghX($T57Y51S7pUgBcH7|Qwn%#-&| z^T;?xCf)Pvt+tU{SsjjI#X-9LxH4p%?JDKib@v3TI3ucIYB@hBAq%n_u^Z54DY3&w0z!8FEBkh5AhEl}z^BwI<~Y&y|LmORjr#qAh~`HmoM@ z@=#a97|)tqEz{-1-UYe|BFjhET0c%0;VrFqc=u&79OJOngA?TZn)SpRJ&fFJ z@ecWg1;?fI>^>-H=B1U0kveu@KJB9AUXf6B;RjaJ2dYrlo6)-N2%y*Ti|p#E0V}?k zsDw+{IoC(7OSv662F9bex|Zu>-6iUhFD47p2PbE!?DSRYn(tn*{TD|-56E~D%ee=Z zG_UV-XeDT+atd~w?!Q;b#M zuwu@VxXvNQ-3w_SL}l?epn?8Tr>l#E?En<{=rtuG#vj%O-9o20t4vtteT+x0JxCDR z-_QFgh}l2X@NY3_v>p*Fo*jQ%yJk`F81T4>S)GgFfdmkCStXzedl!@x-V_UWHjPo|2z- zF_@LU>b|DxeY~H>j!rdqX;LaU*^{btXI*V5J>C#lAF;SBWVfr#=uu7k(HS6JfAT87 z(ddysSW6r^6xsgrqYo+v>mKX#!^?-2iZgy$(!2G+k18A8Tdt3q$k88O&c;2SGSW1$ z?{<1u(Gop6>FJPTf>U(fPQJNfciB66)LCrO|7d51{lZdtVl_|r^kHJ)qpYO^W6Pjn zVTT6y?!|8vE4FD3cgnIFE?UKlx`NzEejW4{$c>zRyDWLUvN3Z})YVWleiT{!<_@Ey zc=tq)Ov`traYeD+(ju)-anIkml2YNn)6EbM{vD{|D8sQ>zhTnMaAa}x-Ri01nrSQZ zyr)2Oq-myr=0osEO!9`oP|p=Uu#0C*Nj>wPt+Vjc0|>ABr0JuyGw<(u?=vpQtFlKv zM4dL2L=^d;*FA~HcYfWke4jzjvdAdbo=PkbbH_Z}hxWLlSowtVx;^xl|(&}n}5 zxsXwW*WHt5d|`5Lu@y1LK4jc>aC2{%I1BDXD-3$-u(oLl;$v;en$VMJ(nYmpC*-u6X+;xqC*VVcB-WAD`w$ryhPgL^5lMJ*mgg)Z zvIt>m*ElM=QUmpNc~}&#+&1MbGJ#3}BXo2<3G832?eIfnm8W%A=*o60f|`V%BuAC! zTL8U21k>ItTYay4TI=B&bO>B{@-6}DcpD@;4iB8qiBYLxk63jAUeE4w%-?!6ho^uu zjfY2(Xi$vgE(3jBf@%pKBZLcY#~nB%GIHM?6Cmh=rec@d9K`H9n! z?b4O`Yor=}6ohwk4E_*=_fjpG+cJn`M7C!}9Vv<>WicoFfmF=|CBoNF>l#!C{G>TKR1I|F zWAF-*EO%xRLO4`crWmoz*cVZ#Sw#@ceX$_xQuK;?_~4-$aCqJ`)$` z=qU^VF9IAHAJ!0JGG>_$n|s3p2`U)83D&640t{I=$waik8E?Vs)pMBRq3^FOl^(nP z#p|9H3TNQS;@<#7kO;-N4Z|v^2iPfaC;rOU)rlYiteA@TZncU=53;K(kWGm8_L+k% z{F88SV-EYdaWT=pe?f_)m7%aX1ZA;pg^X)6$HXnZTTDE(vypFJ6fR>x<+!Y_ULvM8 z+N^m227S!q)oaA#g*jh91fp^i0w&}c@Me7MK50J+d~LsdrC`V{{9(ZOm62-dfx7da zi5ZeJpW;yPd}eGEzjfI!@;(t}%_*=Ku1qdXIG+&?GF0rb8`Ra=@$8=Vdjxn6OQ{F+ zUN_rhE(X%w5{Sl#fCgy(uSAio>x~@Kt!*!pn;4QC-bPJ~FqPAw#wJeA-j)LG@}vO` zSww%1p+V<~iGjLysXqNqfV$2{jX2%QCjz{kIxQ$`S0W6j4FRLH1*gEpOQLpB`Qit> zj4;e6rsXmqotYUIQx>(CMUC*#AGr?9s{zF=*6|q@BO{aS>-QJ@q=2d?`<*pwv=TFm z_spO0BT6gxv&d9T+g+D+uO0FOefDqk2vOA~cYt0wtwukH?9#&w95KAqA7g|(YJLqr zK7Zc~2QYc?)1?+!+mm104Z0kQ2B{-WPa$qPko5XO17O!%DOlT^Nr)EP@A?9o0xMEN z#1IJf9{Rk1|KlKO0OjAj51!!$%e0$3+<7&5Mt|@{bCY~kzKjM{G+%L%pbL0+4*Tbo zK32)=fI`sgA~sTB08Taw!sXq8Si{PYF=QX3t*K zK(VGnPFOZSg<;a;mx*N03oG+9c9J|BO;D@suQF?Gj)*5A<#eC!x#CXUm)!WS9n2LSp2;9SNOsR0qcsKUd0+CmRd9^&x*w zQXT0>mGmd6g@xwfkKcVM?B_1>N)+xOtnM!;)>SyZy(dw`yxuEXT4#nA>S7m!PvR7Q zLc)Ntbnz6Sb%`XHcqmKsZo=m5c%aj*O}iC5F>-6z1ml4u8mq2G-_79B8A{%L9C$L{ zZs#@Z>4&Rfg6w+QlUA3O9E`-F-X?F+vwz@V(p3K4p_@Q$Y}{sXkubKHOlsxyyf3rX9HSEbWcn(2a=7-+9nLDr2?bj_~W`Its;1q|unYjlxT+5WtM6DB` zoXc@B>BZo&hYw*scH2jo#c;vnOBS>j?%I$#a6qEE$2yZ7`cRRhYV2E=%=i*Veu4wP zU`xjY-etkh+H_Qf$jV3)q0IP}Wkmn1=X@1$JSpMlKak9uaI(w}Mdr9%Te8!{L-n;> zZ(#K1T+2hY*p$N{vOX8MnEMKXB~*V_1b1we^Uq*%RAj%SqpifC%YC3XBN$R;o!3=C z|Hu7_QT5JTAbP2L0O_n>SL`8AJ7wtlj}@36F*L?j?ZdQAVI2=sk%6F*xEx zf7u%sQ1XdWJUGGw&iD(WgM%`O!7$X4Fy{dJwBP6upsJt8Y_g5!Uls1lfHX~~A$g@W zCb-X!iM+jfw*}}xh*KV>byZ{E5!nE?oC>KNo2X0^q zPa1-TS}PTS8{Ze$&ow&FtZ{rN*XW%I`SkYJxqjZnCo)C>!%Gc-n#VD6kJuqeR@15dkI) zK45zZ-m|v_z^n+}N+*ZA&(@}A;L>7?Rgt&FV_wiL3k^*&q7<6ljcmy!@Hh%-qy&-O z^hga$91S}Mb1)P{nDkIxbAi8Zy_gEANY{m+xwI`7z^-U-3zk=K0ezlVt%Fm+aP}8_ z`YZ-m`+Zactj9fs0n16Zm{XC6dwnJH*8*BW_X^P0szlL?46qH z8H5R}_uh3_qqTk_Rj)kd=mq9fNQ*RXP4+V0fwg4gE9~Im)25JwVXo>AEPpEXJY01% zK)@69I5g({!Op?&05QQl{MD&MVE?8 ztLFPt!d}`GzN2BIDU5ySXl>)S&y%-llS%-l682+p6}$Y`QG_~}DzM`>AP1DkNPwvmtd zA}3;>oDGI7iV|XjqKCo(wqHV;fJ`5200S2yhWG~5ls?=9RR@(eDE}DvV2RdsS1ZK? z^&|Crgkn0v4_9Hl8vJ^(`tu$kIEGHiMJ3HzYm3ME$ z?Nw_HF=&34GJBsIhEzJL!!2BGHvd^60z$sSF1$fQCr0p_uuA#mi{Q!w$Mbk)L9KA4HATV5nB zjk@s4VZ__*)~8DYQZwfko+$gd_N1js=%k&e(CT$Ty$jP!`cLU``xlGBY_Y?3N>^!q znR$1du-O+c^%wf6HC)@?!4G!Zzj|IblGv~pyFX<=9=Wrpv>&1IsiAGAW~2FgGOx4a z>8eLj&?l`HUuUgBSH+1u78XcEZ#Rq)p7vwzDTH z!0o}O<1ZnTvzDFNpu3dXj*7ZiVk+nq3QUv|4O|cMbjbCg^;AAOy7xv&ea*taJ+^zm z;Ch6%yw0~whYC9PqOsJR;$~i(yCILhovNTmZG(Sy)CF*Pl7^stv=z;66SY*A6QVY@(b&*i|y+o){!dh?5GXql~M>%sB4dovc- z?$S9m-nI6~ink}0lNV(XsJv=k-P;xw(IsqNxy@T1cRo?+aFH32StBFY{?OXuRPD+5 z=w5tUAek-5>2e0~F&FYwr|J{KVt?JZxxO=4IcXKo|QW`jJtpgv&<-Rt67y zm(JA9V6F8$@k`f`6EDx`JC@6H$%{TqZ+Y}qzmz)IA2##o6#ZOzH6CA4x_2+u>9b?| zF>7H|oh_&ByPPZulWg0&agF(_;c7a`mpT%KFTMKFJ4>J;d%Jfs9J1%*{gM^PmV#s( zYey9mwk>uSepd7D)?CG$P5BReEotmP$IK2Ct6I~W;AWKR%B5bXCmsssqjo4 zo#JZ)LMr{xLZ)%;v!B;91{HI1BP>l!dnkZzQ) zrGD{9L%Gs!Ils>Gd!E}_=3$c1x>P2q{-M37%h*N}1}${n>ZX`dDQr@Gyt~96yMJx( zv9w@TSw>E=yQ8tC?Q(KS&w#-@!J>;B$)z^_wL1%XEzCy}Q?qX>`+qrg=cNa%C#o5x zI~X68Eg2b4KTXLg-Wh4FTeq=#5}g`y!WLRDRB))?x=CKCL&+LuHA!AeTfvqaG9)Ye zup^(B5bk%*2~oJloO($CLQ9nb3|UClD+LpS6zEgne|-EA5n$RtY+RG~{$uEMj`5!l zI+})G8%KP>jI4CcwdCXrOUwjNTb>Am)rPV=8^bBt^HUp$EV1tVf=)K?)X5P;gcbpZd)JUU*)Ju`4Nx__FD6X9icRtH071>LuYni}P( z1FPTu>ugIr2=Gp8ZE94i00^G1vXX&=K?6ZOz~O83i9EdicCD}F;piLVh;2K~Gsd@a z8OM@W?$Hf)W^uk77;?>=?R$MBdBrOP?!0BE`Bj2V-wNXY(vIdAEmDLeD`doLdwYlI zk1oZCf6;Z;2UR0v1?sA!R1WTC7nhHQFK&TO{EQB;G}~sbaLPLkBqhoR`e= zZ)O0OiAn|~erq7C3*>(ThbOo7fy0;c5_u6)_nwwdH(}ss%F7;uOl%@)g`*2gzf?^t zf~vY^RZRm3bTT;VpvI53J*ZGYC-ymnaJ|HxBLcX;5CP_Xj0x)Gj00S<4zyo#z*8Hj zX=2VbeJGlZ2$}*^JjRDO^3TumArxCBUs0jL#dzGPQ3p3DP%xyFJONyXkz5(F#+i91 z0gw*kk4yt9@IwGzMB$hUVBY0>L}N3H{nvv1RU;%*bwdF=^ln4H#0G zAEFDGmxclr3ENxLD6G>F!c|iqA3|Is3(4ZMgJs?64wNZQh~fy~=7#@Pjg}1~$_yO; zKp_(t-0hrtZ34-N6ek3y7W}tU+Z^6`8T*`-rJELVRQSO~ZZ4-}@1_hP++6?P&R!u8 z-LiX~!(2ghKqg;nO$26Y4S*Uovc`cBexz^)Lq_EfNMF{ujAb>;BsjM($PIN>Ta6r*_RU2S#PH5EwCU8{#or<|v zoIzhA`2SV=w_(yR0!-uJBhBYHcx{5!n`Iu1dbw)mw;ZtEdHJ4}HR7uT-R z0wzL3c6-K<_3JFhMoghibOkXSg~IFvWZg6OFW$ynV4BMU69QtM!__WE&a`h1(tq14 z-~DpqC_xZz<+*URO0Y{;KY=+hBJ%8u&!gruwh9H~2kee6AyXt1zy$FKjRk&0nOro` zi}WqIYAhY8pid_Ba@~xsZBn=?Q^|6bnZOyO>+@q6&#Z%S5V0NOIR1hDF$DnK&!QLS za>h0SZ0$RC<8^e^qM>b&$(VD4@bVs&I=Wdu)R0vSnDQu5 zFxSC4N_-GZAIK5H|2Y-K2m#Zqi3OpouqYf^TJmACF#Y2oAMGatFJaZiA~CE4I#6H9 zfNkXU25P6;zssaC_~;fW*=yS&Rwz1&V2KfQS7Sbc#c(`K#+&PNA6oDHZfe(P$&f|J zXfQU*R%dBCPb;z)ncu7h50Jx;Jdmn3OU(&(b{kw?-_z9->W5I zGEE!L3CY_sL+XimIcdowN^>v$DZh28DnIaPmTuM$*LuDALRq%#UVcWn@4YHTuI3w0 zvP8mnI10(45K7tUn`CsGl4f+Sn>WM;D}N~b@;?nF{L)9AT@Nfk}<1 z%HM(~9fKt_%j#E`f`NxZrF%vjNmVCMOJCd`LAci|xN}OhHjOOXDJ4121&*V*?o9zU zGP@s#hj(eBg7Jk8QJWD{MCRm1Dl2lbpN4IoULRVbMf!qt0XL0U)kq0sAmPyEgE(p%wfKdD*=?9Gr25Vk#IW@JMNce?LO#Xu z75hBzKgE}}R@tXKy1?8^AGjp8VcTW?b6&(R7Z1!6BLA@n4EZ%WqSUehr-F>qVDU%k z!2Mr*2=knP8gFnMA2ek%z6*_lP_%Ir;4BDi#=J?0qAE#l zx}ZDg6FX+Fr$o>{IJHEIqF}AnIFNL6xmq|g#8mMmn$}gp@;s}1o5Z$S4~WaDx$vS! zRfNM_%^|+z(Vr|5UUn8PIinMiY4BAz^mk?R6&9$uSXtsOIV9ak)}+K6Uu*_9M$~7^ zU_?At<$iqd+(s%jwPFlVp^<_W#2km;dQ{B>mDOBOCiw2X?6TRJ^k-9 zXg5@whbZn=@cbgcIId8lDy(2zVSuYUA`eyKG4ReS3+Vl7`sxhkO7uqJF(*QjNV<0n zyxbM)dlO9ATO|B2SGa?^R-Kq+<@1f_7 zv2M+KA2ph4pt71u1r|U5R1g?4+35qpr1-ZZe(17%S6E|D+=`hH0hJm8D;0jQI{N2Q zD90@qhCI_?JXX%<=389{0N~xQ)YPLcalRK6FCI_$E`X5}kb{tra8>+T8 za6z7bQIiUFa2s>QU)s?{UgIL69gf6x;NA~*zOO{VlGIp!#sfC9Xqf&5S0@>L`50&0OH!zB7z?*ISW>H+a?>!5`zc-= zus-|!L0Mghca{X*2lwyNr-d$tcV3-8QcDX>D7)kLIl--FVJ2Y;dpos~DY+2QDcqKN z?J*h;ZH3Im{9yzz*Z8L}Bz6%CT&k36%PD0%5-^bsMtyZPL?HH)NjiNlJ)Iqs#{_74Mk zkeCx-C|{9oQb@eI`XOrk_c#R@$8&8UDPT)lx_fI0wXouIwI@Z~mQ^}8yq1a*WbO~r zY9E|xp`AYzKR+sPm8T_dsr&Nrkb6m{c`}}|JJH!w@c!Rgt-@JEsZd@e$mFN4-()x2 zM_&GYejbF+6K<2L4ip)gq6UlK!kfx*xW(0IEA^n2Y-)==UKe?ndq#@C~8r)Mf52vYmdHU27NNR z^i4r!V!v=z$^2HW+AzeaNc3w_q%nDU|0s3)F_^;j!?vw1KH?icG;6GH4A@vInr}}x zi`mGY+yjO;O)65 z89!Ab%=(mw6Y*$HhH;=Myz`->_U^t^&}s6_BQu()Mz`_+!>e`deygp7^NV$lIzCRW zjg=-hoD3IR2}*md4Do&X5lSZaBy_DW{rc`f$(pJ~8ZI$iI-hjXdb!TjPaDcIvwo3t zuYHd(%fn#q?vr)D2d?q?O26Gnd!_zpC{^)Te$=zD;i<}WMSHeIfMSf=`J-YZhGAII zeZBcv%I`kPx(%C&_(dYmgTEe|BWYtxd2-u+Cg^ni zPU*ZhHclg{@~YF86x)f_TgE5 z0XB8q!S=y7+id7{#BWEGzk*SC_M8X+zz~96NAW z&=*9yY#21IH?AX{BdKmf7el;Q;EAW-^bMuwL|e*$JkO-Y-KiVEgl*g|3B>Wc(SS!x z|HRx>3iG1cgKVkl`BNV7c3b7J!cbPc_}8x@TFgo>6T!%->m0zp!nz&!w_f6W$cqUc zOB#(2{v9Z91=REP-zz@kj_joIV)VR~4gsMk3q-JcK{oZwaj%aR<3@KW;alSfOCaBq z1F=5a0fwCP0{?P#`){Xh=bo4{AeJdPD(1IJ!FT#LeKz%X?ZSWWZ!*S6o6!jN?$X}2AHJI&^5>5m=(g>&Ryti2ir25S^Oul==L40$g_pTg>tXuOSZZPkZb%OKP zH!^#03nI>$S&NzeRwEnZeT<=3WBK0o#;^ME$32Y)boly28f zhVs>T)_248@%{N--UHckE?kdL!1=}2BWFpxcM?9OJb^k-xEl>B8`$i%F7FS6-7Z1p zB%s3FDK4S)+0!_EdbAF->V`O<_Pu-7G(~Qoq-*4`X&J0}%+tOW^MT0Dtd{#d{@acu z-Erruvv!@#f%OneTtUmvC)uu~1m*q1U{lnxRR@?DzZ&2u;sE&9jJY*aZ$ElU|K|&{}$hS?q`h4l1m}xZCJGM)$;!G zKT>oH{wJxsIiK0=`1k*&O*K@82nm$k`Fujy!XyCp1s_{L&b0S#2C>iJ$jgjy`$hf; zZa#=S)-EyI-@gUK&0I^koHuPH=4!9&0L>!u{7Xy`8Au$srrqkGLBy%?-SpR1y-CLMOTF_I!}w3w~o{(9>$jvUZJl`G(!KL0a!Hvjf~fuffHPRrgIY4 z>!^&!>R|2%v-(h5}tW0QO#0#L+U0Gz=#*6D8$jh2y4O#kB{H@ zu^#n25A-Nnh-*<6B^Bx9 z5QQy1Ct&zx{w@3x^}b+3P2t~!+CLfQk9&f>|B+m*RuxO?kBqQxh+_b{A@)pU8!X4A z?^zpwCA*A3njtnEeg923-Wf~4+5%<7Y{?3eUNx{;U#R!5TlR;L@PH%^>j-dv=eyE5 zSU=eMpZLLlMV9|Js5Tgex0Qa~!@Dvflm9M)=r%;)2JZblfN@xEeN2M(Jrw)d^OdVV z!KTs#13{(_IwPE^wz-kqk;svrJFfT?b{84%!h@SIL+@2riFo$v^PH;M-DbJZ0QTDV zZA5!c#IdW)B+zcKnOd(-FN#n`OyQnNt>?%?L$}@@R?ey0;RFv?boC5=Aio?z6`| z)ItQs-^nxZPm7U@-{=R{R;<5?Y#3n``g|jw<|+Yd;GDfVJO77ANj;snOaU?PEGg1l zHGa=GEY`$Ox;$P=p%)j0gM+buUZf|q2(>$|{Ww-H{&^*jQ3I zh3P%lVh<*ZZ!iey9L}9IrWfnRhY`Njz%Vy;e6>Z_pM#DSRv~D^9-&3Su&D@^ zr%q(^53d|6)5(!*oCQ<~&*;+lKFUZ!5 zt9<|0j@PATFg*xAl-Bb5y8>`*^nq%Q+^^ez+bT|CrtXMIHM*0 z;1jb7qZ3nqy^)G+}Ax~=_=y>kqdRqSC9LPZr=`C&cgWc?S}gHy9~lVma=Y$dAq)O zZJVm|Cfl7%)3xt@-LN$AS+GEUL#NsHLoCOHp70%FHn?aY_k`<@-He*$|9nA-#{Gbc z{LZg?gv1yv?%8{5r=&x(reA*Yl%mtk(EMsAL&6eIykR@b1t+bfMjDzI1Vcg b{Ad1p*`(^E%NBp&!Yc+(S3j3^P6YR>u9oZp;PYrT4)rAkCVM*si-k=nhx zx&Q!~17GHNIN&E{lml_#8^lvrRS_s3Vps$JxNBpi_C!+?;01rj10WIh01VRve9?g~ z0Kj?&0kFV#2GKgeb#el?@=+ivE#JJ;`g=j7*tu<>>QxuHLW7vjHK#%tnwQ)auP zC}?6?=0c6l4;Nb^+^q@2!s4P>SVBLDa{9f>K#-cLGS>=dk6bJ{&+UTgJiren(rA| zGWezouF0+9)IC}1A7JREXmz+Luc=V0dRs6jIxqJ^bv@`>PUr1Zmox77fz7cwVN<0e z;R`XUj8-I08|+AWOOke<7b3T*BuKtizKXwF3X0G(ZM}%+q!;9e znNMnW&pgkITiJKpETBF3%^!i+{oth~_CvMA#WqRd3a5nnmKrgk1=10#l!uM%&nb zbj`9o1fE>kL;a*~OG2+>@3i!^G5PR2*`~(Mo5e@VQLjaIo|}HMRaqBfla+jP#A=V3 zB}st%k1kt^sk8y^;+DRdXJux%2_aj1t_SSG;aOQX5ZRh|Z@{mbr0B7C94qs$h)oF2 z$Tb9QKCmlrv=HhcKOc4akkpy7>~9MTd>um`sqD#dCQQ2h*tPp5|IB$>@W)K$OXhvM zDd%)vRUzpxieCGhS&VkC$*_gbw9yKr$`F2Ayd2bp?cx$;O{~KCstcMmKAQRN>EgXh zuDm7wP*;UQqHf06r|k#m@r8~pS^V7^Cg&z+y$Td8q2m>?>N%DPmiBrsC^+r+H67sB ztDlZ4#dNA2E%D7lY9|yP+)fTw&$U%Ai;+%-pJF=~W8m4LYVJZ%R*bcx)$_v0{DI}^-u=ipHGEV{{iKH!u9{;k9Sf8rh&Vk&khd`G8J=iHnINtZ?J*Y@nN0xVHo2;tCL3@_Kd0Tj;dmkVLhzR5 zUa?kq7_{|_;`Bwl4t|l;nQ=l5-JEM?|&#nrff*myyPqB{umC5Yze zR33d|^x7yCi0LKkhi9-NtY1ex4m{%i9nBB)uRKT?j!O5FfQ+=d-2MKu==qn$6y)lJ zfuNGP-28zO+FO`vQQ=Az{&x2F;H1RpK?fc@-;U#Onukp{@69L|r&=xo7~f#ar?JI@ zKbOJGD;yui9Qt?)&iv}0?az7p)MZvQ2|PumU^p`|ccu_d-A;*E`dQt4Q#X`h>ylo> z4A}}>Gf#yrhzH#g)5^%9RsqCCqb^RjDMducX&n+sIR?m4PtEcu7p_5^;<|l96lcFc zj(@RCbRv_$WlTY`gy&D8(Gs*xoM($7z=rI2p~=9{8=mYvNhOe1{y8VSf5S?0F`1>p zC&9P8Ak=b!ZsdJAI7*@Z#@g;Q&+RwYsCCjUd93iE5?reM&)vg;7@nJNcBiwyh1{0A_q4n=o z&bxgJUzU&!>!jB+@u~uRoZm#cXrU4U>bakML;9>JVXvVQ#qh+4J>@pnySz)QCw=!? zAL!!F-4ez<@hJ#wGJL@u7dP^aJny_xg?IOPW)mL0U;2>S*-__**>@%TE!QTU_RO$G z4)y3;7amLyvLn);b_ECdzD}iib*)AXkNgQfyhTv=HK=B>o`oj)_pXcBZr4ecJ{Y!& z2+XFncCdJxyguqna~$vbVcprXqW< z8(9r)GFvhW!rJ50O%S1Tsch`DvlsY5x%@!v%STE2e;>pr`IpxF_{a4xC$FiKsgt5a zB&}$pZo%9%;^U)!U52$P0I^=U1$QB{nQSH059nK@U`TUn9!|vIM9CByz|6_o~9d7^gCq$doZi3t_mr|R&=#9>*NHU@4z3dWW zjT9253VL^e^hA-Ajmx07h2@r-#DyQ`A0~b58&#=bhm=kz-^Yi46q7u+zxk+NJw=XT z$i{}|SF9hgleUrkW&)BH`3M_|Zf^2X8S_V$bgC`BwLY2Pw6M|@>PhB3fq%*sKDlw% zFpNR#E7jCm6&ctm-9I|L;30sEGW`l`2&V9XZLT2MElc3I?G6-p@cnY~IW0u5R+1aB z#zm*DP*buNOQCFXhfjpJa?cv2S!J2BcX3^#Plv0+VQx3H#8oA6qg;~jG&#eN50h0` z|LO*eY8C9s6<4JZ_<@`~2ebadJPE_cV_c-DL$iE9h9aSrFXKE-xRri)2^j(Z*jY8H zDw&xxuvI$feW3HDKqGTXObCkR7XW+f`kK9Xw%gm3<%n&bj|VAD6z(QK?Tz7|M2O-^ zvx`V-D{#Yld-{rUMUf*N_Sad=i8mr%>2Yr8=x5GJ!1ZmhCabwXAQ(Z>rP04GK{K6& zm#f5#c5U!B7L^WaiO@b`#7$_TTar4nN)6k$jOgI%)R%oTM&LYN@QB_7?u-ZjX!K7& zlA5C=Kt?D$ZWuA`=!SQT>4Iud3SxsAHC50Rs<8uFSz=>idqqerYt8&64g_CIfQs!B z<|35Gw90h51nwHo{PmL4uVgINMT}p#tk=fM*bvrdDnpAs`^9{4W-35CRahY_Cr*`S zDJxzHe(eFuH-rtbhQosm_M(Fl{6z4w7oM+JZJuPnwv7-=LJ#HeDFEG+3DO>8CTXqQ z0F$)OW}_Q{{~JXnv&RUiSO{I9q~Fxs10-t&krV#ntHendv|g;K*ptt}lVC8d`l*9+ z=##7@evdB&Z>Dq(?~|cKlxM?#JVjGmwx!*&9U5?7=)$L2RKst0r8kX!l{eeItbHMb z+fCv^6xu8%OzBjbkOOn;n(1gOdgWi{>iK~FXaVo}*iqXYW8EiLq>Em042l@x~f4v$ti}rHP`W0R3`=kmX z_I7`*_C8diR(0v1dZKf2xAB(n&;Wyca5Do@Kl6wvGRP8C>#{b?ExHL`>e6&%Jr@&> z9AQI6m~7l&N6}@IrB2vqQZ*>4H;xn}e(fz0)X#SIxpXxC;XsXvg>; zwBz0(_igCSo)2c@!3}Nrz7S_-0X}FFvBH-Fx&Xg;dXHH)biNMt7-7uV^|FzV@=HOJ z*pDhv5L55)5Q7x{kF58(q4iyixy!)#G&+xuFNoxO23ysgXIpKk#qweG4iEp%u_8+; zGVH0|qKoFkx7^P&$#2mdI6<6Mg3P2FpkPnV7<6MM@X;r!qKF6KEiR@Rj!x-Vr2AHA z=}aV6_=P`^TGP1LZta0^&7AiEweBt2B`B`5ihs29M?di5TbPvw>H}%q)Hg9oiE5-z zUnF*voR-Evtnndq^(2^BqCl1R8MHA%oMu$PX7p1=NGF(q=o=6kb~y z4!BfYI%ft%Lo%8x)mlk!i%>cSnJ9M-IBU%}213yW4eNF6h+UTRak$ERb$+Gxg7shD z56j;>m$D+JN5oOr8(&m{My2O}vH|J}_a(<~Ma`Ya+;I zj)U?fDBJy(#b`|r&xchSnkEiTp0D$Tup<_xOY0VEF5kmjOIaYM>n_Ek19)&KI$vqB ziw=rb9(!F~B#BVfR4&nTBAT(-(Vxn!5`pb}*!os0lnQVm%%t9Wm(Dl6GkaX7LJvhd z%Nu2e0zMSAktSp)7*hSHHU_kJWa*fl6411TTcSsba_R7K=YysKK5H}Mpay*6Yv@2% zQ+EOPCV-+f(Sk0@00l~LdP-`X6eU>oFjsRLkg1nEc9iMcc@I5o^ts^-Hmql?ns}P^ zN5W@i7zx=NMJGpzPCW8@iksAfe>A3h)B z!GnuiHq}!>G=L^A*A397O+AmI#bC&(V5Af_WRuH@x{eKj4^P>4W^}}ZQyZ6j1t&X2 z^01HvF&(z`^WmStTmEBkP_VOha7bi2((K1;jAk0^yg@tt_bCRHx|X?AO95!YpZZ+( z$7lintwI(#7g)IjI4svQ_7&LmMMUDwS@IBYVrD@7Z6xB=A2nx#GiZY}OW&5I;VM-R zSGz%z&Ch>Jp6pf=eJzd;w-Zp%!E{ds+C+9p>SSodON!!A^Ps|DW+*>bo8k{_fu()V%Z$&D&FNQc4&9P-HJ zVQz|X8O9ihNhbZaz4-@XTjP~o+CV?qFFj=C`vN}F5Md4G7srRfEhJWwq+^V%5efCG zs<~^Y$OZ-?!mTj^+1J0rkXo0tGNc98WDte~cHb@xj9dhQ-o{~UdfMn+x=W2BQ5>EK zOEZr#BEHAj6Tka5T7Tb`J*PK5(7ty|q|ni_E!;Ugh@qh4BQIH3Z(uHsbRCILCGzsOcef&Y@guaHxcSW4sNpV3ExebT=|N6LEBg1^QFS0a0! z9?I|c<=$+2;aHw+kT;D|54j8)e;TE0Rv?yJtu-k(Gw*$J?Q*BKME;@WS?LCHr)x^+ z#%P`8{*5wR-VI>WFSCgZZy(XZTJy8XXkE-e>{U&#`KjH{o}TfV1WyV2&P{yS%ne zXQQ5MX8O3>deSg@|7NL@$LS?^$W=O9ziHq`mqD+8Vq%-DqgbiCqlUAJeP(q~bHWBRgbuY=zP5O?q_$Mq(bY&NFXTx6$ik$! zmM9k~_x6&*+LTpOBs``=tommN;hP_dm!#+xVQ*NV$hUn`AN7E`0ZKakna_@SQ)wWc~sOZh375W-I~MSF8SP-%2{q z*Irf-jCkztE+E}4TSr~W&&>EXU87|NrXPr;?VmBfc{lL*#FYp>AJv*IBU!TXK5rnD_i$1LZ2vkH!3}A3MiEM&^y# zV|+2;{}W&Qf86DWPX3?ttE2R&J*}02xX&L3!o5EX{HZt`i*gLcRD)J4)fxQ7hH)yp zz=n~YHb7`7_~M|mm2#cUVk;q*`_sFO&mWLxLAn2t1)5_tOgDBeh%q%a2{K0X0JbCf zMX^=)Hbt%NhyKT(_$*;aJVhXq;1m=5jD#|}^Z!`&qRd)T7Sc@lh(D}_kt>@*{~7S` zJ}K({D=#OoorFNz3MZ!BPw04MK^7oK{fL2L-Cgr8HPq;p0w&?F1f$zrwOv*UDHwwz z35~kboa;n{@)*ebcSfi;o zby^zDju>nj!^AaX8Er5Qf{}E?q&w{tDv`oq9MvcKoL4)s#vO+AA2tS^xLD+hJ<*?t z8uZ^4QH#hBXAz-biE=X&x)XRq zgN45^+xNv10f?iFl3Wh1Dv+nSDOS?ifK$l0nYiIM0a9q>wRhU>t>w4=#Xbf)S+zx8XV zx#V;y5D0wpII$FsQbm!ny3To`@bf`Eu}FRd0evG~Y&m(_ObM7EM|q4an<4uxW7`+; z2^y&H$i~!OU#rDQmp|CYt1mmP^IistUGu}jIkG?et{4XhzO@)aS!+^HKh7T08py%# z6T9QkPU}A#$}uvpc`yA(%EPDX2R+~8Q$I3X5WG~*uEoLNq|V@~cIXE+K+?>RfjEjA z8g}fjgRQ%BmR(|`t!W%9a)YZ2i@1i^Yt)Gz=UAT6iSOJ6_=Q5^^-^2H*Hm-;xcPq* zr2a6*jx9Js)HRBidS8pAmw??1|1Yk}-MaI=3OGGh|DUv>Bf z;}ZB!9CUDjUuJp3@JZ)1BKp>6+)%hb?LaS5+p&PTEN9rV-8EF;89oAA*b%OZ$`N8# z7?<@TLrg2*K!3yVacruxFN-kb<>xt?Kzw+2umim?gYDGr6HY+F2P+mhUQE!w}hRroq%6Vk&v!b0+8OXRTbRIyZMszL8LnQT1;})k1PNmueh? z|8z23Z9g)Uaohe|U1h5y+(ZB57TVF$fZ(g%m)?}v>gFt%n>)TUSj?cFsJ%q z$c|pP&)mFe*$|4zEvdcfLGY+=Y1Abt29di#r&;%VFMc(OLlfYps$9WbI3-%TNeQCf z)Murdh{i^!!fc<97A1=h)H&Ah$<9ha{JyHUL)67^BbG&fQ~P(CXR)MkdElnYC*jSl zn(geBdp2D2_1>l$6k**?m^(t`N`a)+ty(@Yz836`KbK;k1<`NVpapcXKk&WYfKM`2 zAm>g;B}gF3V*w;+=Nxv{Mi_%B^L;4NbU$_mTWGdE3rOfE&BumHuyTUFle_V5zws2} z>mF3H9%_yyW(Lq7)Ywwxe)ksRcA@gs2c(PTWQ%O zfcdE@(&UP;oz>sDH?p0nY;_CMMFO>Npy;S8@lPKA>S|0E4@<~f2+jMzaW($yxF^6| zyFmLU+k_-;1hgS|jX?$r`HhF5=EV(4llQ#Nm7u^lNN4Xy#lMyvQ48;)ntuw?ExI%f zgcyUiVAvA2$#ce1q3vJ&B=ZQegBqW+t$(#LpXz+MZ;d5%zFSvWxs|jFNsdK$`FM(B^DG$17bq@dSGp07{ZVH zmfo^W^B#BMP#X!wVP@P1KG`N>PyM>MlD8J2cU@B@>34I486z=Xc%1cq4;m+m{QB2; zV=(T|&hf0Ges>cTPI$+%*8DJZzFd?0mB^A%!4NDgPGR?Gnq`;4x16{8TtFtWk zNDPqTe+oOlvA2#i)pC^u)UlyPw|aVPzZ?s$>Ra@h!0CnehHR?~*%6{(MVJC5An~Mk z0^!?H+_PbdU8MsID_?4)5_p8k7~AwkEj3n@A~IUd029!_`i za3OZ%jj}?=4;i&xJH9!@*L_*mE>}hMTULO$}t{dr~a@LCFCl6?;D}!2Q46OT4Fn})=j;JZioctr@X{m zXPP5)+7t{YZkSXb``|g8tELvypSE4y8tO+9_pYV5KDBprXr%=+7L&Rk-1|m8zX}Q? zt4*rrSK71$rPCtB(sNE8KmB@|{!5^$c`04&N^4oH*&+-?>g8{%Ao3o8^u`~Aqr|*p6>KH;jkF%KCjsL6HZL~4Zo4z{+>8--MnVG(0IdsACohc7Dm0VYQ|RXPFs1z z?1+bU$y>Nsebl8$=*kW$l2$Y@%a}Y2`1Je*c)cbOXb!kKC7n&N*W2c9+wI>N1 zWNudv+#bXqe5xL{Ewjy%8p!>^EN3SOSYF~!m=J~twx?bMVe+$A~aL2va%oH=cB=5q-{qUB#zb|3ex_%|1M?Dk*l=ZC9;%cg6X9qu1n4;Xe#J{jGA_=&nb@0`!_ zttcD9ALg{qAp_Nl6$gJf<`6&fgAK65w~VZwYY@dE#(esoZ)M}%!ezO_NRR0)C9(Ccq~w_z4^FV0?6hxaHRC@?A;|Ez$l6 z87@>zSnt;ggi$%k3IR57?mqCqoZFX3Lsqbk$=-PUCi(*o7&;!RTKQX)Ne`f&m_J;sRz74RdJ zj~s=+iw7TMQ3AN1s#Q8cfc~hZXlIYY8rZW7I&eSqq+?z#6@au?s}M2ps%kC(uD{ADJm3_Xm}tY&o7GCHQei

`4G>o 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 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testDrawIcons_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testDrawIcons_tvOS_1920_0_1080_0@1x.png index d436812f3fdcb157fe1b11352b598e596cdda717..50651a5ed02499161f3f06543efa3aa1fd6e8efb 100644 GIT binary patch literal 52326 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 literal 52398 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�pvR%M}~t^+wdK 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 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideHorizontalGridlines_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideHorizontalGridlines_iOS_375_0_667_0@2x.png index 3286ae73438dcfc40895288c03582638afeed577..7cd2816ca15ac9f65abc6d15464a8b8540ef7772 100644 GIT binary patch literal 53357 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뤏_ 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 literal 52933 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

8U+$t*a7KF)C)77L-TT3scU#EDakZ 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 N0#8>zmvv4FO#tSF&piMD diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideHorizontalGridlines_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideHorizontalGridlines_tvOS_1920_0_1080_0@1x.png index 8f34ba924943c5e40d27c508af792efa5d0efbb8..7ffbb0a402dcaaedddb626d5cd6387139f43a74b 100644 GIT binary patch literal 19273 zcmeIY2UL^W);9WvK&XP!5d;fWnu7Euq99Tf=^dnr5IO;bKtvIxTIk&Zi1d!sAWgbb z6KbRigpQ%Z|3>#dXP?uM(XxjTEIo{Jp}*>bp%L>OTeGg z;12*mGavvIe1#A{%OLslzYtso^dIjnhzkWWw#mR34#(@a^}tsW;%DGjA^5}p$1C`r z@8u!602labu6|uv&liGE^)KSqN4AMZhm70Bf7w4L%A$NS3^=c&^5V|5lZ>P{?y7#L zx<<9S1Ka)3qC?4(*R(%xvqZioNbzhO(y-IZxB5;=MJ&N(gKmK@{ zjb=6)3~VwrcN!`KOsmaXjSNq-o0^?eJ`%t1CGHEeeVOqSkD;Isx)INlI4IsJwv>^d zE=gj_j(#|v71^4qqqLZKI0~7~w%%?^3l@GP(9Q2gR+8SxslKct-mMd4@x1O>2}8)C z+DKlkI3u+p<_1oQL2aXkQyM4Y|Z9F zTN-C5Fc;oN+7bUgm?I=*&F*~6?hUC5K~fR;m6fl8=hY7gjy(^3R1=}k`yxoT&-!1$ zld_7&wxrRjli?C0AVmibFtjU*m%Nb%MfsZRGcD>2wV*|Xnl9r)LYGA#jh%(EwFxb| z!#ORbtM!#R*I(6?eXC-44t0}~VkVRuiE2iD?C5-I8H^-pbk2Sobn-p; zFV2Mr%xJlLw=JKTQ}460_O4k_hfCDa%Jpb$$Yqi^Up*p}b>Ss3>xmCFTi!~Z_Bk)R z*K1?h-E?a7?Lqi6!gytF=Ot*bZ35!a!s1o6u%0@3sMT(71n)r?NdjG8f<|Eq;uKzt z`Ml=-z4TqOI76sr()I6Ny2?iY{;Q@!+*>X7NV#GTB!1q!NVo4$fnhh_(HI-SOe)&X z^|^jjVBvy4rOA=_Je@JH8a0%3NVj+~uXFM{DbS;GbeYS14kI=K)nziYB=^Ujw@~*TUYV>qKMG%6 z+1Lo^+Fq$8$rS$*guew3wMXWZJ2e>`1voiv&)m-jR};QEwPpSl)&BzVzxg9$oyyE_ zHr8KLQ?pi$_rwfz1G0+>$Z%A=sw%nTD+%qVf&Swgo`KrTu__E?WdYXTJ?Sp4r8aVNrGNtWK7p(1h9jxr;gjsQ}0Z42l@dZ}ti zg6l28Bm1$Irj~?w*LT#~6~`=flp6cAcx6m#B9Esm;U()Zo@Qg0{can#4_A zB6ZdnWEzG-xin7q%ZjwLPWT>}W z-s?Ju4L7y!;j>~v*T)m4x*aPnuRF&FB^B`r-gL6IZ%R2{7`2;ky#(jr1$<_@f|@xQ z{UkOd9A6JN4Uk&ByDrlveF2EKTPSPhyuEgU9Ys00+C-t-B*Q}2u6<K{L#6^xyc*81Sg{RVo|4CKFwf0_0S|p(lVgtXOe_lI2lW?8Bz7M zo~KG8wW<+uZUMKDn|ZE~hGUlmR_Q+N+(sILPHisFEw#Ji{aWPuxgEB&$6v82kYqA3 zC3b`ywd2Trs;GzA*kVun5$P;yG}$@hNCkeOS6!0o$;JX6WDsdSwSr)GRiH;e%n)Q; zeVOW_9YmhbBrP=C>NATt!|iK{L3^iSoB>5@jXhpxW&7v7@4Cn<5{T-6&;Qa!@BM`R z2nBwRdyE(Rvd-Q#VL~le7cqf`#J}Jp_y)UTdQg!jk^qa}j(t}^^aAPtTBM)&@OI02 z)MWI;!SUeKYb)mqyNNwd#zzF06swmxvLc&Eal!U^t(=U^>h{U+yYm=71p_IsFBmq0 z3Yce1%q8kL(gJXvK6i}78)N$P2K`^AzlihiDFNonmq}Z*Ytl5Aug_@49=$IA18r&F z#JAb}@60sw>%G@feo=N281=RmY-NLB&fO-$;sX`VMP44daYRbkzNAV8a+Axqr&r-8HL*}5HgBxij8u^?K8hHk>XM~K2d?2N@ssD z;~^?%fD9+2lYDpa&-LVj|NVLjwC73&J<~G<{%XHRWyQG{h{wnU@I$-=UwYJd{i)>` z%;UGCkK!c}-oG%zgc=_K)kRV?D)ly%-v5r5+*)62K@{LT9Fk8`WSWfjoyvV4-d@Y{ z7Blgq8W{W0B(B8H!pgW=TC8G`TUJah^5+g&*W}l|o3|T}&=r5M*{d1FM+vC zjs1*zj@IMj zU-h1n3gX%bMxTKQG<^W!q1E;!C68R&~9Oy&6`49?w~i?)&eRz z`WzWS#p^|63!$Rh`dprjpP1HH=d}nz_;~YqjI&Av__;Qr?ol2;ed>yF} zbzsjrY1qAg>cY#5up6oSBT4&mq~vEi>8A!J9{V_|t(?+E4bk*84O4=B+t z@O#mG5X>_BH*L0ScM|+%?A4dN2~>P+4h?A)16Bs| zJyl0o{pBgqFJ%KO$2qUvVMT8|dd}VlPrO=x+eEUz|AA-8x%>Sosmsay}ou-@0?*kfbvXMg+l$B}`oCk;0p zwdhf%o*$l8zNybBa#nAMA7VC*!+yyE;HN)vdAr7dxoC@jU*2An*R6hcFe~eI=;-?oz}W2l@1p|(0O$36XBIE3#H94Bs z>ed}J%WV?3@bUMfmDHN-p)!_fm)EbA6fIVY^hlM<_?5TZos}GCVN6VfLGf<5Jl>eNltyVu zGTj>{jb78Tz992;E8_(BGd@c6icKn{$Up05_Rf?#;8JW;#(_Rm#4rZT1Sr2WzErtR ziy@8J4ouvME9#fa>{BZt6J0he4?h;hR+K&SbNQj1>^IT(y}$xMEC~ZOzYtmjXu`$S9U(KK+q$OGD5b=LhKG}%jUG4vR>OMOc(}ztND7a_hd%*i%PdZ13sX} zn+5b(q7VqD;T-{CvZCe2ES{6e+cAVE>kc$ft@;cK^G^WBN3+d+qSRohDqoM303EZY z^|qq`%A8K}kdm~4y;Y<3-`4sz?@G1PE@i!L;2&93ORx1_96t67EJk|hZWPRMVH;iE zxaOTgk>?&?ji0y+jB+|pHEGFH+fOMBKjO8#^Q6EGpw%zfJtVan;~GifnCKUdTbN1w zTf+0G-O6W%O*@Fxf1`v*H)|kmA_0!K4^;Nb7}2TG`N)Jg;(?;7fb6J$n_;ZE{xMoBzm z@p_im{o?`r2oybQ>dn>$3z~NtktUG0U;o?s?rCvfr>3$l?x(`m-c;p4WMN}Jn^R_^7sD- z|Nnmz=9l*t7>yv}cw8P;911O$YLTqvF)A?CDxU+k-#gHVQxlby?%$SF1*xS-TABOm zO;;xBrJ0-Q=Pxv?gORe1ZW?OT9D#)V*;>cG0?b~$zx&G+w`5zdye67rr^YAmISab; z%{)VqzxB+d_NCV@%HNe)*?iwR=E*5Rsb|6xDuNa0OgpIhOfY__eHcv37sISsGhSeR z=7ZTf2rx6_P9u9pBET%Sqa@r(d?95A63)qb{Q@)d?`Pk=V5ryhZw!P@58_7pDUGHK z`!YpTd&JE>1(If@9O~rWb-7Yyas%<)IRm&8RFJAyQJ1^90c!NQqm?sGQ)HJKA81P# zs_fR~)XR%=-tO!Q1V-g_3-haZ;=H8r@kNf9P-|ZJm5?i6OcArQ13=cXlX+Z-0lnUo&$A5~`7A8zNf5#jj`WC!*;h8# zff5z*pCe(G&94*_j7L)W8|3mQLk?ofz#~@vw>nF3sFGijSkPl!xhW_#nHJ}B{fMJ$ zOi(*{sonQ+;%(*4r{d`((@A}v4jFYI`aJKdok|Ka(YH^~NR~uj# z@S7Z#e`YtL+0)rSS6}4lWFP{D8@m4pHw;oJ6>hjT(UXn-k0<|om~)gu?P|{#N`H3f?M%y%qsAx&- zTNehS?fiJ_oS#bbKOaf|C0$D=EPEb(6xk zEeS!AaCeRJN2a0{`VCXPpNU-EXb+h4n-;-nfDyKMuS?vv`DdMtmOsQyJ<28GV;PFK zcK|+5YPJ1x6AVCjX3;)@U(nr~C{_h%UzW2WNpVHf#Bd_5i8-~xLkuS?%V(TOaVL$F zzo`MVa(le+E`z#>v* z(*+~fr&4xeqpok`jN?i-F-7=GIAdu7l+n`8$6ht@nY+7RqSZUi#X$xui)W*r6OW7F z9}b?QfYj25&Mp@TT9X#5JG^m=%GvQCB2STW^a|3+86R)0_PHK1O50k-7qJXx5FxICpFB2x=LF`is*|I>M%AhD=ancbNLxF5 zN1HD4fC3cE@P{PUg7uNvoxB@^6p#Q2ZLbLihH1P+o55~9-017-d$}w5pNFtM@L=^+ z4DgnUaA?{}tZb|$BD+reUSgx%5Cxif(4>#?9Lmqum(o2qkoF}JUV$_42a_ERH5F%0 zqD)U%9R)3$FSw7h?`mCAeBxt0B3aZ$q=fbd;;5q-(a0qt(yCk|)!+~kHz!D!sa^nP zC2oK(TD8aYRDkd1UK!jfkyx>iXC0zhKya($|B0+hdh|i!`NqysS{QmiBS18wA!$e2 zIivm84ue4%)GVl`nV zzQiz5u0+S>X@){(`Pw$Aa|-=!i;F7{ovN=MaYWL&Tb!6i;vVr5kwK?-{76Ke8Ms}S zk`lcAqTu6$B}txxxg|{^vQkIN?LH4=+17kK>PvL>+!&5RF3F=`LoQh!ZB!Pyw;gPL zs}(lb<6)hoaF_@*4A{LnIXdV8uxzI%osjnfOFv&+o0XN|GZ?zRJyHR=IS~`^Hu(pU zb4~kjm?N-OP`5)fhioaaDWzMp1!}1_Q(^lWod=tPTk3f`k(cTPq5wo)0O{+`{m&rM zX3sbuJ_MOokxQ^k<^n0)70S$y3jvNFx%H3>ZpA9A22hkI-P%cXb}C{-t>{Af(=!k! zdK6b1VNG$q*Xp3Ibb0o|{S{G4bluW?c(yvE%10-;PXz?X65+-qN@sfyR$hA=NbyI_ zqoH*2{=Ev@GySENO)HNTVE!la)CK%0t9LeD)>rBRE9TcM!M?f9X(WLYj0t9y;(M@& z>S3u5vx5K*pEaKJiL@J`_@)27I1XQ7--)aX;I26vM}~WQ{-_%4>8u)_MyCGS7@_^= z#z_!)17IyfvgTVSoB>t1i!9k*jDPj``RxSfcZeK|)o}EU~tVk>d9B!DO)RuojI;qjN8}p42Ykj|(}?cN@La z&r=^=PyY*26YqxKH56?~l%mSz;oMQp!7}o0|V9@m5k99?V@JBv2NdwFpN?t;$C?wKO zY@X@UbZClNj*;i8_x(tTZpp@V8&INEpDWM&Qk>=PABt-Ma1ssbh=hR4G8rH9kIX-p zR^b@gP~mq>slL11Y)K}LBvz7kr*e3KWH^p(FDfh84Cr~L6M=925Y$AQ?V z_l!YS;fmi}$EB>cY7VS_u9Bm5lV7*3o$OVb$7db~A{JYY_w);dQ$rozHjNbGACiJ4 z(XNLUo%Jk>tgflElUMmJ*rsxt0?W=xD~}K!?l?!bA@ndVk^R8z9CXhSb6AvZrC|lu zV$^7!>>s6#;6|Tz-gtu>?PMK?{iN|I?Vm)P8Hutp;07F;`5DP6aG#T^4Uy}NGAO@S zyO;2WWK6rmFX=viK{HVIKPa3C;Ym{a(*1ciVc*Yj_TG$O_Y-FkK#u%+U6|MszXA~u zbm2+E#$;9+&OhkOeh!u&l!SCH@tyc={fp`5|!QOct=rI%fefC=(y|H zH0tOG7Dfb`gx_`d0cl>Yg(hx683~fHvYr-`bFj4y{ZnZ6Z*f}erA)faDB;Hufb-Y|eil?) zs~6?SitJ0pCw46F?&XT6UF$^+ABte91NZdwn>)ff0d7TOR)@E0#h95ChT>lPdStuxN530@qUFCB? zi<#AjZ)DDVaS>S#&%OgpE9GsIpG@7iNhFNAj2hdSL;`bmb86PMT+3t$yT-%Z9obEq z4}lOBt<0W-*G3qv9EB$-!_|{en2tAQQ<#YaZL9F=l<;gP;)vP|=U=pCY@Cp#)>r{+yyw&CA1$Kv{5xk6fS27% ztzw;PIJcf%Wm;321tAtvRW4Fst7a8{n-V>{ZhtpEBh`>;&2Fy9CBkFZ*lDEZ*M&e{ ze8H#345HlB{-1^)W&f~PHe}^^5$bQuw;Ju1`oqUY^zeK=xijY&wW1zq47>*?v8-_9 z0LK$nqgGRoX}G@p`1XzS`@l`?+cDv%JkX-4lu7ZUtPnNpBk8#%{Ll~Q_1 zVNAe?p2o}{P;Wv=~J9Jk^7PUEYcR+suS5#=TNGH;=E<*X0~w7t@9 z6T!2OD#*}BG~()!@5o$tz=$u)*B5MFFlRPaZ&;oKTs)s!<8^o#B_87G82-WI?LT=`;n+T1w6rsk z`3d0c7OwTG1!|fck!-kQjvSE_Vh{{HJE-q5wd+)%s6^Mj0I<})uY5oU%mr^hLCTmz zgRb<7_0~3k1)HR6P76>FU~G9zjz@^f16vfR@1!p7Nom0dC&w%bFj`+>K`ld`HW~)0 z8Lh>B9OMLQNjqm|9W0LQryBgv3<-40BawGZ(&FWI$voE{a@;N_1Y)1=9N88quRPY~BH8Uata|NZi`n-$F0J zk{rV5V!U!U;i}^YE);+wu+(s>l`m^D)}@ow}Bw1Kf~q%0J)19;(N{uwkX4_`l<+mWfOS~Q+#ArOqXbtxQ?L4%*b?7NHf zc+yg{`@YQ2ukCKkt}c5PCF`3pA293`zhQBYnQCl)8c2?(lewQ6q|(vB4Vc2%0E)-1 zR~n$41hz}ZeLXZLu^U>H*2!AgZ#S+)C|OotN-d(=l_<(7oA3dL*!PIF&;BzZNY&Xi z0CXZ!tNF7kRs?^T85BirA#XanpX;PSQp6)kYUSYkg9gL(5FFNAfMCSFP@sF1v%Ui& zzCJ;Nk`PvERK30EFv}OJ$w5(Ac(A!<{fUs{?pavjvg@O13LjX~ufnoe@5OR(a^`vK*Nuw;_ zvd}0RG#C2ZKG;dmeKmiwVV?MK@&=^piX;^p>921M7E0~y#F)vzLliv8oi0I1Zd${L z1~nPBv0G$nRSr&wybj24BejC&F90(SF-X-Lz(OiDt`@LgV#=-(ogr!xLLfaclw1oS?J1WE*13;65QbaO3kVdvyc&*kET+< zYe|m}9Bz!%Q&x|xZ7t?j%x?8P&G5yP2bk{9bhfvfDejHmPhNS@G^t%M#j*j) zj2eG=9vt#hrk)1_>zjJrPw7x}K-sY%*WnK}C0by!@#!+0nh^#6*j2Xf5ktLFfq=>R z7bI%OVY6yR)-vaAY#Zn$2YWBkV9v*`K;mJzCx)UzclBMS;-%t6M@JTtV_7UVBS_p9 zc9v+W?77&NNN`I&lgRBL0JYjEyE{MsYnYY@KZ$b4LofdfY%#f zFn9!BPom=;nqlbp`UIhp)N?+L`<9jD2Fak&5A=Y7IoZK^55N}^S7ePXv7^J$>{!J3 z6btJB6**%4yr4c#p){b$U@0aCwQmVyO83xiCRLp8n+?CYkOL1W_D$$)N}eLDW^&Cj zp=!=Nd*Mh6_%M6#&c+9k_WO7VgUAIE}<3Jw;A zo>-cJ`1PHE(C{fm^h`Wf-~;>vPiKS{rI0eCI*UQ*OPoSET)P>c5xUQ~bqqeRcYMs_ z7N`vX7tRwOv|CQ4d?Bpw*A|M@$A)zDKg^)aV7^$T%F~>AQG~z5F^7kN@x&tadG!cp zMK$5sI;q#qC-fqy!l*u+6POCVu6I_1hhEUd{kb9!nQPWvyUdQ}Tfqwl4T&obw{m#eC z-X+)&{BTZoR>j2FT!P$6dzy8dUR~$tK=OEOU3EdeX{Afudy$~FYXtKAD5-R0Bf$q7 zfH2E_NR2i3UcUc|4_-eymmpiIHn8l&1D~5KU4}XVm!<>pGs%X6|zlnR|3 zUdt~}@57^VD$;Bt9+a#;7lNV=r8oi1a0`qMpe=`>19jcgBKgm0nrF@NE&OMjGD` zK~8bpH;gq*{-e5k^20s{wEum1=K^*H0J9q4qP$=2MlCx;1`L}!#%%y=_YVM^j+P0q zbM?m1H$kNd8aBpK#=1C_NxJ$5ep#i;m76<;J)oZKvAxcu6Z(A z`E7IMyCN^(HldRc4~8{2sebe;tIF# zS(i@U8}ffL)G$|01?;ENp^)Z)TOKt)D7ebnXq0&5?5PXGb6=a>33e^lRDDpxuo z9Bcl1Fg5m_UL{K@q-b&%)FT3|Xy2B4zrlK``qt5VU zS&3-KlCl+-mP=r6b@X$BFrLGbjvrD>MB(0&$rgxuWtU3`9q*i(PW8B5Z-Wg z$@L<(~?0@MAI4-uX4~bN=_fJyq@8 z#V?sh>l?22X^1LVOgpZ(JL||e?)_AScLk-p&NDANNgNKv!$%y8?+$Y=c+}%xREwE! zl2+7=lnth-4*xU~_=zttO-3x5c=~m$-(9@bZ&~T+v~J(fd6|i2;&l;iUwu7a&F%W$ zrSbri`ibzC!@;n^FD^0Tyq?OZQ&Pf~%q4(|HZBre%Y9ZP5#a-VAP%DnBmh>R26DIQ zgSdXriH3!kTL@szNWw#zNQeleD@iTaV9t(E6&ZtRVxV`8(qP-jvTAaZZH zs}mr6R6q0_VEAX}<5_3AQQ@Bn?mrI0BA=TMrKW6T*#Vd!j_m#S{4UDF0dIm$zk;q@ z@S?is64V}sR}H=Qju!2b`rQ4GwV)j9UBdSb9I8ux+RwUi1a0fL@244?aIjtuR%=T{CX%I*lGn_3gp z3afN^SXk@G)&QOJLAywA%7KUY+P;cXam?~c{qBPXCm|c6U{+~%B|$uS?&TDRX})M3y6*5(GATVA?INdT-1%+M$Rl=BMTKa{gK4Mn?K z0=OIjdvss`sJXxD<>53b+T9Sa0yu7v15q*RYfv2Ndhka;`eYWL3&7z+3c%1hUI6Z9 zBB>HUJRubdYW;8uhIUu`-$rCVfP7)*`qDhrLBX)o80&9G*N(IS1va`1(4gM^0MIYR zCyJliVe(l-!Z zIeHLW+g!btNqu>Y(vUv5obvCMW6Xh_Xg%9x{4FfQ)RdzPAU#9}Kym!CfZKb`U@m~~ z8H*kn`q8ECvHg#jwC*s3AQ{SL9Q2;3w@^T>gL?-MYdJz6po?}y3I?sSW?P!yzy{cKod1t9r# zLTKOJF*MTG=;GvqpQmF33-f4j@R30E`gpMDx@>7#@j*^zR;v>Ps0Fil3k(p6xnDtw zF4nH@0mB0x_Uzs}VO09NGv)&O)_<_^{rT|_|0LBr74e3P@>xu<7@0TB> zBrIJSTt}Hp_=c8U%Qx~wN6Y#r@&?OqR1;P8^x3^8=-LJSDxCEx)96>L%!%t?@!2Kh z9YPXQ-|v2#D=gH}+3$@IeZbq&VTMTGfPgARnw^9Q+yTt+EgeTOjUqAOrBn9 z4y?;N=w%Zjp?#WvJ+uY3e@4jne&_LvI%E5sQ*`lR2!93B!H#susKVNxWr>N8M@Mqp zr=MjF@8A3McA;J~a^wqX?J{qD5UN`Ta8-g{sSq?k%zUc4fZ&&g*3s|u1V&L z8XVd-A1xamD^8hSGz^$4nnQL7|B#5U9fUyKgyIXte-%w{F#x(ijIu|4mquE)1?<`^ z=x6iexq!m>jqWIFluasdsWfdm-rQVJ|8m+ENdY57cV=qy}*0{%yucs{%d#6ey+I zHwfy29sL0ytz4UN5ukmt@SGiJI|KQNYCD;Ho1-O@8<}`MS=+ z{_IK$;O4L}6~+KQl)`;W9OqHLpWZo3lKY7kWvDy8g@odaQ~-G$V8T+t@io18&Cgmb zL@b`6#MBP?23)j2z3H8?BK0^66rb`y2(lB8>w9~2$-emo3GK3rW?7t>(r)HVX+ z^PZ(9P7*LYAOO4*)xWki3z4PgP`S&8D316J=TF&PoC=>-ZeJxqFNR#^1Mt-U zx%vVs|8RS`TYcsP7dw6Y4R8hJzwgNaw3)vN$M2S?Owo^f z+Ow3@T#-C|?AdR(iFF^39;)L72<6a!ZCbWkDN)k}09yXpg@3QIHE)lBPDAl`wfa`` z3Dk5H@HeITpG5K!U^g==CYOHbGdMSQyc(2S-?AKnKU4gcosS$Syk<#)TMwr~wG}Q% zZ&RRbB*2K%J(O>{T>S2_7U0WN&H3+P*9H!(bqyJ%QugNf`@E@j#9HUNhXK9^V1>W# zB-^6^hCMBF2iURr`raj&EYKm71`#^ML`X$?F zQG7tri94r&wp37ZII)I*_s)hESm8H|1|R8&|8Y5JSRdZDjX2aDbQm4=v5Q{P*&MDF z0HotMh}+uqJjRuyp-1OZ^&rux#sH;2Xb zw~&78b!7*S@QS+xNny)Zg|6Q=B6s&nLP(SXh-P8~EV3|tuov#v+s*G!J3&FncI7V7 z02Z(2i7gx!?{gVGQM+r9KPEa^Mh1vH*D)DaTT*(toV;&eE-z~7+T2v@Jl)c-w^6v+ zNB+Q3e0<8FtUEB=c=eP?r4QK!^+$9lH9cc2#P(j~*VbVe==cdN!0J$|eO30Cs2&Br z6yK@m=@Y3nWh5xU;F)9?PR_1{drP!D&>(I2S*V|}kF~hjV<&5aFZC^ZI@pFUb9O=e zf_**rcq|PnS;m2?w|ASg&N5JkNY+b&fu#kUEeyuDLDtktUwdd-lhaQBG)mVJwbU}-NoO|vR;KVxD-!MJ4fTT8Ddp}$(< zJ~sq+O8vA9FCZ3fiTm2#)gC75W|r*QQ2tFFA*A=MwSLD+a)%T(eG)(yOUAArfoTN^m8O3LwViGQLpxKg-=g^33^vqY5OWfPGx#TOm>v$P0Es6Y7wbWk-uFTgbXJ1@YoT?ZC~(l4^Jhm$hOr+ow^ zlSnWtJ4dnj+>+ieF0p6$N(Y{WYTOuY7{M0-uH}T6`f7ePe{>;sjT=9~O+!EWW&hr^ z1@9A-pUz$CRovw={GRvmC&+O`UzB!G-|I9l{d)MMRuLF!Zj>nVfg_WK|Jb)mx=Kqj zO!OX8{XOH(rng^{g#YMJ@LR1sw)W$ajv@J@t254ytIWFnmq#8!j++D2B$p0f zT=i71hx^zIVNpdj;*Yh#P#XxkpWE5qCuUB;L)kS<>~Kg*;MejIl|OpD)Sd*KvJR}o z(_XzmTz~%)4?OM7a;F_v40iq>^agb3hpKyoU3`dE_dj*9~iIpeI>tP9-0wZNDB@C zFN*?E@0$VE0#?#dMCe$ z2DRL#daI}XquCK<_@iwTET5euRD>REJ`-Ndeidcak%HiEvH=`|O-h9jT=kD1X@-ZC zooXBASQbRbSK&e*rI7?Dl0>6BW$WN2NWI9M9gM?Cd}|%_APlQRlmf@S(5^sH6ZvcX z1Ui&f2<0u62CM7lWMIiY#E7Q5BZ%K#AGKqNGqI&B-gUsf;jt7o2vtl2)<#0!97az| zbDk_-6z1H^_`tyWr&fmDUYeV{NAm?_;2&Z`?FwHRKa9km6We!? z0fbKN#Q<*U58v^@A!6=opl-WWNs5A=j@RW*rMd3WpP|l)0{8Y5;nV8%_e9gkpR%s5h~xl|ugm_A<3rHyHV@-| zso0U+0|FXJhaZpM7EFI@HFP)&tZa#21HdaLKcafwIM^R|vw?hK#fPfr@a7lsZ%e-Kw~OD88QxYIU?G<<^R*M|7weWk0^gJ>HkZ|lDvYdbjFrgj{Tg;0H}!H z=sf}8-Oz3Ss0b2%6!E)B$7=K%p&7f2HbbsckqyA*{XLSHR8>Y z^+=m;Yf-v8e#&?nL%Dwy!U%pFIgrhP!-rJUFC|~Vs$7&ztM=xRCczIIZ5MQbeOq|N z)hQjeSFqssapy-ttj166uX{_I%Qoc!b^?X9NglPIHliL31>Je=VC=nY`sO0`w>(Z+ zSI?tFd)Ob84it8#NzXmaCh;{`mT~BUi)93z$2fGXBVhY^)rKT)=KCM_@3E8J0m$xH z)iJU%pz?RqUow?;QHEgdJ@{jE5YqB-$AjBfI37%LpH?l*Z|J~6?w|Geu}dCQ_{TI#f; zSRpda;Nq=ozm;Z4Mh|hW%s6pL={53tMSNGEu5F7$<>a@$MzP16QnokP@>jH12S%tj z@~6uJ9P5wZ!d!`k;B+s3eo1SatNUhp-eE1@WW4Z7%o*-d$v|Cu_@s(`sa8$Ci&cdb zMOR00(MVhkl<$`96Q7GTcL-HH%Z;xsYf#QVA$jh@lSf4OLm5xG<|CAG&I9sYPWb~ zq-5A&xG8bmX4z47ttR+@$Rnc(a2DUV-C3)r zIN^BF%1x-RzpSJZzh1K6L3m+&RB9U+$Xz;$8?+Vw>FGJ|>ST-}NSKIDyh!=z?UbA8 zv48$wWZ)*j*!x<(L~0QH63y362*LPAD~yY}4-81w-dwaPm45tooFp*i4`B|CM#Dx& zD{gDRKKFJU=^*mEaKnsf$oHCKiWauEqP&r*WbxvM@V?}MWUos2Tf}np7!&w zZI-nRmgWGFh|D@t#@@D#(|(bth*;XCGKS!YBI%_(`K^^6DqDZ&U7ZR`ThW>equDml z6Zhf$5aEku*al?QQl{kohasu2H*x~x`&}n*DMQ~$jpmPL8%_`yQdRscbrNrtVy^$f j;BWW+-}U4zBr{8GQ6eZAnCRq+1;BT|V3 literal 19452 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 C>xP>E diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideLeftAxis_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideLeftAxis_iOS_375_0_667_0@2x.png index 97624e579942bf87f034dd5ab3c8b5a292e2e096..eef3f98ff8ffae30d22b9cbb17282293ba322c5e 100644 GIT binary patch literal 53920 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 literal 53772 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 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideLeftAxis_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideLeftAxis_tvOS_1920_0_1080_0@1x.png index 0cd6395365d1d9dd701563709bc637a842b0193a..7e2bd24bc71fc7140402135ccd29d954bc89d22c 100644 GIT binary patch literal 19292 zcmeIa1yodR+dn!pbc29&mq-iJA>AOLfaCxoAl(f^C?EpTC@I|xNasi+ZNSi@lyphg z+4wx~`##V6o^PFV*8ls~I%l1~YxeA!J@D}PsPmQfG2lnHRDaX}yufvSpvE(ioh z0f!kjCUC`+Z0HSe0=w%f%YiCKXxD%*3f6|I&onhbcY)8?AaH~o2>oUWa8LsW2!xgc z2B86G@XfUx$UlAsqjJ#x`PuAdA!p7p25_RaQ_y|{oFO;YfPYoMap%u7@R{9f+Rga| zaF$b5kbUF>-ps_SHC6QOi)&5XeT_qmk&=LQC#fJZ_iJd)9Uf>XWe9Jn+Y1ab2E%T) zP~Tbf#wvGJ5)ye0Ms#8v-LXfUuPixJB6t;Y!(S0F3Jhr0)lDduP0U?;Zx3aPt#0~m z2GSpIx?g>m@Lrwya6Dy`eH|d!A#pCy^2jn5@(70e5PbImMlpyy=bvAGkfpsECVV|p z%hBLR6?7;xSokX+_llv7Mt?{5!vHt;j*i~MM)cui80rmLOCX#gteO|D29mAo9oc zs(Cy=xSf2m7aYD-p#U{`tlR}Q3?TCobYR(>1WW9KIdc$|70RAkX7orep1lo5^i1{yKi~Y3^weM+Q|ZANaOl*ZE8c? z2uW4=}Jk+Qb7oMpTK;+PFG#qqSi=$VsS&Pp2Oo?`CwIWXft389=s#O2M71u)F z-2{?3ripuV>m<9_=<(ORp3M}5e2%ZnEYQ+i3s}0BAPY0l)wj8~&NZNH@Za`p+IUnZ^5-lq_EX+WN^PY) zIp2Gwi;=u0)>xLLu}hueYdl9`AEM2m+mB$b%SnaLG0scwie=!v<|q;}k^Q^N{>^{? zPrl^f;Ql&3?nqQ3phSBO?gd%p7+aw}aaARyB0S7OQOdp!Uq6f-H)TC(csh`9I`&ik z>i~_iGLLEVFKSy4e9!$2^g!gwMc`+hXbL{*+j}15R-BaTsX4*oG2(~n*Y1y3$3b&oKX3*1cs5e~9ug2A-!NoPz9S-Wq6X;W0EX~E?lp|^QK3=x{o7mR~g zK3##?tF+q)3cswmWQ7kn1XW}+C1i$7%w^_T;y@cDN$qn;!IJM^&RC?o+viO(reH&P zUUEcep~F988RdfwQRj>rP`~!+M@|!d8mIfOrWg=r;KZhSkzF+Ir4JfvWx;)d=z>^3kRU(Bdote_+hntfnrd(I8OD52Wf(| zfL9?r5}K}!{o}|a&?@RAlzVO=oP60Q9&kW>D37~yLZW@1ANh-y{P z;QFJOaNfj=KzQ8`#=4cuFP~ASFT<{C?CA#kJj0aa;orV?(JAK=(4#eCoi2YJs3M)o zFlUHju>FOzWd4-U+@05PzgF91gT&(D8;@FM`PP-VkcYr$yQ<8 zPWCgKoTtZ6vE3lZyf`xqU=?5ooAiUoJbk7VY!qCB?WY1LJ#7yxDmNUZIemO(=Y>g{ zD?x`Y2Ht$sR}KTT9N)E8JuFu6)-c478OHI|MFJf@j%g%>hj><0afGA_CszWLYw=d? z-z>!H7|Q}JAgyJDu~-(mq~}=TpdyXJw9s9`f#Xld`px!#&zgORVIj0!Q{vlgGCL|G zVuWHT9BHKpa7JP&%K;IU1CD>WjsPgdj$-HKW%BegXMa^hAfXrhZp*Dxeho8Sc-&pC zN0>Z*xCpyzS@P0OOQPF=)|Ddx)uFI~1FjOu_D5*-fDE(z10^<1>INU*l|escPHPQ- zVtdhVdcx({ZO7|C(pdNR>5ybd{Io|X+%%2lg2ao|Lm>wl(=i?~AkJcoH2~c!14qQ4 z;i)#piHWEwTC|`>lzpo_esE=n9OqwaSpXTMNs#F`qVqK0MnDWo?tpiD;FDdf1DyD( z`}I-Da9N~>p#j??ZZNG*-XB%~5k`jt*6O;KoTFz38ay;xo3y_B0}X0#kuXmnQSgI& zlc@Hm5lH>9E$FyQMg{lHuV7t<7uQBe&}-03?6$Nq5H>3E6$h+~`5#`AgoWU+oXifH z11Ac;OIRZFkl8$dw?SX1kL7ZJW+UFkf1yfnq8e3;W4z|pSeZz&$2CoUSeqbrmX)x_=oN7Q?>$|c=hM>u9O)Z(pBfb}{r)t;yw&SFrc~Tj}d1j_b*g`>Y>nC5_ zW~Ddy(eF1lkIwL092W|0L4fbf{?&K(A)=N$J=5q$9`|AP_VSfj#|m;i^;YP#%_B}# zJ1TSUNdb)r{&fcs>7=zkIYG+d%H9s4uN<*pirfpHUjBi~xOjkZBi}K>+L#B1W!btD z2vBNokM*RQZvhxuy8RvlJR7qGBA;;r9n1DDCa0WzPR>?ut%JVubEes3x(30z06useyKN92z|LC|cr;>U>W~VGEt7$WKIRa!swJEtqEY15 zG;MVGe($8Av+_kIhE=H!NF2kt^R7F(NuCiF&r5MMNTZwbvy^mrsaC=JQf-58QVge^ zgr#SN47gxg4!h#vo~;7=hH3Snw;)P!Q*?vrL=EbXNx1-53L&@MzL-_(77H@M1koDT zA5rJZW-TP^RLu_0*5#RB2(JnG5*UVK=RZux3uxugXGsx)`Tsaxxr`r+Vu7;J1L(CZ zR8_V?UAlir>KTq8*P(@zps>rlizbYfF>9&o${$fs0}sv zehM@2Qj)#T^c79ud3w3$O*j*0|0SFO=m#<}x(gnNd#5PL1KUALLn-Z^U84z2Lc}lc zh&rM7mIolwvovg!ZAr7GJVewa#?~F+r0|vpGb~waEEMDfhEd3y`*tO~4t3Tu8vLn? zl7QHsdOim5qdffB`bO~V2hZsMeC!~u@s03^%C zDS2mqba+WH#PEJT`$D)U4r|IrTSFHiY=HCUV|W37(+8isx#_9%sq4v3wunU(u~Y&!RBs%} zSIlwBAewL3s0lE#SQ5t!AEw;Ek@`$5hJA+6LH*gMQ6?D2dtHt_E*vO}G!Ul!i@?3^ zL()Ja9z4+?;h3USNeJ?*@Lzvnhn=6#c-bL@+AMtmG58=z+xR{fSj=;Dey|3J6j7+` z;)4z+c?l9WTH3>g=23%Z6+lGJ+VihlN=9Gbm!$D|Rq|@ZuNaB4Qfb8;YRa+7iv_2aL z!w5Qjjf57^S~$~RHvn8Z_@PGtTCo6_Q>2dr373)}e)FDA|M5G(2Ic>?ME{>44+d#} zOuAJRr!_(juYJ3xZ&?(Lum648$X9B>qjGOg};hID#9cyHf5IT+vVcVDU9X~vG{ zsQ!Kg24aUuIpg0&e_{GNSvo}kMG`_^Jx5hF>kgxXbn8BIr9h>$`&vo&i z@UOB%f;#PJM`*}ExG6Nj=|$$lz256`S+Cq1u0u1Is*|%kIZOj5Q%8n%eQUN*i=(k8 zM^qo2o*wYslePO*blt-CtV66}O@2A(^YPUC9jRa|{mhgKqn3w9V*3|-48!|V``Xtw zA9f7cUFQx@w)Hsn&I4WNRX184D^q_NAC)8**+d0Sd7Yf|Rj#we1ay#Jezq(R&UQ}! zz8ZA(jhotv|9}BtcDMP8%#uE~COBjZEAh*q0irTQl{zF-2jF%#dQ-)|>5%vC?!ASE zT{4f7aM0Fgy36n~OEcPDB2`A*XZx4F7hA>A01zBr@qt6U>a3hPS{Shy1R zr1LOLaC5lV2_zdWJXEXfA0%6Eyvv=7B6JykD9!vL+^9cs}vpe`xan0D|gx6;K~1`Ez$y|Fzf( zY*g=hJV^Kq1LPpQ$;$VYiWq_J;?Q~v;i~px+GN(O*@_GBd%qjMN9W&um=t}Pfiox- zog66Gji`TG7*6y_7`e=pEokvp$v^=>k2)m~4bMIRc{(wGD`$RDE|g9FuaNWf9_AMo zQ2@KJ<^Q?~2MR&{!X^ZWbrSyz>Vd0iAYrM{E&yEl{{`hYSJ`2jaj0FOw8H;8GUGu1 zSIAGYfKnPLqkKt!<2X9JA@NNz&;>>QMshz8feHzNX_d>LCNL&~MS4z)gdP<s&E6x{9u!BocTP!BJ$q|y8#Bt;F-?j zY=i}(7m|WAgxhkHTzPFrFe;334*Y<^F%RdrbcZ0=jzM$(2E@5Wh#7_hB_+(8NmMuW zYy2ceQ9EAsmkb50)PBJWle(PKc1dX@8>oEC7 zddyPQHa*suVIBWO8rn`IDr`Frk_OGNc%7Tg@qS(LQ>6eLVS1Ycq#UIHI$-CX4_5?X zN#H?{DhmId*7IZmk}{h!cN`lFki`q0ii1sPK|4uoNS*3~F}tjlb9@H*(%JHfXb}tR zS8P#C5M(Xu9|}~uDU?@Rvf!@Caj)4v;Gjm(cFD2V?Je@)UC?{UZ%@MD_D~(5l1Kph z&1Nb@)eGEX1Z&WU?yFV`py$idnKe(w5d5b+w(fXP_ke7k9Toi+M6!Nt{A!wWaD|yN z$QYO6LLeV}k#x%ccFg#*6Fls$SxK$d@<)8|2#L$Xf=ULkI({JW5q+8lHs9LVUbzQ& zzu~S-8jwtx|4gQRt0pLH!-7G>XT^(UUm0lV&{OxsQnoMqzF$DdQW0l++*2GwWa9f>)T6^6`;-P zQ~kCKN>Qggzr*$`qt@T@iI&Vx#izV`5M=+K*5U`x4uIN;Wu?#)y_MTB+3A+?;N<*G z!rXcp7(l<2R9qvQisnNfl;1rL(opJ5*oMtvBpQkn-cAMrjr7kzLwDgoGqg0SoZQOb zXgsvRhE{~j?6`pj<5ERGPX=FF`b+>Ymca|!B{{jT-F2kbp>`#km@c`@w%<}xlVS}7 z!R#8yN%RB&KOBD$!c`8v9;jy?U|{WTpRjRRKxWtYeLq>=cfi!xChhmIgUr}y{jN>& zrgp_pl^uBE?yEn~fcid(Qxqoi%A7f_XrR~t?L_=!zqGXup3;#P4uAs=v{ncRO(jYN zHbDGGE+Cmu^Zh5tM7Sb<)2KpL;~Un|R~>mj>UN2KN4hN(xCQOZ=xua_+vUENVfLA6 zUE*}{kKUS4G{bA3KwLiqvi=yqOZbe1paqZSjSQ}!-XXr!#gCiT)i2)~Y}$lxP~(SY zkh*>?(KQEUHgAiezB>-gSS_kJ8{B1c6UHp2wPH-jXR*hgP-@pQbdk2EE~LfBsZ@XfmwkN%rtRY$b;1s z7xhwTVBg|5VvSn@*-JuORs;v}SY(6SsP^Z*@YgT{vn8NlPqA5@?A(4Sg+D`)B3wf7 ziU#Ortj>N{h_8ijaLkV^;~pdko#~$IhmniZ1DO}g&ZRXrZw7y*WTwUT%C3>@zS!MT zb$sX63T(W0>jwA!*hmlBF!LfF@z|h-Cslps!h18w%34=6Nh9t6X=FN8`@_rxz@1#s zVO(vF1TdP75WK53W(cK-W4j;J-p!}n^ir4EeY~%*mgXcQ+ffi^zw=rK3+o7&wXA|y z3_nhi80C`hd4{**43;8oPGJl8KTon|TO{m_4 zX;NTTJp9;kb{S6!A2r>A;!}D&Xu6t^YwkRy1S*=N;_FibMdSMF{h6?l0BWO61oW9C4Li>y0IPsW$1cUv|I0F85)s&z5gL*z)&0>I`-+;Y!@{VjVA{ZzGR)X9L=A+Vzqr zA{GUK7KJqLuu*%$5q3};`Diw~P$TPm2FH)=pR{~H)jFO%yevr0xXD9hklYXqNFy}@ zG|l2yOPQEwbzOwHU2`}m`WANI&czxO<109g^Pv755Y9vBTjAupS6 z{|4#}#5eC;PTYA0w=a$3Ki9=`>ZI<~`8lBJ09tspPg>4mg4S_*P=oi>^d;^^jeTYk zpZNzT{*|-jwqZnA+}zrX%~11q&6(_)W2*f@zRQ(`!=ORq;OmXCqocF;I~}{lR}Mym zF)yKIUnbUSLLxdiLX1RsimJ-5n`w6U*ivIIHjqStGv6w?I!?+e&io}f&6_>eq(rj@ zfeM{kD&;+gaA1Z0_1ON8> z%~s80d#s$Udw7M@$zO){`zOnirQ$A#)AC7>ROHSVqiy}MwJF9suTW4P7~WVM8G%d8g)($_cP|P7O={bBR?&FJkUWhYRJgJA12SiOgfkeDrErA zh0DmTPu@cOaSI`udnRa=M4bcN-?1slXJ?${6I!mG-lkOD=>71?G_)#&FR?Sb;8W-g ze^_Dp&(QvP?;#SG0(GjnER)hOCSe9-%1{!K)j2_RcKp_^Eu!~bP&rlfe$H9bb7jap zAEF(55nGh4H}J5h@697J#i!_S2B7pdXP6@tgVc+2W`)M$y(5I|8jl(9)}0N`B=I>D z#ZOt}>H=j@*JM^6A@8cviH%K@(^9nafz>C_VbeP5aZr@%EtJaQSIHV*4H2}Z&;c~$PQZl znG`|TG_8O~wgNxLk4XEzlcL27BLewBbU1k=Ex1L3N8*jREqcbpy`^cF!f`t#&}iq? zGF`?#{=6r@Dr8X_>0qb~6pnPj24k9*Oj5+uyL(`VwVskYV&nzngk~ZvFl%!+ta=Sn z4)+hA!gjO6=m=Wygb9S#O7K9mm)c}O_EVV3{TzUEOjE8QO73v95$(}~c0!d{*0)-6 z+VIp4#+9f^{3=rh4uEkr3?RXhwL>5BTxQB#a8DZxdU&PG(M z&;OdX=o`pNq~Wc6duYdaI)g_1c9^m zQf;+h9SLHmM;5=!>E#wtI@lP)7@SCA{zW$g%x!ba3>L+HwpY^;B7;s^aYd$|jE%Z^ z8VeBH#E&fp+yx>^P;X~VhmMkeoM8?#ar%*9-(O{5?Z)AGLt*nX;?#!m&nS zVr*^~)@ZPJE4#OG^8-k@uYuso!Z33p%hWpZRG>}fB;9nTAbGK6`)l@a`hftex|sCK zubFX7O#K|o)clBZs8N?^@_Shsix+ub%e?a~P&dZ|(KOJhSDMLA5{0S|4++BQL5>qP z)E@JJ4gP@`N@FV?RKIl7^vzWZS)tFef{aOwmbFTZo_9ikK%aa`aWz^I z2vy?%gf>W=?(iY7eV8lLm&phac{2%ma)*X3K~L@XZE`69E8qW@t+jJLUsspj?f2J+^YBn#|VhBwLvWs^u{6((RR}3 zKTOAzQO3)jDb$ETR5oD?_QY2OP|FM$oFVWPFcI=)#AvnyD9<$*Z z;srYV>$wqf4jy4~-uW(NmxysEbj5URIEn-C7{U;ZDh}8j|7U8|5xud!Ks{1z*}>Fx z61X%h@4E~75D7dsVr1}UGyyOK1U*zjn*Y{jt=^d98Webt+kj@vBGP_8Nt7glje+9_ zV1?!{Y&S}oP;mo#ZbDX+urE68N&QMWpsFnxXoS*=7R-_+N}_Cu*1b%M*pBU+cnyl( z3CD&8Ygh>NH|5Yxrf&&H9KRdw%|NREU~%4Wkfe-oS=^lZ&=GZEIr#@qgdPy&!jtE~ z<6Hx0U2`qaxz#Js(MH~k2?_XuT_{3*RAQ%fxxcE+nR<~8uvvLn1}Js|7&!fH^?4yP z;e;tG=|>Afz3PDK4Y7c@o&*L$mGk-Stt22ct-c=u)#o*79$ycY<14}^ zZzP$7En2CLq>k!L!X}%fZ)VWw@RqLeX(aIAcwKXSkOs1A==QS0|1}?9S+UG32R7hm zDPqK4HS1{qoVfS)Y!wrOSKw1Zvj&R`7R%DQLcwK zOmt4Pgw!?13Fvb=g2D71Zx^u_)CAV;>M$Q`5SsS=xL0;McSYZfVXqMe$ScNvN4zDcTV_}Qy$t9quHU;EqnqKvctawI;eS!PmRv16ove zh&pBRqe0gMw%lk^Ko&5X_-)oz&Yz7wjIb6`#5EBJbbUSfIF=9uVtsh?*JN9ncu91M zZ~OQ@zIlob35~wIN=e|$Z+HnR2A!~3!4g7Y@ZwfJiK z_IhP$<<;Z4E6oL)lBM`F%&=9G5c@}%q1K-Rjt@SvPKxU^?L+wo^X#J($0zoSrHYmx z>?(YHxbR??rbwJ5E(A5BGna2|U@)2Qd$1BHWM^JmQ6(cfx{)U8bzF}+)MYqyIxLB< zKDG9kZ5>n#-VMsOQk$B;f+|hyA=VBetDji&3wxi^Hr%7U;C@bYXm(gCLChVszG51B z2)S9RmxAU0Y44$TjJ9dUhW5dcVCiH7&q?H{K!Jm=JwMN;b59ZP+4bXx8as4NhZv?0G`MgME6vHhOVYuvN}2 ztQ3gWisf!DOm8LbV-&=zBSQx<<^BpXvO;P)%85cMMtUQh5?^{FytGbsGQAPo(p-Cl zqW)UITY4OJj5mUwNOUr{6>TKVrxk65&gByt4h4%e2Hp9pc=KYhS@9`Z?U%)u+OkEG zjk?0XGluuqp(oTXqO!Zw5OcKN43yp&)pd6dYfn**US&B>`YD;mQN|Cwv8jOEU~Iaq z&~3yof4xpJ+P9j(Ehtsy!4j7o+F+X@CS1|U7q1~BS$bqH!VJpb?C^n8kR|z#1QXIa zTQ*!#D@INzuIMtjw(y(U`u90*+V>We3&=2&%Z;{?i zO2Rq_Dx%xCX%H=6QC-AZ91X5$CILpqKFkeiVguIhWeTR1*c3CAkx7{}@3BwQmesTq$b5yJW6>_hoyk@2S zQ(}iP)i+I}AA$&mz9aX!*YL7@8I^dVzi={S?&uCpv_soMu zO4Gfk&XLz<@yIHCGt=nXbew%$r?Tdx` zS)SL_bRx(5`&@BHlFuFnv`AmFg@Lhgtz)J#xyFMe2NZ~=g+*KX8#9vzc?)D9DY)J$ea+~;^!X58Se*41W zmc|=jE8{+MaoVTSHXqY**Wk>2ZkrUZ%JeE~-PQGC$cl26dDWmI)w5D5v-t9-NsDvS z!3WjAEgBzB{{=*BYT^;klNLL(!$v#`ze9sq(~YWyrV;bm^Y6t@=GU=rxJW!uBQ8ADT9eK3wx7GTUAaw%_kci{jLQ&BYkLjCryPT-)mia()tA`7Mh&A zj5f z>+&d3(IJnW|LGdVq*9;e`i|n*|lf({zJn-%#@2W=0jom*H?8~7KSZ8 z;(mGB+2iKE@*2-OUo@g+jA-#Zbiu0BRBt-j?I$!2L9-+ zz98e+tE|W9w^lShi&$*M2s6lTlGeA;4lZ^b_VPJUgfUCy!=lIB%hbU$Vmb&fB}Mgz z2t}M{lSQx(r~UI};K9m7k_{4XM%)EhPRtn_ZewqPH{$;7C-wkRTYGB%wD?yyIQ94WTNnFmv_rI}^} z@W}wxAN?WAk-+>K3Q2?hayjZ7!DC?;2A1% z9@)Pz@&EhHZN{M@i^qYZdr|YNVPRW5t6U#q^XM_gYS^#!M3{Z{L8qw z50lgLVVuwfP9^Y66kt;pTqG#>O##eZUW)F%2xBkP5{vS}gCr6grbnc|x#a&lml-tc zWM5m!m>~3VlrcVnKPIfJh`_x4r#u_Do*Jgc>UOUog)qHBrS)gHqU6IPbY#0)Wb#~OaIgZCI+*Lh zW2Xe*_rM}R+Z;;&ueT9-&Rr2zupXja?=_^JG!I6g^uGo9d(;?ef#Z}0>6AA78D++i zg^6{h_^)V_A-r;<6}%Xmy(Mqers&;2WMlXKBESsMhSGZo@6&RHeN-B~s{FLh$6H8; z^6=7s%Y5$QXte%q;UlVtxsS^z6;SpN6O?2tGt#`rXn|ovM!8&JHjXlGOuar@Hl9Tf zq4=}uTLElN^u8YFj8!azH~9|A)P@_Ql`Agagb=9vyec0^(%U=ZOpM|me5n3<**D=O z5a~JOpA0!tS}_d)-Y0f(>-%T{Z%$84f(S?9kNV^K;2Sk!?I|gkAl!~=<__s256_AH z2D}9BxIM*f#FlDkCWF%yJ-ch|KcoXhx|lg9G_ij-;1%pxVW7>58cMZQ>UqcHnQW3D-|6sQ!#<aDWO8asOhz_hr>8#Mib*k6VK&Ccm{Qy7^mcfDA8}r( zeL=!3n+$E`26z6VI8UltE7}CJv3=@IUahEkc9T)lyb&uVD|B$xr#{llgg!nWb?wB3 zgSc*Y^qoP%^X*9(Dk_uJilCfTBpYl%j_r@@ zbwCdh=IUF(;Hko?Qk;F&NU`VQsT^GD84oB!J7F<&@J%LB03JwXq_ z9{=4JNEDx+Lxh_<1fxST!=s#GSe7oB23dm+x!|Z zmCqC=Cmyt)Fna^}$m2f{$FK|sd3>?1lLZmJqx(mV@b{SfZ_Z>o>DWG1u8X~wKjB@3 zEuvn2dhjb^xuDjj_fZh1J69%HMK|dvO8$@ZmM2WIdl5y-ktJyNIbXf&OQLyyBkg$D z*k#t(F6;>&u4uHD`}U2}7T!*=L+0^T1EnnWeXiWAFQ{{g1jJ@j{AIy3KaCzD&cBn5 z;94_4=h=f9VN3)s&0Pn)V`@p6FxB=}j#-w#RwqX$OE^GJH zci+MLzpNq`I|JThU^t-cWx;VhoU|k_FBSD2~|^r!vt$FbTJ{ z{Xyp6n$P7=c*=l%au zc{7b}au>t@Q9Z_&z+7khUHxSz8)0)QeBtH*dda(CzAbmlWKA?A5S)G=wDiYKZV;XN zu*W*;z+Yf8Wc^VTq&_VF?+NrXFLaskj*vD`7R20F1@}So%K?9;{F?*^oVNc_IsHqv z|KY4Gh7o|)%+`_KEV?;w)7g4)&!CoP_WnLzJDyRh7>2{D`riwfr&?h1S5Cunt#d!; zPx}X}MudcP5X~o?Pzm#YDIts)|_o%zQiEFl$!UICu^7kSOzSUt~zlV8Z z!65Yq1^=cl9R%qZ!70z<)3^22k=`tZTG`(~fqlG5UfD=H#h^ok5l zNBVD7F$Q}1?1zhCJ;do$)7O01R?>fzx~F3QS?m7KSZw(UB_uh~kUlPQvOd^2LO8>_ zd{&R4xku%?;67{&z+?ZPE!02Yv2v0u%;Op3yiV1TQ4<|5l2Yn#zNUvbd}j$XcB~jC zRyw9YwFh)>|Lg@!s(=E1QbiX?df)y%$o?N~+u9;}20Iw21Y0O~lqR-__$aTu2n>@& zk(!2uTzJrvVn0NXxwO$^|BVsHge^MkXFpnkorUr)ej+Xd(W)x>8`Oi2NI#|ti(PgW z$pXmnfbeK}aX*R~zJYRsy75@i* zw^OPl;PMrL43=V+1V2FG`IjVr)O2HkYZ?cZ55QI@UU>@O7J~W}tC0$-R>KC!c)1VzI|JC3|h1VxH$DpmfR-!b{UjPz&P|!uxsl>^(OwL z=k0eCXt;(pL+|Py<02iO3Ng4lNfifk;x=AskQ!yc9F-Xf@s77#5n!y@`!*vPCn6R) z2prUFO=c7p@ppsB zysh7{IBrW-%3W&1zWCy96~?M_(U*Pr@PXp;s!xCOT;=G=fq+QDDv6B#@{6swGs%g; z(Mvni)}YR_@ic8IoSBXNG)|e*nPutAo^-tH;%}*~TUuF?r=fOV3Iiz)wPUB##68zn z*|jnv9nS7|m>z$3P4;ML=GbiV=4O7I6`CyD-4$s}TqUdGS9sQN)HgJF)L02_G$A8J z%QSmeU-k2djY#_O-n%7c)K1l#fh6Rlk|S20HdFiO;>B~?V+0yet66Sdp4A+d%*n?O zyX-N8d5#qE43?Dl{y(*d>7UqMy=XfmkSP4 z+UX-sA5|v}1ZMsWyqM$)JTqQf*h|ni$E}yZI#{a>bzE9OYV=`5u!1`%vRcJ%=MKx0 z*pux0RkeCaQ&dwjtqF7&uN#%HX3rAKZm@Zr1yoE7qJ5m%6Ew>H6;)Xw8=)V(UmvY1 zjFTb#t|2IF-85?P)6%+90KO}&99JMF!7*LH?#JWT)c4iQYERA;C(>DQ#*&OBTB z!L~12woUbZ6D*=l0Bx18Gsf)8n`>O_PE$&!J~90VhtbJrg-EyWPH zZEg^22tc+@fNIkUO)|91rxlpAFA?0X^hS(h4{WrLA979K<}qieDCV8Hxd)UIsqcq- z_B7+V&kA2U!qeC2gj(U(_5gC*q>Oorr4z~JU@=lsl-0~gw%dd}ig!7G{5>K1%^$+_ zYB&R9GpPueeKJkmL@Y&^-vXB-UDT2!&}Q6@BpS~_ix+T?~j=mR^AQzbB{jlE~EqMjwlkJzVs#5B2v17Y` zc$}(>kPmx$4$K>|3AS!3-M`*oukK{^(Xti){tM!SCDRui`jdB1#Parhcc2Y>H#P2G z*V@_VRm)4qO}}_kb@57ib4UV;ussAIFNP6gHVKmA9Gl4Z=ETy2DgOd0ljt|@HR5r_7xl32ja(KUPK)z zwQ<}zKQQ=opM9K&aa+mcr4PC*ckbFP(Y=TZbM zug6J*1>OtH0Yg)L^zN$XgviZqU*toj{yC>#?jAZ+bJ_XPu?bc;iJqh~7QFZ65J$21pWwLU!ny>&c({!ND>kOhVIc)DI+ajTj7?x^y?m!hE^I4J4cHQq zfe3|or3vyFprfgSC0L3U+yad6kergo%0NFJ4|9TZEm;sk;LAKvu^h!N)*@GLH z@4Yzvim`GFBSWpI9xVfK4=lrnh`N$-X?sdTT%?8Q&EqvxZ8~-%>7DsoKMWaoms3ZV zlnsG}D&rVHGFJhTdF?l9j7{N;oAHA%`EHP?|LMe?s6b+6<|QuLRc2w9Tm`T)>pDCi zW>3tCqK>XN0xb115%BP@g^-l0)MUQ;H*ew&TEVWwa@(Pc3#^J@G?lhne^v^ABM$f7 z-|56W{hnOKl)Iy!a*quDuvia>4aUFI1^6|D_D_nhoP8%BVr$14v=9#=T?i+4gW%nK z8L2fP!RKBGU*>;~>K3sObD54o-+aK*gngrj*UwTbZWO2hsCnMnt5y~Bx0>00s~MO* zvJSD~B4bO?ZyW%J`wlch?2DTsKb#ESRSX#a|DLt}H<|z1lmDl5W2B8Bv>IY&eE_+6 zjeSLbHku_>SR&Cs5)Z<8^ZO-~_Q0C)#9cq%!wTvO{9~t{!CF%JI)?-CV5YrIHF<%ktjIxd{1~)$l zbC#duBP(WjEJeme@$zlCu(tf$yj-;`^~vTy+hZ##N1H>wJZkSh*mx}(!hQOwJ&7<1 zHraDz3OlUo+dnkqxeJZ|{>smTbwWu$ojgf`O@G4XTV16l;>qQ~8qr|FZ#Ha6ixXio z(LpI)?d@3VO@dcAKlH;TU-i`NdQ~>|cmNKot;S{wY{FsUTN%{*ZopVGElGXOAX_dwq@a?} z@=R=DhFFj|L7ez=#|B9m@s1Mfx1N>E5-fXfrhFM01qE+J=blz~Fw1S`gtOFM+@7~8 zFm&KWt(F6WEpHo!?+SK53zxj)R1LrX9%vJJ5c~Myvu_CBQW#6SlnYa)a4DzJ%8J3g=DIw`Ui; zM+^`3S-I@Ee^_+ec6)?plw}n0`*FzWwr-E5yzl6PR^OZ5rRLsIR)C~T78KB_e!lVv zpXw0O*Nup}VNoR~9vv6k$FzI_c$yi0YE?~UXA(xN8cf1u*?2oXsT~$$u7zZR#G0X{ zNc3TK-c#KgtZaP5=KM*eUXjzxi&uCA*Sotxy~BoOANxeTm}51_laje#o|t*Oig_tk zKR@V>obEeV0nzGXb^OaFvS<|qg+-tk^N$P6^7Pe=UR=e0sY(kXP06uGYe^IyDb`F% zZh=In?LbR8yN-?Ah9#nBe3dT6Cxy3Ko%GePFh$uO6E&DeEtk8@v7^d`TgG3`ZmGYE zJ!vlwU-RKsYNG0j+lVy>|#jdK09BA_&-k&_P;|CZO~x zQlv=Nw)RjOby$mbBA1c-ejYrzrAYR}(90ZPd41!(`0WLb= z0)cRH!5|#q5qxQ2NLq*ZR8;s4tuVhrs=oHjMg)ypxNm>c9M)#_yQkqH%w8lQTg|KSVz2b^u z59JTZOI+j(YiNL(jw``gDeh8Qsz4$MC2x4MFo9WdTpm)ia0uql-w+U)8{fUyc<+0! z#%XLYAkFJ!Iw)ti@%ZCMrjKe!-EhGZQYND!6AG_~y9zrBVs_OYJ+Na3jlY&UecNpBE!? zI1cplrI(upa<1OF|0-#r!Z|z5q?0#4!|ubS;OuBDYx=1)O@L!CU{WLwLT7;4vDh4T z0k^A5Go#1EzQ^7gCvLC#^g1Z1E%1p!#NJG$PHa)75@Qp8bGK7vyottx^B<``x@Rf@zO=(DMj8x^`Rdk}L%o?VKNtFJG+J$Kdj zwG1L;$2|v8xWOn!9${i?sc?@k5^#rpu}%RZNq5tCd=`uRhD51!_GI#Db5>IJ8G-`x9S-%GxlxYNGU<{dp0Wup66u>MQr{wIH2E4*o8 zF(WMc1alR6MF{sQ&J-OEjk))az;^h=+#SU&S|<8~54!;+Hlx=~Yn`b@rIV$7=50Ij zRAU5!)gtb4H|z9AIP}hNe?_2?Ew3VrVrVs65YmKaLt3lD+-H65*VP{HdL?wrlpgu5 zm&mcz7HKAWjRlRIUf@dSfagOcAcN&!VbD)c+6Fk5-F>}#rl%p&U&FQ69H`VT{FYhz z@&t_@*pQY88t{V|Qr|*y;Ir_Y@ug2}tf}x>wASDf99ck7xdld;6J`dAw`l5emAYyb z9W(}I<|y7jIkpC-nF?x};k&b;)(qYXBD3C)ahQc5*ib`x5BZh3A&3>obyLubQ0+k2 zkds659aC66&H>Rlkx)*2=&le}AibfpzA7q55n=KFsK954^Qd2sb@^!Ms?|=@PEdqK zMrkSQ?n;`Y&HgOti{4y0#gmsd*I*2bPSCtyI zm@~NZ;Oa@n{?6gz*t-M`E~mQWwdL}4>2#f;?Ec|@DsUYGWjvO$U;T6TC zDT1So959W>HwN$r_Yi7h&?xUW(5Q9NOK810Rprvz(BQ0Dcxcm9Rs3T9N5%X_^u6I$ zM)f=*N1R%!BiL|PDaB;A1#=X$?cU>s8llwF`-(*)wq9q$Z@*pe8?t=uE(gid(09x9 zELt-s5kH+m?5kaTJ}ww_-8Fk#yR=zVe-O#?6E2x|`xS*chD^Hb>r+)Fei!I(Ur9m? zr4?gj*^xdGn5Ho=9ve;26I{hJ__{fYwhY&y{`x7EyG8u4LJ_Drv zIp=@P7+wOT57bK9Axq%e(2YtKRF8pWS!eX+qHQ5MQ0Fk<`qTSBVmtux*Gzo~?ux0OxtAPF0;jrK71SHa}NKS|( zzdlU59pp{mx&I4I^2V&h;Hc-BAgU264ws=F{gy^DOL#veS9J`6c=3!!g1d(&Ism!T zv!a)N=F9CUkNIIM}MZdN`VL@vZsv& z8P4t9561;k&p`U`V%R{bodV{>Cu~}?d>SPe0wEe14Naw&#)6_0qBDK6-sOz&HZvcM zpd&1I?-`Fhd^5gH2Tog+mbna#ycZziKSSeQu0B6%$ZrxKwqo2@04+W5%vHSuLQG#} zZB7ceblX=bb$t<{gP&w2?4C1a{?e*ueUg$01&UA1`nw2SkUF-}H0x$e2`<`<{>F_g zTN?L@glLCOxHp05aM4jkNyX%vjGp7N3P^qU%HK9}31!ghzPK2&R|9fcxeq46NHQ%P z$u;Tv#wPamr$DHvd?m%0KYLfCN~S4}8Y;ToD6?FU0%U_B74dcWtmBnH1N(Y#wnvWH z>k-t(t&B^H>xw{~3vW%nGI%sc9Q`#z#3rrI?dRc9vB?S4hP#;F7rAu zfUqBXbwFN<56LhYDc+>F`;6>*GejQ`J{v03u4n8y*3e$Np)fN4R2ancEh$?>Ht9Q~ zgGsVrnyw+FHnxh|iQKJ&2;>rY;{#C~2m5t}Eoy(oG>GH`ZgZ|@uT{W|cC}M* z(|mPLHmF1@B|J3MIzw0h0Qf9Rvkdrb?GsLvhzB{S$M)93JCmayo?@5J{cZyIC=lnq!WfyUe^0A;VAOMi>X@VkD%Rvm&wGlNe zDD6cG%&JllAt+ny70>%G!)g?A2KFz=F4y(A+R3Ug>T#>+OemxOmwmZ@rQ8eb?6)!R zRG>;q=0W}d2{{O{)Av@Bo7^u#4EIT{OF|r5;D-;F{dlxqhy~;h`bzC+B6n~LQ$w#( zW#M5~N%=jrT`(rK zQbg;N&oW0E(($St05zQ=$BAf=xEN2G1+H3Bkk({>-?{e==Zw$RNB25@5+|L7ks_^2 zOIqFp)hy9%QQkVeJuW&p`CE_B04hAeFcU!3;$dV0!>H z;;2<+A>(hLaiLBHPI~DPZikEA#NBa^J-di(P+D+o6|%b26zerZto^0iPuUn?-tMR??Lm zN|NKN7CXyb_f2-&n(Sq2T^7nynbV5;u&+1O_yZWkhrG0u70%X+eMFhQ?F2P%t(WSL zDMqLgJ2OS>d_}7xYd%#+Xxt~1X;_UrH-3r*+EOV2sLUrTKH0T+#BoY#5XYUxuIjV3 zAlcG!T(NTwxNG2^=9gNE7M#gQ_W^o%|HRiR);f@m(`BnDuFL z`oXh&8wT#Q!!)tzuH{m2TdFQoK5-+fU(VF_CiqzPP9-agD0!l>SF}>hIE4_y-WBO) z!`J|k{>-!J?khvk^oWWHcHvv)FS}!x(oDY-ht3&x^((&&8VXF=vs<7}9;zp9E`BTV z#qimV)n_2_V<}L>^=bsTp2m{`tC$`e?U7{M@74OybFb_p+QH|I2n&Et<46wF{BweT z7igpOS|JrL&2KHbnj|#|WZxf|YyWd8*8gZJ7|326%ON;SONxOy+c%J7Ty8)8X8PUy zqZJ>dw#=6U6&DBJ% z5E$$4|B%`M|35*`bU`a2xsX->8ijzo%8LX5X9SLfq=UFn+6l8;K&`j}@S|&U0EmkH zz6%IqmjvJ+uKX83a-r~%knue@F@Wx$NdJc0mx9FqJL2Uavktj&=@Mj@fT#uXlfgIE z0MSSNhQv}l(5YAdqU$&n+N;GgI0q-$>(?m9A4<+<>af}c1GVP2Hs&Ot!`sU{=Ho6x zw6LBboW*v69qRl{6~O6$Skob%hu48|RKKmZ1_t%mK@!3Ppq?cKWZ>+5Z&jZ8irgc9 z+xM^fwRvuW=oSCDx^+QJgMf1ZFbt?P&R3_CveyP%@AcX!(x3gUQeCbd(63r@LEt=t zKNJP>41UUvj7NF!S(=xE!1kiQale5Hg#KJkVXt(H*|tomQoFO5!~@r#S!f22fxglf zWP^EKCgej2uafFhuXm&Ze@CPoz)|@sY$z%Gm}E437HOmS54-$PVt?D~zf*}C9HCoV zOAFe{>|IEvH9z@@7?1!7s^%*N_RaXpvZ&3meCuT5yW|mH7jnZAMAB6@l(yz?Zg4rV zKXrj}j8VK~r{&p0UhsDxkUX>Enen&~R!qp}dB))xS`(=YaHu4p@B2uL8Or@Mh9p`=hk>FFk7I5YKsRYggV4EBW9WE32L@W7kRm87Hq>sA1Lk zdB~J5t7$MujPANus%QLu2N@0mI{G(yV+p85#Vwl_dFbT5E*Dhy9o2KsMLZG6_^m&S z`_{4u4bbD~TO6s5D3Z(}Vsir}up(%y51^NX7B8;TrNC#eW$^aD%~Hpx--P*4ugh2( zwYq;}jz5c(HQV@tk7OtMGdZBnQ*HUgkS$BzHy3nAki}-0&&!>Bfc@Ssbi~^VzH2F1 z5Ee+4*+8eQqp(@n4ZJe``A;Q;z~8$-srsQkmKRr&?J$G7@=i=LV288}1+phEt&E zg~@?tC0QXRK*r}L;drZ`a`Pcwjh;5ix)kq}D#??L4*rohnO8S)Hja(^wbyO|hOq7e zpW>f#yFRv~)dDpTX$h#C;v|nPR-LwU{Eo!@g3A>C#KH@RElk2W3_Rt&!G3Nz?mzCH z!v5YL`ejE|Atak*ZVUhQsA5q`7EBH;(bkWz(*$LYK1gs^e4h%STJ1bYRyOJM z#u}MjZ}~Hok_kx)F!p)jBUK5=)r3WpxmfzOA0h|hZjL&G6&qe*cde2=C{c@n?seL| z^nPNH8Ye}ag6?Y@L_$PJu1bK zHY^rpv_Z430_rIiwL@Awox)2dGrOGn9XP_FAG-81KC+S(*z{=rY%I|HJj^k!coe|I z>L#egwIvHqerC;G80vD@7s{XSaq>!BTgn_#D@+S)CLN?k&jw5;L3s#HlGq5Y(V?IJ z^o_5a9*|tzAx+v_*$*dv3Ua*FMDUxh+A0GoGJt2FIAuYct>m1$6wK5>R)b669&ygn z_^N_F?qec*;i?p|;J%|eaU4lG5p%B6l8CN?=Y^b2@%>5Vv8C(_9Q^MglgoJ`%O8PI z`G{+(PY5J-{&UcDrtGUA`}T#%SCe0YOy?&mW*1XAeWFukKhL*i7RwSk;5z$0I;CXD z%x+;t$$2c8QLSEq&#r!suVMAcw{_#@-|jb$sk4*f=y7!)sEq9#7a!LKRzB4mljmXD!90BlN#%r>rL zy6gA4H}H5ya5$yQ(@+lU0$oepSD4Ja?P-fOh_Hm&Q^4;4|Tqd0#}~w+X{23cb+%;-kUU10(Cx~ z0)8=~s(@yd2zlhP>oBgL>Oa?Q$G#cXMPK~r)3+>uBh(s`sRI?%$118QcbC_&UhZ8~{H5rC_uyEcD;AxL$;?Y=%_j*$7kY$TmR;{f z_uItjF?PCvwH{$N@a8WmZOP41>o=H5v$fa$T^@EPRwWh_ll&*Wp%O<2v=xrX`BdhK zlPgD;Tw7s3FhacX@TC9X;CM0Nd=Gp!@qvNvdPH&e{i2@Ksb7)MCsS5Z0oDO8>mke* z-qW)|v9cSJ0*#K#bu$iwGm{!ez?%q;?c1jP8lA(-W&9T{9Zm(np@JZye8K-{8sN`o zTDB&BXS4dvzV8O+9Ts+bf({qF*5~n0f{xtSXN=CU{RK2nn~SQ=_Je|2KZZAt4RMDb z$Q^#)tXYs+YGF>Wf3r~$G%Ip86Xb5jRDT#=YQ7}Hw5R!gVB`oz44SW7i+u_M3l@S z(z`fZsZ)c=ct!IqDdtv_;2ghgZ^%J=L?dwym{~Qd_ol)nv%oHYKJa@Cm8})?F*Zjd zMZFEHUGocU-6|}nPs*%4172*Zevezb&?CE7u*HFvc$OQ0^YXFyjiFo))Y-9ZBhY&%ZGFjv1xR#{ zwZ^9qearkEW#B)f40M1K4mw!V2Vsm^KXMb)^xYrWxvX4{hKc`(l`|A8AW0M-!z6N6qi_V08IV(%~l#ICJ+N$0r1(_jOKKEp}raHCp%W`*Zbe!_;dK^ zZKiDEjNVpRbe*sJf{Tq`xJ*^sc5j)p?~jrtv7< zmc}#j*Nmj$$@i{x2e>3rW6W`q{eEH}A0ynk0X03<)eq<(<0QaYL@5dQ3z>734K2VJ z--oh_TU;J~$j7dawFjzIw-$rx%j+w`Z^NpYb^Ro9kK)j!m_5x;BfMT}K)P)#e>PVJ zoq&OBf8dNu9YY=ILm(|+D-FjuDgGL_@p$IT!Jlsx@G`qfdJ;Gn{XUji(cCCja9CEM zBC#``{R`YV1_NU^`QXTA`H$MbX7F|IhrL+BnPzz96dezppPo8f1{Vs1-;`AJ9; z&n$>#ZU+PhGOxN;$!^esu^XW6{--qb#VnBV;!@00z$eNelUYWJ&}4KTlg5N1`|O86 zcN@xXxTN$VbSrSYOx8nfqva&~IEgQ@r*)v{{h~`B9O;F33she<5MW7_$KK^Y{@I`0 z(A2FXAzt79?16tg>N+V9C#J1fXHaJqwcYz{Q0krTEA~EG*|J$4GUIgPE$Grup22Z` zs}NApo$aEuPSK7FY09CA6$jv0)RWi@f41xzp$rsVK=u;$)ke|e$E*h-2=U0I*=*gw zoVJkLKL_t(UzX$0eQ>Qs;pUs7W%Gt-@AW>#S-aCUM2`{$tQ z=d3{C1d!NK2h`Wm%M{Y(@iXBqqea9i+xU}ox7UT$4w{A!KsHn6)%E1-`JZR9s1tt+ z(gM}1pZ6CInRg_bMdj#qpP-fsC@E;m=8%bd3e1*|tfN{4D!*`yYJ0V5jh*85~(807dI(W>NuLHl-kq;|F?RG?DSknJXX? z2c1U`1}7hvi3=q$B$LhDh)y2rbIrV$^kp@`WQ6{@k>flNlqc*<`YTyy(Z5b^N4ij0h!PXE#F2b+L?Ca{`(E-m(@9dsM~z(3J9lR zrtBB(&OmNZB3Y+It`^-#)7=0*d!zKg*n%&|4)@tmQ>dF$q?l2hNYk>|s~@!?Nq0U) z+od*;j1NZr0(<=oz`%E0GQt4In2<>?bzfPIveMLc1u#sK@%G`57CaZpKyPPgc6=)4 zhB}4;Tpw6h)FWdHWr$o|Di)we;fZrb%%(SI^i*>Mu}A+9@u##_Sti9yGh55T7|E2a zvM!GW=qgLBA>&iq&KNZxg2x2ZNZ_s2hpFSVuetu%B{KASYn- zPWQobA|PkI?TG;R3+%Wz*rtJ~*kW9>JO*Fixu!!K_cc^Zj105kc@y;W%4LsV{o}_j zKGLhxYE2E)>7}F%-J8JI;;Y!p9F)mMTUXBjfY3{F*||sU1sp> z`66<%E2M@U;)lvL{WBjHv!m7?x>JjiVRjhlFgx-qcUq=F>?j|4@=v+S6o76viX89l z8^Ezv$C{%qb={ylKKtg%QJ{l(Pw91W4kF~+UqHK9x)*?!LuzXtf*I{?fiq2VTQTOuOR@{X&M0kLc~WJdgl1;|7Mx$P1BUE6JQqq!IC` zsddn|&uul~ZK1{z+e=pm)45L z%zfafDd93A!wD}+0~^ zUo2^3b=F*fO-B`VK%E}A3}72i&Wxu}v_j!;_;uoCM_EKrZ+GeINU3h5)$><)5)i*0kR5=UDaL%wi2WT6r2F}83Q%Y1yyFNb~5*!)S9o(P}3QS*p%7f4tFiXEGfgp zA6J0W^pO_QEWycaEPMT@gS7_=?2|u6(}`#!65qp#>fHscFc-a(iIA%AnhAN&ud12U zUQf_aXG|2T%^X8b-CYoyMIOdFIFkW<(dYA6d`clhJW2{Osz59W@${0t&)y{k(eYq= z(XOV30d1C5ZwNOveE8%hsrw#)a~T#?zS5hI1N7U!jzfv1mjxDDOA>&BiQX6oUhT{m zOUed$?sM$}Zc`}qCiqsG;OGTJ_Vr@R`iegJlTXKwEN=txgus&mGmHVvYvBdl=WmAM zL-F~O;_-TO)OC#MZqaSova_J(rEwtRW0_CJ$S~*WY(V8F#Yip|s`ekvjy^PZ5b0?S z3z+)wizX$3TJgNXhj_~*6Ew714TPV{m2F#bW(z`W9l^u@hGt` zm$p}IHSV{}5qhiqXvK(vj^0MmPME>x&exD7jt>OAy};)?+`^Qrt~%JJ;NH`U?{Z-G z4cdAcbrd@to{X+^eI|8B5eLEmc7tMV1(#8W(n@QcRU5XP>NYYZeIZNy%d4l95Cm>O z&N&A^bd5liPO8|%3WvVt^qLu0kFBZA?Uz7`W`{lXegnxY%57!$9EdK;Wo&+QBie`H z8?(MFY<*1qmo_5_l3|(f7-{7Ss`queJRMu}X8mmv$BR9XZJ#}$@qB*BYh)DkERx!i0hyFi|NT34Lq5f?{B*B3@nCPh+R$W8|+ngC81!q1Al*|POK0-Tg#%p94Ai{E&$StwJp ztL08bCt>sJHIJ}L|JDbJSm9ye_s*(N#Vy#79G z>+XMZ>_$vpv0c(ZLn`|~vWBuU`v7ypDu=9Eo)fo6MQUSXWAdZk?4uta0=lYS{a7B( zwVE3b;LCG(Ex$T-RgcDM*V*;EZ(7QaWk%M{=jAx91H*aq!9!h<_^Q@I;x$hhYHrX? zrBz1wmcm9Dqn0>5*33foCoYFx_-I$YVj%I@Bz_yy>1)$?rnO2`94Sxfs>LHyD=RIu z;l%k`;P|9(p>|*3ryP|7nd_G)LF#!!^XE)t_q~ull@^Tw+N(cY6v$mozl74i7AT3C zd^((5E_tUpkwL;PYS)2x?yK=hlEd<*Dr=`|koxE_W7G@ccQSNl8Nifsc9vE&c`m>uF;Sk8SC0_#MTc*}&VeN0fW37a@mq&a#SI-yjw^9oe(`{jiI+0*>~gT(^=B zw7>}W?d&=I{&xSQAUM#LZglKT3Rn@8WNA0x2wc524fZ?Zz5}ND!b(tELP!fUl`Xn9 z`#}B$M4mi(7uZjWIeiV!ymQiyWX5t4`H1Wj+5^&i=j3x7`fQxE!6%Dpw` z^n%FZxz@8QJzd+!A5HFJVBCZ-E%49mXiDdEA7${*idTSuYYAV8sJC87F2ucU4WwSP z&{Zepf?nf=SLeGX7heQnMCOPA9^=2lwLG--XScW44TYK7@IO;&|jUq zPjN6YZXML9y!!R{Tufi-L2fW|RPY^_nx3EAa@$Jbg~d?jik&CJbUzg9Bvhw!k~ zvreO8qdmmEoY!XyWd~EvYenV9(xN-xx?erJSNd>0%d2lNV`RSf1>>-VlxK0XWrD}( z_uyZg9ueV2XHxGid?s<3=$m-oX2}L_TFaK~GTrx7^gMZgp3!(#mC|T&(!uI#x>EmZ z8*}Xp;r7#cy7qzALb{uinW$VTF!#jK;7anS=B9VFR5I5bKJ>vCJ~v!{?DC8#1}yx%#p z(eTW6rvIFnSp7z>wx)OV-Xcc6PjJ#$c1Z*$fp$M$Eh|ONv2mY|FE3Q-B*yDrcThK1 zmq)L5&<#4~Zx&xdKU|z^AHN*A_9EV#e9&g^SLz4PB!^m3uh5|=jiv!j)2v>i)lJ(y zz5El>L8cd}XNX%t1^la6M%P%i)b=v3;{0ar=PNi%TB8z{4)Nm5iuQCh*I#Z(iJCi| zfASE%Hl$2YdquAKBPBYE0)~BLPz{BdrXpPe0Gvv|ekDU=ld@j7M`n@Hu-xa?#Z;Be zGCIep4$y6)VwP)v)%8kEgN+0W8*p^AISC|T>^4<5F?v?)ZK+cCvT7zS#fwaX(_Z~F zO7p@v>NMbZitw6*cwwyZsmF>?F-M=xBT!RBqWQp@`Mol;bTN5i(_oqbmrb`Ew+5Ug zM)V6+N;KCE@jGBXt_B>#n^(#K5z32<=q%j{asan9(Y5k0(=X}=dYEW3*ay_rhdf9L z1A_6dZ|w02YWZ8{jwzjmnI|;Cd}@?v$b-ZJfFl7T^2<4|&6Y!B*7O0WeJBX~a8(yW z5UH37@l*yz#CE6VqI$^rO8_|Bebz{cexL&8W5G2h7$-`B{N4cM|4R!qBB<9sYa%}tust=r9z-H(yK@)gX!FQq=6-Pb!&H;dbgpM%5xOObWF!mY}*2ba|`3 zTxx%Lh$xp%LIbRid8Ho<@ubK{QLz&sz`~#PFhozKOI{T(imCxGO6jwEiNLaB9(^Sy z@Ft2L;rr9QYvI0Ep9rW$x^uJjDqmsMQAy|etrhZLwJM=sRT*v|Wrb|0*@umTw~4|Y z=b?CJ`|;Jl^-;Qi#gfyTle`7|$hU9lqEOaD^<-nL@y}wde-AxU{kKCWUo8Yi%IS%b zgE!+HvN|RO@2pE07hH;s`q#0udUq+nchvZ1l=s?n-{~4z11frcC2M>M8CB_6;z72D zK`uj`(z!L)F)~%$31J5#(#23Zx9olXt_rq!U~I<@YoI1>C~)VHerzimt@NOma6so> zhDU0S1o=Aspb?LZBtu5?BLox$5y%_LJh_G>kaT~fhj9d)^Uq-ZKj})`yKz~sFD=9K zZw!v}rbAl~*y=K6K5DA%8nQj|4^yDQ2J>7zm)nTe{r~Yc5IK-(_;s)MqY^g*jjFzK zt$n=uT#6TF8veqyRwUIBn-kNF?{oRs{J7 zyzUFVb9!EucOEiu1$&{Wn{nd=m&yNlBk|nOu;KXEjZQw3n$6UDLBf^N=W>26DJhq0 z2W}qC&BP8Uqhi$S;<9GtDVZ>T!F!u2yaqCW!_tc{w|52a-K>pz;AM8>99voq$(@f}#hi#zQR&JAv zbRhHWy7b_~|J;Lutg~ft9v%+KRb@XWFWrXs`agFYE}=IT%wJtAfNLE;;Rx9+2kfs+(b1p^&8 zJ^5!!d0sx19@o;`eF!AAaRAxBiNarH=))A0;rNhF_XWg|lIMT6c>UKA?~O9FVVf(< zerI0p*Y{n!w-Gfoql-507k<9W%)B;RI9Iwh`?~_W{8@olNx^-Yk}h*UxwJF)z8?PQ z+Pr0sT2^lmo*u1)!M=;`c`&D6)>-a55pZuS*$qCj&d!7jO++B0a9E5U~$fu=5 zum&lnPxvmMoz!)dvgLht7FzWo=WNwo4_B1$Vh$%nUOKhUNmyD|w?zT6lIv#cvB0vQ z=H(b%9-P)LO86*5N^P%>~M&)~) zB=a_Cj$cKeViT1W-CPo?e~I>OkM+UK!JRx3qJHe}Bt#HRRL|guFn^)BD{Z1GZvpz{ z?{E#d4>z=N!IQo2ftUS!rITP2<%5^~1#goRU>AOOQfrY}1c(Ra_NTit4TW0mrofoNwDNUm8n5z!~hAnRnP zg?kdFcg2u5ZEf>V^wA;}!a%DVRZt-DyD&l5S-@)%O+4cEZzM*Oe=?%;0Pgae9sX5N zr4g7{*Iaw_F$6?^lG6XVx+Vbj@=&EWFjT>N+Sb2gOEd3CBW^((mwM>WB+C=(09tzl+oB~zqZ%qA? zS3b;v$kR-buXOi)EEszH8JjZQAL~Ido+=H)F8z)2UuN0^j*j%)ubeO=)}PQ`3KXf-08QI1u%50)euAdiAnGvWfBN!q_s z;BplxROla{YgQ~m(``@0P_;p4S7`x1A+V|~3vTrg}QkPQFmW&VJuUAKQv zmH)T+3pXO)%DJR;SXlJ<8((d2{Di<_xS`7RZQAYr&ihV21c+wR!k; z{r%0sw>m}wL>$w<$%g#Gt1we`4e%JkVC-LFunzg+J}7p`L8XdY{+XelzpAU5@K zQ8ti%Gx$-?dV8b<3x~tgL$SI0Z8(u*?AWBmb`+$VzQ)i#19Cu5)#KJ%iWeuS3YK{B zSS{w{!6eY`bTys*nh844ky+n6;z;0xWrsYg;Jx@D`*i%;^o0k1LiAW)%g&+qSp}ju zYRrK;l?I1k{Lz>DRrd(SogVV{Ni{QxHc`U9dl%APcZ_g2VLgca<$xYBG?@~&>WJNw zu++uS&JJ^tZIQQ8Zy)TIogy2~NmHk`KYpj0p(!0}#ys6#_X&<^Ic*5At|5`%t3OXH z@_CKLzAurf#JUizGQ)I==qj^h1lGMj04xf;cQUm;{>x*+rpL|EOg?_Ej92i3zvzM~ zv;T%u%;3Jr=uGI*@XNAB)}LQy^@Bcgy>9k)`(aUhtmjl;zu9!Mg2&`N+x{l#;b4dS z3D&LKv3~s^g`-*ix{LY#Lxd|swF8|xn;{QZX>#dJ*+@jBH>1*E#Yl6Ng0#ite0{iL zV$6d_xkEpf*7@oKrbF)-g>cou4|nXWZ&)8x8Bew>=SK=ktR1p;PWi4Cmp)(K*f4j; zfbp`?^YJn-VopcO9lD?Myo5jItK=6*|C!s{qR}YQD>;vOnA7tuyIS^VW_#VvCj}-# zsWH5?#)k2Mv0qm5_ZX~Kn{=+oZl645JuALa>O1jHkaIF8_{d$WOMG={{B|cSf*;&N zqW7INqQOvLWrj3{w2N^o1M%`{;+~|^Mj~gI{&0f9*oX7np(5idIZ5*M@RtM9;vBwd z>MIv|A3jnK3vf+vI3GLTEm)#yf}15qiJ}sVjEEHx1@rw|qz{9}YF*}+EX}6PyqO-5 zy5NTJsA6`qH5nh}lIMi=YK4ezLW13fCR=U;`VSqVEosyCqYjzbbP2@aG?<&6W2|I7IrhF|{*L&BPQz8v zOiJA9oEIUf5;UKuY?4%xc1d>(x=oVeIMe2JEvDmm%5=Yv#^xu;A7c@ioieyjruyJ7 zL%~A{*8ZrU46y9jjgMvkqD_0iYYpp+?Q*<@ZAE*;DV#@J)4afr=~elPlM7$3{0!FL z(MIghZCS&8j!*3Wv;x3ogBJ$^4{whooTyo=y1PGtn>e6ct&k;Nwen#e>MZ;zh900O8L*LO=E(_7pF8hOhoy%}60&M+cq6hTjr`7qif^xM7e3R2UnjvnBzeiBsoAu?((@q|#tL>CR3@ z!^6>}OG^{};SfM?=gW3lS`X7YAhCTiBjML+D_Rpty`(20nS(GWT#!FwT-}jdaV_F& zP8XqN-83TG?j9PX6k@3a$cjlo*eaG8hQ*7&G##L+-@x~87FGnl>#bml2 z#?>131)ddkQatwi0>Kmt;gkskh%KvI*Cmwc`&qB>zYIB;h3lL$pz(nBrik#}x{iqv zUUQn`ED9`aGj~{;xl(m#3Pp-5iFGKQWm%Al;F`e&djkt0G$k5O%Q+7vCkfEYTj`o> z_c4P!N4@TKIF4D+%dz(_$A0}nw0sRW6>=~O(*Y*@vBX6f@ z!ZEl`1?=~Q6HvrT2UyVWOGY(cNN@p4PL1fdq_rs2FA#yx?%)_1b4=OitSoBwY`qRs zV7RR+;pMEGz$_Z=RL`l1%UQT2|Cr^6dXRRtGj7|JEtSohKoVEa6Np3jCD~xCQUjk5 zal^2kZ+0V4~D1~xG0gf(~1cZ{RdNGiCts20I$Ld}18eTJvxarfY zH$VU4NRALId!oJ`E5i!rbUw zl-!cmBvlJW55ts?`&UQ+!mL&y+ys(KP-?)%*^lelt|AD=t%d>72eT^RdR9vTAkMVR zfajgrm=MT8x`=}j6h{;67fT0-W&+$M!SRKYU_9e(xNK!R6w8302>ShVGa27NEw7nIRp*yD=0JP?&00jY+c#~eY5EMa zLHf+vb20`$Q;LL_48AuE&pErCHGa$L?|_D@<-fV+%JhwR{G4shCh~+Vf$cz1^hVe2 zVP~qXv(2#FTa`2Sk=nBbhg4k1>+MXDLd#2{7;+Ai{i^~&_IVi~dY)bW5r{{acff_To zM?qQZk8Ks}Xff{MkbR<=R^@num;9U!dNw+r;K5@ z_5|ASNR!IHrLB9hEa>d>wspWCZyLABhUs_}iTg9HF~{xJSWP4x^335yF0}jeSPVZJ zZNkx2XWHC{AN^E$QN5{VO4g~we?hg))TS3E+rf{o8FY@vx_(Of>^qn_!sGG0c$OVYh(xiMGz$>uFpUQS! zW0x$7GFjF(>+7S)$B{UsY}!9qVm;MwC3W(gcu2$PRT`4aBS=T1P!~9B zpEL)RBfq}0dv8G;X(ZCgHqpuXM=*%sKPTPFtDRvB{>8==zq|R#6+B1Y)(Ef5rvhur z^K~(9(};LRqJ~Pr+~i-LSiIvtNiO8F;xxdlh|5PD56yQZt*bf|{&EQQZH9otk9yYBr`yN;{0dB^MKqhrOW(X(!x7yT za5m(#bwRSEuo00+6-;x>F*NM8tl|4#JA!{$V;2rs!=iu9k94PUxs)t|jUy-QkV@&r z3-d@xn65is?9@mRGAO(kKjH;$A)2h_n-}6C36d% z>gz4OY_p}vvmi3p53+{i?J9rdp8@3ZOrJ(ICns4#(18+R)ZMd|Ezk2hpw8{f?ZNQP zZTGVV@q+AWZl{L9$0Ciay)kVSgHU_QmDS3()1*I#0^pV@Lktqhe}KUM(%-|1vln2~ Yjf!T!!AC^E|DgraP}NZ>Q9_3N4})Qlp#T5? diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideRightAxis_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideRightAxis_iOS_375_0_667_0@2x.png index 183f5d9957b22ccca998bb46814f54fa3a12c82a..e19a58f5df58397bf47011656a4f35a7c9e6572e 100644 GIT binary patch literal 52193 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 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideRightAxis_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideRightAxis_tvOS_1920_0_1080_0@1x.png index 6f1f26cc12079746fdca5a78814546950c87d68b..8f35b05e396e347af715013220e8fd803d975c16 100644 GIT binary patch literal 19433 zcmeIa2UJwsvNpQ9X>!gvNCwF{qaq+#LFNlnggwfpQ7?mp*^H~x3W8~=Fk*Rfa)t5?mMRW+-=su^Oh8)}o2u#f-%K(2G` z>J0#Zpux+AhyeVHHC_J`@CNa@p?w9Y9AsMtf4S;luH$H600@Jhi2z893jo7?1-w|m z3jpx)ApjnDhv5E}5B>8g1f7rf_s=%CFAC-F)_;0q=Kou3o+w2*KnKzvt5o>gH6Y!22YJ=w~8?5p!`f8B_A>KJn3l(ceyhUxMGf zsSn^ONo`N7WMtMQuoZmbjxR3|iTef7p`)XsrXuE!6C{g)Olu@w8@_6fIcYs^wDH?t zTR&=S-1rcBe72gsam&xo)Nd+Wv~@bz`Ee4-b%^jK{5Jr7KJ+Hy@4qZnLMQBfSOWr5 zLThULu1^?n?-jI^h6V^L3phw)%+?C7`i%o+g{Qh{gi}4{!HRD8{v$PRc{wK_9jbo6u_ni8HDqYBHSr0qVFDb$!b zX(5oMKZr}wO6|F{cWL<-Ni!tA?3b|>2|d%pRyKax*AR(gQ$fRzdPB=>SI zH-`@op9g)ar{v*sy7jSIePHQ}d~15)>u|=BH9n#Z&fAWjS`n0}CR%=~7AAk$1hL9X zbSR9OmwSPpan9WEHa;>uy2p6HPNMPU%U!N^a^yn|$+5g|!JSvGhI7`M*1tFvvMwI) zGR$}M_H~*xqZ;cF`I2XPX|Gp4&zgnhnKb?a-F4mv`45eeNLz=1s5gen+&`4;zPY1k zQgYnkBSaxpkJuRxyD>(f_|dj)={dDIJY~Q2rm;zN6Z;lfVA+07?AGC#nQMwxCE}nK zyARkJCTd2oRkApXlQ8U+VJfMW#b4=u8WZ+Pz6Ix5hpo>-KbVnyd{JJAGI&eG*@nuQFL%MF^VTB|kQ`;(SNr`0BTNe&E}H~KEKmgwlG zyjQDv!J;TTPHXS|Olf}gQG<)5j8X#l2^OlbaHYkMs_;y+Fe1%izN_(YX(`63!s#Rd z`elj9xrT4|lNq3t$+)s8z_wYlq*qK<4;ySvZrR!Y;$q~~4lzPWnuQWRS!|Fqq`N3C zXcX*t-NtGE?bY!yZY4raXoSE@<+N8l?nLWM1;+MocMDqwXj2;&*2o z3K$3nah5ixo}NnJ!4Gd{1{pW8t*Ma(6YEbhVGeFNJ1_Abbl52@P@^Ojn;D4UId0ix zzPQ(Oh~RZv&m!#&i&OZY0|)d-YdZpzxR%0E?wE)Dj}Ux~q_6?ws*sv)1k2@BB6wMp z$75hbsJrJ0Gz~7ZuNMXTOiC%{u-&1Br{m##~*FL_uW**ryKXMOR&!35k$e?0+A)_B*rghWIK1;oi>PmTSuRGKBTbK|h?zgq z_@nJpP;s}Uodd~t%ykXQ`CTmX)k8%^bG^K#-k4Y=C!Bdfd@XXS#r)J*KfcH4)r!}& zeU|1Xh97dQnIh-R;(6EeJz24WPeW+m4!n#AWc1Av?&Ow09x^?;y`42T;gC#s}ntGvXgIHe^jJatP5ylK1%{d zh(G;B27XfC<$|JUQ9&z9Bh;vSIf1b9Cvkv({8gYy_8A=vX;_?F#Et0FGXhp+=I-VX zfzn(3;~ATeQqF_4I6zEX6|{~gf3c30+rrTL<{glPh9Q9xPG>l2^60cl77vv;l@Ot^ z-)K=vO8u?g zRC_}krx13`)HA~SFgXg=hs2NTB10MEh>sbWtW8OLiBK-VMy93>{_|9*Mt);Mg2r~1 zY_Q+*V!y3husgfi=+^+!9uA!_mGI(xxCT9@!mJ@@;aF=(V=3Jm0F{+5=F~1mx%!^y ztk{mRjp32kFCCuVi3XNMBDi&mumGO59l4<<(8QYln<0{fhE`2)2$GFFkBnAehVjY4 zcjP;}C6f4tz?0^ z$hb)ie=PB)5_MPN4Nc9NJV+_*AC&keyvJ@!G%Q@aPnyAYm=sNrTuFnk1cOIZWcNNX zqimt@XT^k!@gPs_61|t^J{&MT#Ek7czbL`H^ZmTE@hzxV<3ET=E-diYa``l}u@9M+ zTp|QS5YLqtDx>+t$FhcoOwXcn)4$^bO_lEiM)$2!-jk$ekbR4Dbz=j$vH1Hi8-90_ z9;$G}Ik)38!~Rn9{L)iTMgY?|m}_PG>d0EJuji70?7xiTT@lk5VDjDhP&|161hwGd zVC`g7Dc@Iv1#RoaLtyZ`j$ssudH+7bvadmrAds)yYJfEl5SzKA3PtLxEGRV{(h_`e zY`CQcD$R!qRie}r@MZpMmk(T<6u~HBj-;~-Qqj7vc5Vv^0bm>t*>qkMtW30_v}a5}~hn?}pxij!ixK?HexxtG+9@O9=q; z>1eR&>-YPq4h&IBVb;%q=w6cIOftGo88u>vTh>8&aU^?J@x#JrwJYnKRcyhVvB?6n z4ngzd@Qar1@EA}G+9*{F4>^EjJJia<&yIHp(k!e`u?w!b!hUiA;rHtvKc2PD0O+A6 z_So}CD1>|u@x@b7_DRR%Gz7}8n0;WLl*iXV85nJV)@XNTO$ZzxbZR)`fL1^GDk_`Y- zo?e=uMn87|Jw?#O;m_#C<~Yefq(amL@mF^fD<7an zxj&;z;zIa6bNR;@`e)P0>G2V4ChfqiwuRHxy40%>oF7Pp(472~VB01_XRz6jf|y8d z;BNlKk{=~R@QD@}@_V}gZpa~%-%1BfLqCT&dQh}`zj8Iy?E6}!xH84^GZ^lk1l&(~ z*8h(z`~9>gKNfOh*;C8#a@FVBN$IO_miZzMiWji)W*E@o3_4+|TuKR4bt zl3w7?JKavvl*tXj2Gou0o-cgA*w&%TV5BW{(GGe?aW_QSjWa_*kzI7_mt3UkBne;G zbvrM@SIjIMoK)&BY6m}7G;Vx-7cZ0hiv7dNQK3PYEoaVxdc0e}Nww_^rb*OHZAk_a z>}1o}BM^2x#l4#oa+K_&c;r0S$dFk{f>`DJj*LubnWa&#X;d zkc^Y!+y_iaE`M^Ue*6hKGC*j~>+w1(n}mVUMMWoGg;bjKW@Sb;#cPm1Yy&F0)a?G{ zJTew`yo%cXzKEk~b7V_$2KM?sW87S)5Z^Lmjn9|m;c?T_X!sm(o4%0L295<;Kl8|2GH-T`l99WoBs>}*iGI;@$?V2E6KYg#C^49^8eNlK zIATNT<@YIIRK^yNQ+A_m)8u8XARMZr2GgzUe{}&?oOtGHGBO0p6t!k=K3_z)GW+Y- zTX`gdKv(TQC@qu>{o!Sg1~L?$j`DvLdu+)B$=;?wiU>Aj{=KR})O-a2&II(T#1 z$tRbd^&A*{?&M$OD3xKLf`UND@@Fs*b5qCUgjHB)OaH&^*561-1MzVIN$QF2kSJP4Dv%}KIA zA~-bAF?&|J@3*WN#k94Elr5OcbCL%Jjy#AZ)Ms35lXGW>=mU$p zC6{frfeDUFf4l*ObGocNjR7S=u{76xsategw_SFXb;w`q?XN%*C8GhyDjtOUF%9Y# zX&x2m{4E%_L3Gf`|L@Vk>b5IN?d`At7+zaM!Lr1^(;X3<)8S$-4yHW&_b{b$22hct zXN%Q)KzlEXL~Xgy+6+V_B~pwJ>I5O#rFNFDK)l{Jd`=y8^z6hMl(o{If@*~@p+9i1 zPG=?@)ToX7@qI?%9mG=w$+~F@?hS6LlOB^{-0iZ5cn~=>H8jq+2vwtB!+OsTPyc9$ z8tK=*DSYrc{KAqy7tb3Z-AKn2|0^9o;NGs?*jJ~a`ruC#yS4Hr1wG=m73P^%j4@o=o#SMj#H-{=Ii#jp;E>AjI%)F_tc(a|y~ z5tXkjUMo@698tN2XJE#d19+iP(|URU>+)u1Rtfq^!cbhMM@mO9!Cnm?nLjudh|nB+ zPayyAz4&3)1i;bh=e&#*7hXJ+2d8YD(WAEbI>m!l*H!qOV9-)Ih6 zzx$2H1}|y7b7aZD9E(p5sXXw0*M9*?XqOk6Lu8@|HRm%Kf;5xftY@pG;n!}@Y8ycf zM(c#XzyqI+^lF6D|sPqMXmtC z!3k5k$tj8uPp_N9!>+KONK~a4GyACEukpFdW)d9G`N~2I=s;))4x>MT>5Lj7(kjxN zOgf#{CLU?E{w!;ISU!lmqHYL>RV}Bn%wX!oLIV~{WO0&nEanD{bx#s8?`R0AvKp5H z(pZ(NqI#^iI3xTfaqwkw%kk4R0LiXM^e2auo9O<-S$J^b9rztE*0l}Bs6tbkX6O5S z#A9Mq{ubN!s2yW<_bGqCl-^An$+kt$e0`IQ{vlvNaa050+b zG&8@Imv9EU$l=@kuOH59y15AlI@Crs6J!?~_~tlDJ$}6rBcaB6*uou3e7bRva4sAC z&X5Qm^t4+RX)pb4U+Mvm+X-|`IOCAa30oxhe7NcYV0iDskzeQUo;`nkZRQgI4NP9* zF@7PzKd}F*OrAF0aBu^%NK97=>Ll*Yz2`9CEa^36rc7Y+nzc|kmp|A5dj8tJ{}|zo zZ~ICsbT{Gh87kgk;{;0(=O|&#^VC!VdiUTg2#l z4?w=(IOibv(?<8V_&Z6JLJggr!P zZ#w8RZg25nRf8O&QArJG@{5N zc6uYr*^Y)EkrGE|`MVPtub;o>M-ZcRm2Vo_z3AZ*2o^OnB}0#dCjj+n=M7oUSL6ZC zFn8p1uT!LT{8*^~o{vC-o<)O|@h6uqt0=&5T0wAsaFQ_C_@%Bg&2}(~I>Iy5*K6lN z34ekLDUW6#{#T-*7w(xd8G_{O*i4y}%ZC-dbueiCy9fKM2s1TSH~R&) z8g=?l6V=beh~H^m+jPm8#PCZMj-Qe8S} zBj3xy3*_zkBH_PE;7%1eyEl;;c9N_cT*e@WXTO|*JbFKV9Ekc zITo!;SF;_ZmOlC`-(KK?FrDw(?D`p~s3*ssW;xVwUI$oz6iB25=!7%)%euLypypk> ztU3XI(~_N|#_30V#r$*ap~F4aKH~9U6&=SDhBn7yM4upM+`qVY7k~59HKZ8-GtSrJ zFU~Ep7?RCwa>q)}UkZUm#j=|}4a{9wQxt6$d~0x?!d%qJv7NnoL0%$AVp^f0=JfIy zIr7-f#|}&#_z@FInlapb7|^Nl<^^R|EfsB)H8<7)^VJqvo&xXjIPOOLxtsnSH&Fa|E-1L1uLo{G8*s zi6899o$e>X%ayqI(^HN-o>;G|1T%^}fQe|gF1#_TWS+!x1?vifFz(Un1F@xAwOQ7e znPee->!xZ@1*a1#P@IGW{DUxS$);_Z!LLd4HSBM+%C0r=dlI^Fh!CS?AICS!e#NKd zNBHnlLC1VkbVH!^ek`}u?n-<#`O+vRi*r=hV8wq# zd_YfnYiOC1{>S>ql-4|{c>}fM#dEP|0VgrZGY;619_{cWi<}h`O>6$Jv#dNum#ozxl(j3t z;QSD-3HrL3fKZ!I+0`!2u%j04i5#or?!}@>rUPLM1^oGJ#_@{H`EB?HA~t2Uov`N0 z*w1K>=~pyb1A!{g1!~W74PVcfCJ*x;n))*gn0!&3jVaEbpisNfMs0(an?aJKZ%ygx z(3xyNSk=4w>V@QDFihlgl+*W%(qT#ma9pb^zA(0m4LkG4Hh9wveE}W!Bd3U^wY!Kc zv;n7p`$Mq@s_+Th-bbLRW@3Y%rsM1j=E<)xF!>EjjJ~2#R|yOr(N5g0coGO24U~9a zg&5t;@d|`{+bqbIy8c&euUt_o(2?DwFg(xoR&LN=wNdMaCelD&1hG%+r&mD^Ow+&_-_wK1{BCN` z<<-Fk`cgRG__FeCq(Qs@B0km-So};6^K4NA8JT?Hb#y>;v8DI9Lq~hQFL{O|foaLfl{*LCJD~uk16gR7g}V2X2%Wv9 z0s8nJJS0IYai8lI?mq^9nURBoFcDm6fe#tqj-_~XeqroPqJgK0p%Mbz+PM0&bvn!6 zLRA{)`H0acL2=-HJNTNPD=9QktX8BrPoC6uljI;P#!hk9nsl@qFbr;XqbulLbyFv| z6c+;h@Xc4DLG$n0#1TDDJw?I9NZ~Lrla08KB5BfGz=?g1^d9IOyXUT1b0OG$ zSdA`sACo5|*x3n!OPUGTHl$nh@FCf?%!0+{QPfb7l&)1A?>8mfiee1Xq%08~z0|K1lDeMe~jt3H$ZKNU+tee_< zzY?QDB^{;$N&BqOv9ESS@Tr{aFD3jyTH)rQop>wv4!+2*IRhK-VY5t-f|CnZ6}tgw zDWxLS*Z$~L^_kRFuv=u1Ne@7d{p1=fiI`E0A~Zs;C|N?53ia~l8V6*uQb#Hp@b52% zc{cZf?NMj|0raQ?!9(JMjE~1P(X4ZOiTg_<-&VIS7T-vu1^R?;HFO1)#+J7WAbh$g z^YBIz+0~+NItyYYUp=-8A#-si8kI|KOX^RfzC9j!x+knV8S*{F6$Ol+Gc@dxSqsqK z>GSDug*$c3QS&#XHK^;Wl?W!wxs#XmQ-e|Ky)-!Viq+9@0_73Tgq3+PLh+P>50DT? z`ccG1!1Gl=SETn*16KJZF*=(#T^n>z3`<&xK$3wjsP;8B=AV~CDC(1w5wq;g9eSq( z@a$je6xvjE_sF$HW+Z5SwPH7V6g=wEaa!|ToB5+gTZ__QedC-B~ zRn8?d0NG|zXVSH2w0DoOwh3U_+n9So05mmx2-}7V3|ZJgh1xQ?wnn>yc>p#4n*RD> z(_I(`2n1~|QxPB*okMmQY+0@YeG@~2kE}V2^*PL%2>ji6D}A2;{t2MPOm`E(wPP+I zoFJ=E0!aCi9?UZY>MfFJgdbCXWbLgwXwJ8hFhh_<-NgI0VVQl8+gyJYzC55Yy1bZ>cQp0L0ca+*IFcDFvx9B=Zkl@w zbXA8`B&5E}rC?C_R`Z!1hP>v)4#}2|cvNf|L=Mi)lYO+|fEcOJHdk-n-E`xsdLuFq zdW{xiTOj%6SMi6|giUyRcg*>~2@%E9%L^u8CqCmk@srx~*v75i{uzt|*AW$b_B;fe z9(_)voTa2T$}z|T76|L-fe&#uZqTCQbbN#ZjcochHQA)WOf0VDDzHdiRO?5NS6^{b z$`c3!I|yR&05D(sYKMCdeefh!bc@b+@StQyXvuuS?@k0TxJ;>nKQ%r7hX{$$dv?;S zU~otPR~yLtgMjGA)+=JPapT2j>8)&iuCnucyap7A8Cj>nY|`3^`%RYDB^xXyzW*dB z>P%9f86ke^WOvUFpBn_?nziw+=7$24|zpB+IutaI#kKY{S#zj)Ew0}gP$7%{XMb4$dd{RJ}& zh76YCLiiBe=q;53y4u>dz8q`Ss4|8K6_G?0fMzR65J-EgS$&=jVjJtXZKQs>6TqX5 z-8=np<+s2&Aj~^%{6Mj$t6-dP^q!?g+GBqTIV*b!f^(f=dB22~LPFacO2myWQ|5TK6O*Qk z+2xNC0ZPUplBb-NK1Dc&6r!X)jcbF>nZf_45ceQ7x>1+2Cof8KcWa24{y0f%?L-mY?g zS99(&^wGYxrAd^-#p`B$>&^I4L=ZXCX`x?e3K#|rY@H8bn;6SqcN%#E?gYWC9(yJ# zL%Vica=ewVz3qTAqg8W(+-3O?YC=dkJBaPAoh#XY$)Znklx*-o&e_tVDk10U;G)Cx z^W)}H2LRyyfLm?2mP4A#Zu&gBL-_(VEfJ+t0Ra>JM|?cvuY4cL9=lS7{J)8ATJS5cY@^`I=c1bcLW%j2qJ0-4rR?N3|@u&*$Jt5;|=zD=ohU8a+EzIQft z^J(ddQr%w5;;qu71$EaowMESMqVc(+sjb<5Xae&)b`vu*Gi`SXh5B$oB9U91M1#*< zxbqxb1gf2V@;8J=2p?YVtKWTz?)7Z(c>A7oG5A5@p}((h|D&W}`M9=_^8qQbh2y|s z&fd?r$M+}+(yzK_4O9!X+-0F%9Y6Nn?A4mRT)fS~o^G!&$|yQ}Wwh~qnL9~R&3o3Q zDYk4u_fVRJ;5-Mb{(z!{fN{|_u{3|0_*&AC1!4EE+EreY6<;$HM$e^c*vZ!8#^tj1 z$zdDPiHF}#=bf1;*TmkwkCF>__RlqL>dbl=Dr!&BO#xffJs!WbN$ol@-G+Ybj48MB z8Tc8tmFhKVdAD5iGeMPHEvdvv@w)|=ExVjb*`%hg-_HFL`4HRTTPSfdn8bazpe!(- z9wm~egpPT}@E}+>grN1+YCl!ufuxz{Ls)jJ%jWww0XY5+L`Dt5iXixK0K<%#eTgqb%l884 z9OTR5*YbYNAZQflI)~*{;Y!qx!y}VsLa}`?&)HB-Kz^iHA24d)3!?*{bK_Mzz2?HV;%`RcvmL z8kM+D51BO2lY)pCwSG0(xSPt^KfVCMWhgktSil8miA3n~rY95Hfc&%>%+o%!7q;0r zTx&QQLpd9ICx_IdY3RhJX*#bWk1~++`|(nA)K8sKn>Rewq^+UdJ>N#UkL1ti<eNi?lf)SnroVw#sk%Gi`s#D%zKVC6CQs~I5W4#F{D8nl zVCZb#t=nCiCq~i7R_~VvKr5QqpR20;lw~x%HU2p~v<5UK?I#_c~42!QFa|9jrjnu04 znT7GPOgvq*@u?qmLnc^So}cVHl&@#C_!Jc7eB7&?{<4-){DN?|=5y$%)cw%yJVJ+l zI!e+iwODF@3hf_whcC*hB_(yFm5z>#nCw(l&%e|lgWHH&KMv-d2Xw4GapL&ABEF-e zTzw=ScKqQ8H6nU1*uU@Sjk}rAsdbuH(}M>|@#7ZbQ$y>=n*PmC0Lgpt64o7l>)*~=y z@BB*L1MLikM?xwyoQ6jVJVLCGZ=GX%F^7%&ulr59p8LH`V6`*$2Ot59$-1nF&JsnIfV}4F2KNqdNlclF0L% zXoD5PDi1W5iHEZDg4SD{C(9LOv6`zZDrTJ@=vvJ~m4jP;jI!nLlsUI7xK`rtf6I-@ zHBVKw-IpB=?Rz^Ev*^~GuC@B2vz0q^^yPL+JH${UOmhUT@G?oH^}y4OB=<>?`vu|+ zzYkw`vijl3+9$Ds%AI)ypR4=L?zn2SL3-CMIY#P)B-9;#8oeq$FocDQ)Ga*?PxjUtZLrmlt&;1D@-JxD z^{}KXKNIhSB-t62%MAu)ehzGL-y$|i&stDsI_biZtQXI9c_Cie(8>C6^f;m6!^CId${mI@t&aN$3MdL(^zgrtfbQV|$=#V^kF05P zw}d{eBKzPTWT8j7iWYUjFak+8+m{pvd~c2y4nLl8Z7p#ri#@M&0TZropK^5>&aYE+m9$@IDI$ zF?L%EP*d75xIE3SY;)}?jxOt8>6WL&11BzQm?&#Vu=XwZ#n9i38vPeWsS&dR&C0@2 zp=UlJTsXwHL1>T(jJ&zo#su;xh~rTXAGtnfNrf8{Bkth*6n)t>6>zW+{hz_||0z#U zn-?w;J+3M{Y52y-;E=`?T$ridK?0e)o|{fdgA&*KdNbm;rNw|2JTiXp@XORW>cO2U z!z+izWA4ZpJ6bpo4MgP%P4Pp(UpGbJ5+E=qVTO}XqYF6key1X_m14@8ARe!tara%j zog>c%Szl}dVEE}P@(LiIx;Xz3w%K<>#*_@%F@{;Oks zKX`uI*Du)loXx+9=`h`nuzfJPC-3Ecw9W&X+HFslekRD?3uN{uC1vHs0AJtibccFs z5ybg;xqZdvu4?V_)3cXcUo1jrNn7uC)(`Ae2X-3WA03p9TRmDSvK~lUoVedcUKh&u zB1UebWj41gw7cT;WYoyHJEeZSapwG6K)?UJ{xI4v{cqFo8 zZW~(Z*P^Qa0F#uhXiboF-}?ZJKfKxnz_YkivV;sOC~HHHte}I}g}8IBeXrx25v7LME`pV`i7n_lgVR56%($ z+NY2Vw}fN6uPKso6Eu)!gZO3|NOtiTy>4)E%J0Y=9{Kms{Fl&91V&ILbuf^u`uEm? zOY5>23QNK8oF4z*1je7?SEM27H7;fDCqviIQ6qjXt;0=n_*e$yjTe0C74R4bC-R1K|pC zF;{fc9R`WT^(?@=#d}|CEc55#XU#KlWY`$%729A37}7;mfZGBsyhoA|;yS=;4@?vL zL8?N?c_HN|r8;3W4E}l|xcY;e@|!q!DEd(0$9{(zeeU~^sr6vH4U*NhbZXRVS@!rP zmzO;rt{3fWXM8@ZjwZ4z*RsynwXHL7V!Xz@kl$$X5PB)ou5d7()!xrHCPMFY^sjmi z+D5Vy#{-kGSYFOvpEi7=iVy$OHvT4_wAiKMz~OyBTE9w4$D~X zR1}YzBC&+fUg9KA*%?KWM(eHZJp}e_jax{RN-o&q=lny_QGkEWFJlENRY*9E17uqk zsbRO4P6R)fzQ&;&!ge)j%vN}A98-sv2Y>rQ01aA=mHzocnL~+voorJDq1vqUB3{aNLGhKD4|Ghg1rD0D5pI!G|A% z9u71s5SuZvw%|s@r{@AxDclf|47w-@Qkv(K-YtM9npU8wsP780R(M*x_Km44#YP)TmBZP?}X<7kH>p zXK(*L=wHyFmhV?Z+H>e*bL==DZ0n3wfrv;g=-@Ni??FsMhR?^EJOjI3z1mENUP_Q#C~OFw+{w69Is(H(Vs zK~RD5|4`r`gQ7AJmyT(Isn8$(_n-V@!o^%%hDQx%SAXf(Y~1g>>Z1|xS5vM3^*dGD z0tW!8u_+LsN~`~If>zDBx`n*W_E7i=a4d8UbQEFA&X%sYAoLt`U1xnaOo8LP+ditp z1d-cYy$e}Gw}L~^0xo&O$Apo&3tIO+-vSw)EX^?h>U4X$PBAeZU(-FidFGWb7k9BQ zOF^=4eY6ok_`TS2#O;0q*90mT*$q=GjEAEm2&W%f>3>^Ba&~m-MD^H04v(sv>}Db> z9__Xj$PhnLyufaBnbowd4RbR|t_W1`9KJ}FZ=|S^^H`^VbI-b~)@gOuV zhe#iOTkGpE^uK(@i=nssz<7AuE=UeL2m&1<^dmL{Q!qDk!{xQ0&l*`vr8d@XlP2AZ zSo$u_JBst*G`-h~ zcGa6MIW_+#Sh;twz^Ayl$;_s%DxeiAuDfqC^M0Q3tCdVp=qcyA(Y~>N=&z5lGcTl_ z46k(Sr0`Fv1n*(&`*JOrXNv=!D>-5r>bmun4y5$Yy2QEC)K&Y`C+6k3bg+xgTYBSo zwT|_vN7T>*CL*bJPYm4{{_SpypJi32Gn~$H0dyuaC%@iRFx7nzMMwWgRGS%E3A3D< zNnn6@1{e8CRxWlHAcRfovpmLH(3)93t6?5wA zrR*YcUZ7|AxYEvjy3TQSK2Zi`bEM+tSjd!Tf67{?Qjt^k@%!j`SkdP|%^Cw+AI(H* zmLr3gReay|zVvn9Q4OV?-;ds1eUe9)W(1an%nk2SRsIe7F3T&VY>aC74lPWJtccc0bH6Hh8|%X-^akmBtb zcSz8US+r$IM|VcAOSD0yW1rW(l~wYx^7%V1{NPgKHP{!@b+J^`SE=ev%a4r=NfWNf zW|AYrjAjxGnoE?{0)4>V(EX_}1={4o+hz%k=`^aMssb+Y{xSMJ z@{H!dS;vf%;6kK~LoZzrdt|fhx-@dXzy zm7u_WU;*kM(K5C!5w!B*!E|%b;)Qfy3e3l!-}GjqH60585Hr=S=yD+}i|$@N1*1TF zk`&;SF-ISw&T8TKUql1;BNE}^CeJWoPPu_abmA%kbIc4KY? z51*FTU{=KaEf6uA*O_1o0|(|^Z{E9#53s3+A6|X!3MaM0hNA_kQBP?K6&AtP17V(g zkY=W`QM_Xo{pkrY9W1MzQ@e0x;DD+3?OKDCT-mX>F+~B2N^btTzS7aj4rO78R5@cUo&QBQe0{a^ zX7AWhtNAou#S35z*OrzAvsxAp+}3AwNKP#tVm4)roIc21ml306enNVG&hKIfG@3}? z01Th<7c5GNA=xw^jrkDl?XMIreVo!rx z=+`a*X&xW%34_Fb1P(0w3X8@8dmzFZaru-LVOY!#L**e@7~92SK0xF+_&HHL;{Lq` zFwe@X9gt>l+x&B|czgWEhVX$)#X}TOc#u)WtEKIk`RAQ?p4uiUg1hWf`MnUMR#%c% zz>sw=3+^}kZP6tL5Rr|P9QyH#Pi%oK!jxjPM|;6lKwI}c*P`qwlsX<03GA7r|H%kg z=W32}vT(*S_hRRQB`|(SG4oU+^tD)qx#k56t~*by!Lhl5TNjNJ$?$8yFz-asa|bo| zP;@Vuofov>1BRf1Lt%5zVCa}FXr09uaO&`<0^*sl#m4nFNR!bk7&2YgEJ;Mw?? zT0I}j26t#N88CoZuV*uOV8M6&$%&&$TQ)&Eg5F|ubMLT zOtlRBIt$!u^BLK*Wac9$Z{J@Lr2XS0pVU%>0Ak+g3p8UF>Cx^Vp`*mXaJu17-b)LI zE^>AhFwxl>+G;HCApNPZ;Us-!PdS;>7d8cX3R6fbZB@s`*pXrrXvun9r@LtGzlZtXvVtX&tP4&F?#l0<)qub{9Byl zIUbkJu9&Bt>*)pSU`Znp<~JUM-M08Z*OT|hQA5{rLHQ@0!9=fr0OZtFQi48tL|Eg| zUfUp~m9Qf0)7@`ZZR*J5jz4~pM5m-8B zYQ#KDjWnfLHX=&JSeK^0JZ2uEa0WYJ`54Z|FGPw;JDV@Ljmk09ZmU-D?PZGrrLk;F z^A->>nhQX^y%EyPOhl!iwG5;4kNUt~%jhPM!KTj4zbuq-!mN@rr*qoza@+3{&zHf= zibqj*m3pPjbhZu~-aim}rv5iuQo&aNXT$?3Q5;dBoc!`3ka$3M1xqJl6cz;JK4J=r zqZRDUL(CAQq~gQ%&c7x1iym#)?g;5z3KYPog9nDd!Yshz?itCLDbiOrS-=R5eHE-; zu1t1Dg^jT*7?8?9nLj(h|9LsXnaKzXYoXykH#s*Ov&eX*0WU~CSq>r=fqI67iB(Vy zUj5??D87qS7@6Y|IAwY$_9wiKUqJBEyVqXP1fV3s8*le~({B8L7<~R~Ha4uO7>b{8 z+o&n=s6Q?}%xaNpqmMr21w+|Cog($;u>b4%QvYjDUP8|)ca-+t#Js$246bMabTkdG JR$hTe{$I_|O3DBL literal 19547 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%0AjA&{$Sb@XT+i=8dMI+`dqbsbQ?! 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 eH4^d1ku1ma diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideVerticalGridlines_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHideVerticalGridlines_tvOS_1920_0_1080_0@1x.png index 8bc1be8efa95ee6f6fe1802a904ac599e9e91b9c..13b78df47ecc559e7a25e7caa7c475963f10c580 100644 GIT binary patch literal 18145 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 OpR&CA!xCAu;Qs?nuU1O$c@q=pcr1q5k^ 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 ONt3h3a(;0B@jn314<5My diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHidesValues_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testHidesValues_tvOS_1920_0_1080_0@1x.png index 9ff97061b2f05f78ca64568b64004907492532ec..577eb4043592294e56b82312ef8a52efd9e8c04e 100644 GIT binary patch literal 17313 zcmeIa2UL^Yx-Oc8AVj1$mEKXRARq!kq)V6H1Bj^fUIP)3A_4-^tD+!+5Ty6eL^=pa z=t%Fq*Ym~yUu*Au&OT$Gaql^I+ zS$|%awgZ7!Hk9RLbiBZ8=|pcibiLaIHmUo5$i9SLdw3%+m^BG;JKo@-7XEu?8S?PF z+S-`cx-B2r8-FS#q#JsSv~}sB->}-r(a2DGQ^CV{c}el{l*pM^9+5Reh&p?o;mdLq z-)-!OV4K%Sn}tfaz`)f&

  • LMGnf1ucJ)gACAnGiL4(h5V`1S+* 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 WvLIw$2mbpDkg~kGT;W4R;C};dlFG3F literal 17341 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 bc^$?tfLczK1m=Q29s+0!+v7|#w;TTg=vTd6 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedLeftAxisWithPositiveValues_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedLeftAxisWithPositiveValues_iOS_375_0_667_0@2x.png index d3a3cb6f63bb6b4bf4e1652796c7e2b1cc4c8836..abd85b9a9f2f6433deb9c7a53af5a3c33387a3c0 100644 GIT binary patch literal 61446 zcmdqJXIN8N*9Lq-7X@^rC{>41L_t(~2~kl{5m1rdMWh*e4+*g{ihzoM(h=z;AiXAv zh=SArfq;M@y|)Ai3EvLR%=13;zSsBj`|)`Z6LOt%_TFo+a<6->&68{TIy~IM+zU=jg7qc4ZQ90xMb!HL4rq^FWBW9e=LG8MV&7g+yw7nK;}P~HTdt?uXpC>r_S

    J7pVV{c~zQ;g@T;t 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 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithNegativeValues_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithNegativeValues_tvOS_1920_0_1080_0@1x.png index d0401758094fd6bbd1418d38a6b4ed8d61edb164..01a7f130c664a4507b51eb574734daeb92f899fc 100644 GIT binary patch literal 23392 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 literal 23293 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 DRx+J^ diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithPositiveValues_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithPositiveValues_iOS_375_0_667_0@2x.png index 71d44dd75c2e1c296c14f6c0f08e88f6e20f9501..2220543b51a1f68af37c844523531c7d78ad9526 100644 GIT binary patch literal 61441 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 literal 62526 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 U0yRR72>7F^u5&i;%#~mM3wUx$C;$Ke diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithPositiveValues_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithPositiveValues_tvOS_1920_0_1080_0@1x.png index 88974cc04a524ce172a4b3dbb8ade2d0c5669173..9afbab3d24fa2f56d3cf6571b4121dafc34688c8 100644 GIT binary patch literal 22509 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 literal 22604 zcmeFY2T&B<`XG*+NYX<1X+W8v_(0%2eRM-cklC-C3BpxIBD|M+f%9?1FW_y%yGwUXD+0*+wxIpD7VXdHhXf$u_{ zo{t6)z%gD~URLWBXu}t`f>xpQup!jv{Yt^B0_<60w}lTR)Xa&tTRixw?9MsuKGB5lP>ZI@-6XGP#@Z}|2gKjt zU#gQ*H?UZ(uRQgRjCWJy?0Kf5QUKra1V4e!f|XMli*%bw_%|&%)^4zwDGWk<>TN~N z1CpZ%KRn=QKWl#KMXA@vojJp00|8MfTV=8SzM&py>(OS^uWFXd$E2mT+M3x)uQft8 zc=sBfzfFc+_ht%9Gux;jOVSy^)9UB@w#j}!n@{KQBlx|em6bB-4ha?! z&~+I!txCEhk(udFyh=gM9-v4qOcG~4#G|hq%0M<&^V2!1+dlKYHf6|0^tgT2*HH8# z7+xw2j)Xtj^exV%6n-*cBSb#XRUdcDBrz-lQx5hOC-F%09+6%q4iz)Rs!__QOhA4r z4EJonmx)15sLpusJhQAI_CAz2$!-AgdB%!~tK#{1m1RzChPkij?=|R)1?$J%+Pt$q zR!Wv+?wE=+Rv1UyRq&6 zv8>ojplIWeZgS5^>;y(g-5oAGIwP)o8VmDG2H%4}S;>%xDv|O#ODGVXPI2Fp`#OdV zO|m`faVctDA%>8KZ8#UQ*b_JOAAp35Lq>Ku|5z8KEa%#S)If)Ehi%Nu{~3YEeaK6h z+jr%zF!zu1G;E47#()N6)gmH!7D{}+S*w;w+V!Sk)*6IqWrHZ&M-mVm}F z?BK$W9fUC=zB9Da&IuADyyeSqmHh9>Xw`k(3&G!H>zvlt*H={b7f3C2caNHMi3U9dQF367DKXU%jTY_b=`w9 zD;(jPni~$!Y;qNDj|%RFb!5A%*RSH~uo*coPTA9!P4Fd;FnY0Q%#+wxtp&bAFMDw3%hOFA)i%Kk(&rQ7>Oavp&c7UH(PTh;beA*!mJ&ZRGInXU zqF!_GUER(fJGo5R@`}vMZrS*G|G`5~(!SbR*9?)<1R2~91AFX7_cMD|$or^%Y!WW2 z)m*IEuaJw2tKR~;CJNGCTe`K@MZ0&E7<*o_ZffR#oLe%Zag(KVvpJXZv>O!8V7J3Z zkA$dXu%oPja~1CWO{I9iDHATJhOOe1|JXB;P&%X8tw6hngy3YiV@taXjR%CjEI(4J z3-0(5d9B25)#YxwukL3_?}GFeCw(`6nW_5za+&l+5gf9g++S&Ev-0{ZdGdHg_Th_% zr`m*dl3LI%ES(3Glb->JUnk4+9pJqRX)4<)E3PIG$#i;qMgF6Htp1+z-XkZ+9@{4q z6_%?rGSNEOTJ{15ccQ&Is9l!p$h}%VbZ81x`KlOA53JzlR|-H2L=k5b{mJ)Fyfng$ zu4mUB&uEVGbfv`A9ePUp*A0(4d7pT3#h&)Bd%oJe4jCY&)sZD+^6D~mt){rf7hD$E zVlZ$~44eM?de}G^_#9<#TOrq}A^1h1YAnMG)yThrdbp;4xX4lap~GOsjr(l>ocYk` z4ZZw7*I#ekV|1)f84k2;b8CSclPfJ|tvX zZ4s!Ny|waM!t?;C_C@FAKtk*F+U?t;GKsWQnD0fm^^h6<3VVfAQaP5pL=hd(Ctejh zxG`#q#il&H()6}KhtL04jqUs;(JJlJ19`~4cBXMgaZtn2umvw`Yzp2q&0)0s`aZx z8(G*uU>=oJVJejrXEmOeF05FfYK634jsZ|jeVJxXosH>1|8jWR37kr*fovw&{&gR) zi0L<_PAaIR0BdTHAnJ;1MSQ-Dvo;WC4^pspGuATR0@w1CIm|fr}#=77CLCvw_UW0*Mhe zSnF(H=;QEAr}`==c!cgQj&9pq2yH961ra+^(GbX5!eZ$_gaZ!D*A~Q%GsyL|evH=L z0gFv)grvES+ib<|Bn* zB7}WI1C(#66c?xw-ag0TLD;Bam-0nX<}*B9vAXR7XKCOjAC9RJHreX|@LKWaHq?Gz zwk7f?#lV}>L4*smeU*{UW-PsG*|8jP;jg@nd!2jlsS2{~Vy#ZYzxHyu!?MmdZtS|2 z%aX0y?^?0LlHlCWdAx@8MJlFOud@3|tI1sugVU~C2W13Ztj|%kjH;jWvYGO7@pbao zNGm@1B>0Omlf6@hltiE1ib5#Dcf6_Zqf1L+-4n?IgK`z*xjF}1HJxuv&i;ZoB~=W( zcZ)qG$!E2BsMG5a92}HBi|VI#+RC21HZR)u@Pn;g z9Pt(0_xeV-$6$PB?cB&im{fBg#NgSY)`8`5qFULsu^YSFK^ZCY;#;1xrfcV9c8mtY z#ni$(m3*wMXR!$QXQ``^^z$!bWfK-D2|sm&aB%5HT1+nHySgheX-bBSa1-EmzGYHv z1|Et<>rdL))6b`!ItU#qioYzYHi|D$YN}SdiyyRqML1@1mN&hgp%*7Cl+kBU`tl~{ z;~Td%OpRolaPc~kLkrE`miCe-jI;O47?Y#VYLs=iJgt^_-M&LM#+CYtMq@O#{FR({ z^b+DHR@57v3qHCV4nRFf;=PSN3tIzY$|o#bq*9c1pBv{E^*yTpmh>j`Ff_2YhUIjd z;i~y0AYFO~D>PgYxoY#WS9#4*09q%3qq1)`UfR!QQrR{dkx7gQ&9TV74XXBi)TDKG zg?A8YW+{VE8Mn0dJF&@jV-sCAj1XnB@?Punho?#4aQWsl%H*mwJ~9ieJ2f_*m^qkh z>P@yNF!`n4m{hUCmqpkV?7vyUtEpa{KiHb9tossb#`hVUise?6w8Rv?2>7M!f9 z4B~@Y$f=={5(wh}sSHKf_Lej-xVgaL0maebMkzahNwWg5jtdg2!~;FkH?u zQ@=Kvg(rUJ-OU#=hj~q1Uc8`VZr@=lzIN=2Pd?8k%xOG%LEA!QkL#$%-1~gH+7$IB zD^L={_d!ioV3kR_fW(dPhHoL3R1e#(G74&W#5OK|NP=6P7+0`YT$QTrplK?|+XRkh z=OstfK3C_73<-TxtT6p-J3{+$IG;U{?fK)@aCqD0mY$0$s?AAc%4YD+rW~7b+QmV6 zXy;)iWb&+e@9X)ge>kHU8$DXqfhf`CGnGgGU7t`Z|Gn7t#cgv!$Dp19)Z zR$IK(JgYLDV1*smJhTH&6g!mneA8(EVogypLiuBZRGcZmiX3Ef2^KNs2))Ao!hgs~ z?09zjOIVP=o*{U|C&``106Y>=K-a|zqa2D#wT2j2dygr;OneTOUT9o3Ry|i8B`lXZ zWp~++ph;oq^Ca_~NxqSnYIBx&ZoVCEhE$Pq6tko5Xw8jI>)IiS6arq>9k z(HDo0DMT=^(tY(RQ+Yv=*2(7fWOc5;MCFi16AM(L5h_Ub$+O1+N~YWCZtT}r#uEuR zI3C{bt~NchaHu@v;cb)qZz?+;(1)F&XtssLOR=d$7&rTB%sZ{^+;LE8inoJ@7<{MY zt<$B=T`eGZQ?A}bweuFYUj52ypa+(IVLqrs98X^J-G)Y$nNiWyH;1GFqBtjJqmson;C;wcl2un^=01^06KZi&V#0eTS*pb7PDJ$|1j^Hk{RJPE?R=dt1+ zeJ)fkXO<4I!ba=l03k$wQg$7Qy}`{lK`Ya=Kyy5%AZ6VCOSabaF%zt0z(@|?Y$Nz9 z4%MPTIz<(Q)o+#J0tU5Vdb?%4a0(vP zvG-&kT_GE3ToDPFI)fEDVbF6>+VUYlOXhZ>;{{pKp-yZUgVd%NCD>}@tPR89$i?mOs6|y_Rm7Blu z!4fIFCJza!euP^i#8$mY!XH#25O#xv-sRXw({kCxU*znL{enj5v@KyILE}UPf#977kb@> zSDr!JI|>zD>|Mc=&7gHG9N;S}6}EwdRgc{#Fs2)Q5+T3o*0|d|pmj-zvg}D=+nu`Dnfs-(y8-TYp7l^TBgw7|bMNi3kc9hx_-jFcsvuXXSFl zK3NVEtOv@E_bwT45@uVvZ?Akl#Funb1<5rOJg)kpo&cZPzx79trNYU=;>7&esLfCg zow7bg14;16*$t*oPJ}$dPo#sa)qEd8!hF`h35BV6J%i+)mh_h@ks{oEHg&%Z{q39^ zN1U`XE%!s=pB*lD-pmlj`L@qds%a3^pHyY;05QtFZ`gF@Z0-CpO|IK!+&arjtb%#gbp!sG&{mC5vJ-A#~-!eA`BlxO8s65Hi|IPygSN&-) z7tAXb!5K%y$haWelW@k^R77{D(MLvK$VDYgTrW2i9KKCgC90VF?~^4FnLMQ#HWq5 zP6RSz*m*rWRyxe-0euVKMImEucUIf+4wv6r4pAseuo9h(pcc7x$5b-5$gLW(QMUZe zs<;~)JD+juO_vt|X#1pRI}w|vf8ko^HD+gD0f&Y+pKF{3w_^~Q*lI_ z#kq%C{)#vRFXm<&>?^xlu>x2<(0aRf$Wy5rk}@4RXT2^ubjp@T#J@-U_73={vr9TT zfen_da~LMuX^QIZalt{21Q#8Nj*H79pO3i$`3MzEuud?a?G^=uvMC1#yh)$cHvpum zxn#wA?NrtC)R-I;e1Mmgi9H+D_jWYpO64IoRS1O zU=qMW>9IS=31HARDVUu~A$)Yvsbm%&_W$Rxf#+3aFtR)iMk0Sl1H= zHLOnw*%*$lqF+yf4_A?cwYxHVhc+Bqm32$uj36B*7fLRt`#12`zX(>H7nR)@>b?eH zxhW&>3V`@X98v1ZNE6$Ka{Ud`x=i>aj%-=$zYO~wOT%m5Tm{9wuw|J=e2#`Up%&-@ z-0d{@^UfF$)iNb&;NA)f<_o5Xej&tZ7`$mTfY|Y-a2VXzQ3)x{#;K@@2L_$t~Z5g1CAQzh)N9h640ibiMy2+TSe zU((S)kzV{&vd&@gS%XJ7h- zab5*J&NJe~(e-#w8vqb9`A$nDW6>;;E1X*tLbs(s8_)^?hi)aJ-J)2uab zx!M!8<;OVIARoL3lX6YST-sNlWo$FtSJST!Z=>Y3zO7s(7XxoH zZ=iH~Q#f}GP{$o=$3)Z#o^D%^T)$p!S=wbB6~Z3||6!YX_nS=+;|kHTAb5!-_j~VS=X{pgPlBwVSh)UzMaHMYWEee8A|yAO zAN?tY4=903a9n5tdr<&PFs|CDtV@mJ2akO77kpg19Cyi^SqjLNv3ZQLY4R zp!ME3Vt`vS&+_vE#tqB|Fdn^rYSd2?NKMG&)mDO3d&UU|w>?Bg);??Zv6=h zjE<7TkqX^t{ zN_VLLQKo3ZM!D5w+Ch=j?oHSgj7%_l5LbU~zZ=O%I9?;Ue#AL?AXjkQ z@tS=vuKb0#L+$ph6*rlZmk~W(#an)}9r~X~-OeYiJUb`u`Ql>Hzco7lAd+IWzn2@T za#cs`l~>#1xUqhFj&^S9f3#X0&`* z-1nA#{B{Nw_h&3yvjfM?Pr)|S8Cd$S>22Aegk?BVN~4DL)!OD>Mpkw<47gGU(TU;% zSf7KXsWXD538m2Wq!X%@hUI3Ugd|HS%?l-zCiB|K5%A)`mBRM%4CAc;d)0Pf$Nu2$+&3z@SO-@lOsNJ}puBdPapto!H<1n0&t~qfm=M>#5U2`2l9~Oi z-FoeeJznnck-wxN=+k_`Y}Cy&r7+(N!iS{3_n?t-{qJj07@PRw5PXRS?iGD`dNQ#G z&AjitqJw>x$5cJkz$4*6U=rtbRAQOE1BB`_f>FK5W}=ey>OK2d_>awJ_S|V;_qR7X z*aSqVI3@;TU@;D%uqx3<$N2Kdm-W>(D))rl1z()^Fl}q?b?LFpTF;k26@Wq+NE&@Z z7Fh7Bu1hQa2FQ~zJUhF6=lp~Zsl)uFz&LMK5aCeN$lKdE72~3Lns)%_!(bqBB%=8{ z3cLzbL^ds1kRY~Hm677SEI=3tz{k;bsf%f2T*0fJ<6ha3pB6u3*g+@@t3>}(B@SJU z!$-H7Hy>UDUsPuROhH3nDSMs>FTr;rWU*kAwipEL)u!QRjXX4{F0w~+IzBr2n@Zz| zzBi$zEZ1mE@u$FnBow=GGcgqir1Pn*V}Dt%%zx>5EW9b=J!C_I1D#VhU%v7t$qfO5 zA*2XP*i^=a$H;S}mMdl|JZ;i;fzzRD)*?%5MmIUZMhz$phR!)s-1q9k<^~dCDkCj% z@FzC|I6k|{jlwy>*#{675sH)>bVxuO4Oem40}P2RPnaLPra2)AyKM zzc+41FKML~q+sC^jven2Iy+P|q(D#HV3V}&!U$TYOb4Fy5KMq>X25m|(0Y+<$?$D* z?aRj@dbmZ>g>h*t>jRnhrCTPRJQ|&O|5va?E9xK0!V$$xwgpcMwR~$+J}Vg%{xYYg zVpWrM`uSeX7Qk0M;=w|z;Q3GXI1gnXj3DzaZ0M=-B&A5Z?gjSo=4tZdH>FfOfla{5;(9+}Kpz9>{U)^h5SlCe4sip^ zp5InH6BQsLBxKb5n!3L)WR{xms}7`#f{F0m#Uu0lc5nGL^a9fXxcXlfxXBVpjau-& zNy{|qkGuIT8OS_-yMH?g;3&d>8lLS)1bjWnGLZctc!W>-pR3U5N;D(|?H%n?JQufP z97KP;y!8N&^xgw)PX*~AH~a(0Q0m@VqH`e5)&9s+-H)~u8SIC70rV6D`V<+}pQT&* zUCY+D6Jil$=Zh@4u=FJs?iQn5LIaUl#7MfJu8xoZI<%nk_q!wrZF5j8BDcwHBn%!X z9Lo=w2T%r2JfjAk2LairtrB$qYc>2wZWR;7@@lTLk0FT946Q zRuB*YAgbW}DK}^q1V?uj&N2(bVgaomJ$(;WLT)+QTj{^Ma(~4=S+n>)@ot-5Sy`I; zm(tTGZZYt{%XH$M@#h&C8tB45^IvGBAqZl?*n5{<9o&ncsl)lvsr}tP{sa$YvhkBG z9dw@hh*k|m^if#=WU2K6Cj9W_mwHAVVM}cF0)=*srxxYYG2!=dY$`sr3(c}{m!|`0 zi-d`JcJ8PIPR|TWmzRw~!!3BvIDoGcO{ZSO!pUi70r0u-CfS}!z`n6Gc>_kzJbNcg zX!?eshcxrq8ztoXSir+2AULA9z-~mS?@M{+ug#W7knM>KY|0{x&Iwz*dld*&_*fqG z55na7rG<|iluSau7f6M{FKsx?oyrQgUz;0;zm)T2f!$D1X%B-BCkvAxe7YsOSYzOq z>I&c^fkO3|MHCze$-TWW(bw6d*ZA1WA85 z4>gF8B^Xr~W7C5zs;VAd6ikfRBBKV93Q_<7j;25eB|Xo(cy7>!{t!;X2|y|c88Z3r%%;EIX-9N6Xk%~H=l%BDwI*Q8zv zd_+fv19-Xnef7ppbb@0vohK?`74QHeAitPUCq04ex_Y!+e<=?zzqCz9>~YqRLE+#} zQu;ZQj*i$>0dH+&0NEoFi4ik7RG{-jG!uA=-bri65d^y{ci01LC3eVbdY?FF+xUaH z$cLI^&eKJ1D6-1M9AY3G4GSPfSW1M!dBj9*pvbg5EqhTakPgCeBWs%7q*kqF-j^vM zq??%YJ!b^I@fSYUY>LDd8$0OJOh_n|n;>@AA?%b%x2 z2Rh9>Mh4E|*G%i#3c|!=y5_Ijs}&HFYK8GiUbfIu*bW-Nx(F? z$OnOH!f)AwKh3b@?>a}b%g2Y(@&>$!Yd4R*eKw||y_{Xv)qz9GR)T}$kl%5#JFhVc zfcH^m4gV2!rjAm2gZ-4@o@df-0^)o%JGK2h1o@|OVfHigecKiX+PO*889F{knHgcz zMLPcUndJw=^ecxveyhOlYu(}xiw6bAyDy9*2Dk`n>M*?Mbf!)k(EHkVSMtIS2y^SW zzV}*Qd9{!KEU$B`-tsz;$ruNAs#(1wOtbk~R=)7AQ0V0PaX<@>b6yurhzA#M8J{`Z zsQO-Z8A;8gWE*sGNEMQ=xLvu=MF3mwqc!{~?wM}=il%Gw3~!{*%){uN@-xy>vsAb*c(4f^W4RD)cS~6<8~@a(I^MVTXM)G zPr&D;RD~=+=P+egRQSR3+oL?lu#vB&rH9r$GfQp;0+%IJ{Gog`;xFCI4jz}~{lI-A zT2*nt&}HU2QII4+@8#=%vR^}0n=ip2PU$5TDNUm=S-YPGijLT-@}9mSaCpdjHWb*u zUg2(`A7}yw=td&%Bmo{3X^JfA54pD7YN7GBZ1P z&v&t3&}5f93~Yqwkopo;t;7m=t?WZJd>(|+``{hSx&ZG941L04pv=HxxFvP+lS(S? zEj{GVS{+ba9~J_WnOIW4shBDDBW=*Kqr*qS?V%=1ZF&2I0>yin?rq$?;c_AzjvHkC z6pXV1&+B^TXQD1lSgEbKFc@mc*<1S;@C8O6Xz)*QLN$V3F3A-j?u~InHP-ZR)RyXr zLN*Qk31qXOd4osoj4y%s(v%NGFWB6;Myd?vRg`G|xx#FXz`!l}P)npP(V;Ylb7;FK z(;9$XByOgIek?uxpbWTQFl0l#e^3}5FmJ6!0r9EgNOKutOZUs0^)=&54-j?zP>(9$ zvS>J~t{;-d2J$YG1H03407QV7f(xh#WZYzgP01~_vx2EMx@E_sXT*xxX&RokD{k(EZn z14sFR*OOG^A-OaFoP+V_*rEdlZGd|)k;(*uJTW5b=ZL^pwin7skm_Qq=}rDkYSpsH z1}%Wu1sIvg7AXU7iIkPFyjqqI{aGveD1n$CwogfdSeEZ0BE>C`+z)!p7a|4&Y+82(rm)-fhrskKv2-R3W_AZXZ@3m8CE+l z2+p?~__tI=awq@>OaP_UThC~sOY7jcsp}n4JWmt>l%3O;N+T=R_>%iAU{L3K#;rb=Yf&!301$(>9~vJUM^mj6csTOs19VKY2R% znMo&97i|CGfSAd>0q=rm6Ka_Ex3rr718Fy~Us>)xUE*>sQYYn?epI608ED9|D)n^Y zFqRCw)nJJw6zwZwbt+u2Ihfnj$vyFQPO z>(eIm7Ni;#kFUsjBo3Y*7*h=AXa9O7ZeO+kWp1RD@!*zas^&W@W2e*aIvbu$bQz&l zpC*nsRQg(0+>B(-4fK~CN2ZQt{9IIh_cq79pAhE12&1>X;bli@FhZW8V{kOC(qyIc z9Ltv_OZ`B0B|`&v;igZ{;a7`h)oTqStNMjU^MP|NrfY#3a=trG0$w|x`vWz?2juit zWM_f+ihd) zLCOJKEb4f>vS>XDUb^p>U~Zoa5I9M+zbPZd@?wAcS|TK+`1qtn32Eg2$hkY<=(X)v zS`viwKuZX~L+x7r#2}X0aXR+L0g#PDb`nRVwyH3@$>~kzuUZ(QDQ_0dnv`{=+1!i% z)E8KCk!s=c!Gg0kLFYm&D+C@^Q2(wMzS=odTJyM^hM6a|v& z)8rjndcGwi(m4*cXRPf)E2WWfO^_TJOPG7 za&5NcmK9~+A0s2;b6RF=wrt?mL&r@sAPLWW-q|m%UtKb*&SVuZwqXQ$Uq%CjkT*B4 z;Jdyr31W2a#}yWBm1C*VP={W>bbgOKGHFW5cmle?wmNHSrQXe)-vS5M8)y;L#5kgzE{rr?=c8P8F`4REB2G~6c zSXB>}$R>rb}bY`NomPCOX{FuiZ5`bg}k3Z&0hiu%D2P#t%Y|-AD zL7xCjObR5v+k_;JThlBeCF`dyZ-}#nO%;@p1aW|t5oRQnB7dTyGP3eKQa=i9dsl=g zp_l{VbWrxdH+2_^l9`X9xK&pcvO4;9S3J^~+8fm&Y$l84aceQa#>Vc;-_il8Ba8*n z@yF!C;Fz_U?!f94$OwRY?*Vzk#1%mKsUc`Cwo2(ks*SXZg8Qa7)HB`)yDlTDKsAFoDSv-AaP;dhy`YC`~*+9X*H~(}XY8|n~F=-&t@fZbeMeu*}BCi<~WE zyU@t>2B0+(pA!YAiG-IY;93W{KLR}dBAtmQl$*%296NqOUfSwuFQ8-)%Q73F_LL#5 zP9Ti_^*G0Q;+gL0dr8K4kKd& z_S%YVgCLWyAd+glD|t*Zqz#a$a|K~iV0T5Ynb%wSmrr%Hkwzl_XHD8B9UO63sgKQ1R@Npct6E+Z@P-d;CONGami0y(j5cOjZUvZjdmi!n z?b4?hxAl0W5CObvZrD<-+E3c^8ej+szGjKy`o{Q+2;c?G) zgjnCNU)PlkhsfWQiLUoF{EhmIi@!Jjl0miqK1$wEE2(&m(>FS$J5rPV09SdNFW}uP z>$}%5Wsk3AUCLGl)fndjYR!5FXrMAb;;q;MAFDS#+}9R)q=EhF;;Zt6TzQ45n}KE0 z{w(P4nO+TQnvJ85FS_bmPu->kw?6^1Tf8Nsk!R|Csw+U-Es|6|s<6`SM)0 zli=6!=dlahJnpd}vb%3b>BB1{rs@s(z2soPevL~Sf;`1?xm%*1Bx6)&=L|Vs2E0=a z;EX@Btc~QMCUr^kRWYu_Jal~*89ES1_-C33UCy!e1}x1)0l=c~ zS)3q1XwJjD(r;X{ReB|az+#3S^GC8NctBQg@)3vr3sS^9AP-BRT z4mF4B$RlfeUL2auamm~n?!8{upky{s^}B@$HjoR6wzNu4TufanrPGcAEqS2hQr5P5`a@$=)bahgFLN4t-dc(AM;|;o4Srqx41t<(Zb9`n8lu))+X#*@E-Ha=D zMV^$(f{%Qm8F;cfhV6;?P^7@iXPy5dla9~3WG2wLbRcBoxw3UKvEwZ~c7SXBj-0As zcUlE&0GFKOkvMifm;|;H6}}b$g%F^(LKvjO{jE;3B3|Hnd0{ll+E@ea)4~wYwLkEW zTG!Y5ik(ml48{%ge`sx{;>H<1^K2uIXlgVf8sQ2G^^185!SU60{&vd!J z^QcU`w;5L8;$b8uW$T!HVvxx}#7)I~<7>l1_yZ0?h6WD#cM#ckcRYLOX7U2CozJe> zmb<51EVeJFE~g{}mnY9>Y<$Jeo$7p#PPZMlje9>zxLEciwcdx5RZX5Qr(f?rPX0;g z&=)~V-&0hU_t9>Az*xB2F1_aZb@&+XuL-Iidi7ny!S0B0r=G2=A69}tyL*+W*|*kj zQ#0O|5^iy*_-IE||9Zf-k4(m3TW@!rMJQ=3Db9u<+}uT?(rC)J@F#)dWQx}DdDL!~ zK~{Hdb7!Klpagdd;j;az7M~uo@@Vtzje{hL>sBRquR+n|u|sFNvH7PL=7gnT1vJtX zM{1mAEt9FY&9p>X?`QZn+p7oSfoRjj!LRoGyRl(ls`UU20$Uo$&Vp1R1_2~gixg?% zggx648iK(F$C=$plf}@O795A{e17ca5LtwkVK1WL>-PNwVw;S+xrqUi^b{aQLijT8HsGdBxD4hJ z*9xqg2-$&Qgdrf4g6oA5VcfOv(CqXqO@^oq3s$`ETuJ~z*hvF&iV8Vn!+c(aVh{x3 zgHrHdo>fzX?%<8#2*fh;wlsbh7KZU$i4MDj|JB7?6jj6l^&P>5AAD;RQ)i{IvC;!& zmzC_eGb}PbBwo|m(r$4l!euhYfn+lZ*Tq}4Ekf0vKTGtAO!nEIwu&7r6xc`a8af{P zGAQlROdlmHwr;J*^wmpu5T*xgX+^fiXOCtXxOCJ;`h6X;8JWB`e3zWo|6u9fi!D}d z^DSOow>AmQiy%cmiNV#BuG`9$S-B1B1y;MpUe}}y8q~}EOWF1b>+SRjzu3LMz3`dZ zv9k3$+lnjXHM~923LcVMGYPhpreQ)AwBl5k?^T;CT(|k^wey=?Bi<|Xz zCQhBAG|7Iu_?2lJPRf2LISFb@_By%9>+LFFl2>b&>15CwpH6XqGQ^a3a9NxRji#D3 zA&!ynUFq%>@Z9OXKOCXAa}3A)^>TbiPB+$=eOFHRf|}o07E72+YoGjJK}znF zC|>fALZj-O`TEje>Uge#yRR!dqaJHQh)-wz0mj5qAjVQ3T$35gCY+)1S06mkWQY>O z-a=)kO?1n8G^p%FnwF}3-i__JmYD*NoBK<+k|=gf`9T_b@C_x3S#awm150a6_Tz zr&JlwEr;(@R*Qi}C3BL50mm|kphpkR@1LV;V2dQEtWCQ}v+9fa-j|0;Q*OqSm zHliog(_$ZiL7?$H3;*|s;Qu%R2nOl!rdV|hQsm;w9l+n6RV!YAQO`0yL<)R&(^hjS zOlAi9zgx-u9>Mq@M-1I*VxQglN{WOyiircRT0u){{}ID|_~oKmn04y2A%l%2Y@pwI zoCrO_>pzdU-@bz*D!KZ5!UX?$!vAkc{-2fn2P?S=kF>d8y!b-@Y<9#UVg0M*{TN@> zi-h~d89|Ed1?7(o&F*`nYVC*j1)$G-H`Y!}MHDfD7l%q1;p`6BDE_4&^36*Mz~ai} zE6YZSkQC3je#v1>uszf#`)!Qezl~8|;)PuSBYfgX;g@A1WLd}n#SOGuF^B$ks{wVr z2^;KLcde9h7mJK@DVW3u-eQSPtPg8!WH_@p&LxKZf5r!*vuc;XKaZDwzm@))Zr)%? zYhkp>KFDz6r$##ol62u^^(UTN=x1Y*qMu~;CAA1G-sU$^x8;qHe1>FD(C>)?FwUV~4nX2AgY8uRTSRY?2wY z@qNJ0=&$**{o7U6yW*}$Y7|1RlznJqE}jXx8&%rP?b!r{+PLq3vl6VZ*nGBF*xV^c z81AFkTE3&gB||DvFgfz-SHeW=mW|c?q_cj_#f3}iTH(P!x+F<`t2{Pe)m%i^?{xGc zufgjf=EttM$^_l$N`1$%4}m}`%-#l_mmT!uJ-cdd z#zpq6ub+MH?xpG~Hv!Mdnd~*6+oO2-bM!%6gI4X_cW-SGi-^p|Pt{nT^B63LWhbUTHF-0W@b8Hyl zLnVu(Kt9b@=#D5ZtqsB``}Ule0gMtR9{+L&etN5lR`0jSBG!KM%dp)maZ1nnvP6bdpJ zqF+<8)Y=P1*KuHA6v_O!7ZaT4yLNLhMw!~1G7fB5a(?ZG0+3?jPtfy6eX&;X!G=x9 zzYGn)C|e!xG6H0=4RJtw;Q#8&lBBT^7ppH$_dXj+jnju!O-UXO=P<$TTs{Ndhsv_y z^9JB8g0-%+HY*Zz!M1X0h+2lxz#QI^ukN=`Li7oLY|R+6!$VIWNmv8Yst*-2^a8*c zrjlagt;T?P;=JN%n!lRtR3qG1Pu%v*^XdUD1H7lVYgimuoKtjIupKH*s0ETDiezTo zXs8Y2>i&Tw>!?-#V z{>rCj7XXyAr>NufbKVMQXdn!6Fxwxpn%O)}AMNAHAM44;>X|h>HjHEvQ&a zA**j4nYs8`o6pK;!?KuEbdzWF<6Q@UV9TJS_Z*~=z`H!K-e z@J2bt;ab9vyL_Gjv_FvwOrb&yr|i;4*kQV6A00Vn&lG3k?(H`9EHm)=#9m;`;>Pnx zJocgKS*}n2C2@d^ZKE9BSb8#K@p7n7Cgy&xU7r!(y#5(7zC80p2TZ@jCdICN;AxWZ^V-@o9G*zVYOt{^yio^6oI-FzE6 z{AO}Xo1EQKnHnjHdoOA_QVJs(Y-%EC{ntI@hUp*WCw8=D1eu zxs0x_5I;|Rkr&dl3lBz)lBE4^Tv9bpN>FM^Z(d-caADhlJb}tFN81fP=`ry~AJqgg zVHeyl@9QU;Zr2Nwn&7}LEX^DJA0&PBIV*UoJi&ig2xUc!2kK4-={KtBYxv^LYJOh! zfbDg9N^KOt6k;@F3xe_jYsp~N*Hj#bX+^p|b(oSG2mCjYye64cEOQ}MC!#s}FxDXo^q z`c$3ps%nzX4a;+_?FaU(6KBjl^w`*ijnLTNId27hAAPOOv_8v$;kzgv1fTd++WQMH zR1YFF^$bT3{3?Lfj(LQ?(kn~Hsrg$_ zBe)A>1Dbusz0l{>IX_kfdgU`Kn1aT%l1-#q4P5}0L$GrHfd%8f>4N=>^ zLP(?Pe{x1z;{1P1F~84hWlJ2@>sj75SHaZRB|A z*T9>ezy54j9GAD+nV+++TylT^?sS`LgtEQ{Zi2C3%GXsw|KXJ0T@NoFJ&}3jci0jp zRjkj6b%bD9ZInNDnW9lSZCjE|(yxq+^o9CCylG)sz4&73t zkp_*rnr1tqbghG#?bVYSRkZ4Ca&ZAn*sM2rbXyw4ervpC$T++%?d=rSxwidYm0pbG zVSZpd=22WNVhM%|Cz@i*#C9-HeY1P%) zvY-LO>|fTzBn_0jn9!Cm;kx;P55R?G&E@~jOb}|LMn_EO%l2a{GYCS>+wKX< zixr+%HQew!g*koS6aund)2HQH#D|FdY^Hj8cfk$QY@@oQV-PCAWUx-eb_tL)8S|en zg!(vi8BM>mm|!0Rkc@4`sZX&%Bq2+u#n`Aakmtyddq25mcjX?Oa?zsaj4Z-($@A39Xgh&)adXH6h!f9kLK{c8K(@nq1bz_5SMi9nX+mEDob-Wu zp5I8$kLSxTDqYYlb5#962pK33<9WkK#HfPUsU$@NKXqzkB(2f*IwSt=Vs;+{43fZIvB~V6WgXlGXyRg0_gy@vy$~DC!t`;sbqoIm%utsT> zy|nk~4s~0M5(F!Zr_W5;^F$+K10_Jf;OKCVW*4j_3mxj#;mD~Y)5~sF=@IqAVc@Yd<=UWHRn=+9J-klPGnocEU z$-dN~&)^Eb-cB3La1wxc?zXfKRP?w6M^B^RiT)&jyKtZyWTQOPSj)N58|-y9b{k+v z%ToR1p##*E-aQQ0^CB#o*=i_w4f1@{zp{%s^`vhgH^==#^{GO&fK#V# z;d)CbZD|G&cK^}fUn0*XJiY{F5ym5fK$GS*S9v;0nC2&4{xz`>oUdUc=SQu;EdFp4 zzF>2H16+yqDar)Wf~~=kM>$>;B!q>PDn-6}<(xIJ9-e**YFr@>QOGPE(*{LHAaa`) z+S@`E|DD6Fo65m}=K6nfb_6ma(~dxf238K&bcc9-4t{g)ntlbL@VJ62d%89~=~)q~ zSCvAfC;pn*>_bFmZe#ZzfA_^Dy$D=_<7Gm*cr{#;b>WY20YUzs z3r!E9tf0mvPPM5w3s6|t23Q;aP+=Ow7d32Zw&eERt3z;)&X_vwuGsBzo)eO z!>NE9^9OXFEmKM}o%G!fZl-lGH z`k$U;>cGV{BXE5473I#N+@XXw1-}NLLRKaUaXzjSuIp>;_xi2^-(ttTma4jKt3O(H z+!OhmhFz6~8t-?eQ%hwEp`WnIex)XP~Ks5B+c8M8Q{YkEqJ$JK!kGt|y0yl7^Lah%D?o76=(h5lJW^))< zo6^>(&F_il6ZvS$@Z6KxWf=0(TF^4OL};`5gkWf(E>gK~2J;qUT(hu_E?&wi;4?c8 zhm>re=F07p`PP6m{rRV3BgvMv!{u&(Xs^>8C;v=LaM%s;VjsUnGoC5Sn;(Vscr@mqtQT1}F{`C;<9&%AXGvEf)e$LJJK~{{bVJ_F!sf!Nd zdJXvN*_-F!ziGVtNtjY=k$3WJ;Jq)Q%ANp2r9Nd%4QItdP0{q-5NC)Br?E; ztx9GmhT9y*p*E32(aJAkD#TW=y>98sDpaW}t@E$*suGCULaK^HvCkR>%A6>NuSut$ zX9?HGr5iQKwU%ixtk54Wf$MrQ(ih**p6cBY9HDLdKS7{;m)My_JITOK6wO zH?u#s2avXus|*v=iSq90mJ-9vaK2=}=@0&51oP@OVp59Qyi#ta)Wb78yLl|u$*!{D_TLX>BD@?U z^BGM`rD4ep^?dZe4srt_Q|)a8(4gD(L`s!fRs7P3slo%aSfr+Y#{J}Wo-#m(oaY4i zHYnOgXmviNS7OH#;FR~t)uJqyyxB8-^yVf=hFafvVmp6CIKyM2m8sGwp?atN^@=#H z5kopXjx;nCphb4heTX0f-j6c(_IOQO3MRs2wTh(fkbi;CMoLDeEn;o9a8T456&9pQ zJ9hlxig&EV<;Mx4#UFKDIK{WjI|K#hDQetz(UHwMYTd0Ke%x?=^i1oei1qnN^HF_0 u=P$DHMJu)`x6OM{IR4F#E3vMuO$eNK3y~}g+W;Sc0QN_nj@-Ax#QzOFl1VH8 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxis_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxis_iOS_375_0_667_0@2x.png index 6df80b26a5fa60491f4b8f91a3b595459682d73f..f2bbef88982f18ea44e539dcb659ee5e756b0499 100644 GIT binary patch literal 58484 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

    -QRdEO*92t;i8r85-34Kk& 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

    Two&e$qX-R$*4U^AyhTRCgn6 zQPd-cd8j0Ve^~B&#=T0cPXow8#x30`n$pi{(7IZGR2umlaSwsNbzJWIs?BWVv0}fA zpOgL^8qBJwbr=lG-vs%Yc%C6oaHK%;~JnkGE%?%I$-wZ=5kiOGa^6Q$oKkV z)Zw&17t((y`2Wi>zqx)60?oS-Qyl_{PiCHQ*F|=?EYEI+F3ZH}GBP;5#r9+d2v@RV zr|dJTQU9}F?Y}YS&kxXWzair@+J}c=4*_)hy_)~8Kpko#4CO4pb7fJ2!`yATqe&cU z__?=CgtI69#-mw*VQ)R%{~6f-`TqZn@`>+?51%W{4|s^a;riW3xBuI#(!ClnzG8m2x8pvOW_^){8q9TPe%Yy zBlZVS^Up*6X9)jCT>og-KX&quTlqcf`^Q24;~;-WmH$75-*_KRZ;gbG^*C=#?fT1} zTc51`VovyOFdd$1kCcr8KWL15csT-+#Qz7@Xj|Or zE3Mh9di_m63(wVnu418g@W&92YR=bcyr8>F^KbIdWIIJE4*&e7b27_vf`Re{VNU`Q z{X%QWGO0&y_eaL-Ymqkz8ol&>QR^jh?X9Hr#|hAvwk$I-1ajw_e~(kP3Je=qE0|t5 zfnChmpYxa@1!^4e*Cq>u#JDJO-?6dfr|u+uReELs^7#1uI|IOho!-A6bV1mPSp#R* zE{_^d6j@HUmh9Ego2FD-$k+XLtm9oGNFV-NTEiAp;~=CHm?LQ@2;ubh5=WI@(-&IB zCMvyJa8F9~-Tvi!?>m<)oir{C?%?2_-=XR*0cdpO9~i0sg#FbzEYEP>2n_TJs-<-UC#I5S=BYwfuHu@KGSe=j%ELIhBO+cWZ&0TaXXH%yFe zpTW-%(lyqFky~4Z@p}Hc%jBbN1DTc{T$XtCrHPWqpt2t=D}+k3aCBS}?bjY?~LL>Mx6P-(MVy_@v!1y5xVR zrQ-5P7mV21j~V}V*HUn4D;Au^$lW-Nu#_A2rlBKI(sK0+Y(ls%YvAb6L1KU!#b3*r zx@zh#HBtFO1)GR62^l6v-B9%F3<1M z>72M((OVvLugEB$bxTGx3e~KBn1y-xB!d|Y}xKEm_o)hF;C z)k>NBR^q9(rmru(ax3aF>uz$j$%WgoOD3;KHna3LG1A5{0^KIoE|u_>4`4r%knD2= zl)$lq)3{J%PCR1lje?MQdOGJi}=y#v3QPo#YA+@|$Pk`p& zTcDaLxBh#L@#%*Iz|19hKU4b|A`(44bnqF377PoCL~LH!bL@WXb!G}-!c+FWs_vPT z8Ow+uquqGaz&pat1{M8D*;+G|$SdZ6fUDk_Ha`lCi}!Dhi|r5K4y?*2`t!0fsqzb| zp&|y!vT4)~jEvgqTT_{p1VM&@`F_{v+Brc73}CY1cjjh+js1~Y{u7V^hj!ZyoIWE% zQxQB;9sPZsXKh=k9iYEYVYg}7p`-BnGqN9dodI>9vbuTlly}v5;tj2c0<#S}D zgOeAWp?^c29-pR3_qViru?+|ByfukfA1Fg zhc60^o;b?cv(*^fBXI)@fgJK>zZF^<)KP=~c8dQmANbEh{+i+fVe60k^N+ax5!Xh+ z@Bb6)|8KQxZl6+B!^u>cg@>Wy;%M3-I~qqQLS}B(+c0|%$H1BPo8TbVo3nrGDIY^x zU+fkpNL~mRT{wK$S@Cv%G3#0=T}|b}>h;pE23=A(1A%SY;OxfC-&C#u1mA~y6j~9I zOmp8Fi#OF@E2vGE;f=psp=I!?R9rFEckOr3>=f%A{sa#WRR36f0Ql|l|88g>OmfzK z20Cu(x)Zg>DdMhQ1j)#ulVtijP|o#Ht#ZWO<6+$M7eV_4I0fzh-?&^{ZO+T3Yi?d; z$>^&&b*XKto-bpl(U#2Vhwf&Fg?(F$6Mrw=m4fys)Ki{xq4Y2G7XftbS8Oz@vr7*2 z)#T2&^A8s;X(woLXi9y&dlc04jur-$D{$<6m5Gg6x^@HpKy6*;s#kh#idbDs{9;B# zrQSk)VLIM#_3fu|0jOu%*(3!J#JF9)sh>gWyo*Kfa+rIvWQ%l>vIo4w0cejr=gE&h zhuqXr9GgrN*eX0|YM^;_WUFA^g@L0B>Y?<^St{+RQMPIKvgA?55u9%Kblku>Wc=B) zL6N_Vd-X5JC0^_(aKk*a*Gjdmm}nVQCYSB)_~2MqXO!^kf#l139zg(74mk?S^iOW} z68GV(iGj!bIK9t2uDby+$c=kkt`?l-FEZ=&d;$%s-?Yu8UWFNr&;(^KRGW!5ALNw9n<{7cK6(eKx>o)S?W%A<-0J$C%j;IT{aI;nI%@ysUcN|BJhD}$#0#L5-QniOx zt;Yx&@*E@WQn~fyby4M|GDG@En>O~vs~Y3(Cj3Ojaw0ibLw=(2CSo}XW+6#PL#>S{ z0RX--#*S4hN!*_|s+v2ao)rdiC^sP8BpK|ra zF(Zb%-cU!i!3f1?C5JU+omFR^mEA)Bku|YLlGx{tHXkcFuU&gjOsG6e6NVF{iAmzQ zn8haJH2Yim4s>+*HBYM02t9M1>}65&rW75>yt%n&S-0dtbCZSM&_TTsv9SdzOv-2l zrGIoK`EId==E(3XqZM|O<4O8bvLun7%cW~6`P`H6(81m!D!a96jHHBbo_1avUSbzF zYY&szEtduX9yi&=O_Cw`Sus9ShU(2Npn{gdrmnLR1W2`1<44s*~0{jQs6Yhs^6Wdzz@pN2r4Acudx_)wEBB(Qn<$}3WL-Fe)yYGxJeV}~GK%fd`&2qb<|3J< z$<9(2ZiO-rRD%P^VtZscK^Kd_@bioy(7rCm*vnZyvu0!y1u?oXzdHXm1;}KO}yS#ldH+5 z5}?>xos72$hv2PtIDr|PH*C?c0^Akv&1!BJ?vldR)5yk_z{wf*WhdjQpe&r^m!Jj) zr+}xl4CQ}~WVge}?fRD#_)@e$`%~TkxT?g>UGcasG9)>G)B9VmSa%O#*i`R**^iUz zY=Ch=6*ShF>tonx?%_ z2{$@h6P$0{m3#w{WOo8(D~QeV%XOQpRxafiz6vPjcJZCiAqzkye77+6Xmbqk(WGe4 z*u%R=i9=JxZbylnLi#;{-@xna9R74QX8fVR@X?N!)YtsOIUUin!~DYz#?iC5jX!s+ z*vI1v=%xlk#*U?1-DH{-Wg_TygQ4ptoHNaj4A!VTqo zWzD~l>HgZk^j8};e0y9jzHL9~lD(rkdI}j5ot=Chv`xiC+z#Iil{lZeKSB^1$*Ej# z%@7=xFWv3vGa1|#S#Ss37G|jjX%9UPlHfhUJoX@fi|+9Jr5W>nCpdheg1l`05>NvN z-i!}GfTTPbLc>zVcW0!)H~AkV2SJLq_ye(GYVV^t?+qsV;GkTZ{G$9W8~tv#;y~M; zRMvH;6>R*1^OQ!2u$)OUyRE}dVzv={BR+}YW1~Q0-@lMR6iqhU1-+@r_-5Z(VBMV9 z+hTC4n}T-Jjd{b=V6?o7@F8PWy4qO*c5J&Zl@xUsl zz;MfpU9O-3h%hoMF-(GyIT+H%s(QVs z?q0p#Tm7e3zs|3FvvTh}>z=*8{q1wUy#txQra{FW1x9%^pX~|0^^7}oS~-)4R_oj* z36?1}EoCEt<>HQ9fd9Y^#NTn_>-}#flwfhXxBkBCKp*|&*$GEw>&)2xzMuQDc|?_+ z3Xh_AYngpU?&*PN9Voa$8u&sY5Z~u+I{tLK+I9;V|`Uvn~?Hn;c*8d?K71i?V zxU~C+n)`_~Kd;GkZ^i)^=%Jc0kw9&MuRnj23@H|fQn_!Zdyz-|(J^)4!KbBj#ei`1 z?`+=cOaYL#YOR_;+dq7uJO|iQBM)3_CEp+cn&h$G9|QnV_v)U3Lt^xgpWroxN+iRe zz&(K$ndb{@Y^#oBDrX&!@q``{JZ&TnVh=^(cSZl7nTNbl3J}_QcYqd8jL*KO(Evp` z0IeS&@E{I9>37!!ZWH^gH>xj-M^xS2@UkRiKvU+)9${XSOD5Josq)GSh80nifFk@g z3JlqE`yYP(XIvY42O6Gz>Nf={J;bU$@VBSaKcYtWub1~i!13LlJ`doDpEO@-h|_KTG2Xi&j@efo!H}Qp3;bR{_a_56KOhIR-0t(|1fn`R zuvh;Q8vozK|BDd)4W*`34QeNDXUv$(|5wmq518TL`+hCudwP3 zg~r=Z9H`L@tFrU~dq`0tcPZR!pozg?G`($`t!r-F^Kq-G4ZHzU*8G+ntGel&T@MIX1gui_4|e;F zsLR{cwI~w^-Ve2jx@kKPXgY8y(Mdl9SKCnV30FuwdkZ*@05>=T;oj zTQ3^bdrxKQ^?0C4MCn>H^d#t+@Il4W@DFJ*Bh3ezbdHJWn-in&L1MWE;&evEB;gF` z;&wdFnYy@(Zhf`fe!&w~AiF?=u31b5lAi^}Zsa1T4CLI5Z~E1k0p*>}Shril!}AWo z8_dwGdJq=~kNgpE0Nn7gpp=bpsdda?mUx^5QGz99unkO+o@wQZdN8JhSqB*TOQ?jUSjX-a4Jn zFbjD;S(XW+xxbqg3`{xfIfWq6VWUW*=-!J~2Q3L154{`EJbKjUeK;vz*@7=TggGtJ zvgW9@5WK#%;V_laXUFx7Fja3QzVJnKMwF{C1q*;T#Zu~m^*E(D#eD41(-O2A@sOvDL zrkz^c;j6MRTdu-}F=8TT3UNvA4lYW*9KmY{<;<_SD& z8LOrRE1P(%@P1D{_N~?582a*`3s37%Er2C0ZCWuE z8l0r;yY!b*2eiJ)#kb?H4q`TxV!2_@(!wB{%*L)6YDFaCH{_~x+q=mAXpZoZOpUBo zTk>_2O`*6B2ZeXf8GJyg8`;VYEe#WiJ7B`wbb3wMUUou7;cZf~`g%$#Tr$lmYft7KdGE0e*|4dF;0W$%M}s zSariDrUyRX2|-)L|4hB4O3F}zrYl!Yu+0QH6)P{+r0VWP8rywzhq*h*DmAv{rYqqq z6liABr8AEa(DtuUW~~iL z&pYPHNOVi>&t^=!B%YY;(z9EiFKtCClJHqbFf?Q}*4-R{WB-{8?-WRy8hSluz$&q? zNA_E021*RD*^2^EcvQHu)Nq3Z_i}GeKzx%n$msPh9@rTG6Zop|s(4gEoIdAL#K{z+ z&$$*ec(&wI5-CxJLQ!*udKI(EB#Jt=V-QpYnOdDgi$Xx(KEnbb$bg~oI(i3W0D9Tryl za@|7Z_lqKjsn13?`ToCCA_SaH$*< zCTD#5)%Pshr-v4_smZr`IjSxZih<<@#45&30%l|2Y;$iT(L;Nm_Rg(0_RoYSOVYRT zQA5d%_Hu)m5fzp(s^`kna}#MU)h{3uaoq%;F1O@!(Z`^C4OR2m(qCsu9*L7Sgvi5-zzC_mCEnw+V(9k zKkE%tU&5aw$vTaS^gJ}>Zc(9F>B90wx!aBqz1U2bh6)XCWp9%@eU>NQ%0 zU7oKMZDzNTWBJC0>Jq-7nZH`kGS)ODr|iN!4`a=tz_&tu*Fq6)c%>qlz;{?0W=DPHj34 zT|42zQWoUAUpWE8tiW}bkMm6n!;-z3(UrOBqbDggc5fPVe$ycoI)`vC<+iTZ=We3w zBj9PXDoaMmJ4UG^Rsq8aDTcLFqeri%ZUB-+MIS$8W;2tn%35Sq`A+Ue^?7I&;97WT$ZrUl^_@sTMG7K_|aRD%QP+P;{s z5iKe>YDvD!9J81>CfI$4fQz5xH1to>$Qzvmb=;tr$A!GX7B$YIz*eh>`C&(i5;JhE zlc1=_L$7cM@qJchUUlEQCCq^mil1$;@o2N-Z%1!iSvL}o_kK~UOKt2epXEO@r}uPU z_n5ItTv+E9HI}tteMWxosg0BGUK;%fjzfl1>i87fu;L-&f)2RX>yzOb#ks9-!);J{ zcEKEOQEeog1aE`8y*7JiYK;!z5^zn!#8f^Hh6|HWM0mXHE!aK4fGyW+k}!e9$v2B~ zT9s*Y4S9VlJerYL+C2i?1xMo|8Zbk#=)&5_+3K&#f+gRdt>`sXg^S{lm*lPblE1Hc zk^8ICb1d5U?NePXsaY$oQvTyDKVQsSXgQ@3wiS{z$_^Ls;sb^*J*bW#A2mX1w+yTp zKN&A#hsu0W=k2=li}}4;m*lEkU#FnE#8DfeisGdB`WPh=*9TBm;>myNq(P@U2S3y0+U-?Wui->fjvs_Ep}AmowJ z4UIh}2NC0;27@&sTc@*008A%)nua4cy2y=dHTqiiyzi{&Z9abcsQJ1p#OQ=2UzM)B zo(z?9*`zZf1HNO~C^FjQS0$2OTXV+nnwMS^*j_WXtraspX4&J5=g2AjGEOMWwttI% z;XZ81x3-|2<8j4k@9KO@U>(%MoYmtNAmt#d7;i){FD(nJ!0s(Ua;n{enuu=I!C}N> z@;YY*y%0481ysKFu}X^9(7sUl4XRV~+(U0l%ugr&G6#SAF$WdC1_;iDdixw9it<^0 zdEE_lus2~DbW=LM?yA67KL=y#mx}62-$ichk3kPUXm)1}hjL=Sl=U-v9K01OV?)v7 zY9v2Q!h?f;p2EBQWo$T)@&-N@wm|N{=-_|t5YodGuComG!nY082!8KLTT88ofTyp{AzlzfoD7|buXuSsMQn+m-jHHYmwj!?sijD$()W%&!5Z83{G+4z zTlOt6Db(VlQkTKZk0k1tB&6<;5grdcF0Jbq_H{ZAxQA>$cpo2^_$^0f@9dFGtKr87b}LfPiWDksg{DCBebdN4dv*30KOddo$%(d^L6Q#DOJ5k1$|y~m004aaa)a(-D5{GgQzJw z&jVNktmPJYZ2WD`1B)%x=%zQXsnGok7N)u-P3c}W73~MxxH`L}?2f$;rFE+yku3ya zNGT0;@(5CqHl8MjbR>PBnuPp;{sr898)E3vS&T(HDNCsw3vO?+;3%iWVom6fpH3oPS zgzqnSU2zE8gwpzyK6xdZ9^6Vwi|y#Uq%O}VfpW0Ka^+S#+j+TH*#2PGm`=HDq2+BV ztut$nlSh42=ihvcFUh-r8@$7uQ`)zF_x@lz8&!&&LU Rig>`s&f4(^!O}nb-v9<0EAs#V diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxis_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxis_tvOS_1920_0_1080_0@1x.png index 23bf75fb63eb59db2dde88fe4fcfd245b0460435..3cfb610b7a0c60618e65ed7701817a994859722e 100644 GIT binary patch literal 22590 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 aiJo@Hy$dLTtJ#Sf;MmIcW?g3niT(*pd>WGg literal 22612 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%0DG3j&~g4#q2w}X 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 bV43zO+qZ6=7UIA$S>&LV-LLukPG9;j6{yzI literal 45441 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� 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 Wn9FzMY7_+gF)}dKFVc0n_`d)$HYZU4 literal 62064 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 literal 21268 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�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 Gp$P!f$ZClI diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMaximum_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMaximum_iOS_375_0_667_0@2x.png index 5d53732954467261178d24985e7a508ac47841b7..033f959609393e134caef306c4e34679f7fd721e 100644 GIT binary patch literal 62220 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

    p{fgEA;^Dq{fP*0>2NX3 z%!Jdw2Cx7$TQtZTItk@Tc{QU-bR_}jQd6xa1J9*PgsEI2!2Kl@J<^P|DMUdS6F|#L z5VvTo#wW%U)Q97}l}Fh&6I|UIne-3*s}`DLbd{*SqeGB{Ni@vNqus=UZKGmPV0nbc z>iGcsMqMd^#RI!;dasoya&_0|$~XRF>KEfAjtyhpQPB7(E85*k#sLj;{bGk`|2B;! zx^82jXu54|Jn|=dmU)jRAd=*jriQ*$x9uEih$~CV*6t9z=KPxG)X(W4lTu2T^ZL&6 zk=o&3UlWvt_`k#253N`+R)Cx`vok%vM6sJ9IX9S!0g&YVs$*7u<% z%)1LFl6kBH5$Ukju#v~61ed8ki{PnL<<2*4I1VTV9?*=pc}v+h@cC{~e=>Q9R#WPG zCu3HalBc%2G;#cUY-rH1$pAaC==@V5!rU+;k+JN%hhJP`E@G;=v+@p1l1IjO(SX>f z8-(fwDKmd)jw_aR0iQqG&z1Er;E9|E60QvBz{q7a=^2 zSd&e6MNR_e#G}{SzY4TlM?=LpnzBeA>A3!Z!iLX)2)tJdLB2CC%0g_=5jtUdvoE#5 z7}fG{%!+EdlJPW<&2>?^nN};@%(#mlBBcZ3q5n38AS^(E(8A4~dmz_UCc}vxKRR^m z0Bc!$6x$vz5bc=X0Q3Fy{4T@&P{%Qgq5-Lh@+wLWod?!DxiserDv%Q4s%n=c*EZyA z-6kdFG*q_$quVVx$dQ=O1gDwLE$Jyj2IuCimb4w@W@u4q_Y&BQdox>REtVMOUi;UY zJ!#3lMKurPBnQ$BDpxA6U zKm&9%8+JET@?qm%2f0PmnmszMjbkECHWEZgmDXTN+*R2LiAjVsh!+y11ywh}&3qOS zA0ag7X#sz@k=8|i3*NjNAU3sF(K_x0i8o#@g!Fbr#jw)2Dm<3<*sciLM0gm(0;W`R zi!KQO)r(!3&q$TY+ke;bPYx;|S~}qb_;> zWuH0du;*m{wao^dBxZA!_VJ<5HvmCBE;Fn|ao7dUFr^7TAp}`VnXz#XVD}bJRl96) zz{|^@f{{j>t{t$-kqB;QM}MWhD7lEE)uI3EqrkyJdD$ynvu$#>SLd5b&BuN8f&6iG zTYchUlRLy7mZNvjygLDVly)zi6jT%yNBKx>%bTIhaN>i`Vz6-yFYAFKgWmj?e#k#x`&#jlch7_dHV%OstHb<+)Ukox%8%sk0CNat2 zi~rS~ZRl#cUY@ez0lwFsex!o} z+Lykkly9A808HLrLdWhxs^o&kCQ)p=Er!ueIlU{IO*bJWYWjwv`xv ziL?}u`^orqOsB6pR9r4keC987PiBR+ZTYcmA6yD?-kl0@d~k8`8QY@N<$Js7h+9IY4T zT$NNsahe{%({vKn(x3Rr|6+SuC_B*!L%B3$m$k-^E(Gj`>WGmqw&|LmAHQF7^)-C$ zu6}8^ydXd|>;8fhjaPC^&45T(iNW`siS0{+L7eH$inv#-{?_PaGwAYFTVQZ@q5I=5 z5S`i-LDC_K#&<{jQnaTDGm4JCW`GstpI=_Jb-P@V!bt62h+|Z6X9EEjb5vLuR78>( z3*#O|`@M@PGY*S8v>~&vc{vUXx6D_7i`EedzPAXngS6~a5+jt#rb1!`nO`Z+^&Y;^ zf~8{Ap0XSQ8;w&Q8-sq*MdKh$NZ$P`i!<}bsgZ%f9V$KyW+D+(;hYlj>!DvuN+{LD z1qDb#L_0Y5?c2Q5-+1HSC4NW{|3kaL(z#jODI(Nx!Bu659w_m0u^0DDH2M;rlK8vL zp8BV+9(!|!M_ zoMYkFh{ydks_IYmd>Sl0Wp26$es)b}9zsdd)qIt0ORuhFO;yl7%N?_ls;K6-?6+QE zTs@mlRxSJX&4z3J=M&Wk_}M%UrQNu?wg~NXb8}qT*`!#s0aS!d3go0wFfLaoM{o_>#J@14HR0wtUQ zPE|}}*!lau0PXM%lz3hJ(gR34pw@b<7o$uTiG?(%nUanhY*@NB+^}Rp1F~Fdr~SAr zFU}-&>|Wxb76!51lH(ql(ChJ5tZC27{JlPko`t<0bC1c)AgCD|a&OFRRKeWbYXF}MG z3RtW5WxWH55OHf<-A|K$mV=2-9=i5w)7Upj&!86UqF)Mx;_Vr|7pImXL82tN-_Mgp z>0CxVjx_IUeqb!G<3JN5QOKP%0(VOG?IQFsPoQm)Q?VGq#@@^8rxe`bzLPFaWyvn{ zk5iwmWv35`8S@7}x4(N;6xa;nwU3!MxO0&O>X_y?z6*fdtp zM7ABhMJ-6P%&Xh$8F5RnD8_jaZoEVvhGB?V8WP4VR7hq^G{O}cih(%(SqyY#rycEA z-smZ=TV;eQjV!*rABV0fN4mV^Efce0OrNiU`x_f{dN=~{ST)W~V`edv1*Q7umy|5J(4{|b}-SLZZrHrT8b(UgfteYK_(iB6W=%aBU4&CkA>!v+4&h!!z;Z>st(@50LI z-%-^eoFnL?LMYDGzwk-Y^%2U#%O4zsNMARQtay~&xPU$x%3M!buN?ST5A|d1x)CR` zeNW)ex_`h#*jM*A5aVdlRu)#MO??f$od(`lMc$d{zbZ>^V~)?Hx`gvLxiKq zGLC{G9mYF&W$SPCQ58YIqS)h&t=y~+m_i6bKtkljUHOTopk-0K+d0_eDOd>;B$=Qw zC@nQt1u&cVv3>Z+TUj*!pYk%Cv;U-+JBwH_2^1G(I~S3j+xw#A;MZk*TLWuT@V6y? ze97J7kTg2th@%Z7$aE^XvOc`jm)M~<7B|4Sf3L~+Ee{Nr*=KKGQbMz4de1ND^8&0tVk;uxk54kO737ybF=Vuo5}N_nv#|# z+%u4P014F>j2D$vVTp>yA_&}5Bo>L@e@Jkwe?P5VU8c#^n@x~Y>pJjFD)d2(*+mon zo6m0W!N#HsBEa?iz94k`lf`>dHQIH0Z2|*(aN^Wr6enQIAqQPbVM8BN1Z*L zwJJT<*SzjcJB61N))1n?=6?$Nl{TsVF^C8a^l}O1Xwzy?o4QWgnFHflc^z)7+r;#{ zK^w18PQi^hS+Baocx#`akNo7Uf}S?>%vuqWR*$Ucq?KX7&5P@48nO6?MSo#wJ|VCn zw%x2cBgo%_#yweS6)4DVY=x)*xNI{VD%N^DC%wEUB8iFcpe@ImJH7kBv6H>m2obft zbgP$0=l|lPXl1^qu+X-e3lnQt>{CC{BG;wxR}UGnpFe&Pa3)MHRLDwoUl@yfksh*V z!Axvyp+`4S9sgISwmQ;AWm8(RAup-g7ObngDK9y)(XHfrPgc(~x#@C94#@ujs{eZP zn%y52Y|Q_nR%pCO=1b!TG5^5#vVS+I!S!=G&Gyhye?NNy6L~x$-EP%#kL-s+YgLby zmkdBlkQ+d(0*y9)gI1__+$h?UD=vvuWWL_yu;Gn7zW^oQZ+V3V^dKpib)yKI3uQ%r zs^0KiP&jkH+WenQBc>`~#Q;gY$_EIra5QpFSw(I%+tE98@9nc&Uzpjh1}%P%_gfZ` z&UEuo794EDG7!!1M z$ZX7gZO;$_tC*W{n~r8c7P>6|aU_1eT0jDwRC{t^4u-&J{fY2#A#@5Q5zlMIRDDx? z6bi9BJ)!+ZWZn4Mz2MFX-Xut$9;?_Y<)@pz^R)R>{oGiCS5l_OK(v6MO-qg5*yrm# z66QUf=n56H@h_c&{~#lWBjy<4h9;W-b%>or5KV=4iXiFWz9j5~9^6xfF%jNETz@CJ zd{)oVM!3Z9`8+D!ocpcgTn^qXp?Ku&4F(V`D}W%{7P|B2z}d5VNAUbknu?}0W1RcT zvS*@%-n>}a^kYx?`Lv#cT9LzWR)2tC%no>nvlNN*H^U`;85|V1AwGJ zb+8dz#i69;;g!zji?y&D<7Y)ev5H4Um5nBC#bEt}#qN%PHX4Pe7B6fT?Fk6SDXG z19Ey+klQ&Zs4gbpPk&XoNd=fkx zyfW0x(H8L{#&KV)Trcdfr;8wMZ{JdZ&NeKYZ{`brQM9)OE>6O^xmq-`M7(BV&1v8A zJIZZ{8vfgsJu9An>xT7<+toemp12H7zlSPIIA?Q2amn2rH3A>)1Affr5?+V%}7ah%}EwJaDHVgnxZGZ7+l zSV{?Ay{1>>*f#buW7}YyQExrIjH9;Hne=`mc3xy88+Ppj(Iy^{W0!|~Jse1v+kO*9 zOkgTa?YtX`w(>ynKaILEy@ygI@=i9hVIz9Gz1QA^r#ot7UriT!5aLEFdi2{*Uy?Fy z?c6sjSF==RTcj+@BWWX??f3k8S&p~;b0-Q-!L`A(mjC*A<9r8mt7JsQvOLsM{We!R zW(J~@mvkUtd){}*(EQ;+IvmLqM&jqK9+r$m#bgR~N4$%I(c?_UJ%onIE?YE7$MUcB z?&)=|zbYapb$?exV1_gbRr@V3pe&Q7l7esv<|$At>Yqw0g7ja?u;m|D7})~VX#p1- zuH{$0ntV}mqT@#2_O(Dt5gu(N2lwoBU25C37;Uxrv|tVUN828-DY0Op4;+Yl3N;px z*G^TO009#De;xoXKJrfz4-_C*_M3jn@F#hA6-j98|7^uCeya!;E;&bta*{e$-mt&P>9X;*|ZXawv0Tb)ZweQy%?hTdbpCvtGPVYuBD=m7_@*zfSf{q*= z2+FWHcUx?5_lj0+$FxqxdP}8of}^77st}~RTPo*nt)+)lxQR5qLj&MxvNvj18SJtDUp)|B>Q);HhV6HM@7DmW0vvto8gQI9%H6jwD~ zJ0<2(O|ia4P&!4`AZ^FpYJ&9S?+QSW{ok7ny~$;%um2}OG$)G+4<5Rv<(Nor*vtRE zv1{~3#JPQo2^YH#G~|Dsh~O8>>0@(hfeM{XJHWR7IWKfcc*iwx6;?WF>86%Wf`zAH zhZ-emSHFMvv2=fjQ^O61nPZ27;WR0l%?}U=7N;r_ugf$Locb7i;~gd(6x-Zk_}eT4 z^?O2w?spDHJCh6R_lxSln6;709`V2?c*;G50;!DWRK#`$9yIJ;9ri^Sn>C}uxM@_MJ4~0_QT@+=;r%PT$c$MF2X(~?0EZ9L6G zG9sPDmxY(t2!&mj63fXy*kv5HepS{Ifweh*C35S(OAW=2NxbiS042LnYYo5L1Q3@+ zKCND+`jBvV=PIWN$Ne=pzi-tgc)6-rVRSwPK{B?2kgj{5dg6{hkH)RWOM^n2(KpKOtH)fx#W#Gm3ShJ~R@O)9gvl|%uOdj+g38bTKA{|~ zWwrB2{B2qC30Q{`BPvU5xs4iXpO`2;{B^mot&9hzC}{kl%L0Ip^-BCk0H+m}%Kyhv zf^E6*^{TvkHf9yfBI}Samt$rAV*JqZD@p`DspbS1%q_lNPNx4e$(0kH)F-7DIppN4_#OS)cWtaMjHI9lce$$tT|D$Bji=S5CEI9VffkE* zfQ*)w*Jj*M<+l-CGFU(Z7tt(}|DBbhJIU2;FntVPhh0>O{5bWH0rc)YJE;GsA<2jT ziU*v$b>diQtPc$fwIi_RNnZ(OH&tD&`bO#;SkrB4l8qG365JIB6qb~X;rDyNqL51f zU--p8K!zU@@}_CDVz0zT!Pg`?`BaG{7fe#VLaBlY6DYm#t?_{rcaBUPDW; z=KpYI87AlB2WpVygxor?z<~E$#7k2O+Q0CgR}}ukPr&sU!Y=i@dcuD#;QtSMZypcz z`u`8V$6D5kl5A~~Y$vj1tDJHqgtBChAz34XY||nqib7;hLXmCk#xhc2gish`8QC*- z#xjii8cXMNPUn0+-^YF5kNf^T9^XGc{qs4ldB3mgdS9>S>-l=Vp4X4ZaeWNU6#u>n zR+BYn?~X}&43~W(51#y9VC@x)LX+B8)|Y&L;tzBbX^@9bABzCQP7OVfivonLjWz^) zp0+XgU;RFsDHGOthWw~n8Ao<9sDnQ#1RsFDcjaRB1QQSBFWhsg^You4?mdv#|9M0F zb>em)g`_`cgL8;w3D`+q7`H-_yDfTM+-FG$@9-1BMSq?!t$&@coluWv^@1(B!}f(` zcTdO4bE3VD9}oguCUZjq+~bLYYw6`mey8;d=(S2Th;D9Pm9o+02%SHh9$gb@xb6I?T9-nkJ6rd5S#0?=nz9o*-Mo#`WpP zKl+kz!;{SXc~vznDqYjgpxW}@Hg2tDs`H3}vgZ{$ihefw@La(n@QWC0@ey9s>X}Mg zRrRl@xRBS3Q!7)3%_^)$w69QrYBZzWbm#I(f`<96>vk0v>Uk#PSyt^HQ`#k0#gx}# z+V4@0I9IGKwyb2DdH9alcZ_Ld$J{cvgX?vRl?*Jmv!X9(PRo{jrBrKVpkL1yy+0{# zU}i*l0}5Fwm6c1HQ~{|t+Vu-4Usjt%MT*oPOUze1DH{5R(FAAq8W3vQtD0Av73C(q zLlrnUFxOjeSxSht|H)G#QbHlSq2vsx9|93@gRrW9%S;$*1!p2Z2X`B#61k5+6)W6- zv9*F)v-@g?-$!*Ap;eB7!xUn7EV03W# zqgm>F70^!x(zI=xOMI*poS?x<+Gy&VD|YbrCMK;*OYO%#M)_)K6=;b!3xu8$d0aB0 z04Sq3MGso9#Foa%4lmCgZN2j;QRxV%X%?uGLwoMST{Xu>P%Cxq1w6cuECSS?tL-lh z2W2U(P+LWsc%YkNUZS$KKvSP47yiL8^}IQ^q=rfetgDF>mH*rx(Y6gK+xoEY zfqdbwOAIB5s18zH4_oFJd5Nb=M->`&Rn45q%zhewAg?CFsEo?+tV4qZ`Yh1fG3wlU z1tg?Qy{HkseLTL(fJ2K1p|SHv2nBw?yMddSYfDR*YIH8HRC;g?uMG@BZOC}5=7rh> zvA;$N{@ec=GpFX>5q2)yhn~rf;@%dkS=S@}KZ#ln+n@!7WxPhAnGjxw^vsX_YUQtg z4xM-ZHFR!=egyQi7#$b7e>v^}?RkddZYi)z+v2Q4?i~7mHO2V*6QTEZ{;0q+`A;b2 zuUzkcN_zgD8JswNbV*krWmcuckyKq<9$91G&yOm%&JGh4`y+q{o%*+Uv@z8)DU@G_ zoeLb(_$zu|J9^NOJC6_7ChXrZ_@JgT0F=!@KY%jRzmn-$pWZ!xr_rr3Ec3WLX*HS= zV{A|E9$zK34QIduv2ECph}~Dd6Ui=|UO(=DzoBg~+Di@Jphj;r@dBt(AxHAi1)LNHqx&;;OEhw&d@1ruP*H40sdTxU8x~q-PkOv#&t}W6@%HVLtz0ErM!goMM8>V6 zg(sJ>jUYZ(Fk116Nq`0)J8JL8Lgu9D1oh|rdgYg~pL%oJqq<$1R{Q2Xvn1pff{fqJ z7z)fO`um6nA4md5o5ZM1NjP^8akf>l64!<` z;nrSCn(53!Qe|E2nyV`i^B82JCFkaGf*OUOk2pWFz1P=R@R{MMhE}2FFD_<}{GE}P z+?_?J4=|k~TOl+jOPn9n8>_$jZnwYu5h_B`Ew}_)Z!~+RhO;B7_D=wO$;d<)7DhgD zw2Y3l+w6p@w9LZCrF=x;;zUG4e~v%l!_vTAORRh-Ca*_JFx6n|*4v#t8hQl( z(U08|J3Q){{n6%rZu6hEKi{8&HU>{JcDwV&(RY+Mg(L%cQVUiFDEC zkU6zUd#GMnDD6th=~!&lp-)WK;`8$V42P=66{r<7(@5Y&B?G3)o&PrQc=e-zhIyrg z>1{Vb`jqy^TtTdCZ2|gS zp*9I|EmKRP=3BO7?_kov{Yr#F?~FP6Kw9YTjdWWcY2^6{hV-R8dADpXn8@MVcw!8BwPkTmw|t5+bv)L z*6WOx;N--40V(_jZ~2!4(c%bi5=|Z~XWZVyYkc7@Ys4R(QyWAk#Cw+ip8-)agT>O? z+{~BE>E`-vAz32yRNA?-z+7k}dqvA-0W`NxiG=J!2Fjm- z0V`b|b5$zR+#UqNTNhU`@O04d@83BRrndd(2oSX0)ZLX&Yclwwpsi+kU+wvy)8zke zP|7QO$`&I8fP~!tGwhButp#~^L>Ig{sBQLZ;XpLQx`|U9{vqyS;h)oS{l5k`Ccv4& z10YYe0PL8x%C}vTiP>fS)(dr6k5>h#MYV(j>aL($J3^F?F$4`pst4EaPz4K|#Ggeo z)Iq2$_w9f)JPIp5u}jhsza3Q>IWCMgFARJG=wgL|y+>gX`(Xjb&^+o`$jz}vejIBP z5g6@+`~u$&M1UgNUZjU^&q-V!95He$gf>h?sVT)g6U6$NqwVRlW>%QUJwTF&(&HQ!+1 z-6)wDGX9LBsRs=Ut^vQ1{j$Zt{T4e0V*~2*BCgdX@Y>K|lJ?yN4K#O0YnrV<`xQ|V z17X01<$W*zBcrlGvGLMEJ(myslJ9u;@wHId>`2EijblL7cpd+hL?T+bW$uM457*~t zLvoj_LduVmMWf3NKT<4rNRarxWmqGIeLv7ZO^@$AETytaEOHyT@AS{vKPw0@zI2_3 zK1TbN^6eUL9u|R5I;D*#^FRWxe8?b0a!7l3EBf{ZT^o?;bJ|8?cb-4z$|F$|is=Js z6y92ZS=M?C%sO3S0aYZzZLyCY6ApAqwaU0qv6I87L%{a3uW1?APHKKf_O%pRx3*Cf zp1EL;D&0S48%{?B5ixPs9eewnK^E#MkeyHUG292NTofJNudY0TkSZMz> z+;jJ920YgAMY&&;JyaGo;}9~X7!8wzM0XnQqdK2TVooq2 zgKvfcEamTV_3Bm2CsuEL0fkB04$6HG<_|Kl@F0UtV!zhOavIpI%&Av`E-%I);lRL? z)S_q-UIkV*1DNg7pfQVwFwa8;uhq_xbW$YjhH(gEqWGk=Bsr~M+_`eQPacsL1?rPM z`)edK`6TdX_Rvm=W4&K|+ygBh;9JBWrlx~12B>lL1mt2%27;_K{^`S+zjYqzm2U_k z!oa3%#S4Ru%YtCC3ix6N_tLr)U7J4u|KNPPa8-1O=MB!Z0c}k(oTGlSk?$%D994wp zIgMnYgr3){j1b!wi*jzNNQagMifc862#q9q$m82iZO>q!u8-3ie#{D`73ons&5PHl z4Pg2#NZa76_-l;bC3@{C2cWVHCV?x9y18ohvE?0De&0fR$f+{T<|=&bK}^(y9dY*Y zi515;o9Dyu+4nRKlf0dKU zA*NhSZFnh4Ru|R)r%O%&Z6xs5?SLa;$m(;u-_T;>$ALG|=R*lod(>$$r`6odfMEcB z^cBn#_pQy_dhJS3=5^cxgRE#9WAGgA1sN~`rp`m zc@#=O#d@KhS9SjU15~Et{c7S?#Q>aY{W=&wwmL|T0u;Kyo<{FZ(-8GIpgRjDy&n2; z-sIyO5Aba1=WeV~T{5YawKw}Ag@;Vl^7J0az+@>i>UXjJ6g_`D#arXQKZU@0A&6QG zLhQA6)q+98+f)lHslnzV9nvl42-JnEfI!RA*X_5kx==EeU_9qNmCdhXK*2EC*jk_96AESknlG>uswpb zNOuFNgnX7T2IQA?!!XXhdXVy!0Qos#Z7=L2CCIZ4=skp_A7n8C6&PF{3;eFa98B4- zH7&`IxZC<8%ar^jAf-35v{6(>^`W&3%q`y{x_=s*op20kEiFRt0pckZ0i< zqSHb*Cs?$dQiD4Vo=eCvAx!Bku$QjR{sKOF@45OgB=9O8U?Ep)P|9Fr?<$ zM0%>dY$MI)&_4_-2Sa*Xj@s^sf6k0Me6zqoq`n?z5&Nk#IG5OLYYcw3_*1vJeO?#L z@6~L?v_~!EkbCfj4tz3Mrap&()4gQ=+!-&F=X9<(KbhLg%r#hhObrGQiWWqW`n<1+h1fdY zW*4fAkB{*vYW0E?UyrwX{EjEXsL&(MJ?8i#uOu}2;$YzPyEgNl$g2I0k3R1Ax>W}n z5UrRXMX~-5%Vgu|a^%$4(YU}hLq#(Qyb)>Pwqx=bLnIzL5Mq11 zy5{v_z*#bi+=)CSQFZH;U?*~+_ERD7*qZzpuh0&>$7b?i(>wc=ulR?3ggh01KAe@> z?5hkTur~bu^bXU*oshBO$nV0-rqi)=dqyUY^?v=WaE?z8BFK|oHqL1<%`Z_=BuP55 zx89-dDoOSAhy;M0lBZldAVo|{$Z8Ta^(o_8wFc8*2@kYD{llboQ#U?vej{N}Q;#zp zCUD-9`6hyfJi3dPP+2F50x+-Kmj+`b@-^=jjTIe6O1zvE6WG-8Df$Ty^>=y9bdT1R z!lr=qf+u=4ypJE(fXc3y33p#Fhtq;e{q2DqC$hBMan7vSFacxY&Vv>6$>Q#h0J_R^rY#@G`u|8gA{R z2MEOvpON?;AE{Y@ka*#~ot%*5mcVUD9Zy>p>bbN;>hLOFiQk2gmGdF`utB`%Pjmnz z`OL4c8FG2`0W*dkVX;)qo$rd`ylyNDO(>*77}|C&p%DXWzWsvZg3ltGi`HFQqynA` zbONh=3S_FT)U0re;lojF`O}J8k3)pA&dCMAfHgfKPy3r;d`~IiEKtb3X;6wcJKq>h zJ$K~mqnCZvEvX+u!r2=#WMS}^+Bfgi0m)G7Vb~VRnmYi3G5e!~>#^4gY@0I~AzVSi zt2#Kr@fBi#!P@h=cu8-Q&PbtJKVgNpyZV4O>f)oSHW;C5jyaS8sVaTmwD(urP%Er3 zHdcsv&8Us~p=e}EXz^1Yb>jzlWzsG9ws6U50UG38KdEn**HOuF$irS=K-Xqv&oz7# zri0(B;w+-_qhC?C8KQMv|M0`wSqk}y2TnKb$4Sra1{=@Pz~JsG3^NM6@MhScVel@S z(2fqkpvF?ECal$d`GQnYWSMcO`nHOWW4=OD&iZA&)c>5!4? z#|1P@ThlE49nAhP&FjqviiV}7^Qk$j8K&Zo7H(X~X7yzSeHLz za@2n5xYod}k&f36e3?)lJfVPMyacxEM!&%gMQV_YGx>6>9ch^)8AywH`Z}GP3n*Ve z3P$xFF=f~bmihL71|PgMkgfAhkKa$-ji;d+i0JUMQg7F}zXU`u>tg^Tjvw&uPjDMA zgp}3$OvfCk`)}Aw}IKMptk{49K*(sPPpf$Aq|ZjNeh^ zKjAr7Ak(;W2AhJ4Bs#yCat&+Ysw)gvGDYM70l5z9i5N6h`%<6-G*ai>i+gUqm9*Ho z{Aakv0qdBU>JiSHWUqnB9?Y;H%q8mg(3+FGM=F~n&rNTKLeIDh04wj%khm1~?*rTa zHv@Y{zpa}_i2*+dymM(*Wcj&BF;ekdqP4{T&4B@42nZ9#=~;v8Bo8(ySd+HRRn{qs z=1oF8Cqi$+kZQ-)PBp^7vD;5L_&v7*RK|bGtq@c_*D;{y+Qt{!wtN{yObefZ78CQE z1W|6*X|=?&Mu}06<{o{5a;`sr!3>!+2W5PPgIdgb?zZ^-RQbo;4U8|vd8`q@g3}|< zJ}=)mUCIMhUc`@+D-daN#)U0dX;i2!ck&|W97!q-1zLACwZ@jf_1sNL7osdmXEq$s zFHA6u(ae{bNEUYQ1}I=N-MLrv+dgQbbI?Rms4agea*wvtbtS*Y!Ew)?Em8x<>tVwR zaKXS6g#Jx)s3SKNG(8Ewv0b&Yv1?vFnzPpVsXeFN(c!2|X66ercuKRg`3fat)*yce z=0#;GlEys}Xs=tDvrR=2D`vKBE_%?E%RFh0dXH3H$t`Mc0ZZGOinr}!j^iw<&AS~e z>MzUD2@x3LZtLaU6C`EvPv5qyB%U!#`7QY+hm-{AaoY7x9T)|1JCJcFA;x^0%ixXi zBTnARG>Rr&s(m{N2d2#LHSFtZdr6iyK>GGZ88A(0iY|<&D!m)yB=~gc^sLHVQw#(mtAPIdIhwDEOr+(%$a?<|!kMC{v)5Is}Wn*2%cTLSQDGc}iPgPFbtAcP-)T zDWrBT3!1Wx&XY@~CqEFPalk!3ggLmhW8-yiL&0y8jCY+v3dWFNbRB^!q0Bk#_biXl zbwD?+G0}N$TM4qI}D-`ZO&)kk5L}jmJ=#SL$tyv zanN*W`t*5jKHt7GKYu<~x{jJ%FcL5_+76pIQsJUV*MT~qhCIu903%(wgMg)l?FmpV zI*f!gPK?uT%VC!XV?Th%hKQznkOzmk9RJ2Eytw}lufPk&{uSvfincw2L_d(=Wrr0y z)b6yV(GL`}F^yTg-pcfthc7W|XONb>GubD8PhrC;6rDm}gpO!;fiXWFKhE?csXc`Yv1 zsQ3~6$m2yCIzV}o=#K>@kAy4vrn>&4sHzE#D0YT$RDdi?!sCbV8o_!7A8{0t6yvn@kmtA|8j$j|D~#cmFR5z#XjA>OqC+nVI6km z8?S!`S_XY2cEA&%IU3SFxY!cQ;H`D3o`)fnT5uahg}f01=a38Mw#j`^c7oN|Ksw04 z$lywZ`DYCR;7YD`;f{OfGp_9t`4F=W;?=0bfeZDT%&K1kHKoo~62J(geQn@!29u~6 zC0;Hl#PxK~O~@=g(-)5Qi|m|mi=e!8DEUYcT4_hw*4gZaEd2dpm+rQ&mf``E?$x>upkZ314Qqef#6QSDhmlgyr3*2mk@b*fetdr^bD<`MJAg(mgPgP zsTupI;F$R|RFrQ$$7VfoJQgcL4kOCo-b{2s7z%|3>8k`;#9NNDcq!|Ne`%>WVr)R- z1o@5{^%)38bzB9_k7=9 z)rUa|PknTFXfe|Rz$6FsP}a1fz9pQ5Fd6E3*+8+6^QRHAS+jG{J_8Ssj#$z&(rpg` z#Y+$Dws2i&bJb)X#|xo#NL)B!RD*T@TklKPdU*=NOKt)Tw)xg6+L@(1dsZ*xu6gD) z#aG)X+yDtb(+7KY@N>JM5a9mAt6iV&{SAD;7h||F2}j5tz|~72yjw6Ydv~e!S>Yv% zoXX&~As&>YHR(jEZ@`E%ssVma9VAI$+Ov6(<2nx<^=x|4c@}C4xh%+W|7aq)oY}hm z{tdp=00WU>ecWv7Q_hcnJQ2P2t8eKls;VW4!V-x4;>*!jL;d)K6%0Or&in&-etKlT z*N#6P?7BRJFUT`>UXxQTl4YxB`|T;Nw+)m!8=X8+yBIKtVNZAw(i0HFgri&o?zB^F zoou!#A1gF0s>GF9eOmh%;Kav`mzH;fW@ZWOQIR;X7uLTN2+5qNds+Hf_U*2w2#&bh z!9J;m-A#2wDObL<&=#EuC@NC?mMYj2z|i&ko~VZ{;#=yUOV7QUZM{r-8If8e>tdPvL_zi8?`{wZxsnf%Rciu4jqmvr6l@X|82Z1Q8@97Pd4~8HI%i9auZiiz3-=m6wMNkX@HO7I@qaz z2<^8sa@Q7Pus~N-sF4J5k&<^U?;7MOSob~^G}pW|S7ouLzG8sGu?wcH+Is|Kt|qmf zuYFbyj;jdfnIp70j$sY($|#)i;73u)g=n5Ey@T>b-O0DzMnTih=E7(sUU8R=8xMojf;~C=5;gx@z>w zje2>Vl?W}yYEbynHgFkUhR#zSz!E!etaT}hfU`#R%OCk z8S%{HP5AJ+cK*mT^T&g22h8+gv=+Fe(pR3Qr^yXeE$Hn#j;S9E7iW9OZt`RXNuttK&`vi29ed9Fp#P?1{Hq2R z!<~Au_Hc8tmJgZUwQF&1*LzrvQ+r^Et1CJap1~3&qu(S~2ki0|gYZ!$Rt+lFeZycf zjBTs9E0?1c%&Pl^?ETh^5h1e+y=$#-cWkRu6^<)@ta1Fgz{=b^#c^z#{M4&#zW$J+ z5!rTA{le_%PO*}qMtpZ}dWgVWH;2DmE3d7dAHg6*DT_LhxnLqcY505i9U}J~UQTVg zN-1!2kr|%4;5aVzZocl0`O3sfbZ3NwKf%xAO?p46C~2k3)(`c8Qh2#Mwe*7mVJf*o zQeBLFX_{N8#6Hg+r5>_1X>#*rQbOs2EvliPdP6xL`7#m0SMS_b%8G+K$rg!NV)ijb zy&^bY6>w8Q>z2e-?u_pfHBk%N23AN;QZbNg98}N)ofU7Q)3a+7FQd;15yM;>X zxO#rcQJYP@!!L2t?oNNf;LZ_YrSza{n;2+%C{fwa?v5XisF_ShZ#+JXhmoVa|Kp)g zQs%D)=Zlp5Mwdf8RX9Hl*Yz!%Hk0$pIspe*C_lKGTdlc0TUbuCn;T(?Pxj-SK7CFbFf!PK`(Mb z!|0w7D0OTMtnhtc`a-W+h=5UVpLT$X<=GgJ{Y#+TZz~FdU=wT78_rFaxZgX2_z2~U z6`gd5?%uA&=)J2MtNo<>bYbF0{@_A$M=#XFU$$=q9mvJPjb;CJ~WV{s6yIk@-fci;bwpz{~k> z9j(`t6+1JsZJ9_Pj+6O6;bog#!i%`*=hFC_3QL8k>mKM`+1C-F4 zxc(Hc0N{J#zgeB=IX%7>Yi7FKUP6?Ep& z=v+PH6&kUdiF#POLUK7{TiDObQZ@s0cFB#NOaNEn)>MJtFo*sK2YfVy^c4GUz*c5c zJ4V@_mR}@Y!O2U~;@=bvcj6z7dn9K8eS`NC;?Zbdqh&)Q;QqL=GH4+0+gS2{Ul|&3 z<#SoZG;tx37(FSbr7e@Qp=1sng^ZWqGRnl!OB$rWn~~j`tEF7Mep|ou#E2V2BuK`)GtQ$!d(|` z*oV*4Hu4-@6UT9*x?t4!$_6na!1ZsF5>Q9`A!di!p?}_~>lj$69~Xb+E^a)qIy=2T z&w7l#)hLiJ!p^bh$>mpNv(~Zkd5e? z?LVgHJdLWNO#H6l#9NkhLB$IXVRRacZjXX%Kop8pZh*~P@t4iKK4l5hLw1IDagX4^ z*8T#iVv`;y+4`2gYHZF-R4ViRQD@frVFqj(piOkdYheUCg|Q^i1-=dn)OyzBYSaID zb8&!6w7jMeyNR_5K9v*sX zB0!6|Z3T&*d~WbzczjtIhGT7n;0V zT{a%4D0^!q$467v&BO%h8n=JZ041=E8W3FQ03t zS5%3c!XjQME-{Nk$``X!Exs?LXsX@6SlMRH$s7nJ`?aXCgpq%te70-pUC89x`|JeM z`Ix=gQ@syfH?0_Uj?NBT$9d&0Yb@lA7vjx|Da&KMD<5Plrg__ySNhl!pM7?p6|1Nh zN3S>(e9=eaJCC?8yX3q5Lh>3X*(M&y3Sn+6Be)hRUiZP#vKL!j<}0dX)oD*&I9$An z>n%)gztrwY_9soXb`{iss8}8@?m~_Dxiv22Jp1z=W#TpLOLe$P_jZ1TinTE9m0y=v zu^qO&JUaSXFf#51EA0?z(NB;iOr_7}6{#* z*LPv{mH5#Fy?37{{0nX)#6ieMkG!yF4=T^?rm(FHg_@0q6b+Q3{U#!79!iu@oY#g! z+%dMwYfZ<=+6x6EVX?~nA?*Xjq*_>~h+1TPe+Ba%McH!7v(fia-9Gmeis*;UDNmlQ zrjbuB3JsT4@j2H?dn80;aftc$`?i;Y*EYX7ks|PWVdUrcar54_uZJsAHe)_V%b3D) z?ELNR^Q&<+ibKZ}6BIlqih}3XBGMG$+462fUB$x*-pbj(p$ppqAP5^S_Pt-cPi%Qr zOikORjNAp#1ittF_AEyWe|)-`o@qbdOtKy#?qy`K_)2xfL?%KouXhC)gSEV zQQe|`-HQ-ak(+ruG*{c{;)|;{>50chXbBPww+gwejF$AZN_-dEXNc3IH$6c!ox*#P zLRHCKN1D??RfweL98()G;NqdQnLl8F=N+l8>N(Hmfm2pXNVVstx$(uMJPo2`8qYk#D8K=sSQishP{>q9Gd@yK!!wQjA;eLF`yCx8c( zC%8unfPjpN2WrpPkLJoJB&fWx{a&r|<@$M3r=p$0^l8*y3Lc zy-T071I124)L$QfZ&E69u$8MDnbNh~&)uo?TG9WQUuR7=g|KrV=3vNYPkGU{_ z9C%T8nSP}qSgalMtaNC-MDJ}h*skk^@K|KRIlW%#0o6Irtna@W3=U<}x$6(4VVg78 z^VgXJJ~6{5in|Z^eRkO;@o9PwE~NUVYscj$Dz&$~7TSM>keUHX$A2~8 zzI`jklH|+u-o5vI*F4yxc|a}Dpq}N9HxHPQEXJ(~`ESN@ktB5nDQe0H)e%MjIwarv zc!VBmI;T_#dZNcpV}S~mG(Y0Vw7DA__kT~2dF5`@vK_m40Ad_IRiz5b7}E%vEkJ5Y z+zw5=Fwl6jee>@~{C`#9JQ({{%s z0D4ph!pn882F~S8gG7&f*=0|&8B5E7ZNg^OOe@5OI}H%&^Ak_Gz~deMAIuBnaxn(W z3?>se(`=;pxc3PVLHt(1yO?!e1wh=%t#As^^8-}`ke$gL)f}V;KoAHdHZpSJRc)ZU zD8F)5a|=H%Y~e=`<=-7pcm+Yc5vemY;Ijc(XMro1i#bchhZ%NvZO*ofWy z3pYAs@Ugb$<;^E_@%v6a{^M&oT+SwOC}mw!Ob=8Q=R$#J z%sN@1n?XhBEaI-6uTOQT19HlH=RJ6}fZ3h-PC$4Da~Q zyNH2g?ctvt$xVmuvlc|~*(mDPsMPlyixr|p3ep@%0rS0%gU2(z<6sCGE)`&91~y9B zc}+m-@@iXc%_>hv>$#X#UsNFbaG~o5URGog_Yk;>mgb4zR-!|2p!v&5`ID`KNicgY zkMr;!pO`2>q2XM0h)6idTr_qA2`J74so)4s+&Vgli~)Q1mfY~C=hwQ#D`@c{L^kk6 z%GQ+pkXz_!H+?F`pCnzi<)6IVW#%)_f$O(MFnV&~%;6GGQh*{u|K6M`lMCZUW+a!i zwd2kvwP&*bLuS9cchh&+-!%=4O+sZc*S5p4N~-_1kjhyqEj2T&Q^il<|4DT zrY6tD_JIsl$g~DP^&y}i2^j_#4sGm4o{sR_*|4e9*CpJL|FNgG>X4i&Ckp5T*C(GX zPID_;d+}+k?H>o}Y`qcFt_=s*AbE?-0q6W}bHUbt6ieHEVD<6$=K&i34W|5GpQkf? zl{D!AC*doL>YXBS&NQ|g^IuGBGWSB^q5z1k;QAzXA3*)75qz-oXMpY2&r{YurOdP? z$0K=YOvzmkUvgvpOL#8k#{MzifU@7L4*dV%3;*AP`2UE5_~4DxU#Pg7 z5-j7rg$SSgJ0d&_P%!{?69CkqSGgQXTj=u;>|bM3FhJm3m)~@Q8%7XhiB94caiq3I z=KdV%?it?>iKiQ)$7nI*B=daSCUu4h`J=42kwpFojYK;EVRk7O(awm(k5^vHW86gW zd|L!11klCb5xh}8fXA<{j%Tq$MR@;a8}`lhRsbGTKjd&fW(%lm0E+9p?=%&FoQl?7 zH1Kcb*WhB~AF|FLGn4-_7S4@yGv%AoHFp2S>PaKZfZbXAsS8>K{*PLs>UtuuiRXX( zTryu*{r>R^45;mQA(Ck~x0D>;7H*MR?GrF?;_AKasD=mx{X?<+CIHt-fMn>(5OFjh zec^feQiF5F&1zQJuG6DD)@b>0m6waIxJ=Z7+>#k5L>jo}LjyUL1*b>v-`wU7z$tv4 zLamX*#J^?%XzM0l69X6-I3sP0yl1?Q|F+*;vcM|1IZeM1o3n~{FFRBCfOwD_^jwwh z0J)dv@wfZ7axaOk9cgo?>&D{%9mq>iaNZGr)^~? zv0EGPILAPU$j?x%mUh!cALAM`VuWDx?sij;ZuD?te5~KnWnCvVsN-_-ARw&=*&a&! zZhhvDw{Y?eq=FvzPpSr1T z?JRJOT4$Plso$0eE5_SI+0eaC^RBdzrMH=^p%NkTJc_IPgy;B$9SX6oQ1LEV8K)h9 zK^KQ@mV@B86ZCbvMa(EOQRbOVPv>j$X^}O*w-z3RiXHi5Kly+Q(=MJjqmtRHn?C`= zoqPg(N8dhrWK0LR>?n|duXEX`Q`+eC34x)8*aZ=&7jI>3p=SG8Cs*z;+2JvI+0@ zYCzOi1y=**aQ~;nE&{v)qQrX1A`!PD7W;afs(<>Rg?xJkgoA*AZ%**7Pvh(lpGG6! z->YT+eoXk%5HOLoAA8)IlnmN!n+KxXIosk4n%M;t&ImRkcy_^rLJH$uvCKL??Ng}AE$ls4tGIAHxbz{mN4tS2u(?3s^35v^PE@=fvLYlp<0Z`6s zd;QacLoWH5^A>9B+m}EDOrq`BnTeYqX&#OF{FD}|(F4bC+V@HGI}5G2yq>#?+apP? z%T%oTR-sv#>`<=A`bvtK9s)ZHh@Bi#AEs^$_fYc%$j*$pT+={ytlj=Hix)h_43$0k z9>0WGFg)ku^FZB&L6saEV*Vskyq?Ma=xiG5Wd+}4M7iF%XAwZQ%6=4b>5AVdzBKlL zzPv*50WH9IC1k0a%7Xz1sXWg2=%!6I5{{~)h$~zqN#fX0$#8~(%81PU8iCajmV>>I z9S;F7O5Nz&vqO?^4+B}Z?2_X8fK;AYF4n%}VC{}QGOj=qN_ z|2xpiX<@7Vz^6Hxs?t6 z%1GD?en0-C?xH2$Cc-$@R>6Ir06mgt^2LV>J0PcrBK!=Swc_t+Vs$&sltIcv*p!tN zXQ!7TDd7_C2KWsXv8T>;+I4R#qiVP1f>qvl0dUbnuQ@%;Q_8D9KsZm$TFbR;j_tj+ z_Lp2463u-;))h-VE`Gh~p0g;K%cyOQ*II0GC)Vc?aU7Ltok9Z< zX_+9C>pb*4)I|T-HjJHVyZ#49NpI^T+XXHU%&Nc0RD+5$6EggIAeZ@=z;kp+RV-%{ zBQn^2PX?%vYt$j;q)tO-noK_CBmMu7L&}i=LB~iauWTyTO9q8%GB=fyEj8UzX#1vnal9UsvEL)IUYB_p6IqO^k^I|rRbc-3># zQKPqRb<^?s&zKOh9oWi9tag|^TfO!L$`|c3g#`>V3~kgi4k<=eIiBYg3AskvyGss(p_Y2N$)ZotGU5f7aTpXE9R=} zIbwgg7KRbIep;mHy3PdzRddeqq~H>`4M7+u3Fb8#bqVy;860%8Vi1O55UMkWxJiAV zU+`zn1pr1)CCt~P(9lNqDC^Bi;XM23!yO!zkpfp`y}vbKTP13B_0iSmV=9yyJzqO~ z`K&8*sS`;OdhJ6_3t)gy3?6L{YDpbiYx9&)6S3dSw#)>b184D_u>CnnAGcoylhIAL5 zYd-hhmh2q8I?rH~yxEWUeOBGfa?%AQbgILX$h>8r>}&B+d&v(24pn~Q zx0I>CN)`>hKHs6eALrrG+SiZGAu*;h5$_K*>3ONoL)gyi$F9;~@$%71tj~@C zN4MJTX=Syb7&yNW_q52d`Id&$BKbX#W`(X`rGiO1FDYL|oQ%IdGWg_ix$p}=PR)Bz z3SJXebgen{Y`*Xnk7)s?wS0x5_gv;hYR$?)pUpixm$F@J@SgpTdJkJDH5D|-_WCdu zHQJla#teVESK-#GDeHST)_K~ae9TmvOkh+geh^zZ6l2d{zWgo2zqi5uN>|(AoNmEf zTg85E=N=$=c5Xg7={28WzFKBoA(ENjLf+#S?82PKl?S)8yfwP^6eWD5 zaPvce3vD$~2B^h2HR_CElG~l!T)Fj8zt$V|J*O0na&xauMLwRa}+mtSyN)!qlb9*n& zvQ1h9bLi7FFZCY)Ov07*h$@%cB|61lJGWbhmpSFwW35F)@(eJ~()L5c+;b1ot$j$V zr{Lad^_r*?#Lj}4f;=9+Q45x9@U=Mcku%F*uH5UM&sjU3qcRd(PtimK5Z9~`HSMgV zvXTeWx^E^AoXO|b%u+ocNjkrVC4`Qc}59+`;xzgAN1qN)&Ql|hN$N|zDnEy z#U3TGMWU^n3V%J;@kpb;s9JAHf58kl`g$cz#8DO^E;nZRpX4TTJEO&%-X10yzi)q< zQmuo{IjODA#nOsMtHmaA9Zie`cL5{AXpAQt$DT<-o}G=ij?!*Cvhs!Vl*9Y8;n@fB z))rAh=Kx)8TgQ*m57@15*yr8k)#&D=t+`x(ULwNxv<=+|f9m}^+Z=|ax8i%}$ zpNZ9qUz&WfdfH}9WJ(9uZjH#b^|)bn(5-ss`Dee6s_}=POyrGJ5vqGO3e=)VNe0)N zDj>7!xJHF%=OLFg#Sw;AchC#68_>eH5q-ryDy!%&=p*Fd_fn@`$SQ+E+T{2j5_Rdap#yD`tTul zML)v|n`0`^KA+1eI+d8tj+EGQyr9I4G)_J17}uJNIDGYHV2Mjzxj;23UNT)8=Ayvn zBOq$*v*aj?wrViX85vQ31YZ@G>yH}t>fb$Q`rfgr#j{deVW@^(j_~Tib*~}%o-VfK z9`!T;m1rv$pH4=8dGTnRfBuzP_kQ&8++pQ~lC@Z~8U`K*mj=DW3tY z6-<&Yv&zfOp?*frcPkd$v%R~wJ1I|JP3(1S(;&a|D9#yH^t`Y@dQd5#nnR$A$Bryg>?7Akq z>YVK3o1Uw^ihzv95>FUpu#vcD)He8E_ttzr>YJK?mjE7!#M9Y^gr7bo&OT+1x)vq33G` zWhF!X5mk`lKN(WcE5wes)3q|HWR@uYR^Q`E?`v=auWgs@lRWo~Q9!X-)=GS(p}^c@ zxRCIMnJxO|B-={kgUK5;W8N!*5?*!W`Ndf!XRmtW9&s@zm-!BtYSz#;Q2C_q zB>wdL8tE-pg^Pr2qGxW?q|8`KQ#c2F7GHKh>*FdxAZ~`D?q|mDvn-*cBC*`f+8aag zT=+7|^}X#Re$0NRqm-?}WR~o|ez=Fv#hdCy#`BCzuE~gldqE$B9!-p+G1qTrz%((j zObb-cbjQ!6vCL|@%!Iw_mM)xxbut&Y1|EQB_l$&9X3DO70%lW~kk&v6pdcZ&(FxpU z^L##yBhh^n8W;P7*cld+sWjsd$~G>Tr*@C%|Lge95qoP9EcHYs)*CvE}h{5#|4#&3R`*XvbR-3JLAG8UFzITTTG%BJbAip*saUrJ_o z+v}A9jW!7lfV}`=;&DQQA_3}~9q{!;%ECFhqg8@*f2@WM>NtkiK7dR9M51})ZCx3u zr1Os_3Sc7r)-tn%;|@zbQ!*$FCH7h~)@6kmQLY-De3Qn47I6)BxJ@(%sF7RLe_c_c z{2Zjyg-s8iZsg-QV}Ol~Y02A>n%1GYbVvP^?%-J@IuTF(!Q1B1*^gsL0^6j+e-Ze1JkN{Sw&vw%$cBc1(&g85WnO7CGlaXBHJ zc9I5}_7Vb1+ibI!gUUszK1lwBy$3*Dy!7zHdz*}qTn$*Jw zFpSl^q*_opAPu~d213j5|FDi!Z;*WM5APtt@vj#L07me3{Tu@dH+4Ux@_#VQM+Psc zK~oW&z~w@*lf~*PG`07}(HX!ED9K;f1nkSee_HiIjwLJnU?m91U0{tzt z9+n(;HFqhEUH?kVomwF8t7jmirLMU46IiKAKscBDgy%Z}&^u)#Gyts78Z$l*jDcNw zf+}zN`>yiVrG)F+VkaU@g%r*d-WTOFOMX~y?R=iga391E00=vSI2~BW^1cs{g#qi= ze(;_(uk{=OZ>jD4({-GRhzPw1y5@weL!aW}OEs*`qe}Wz&x=NNAM*}1e*6wb`1L^` z@KpRZ0WMhYbiH;B}vCDy%;Sd?1JYYf(@}v{a@{U zXHb;c*6wbQsKB5iB1s1U$%^D?MskuQS!fW6iZoyo8c`S%S#nU3oSPh)sFE5`auWnm zK%hwi4HEBeC!Co&b54EVcYoZv_ns+gN=ke8`|iEcUh7%Us@MsSLexJx$YBq+BU$w& zOwo+bme{>+g{Q2oHOxmk0Hi+%N#f~1@6*EXMV{}2QGB}1^pAmIQ?6@%tz#fG={FA;6mLZecJROxtk2%7{l&`=LYe?ChG?AtEb1wpkBIwgrj)JxKJ73xCkk=jPs=mg{Msx#y1NCzvF%y6d|Y4tBk0kgob2iRbGQl{$lvjv#F zDnVx_Z~%q0wS~tbkpwupx0We}6Jp%=B@3xTD1YA7E63ngoh^G?A`HCZPulK-GDq3i z3rWcaj>}!V0xfiis6(p!J`DSO@+=>mOm=-SD+)(9#D%UkBKMAuQFcOTf3#qh0+|)Z z`4Jut(-GJoM`k=@d(|671qMzkG+lwJ5h7^+S)P)dRlCJU3+!iWYVQoR2)BmI!t!HY zTD$Mkqc{t!PoZ{*gTyPyjJOyG8*5+g={P*7n~mQ`?kk;VXNCFeE*Ru)+>eWb4<=e* z&TdLk@4Py+Zwi8~Sy=#=1O4B-36Jcq!6Nu(HUfkYKQNBkaF{5DZD;CG+9asRCeVep z8H^W7MQy<6uI2Jb2jg;m_C#a&TTzsgiZXDM-@op z#@#YhP9L~A&lczmw{UVmCYTrc&BAohhHIrf2ICta|ILTeW`_%OIYg?@+bMT>WfR#T z8nu=_KWgXnwSetl_{dwOhrqbsclnCzWOUpN1$3gEfA2(%vUll@%@1HR+PI*3u{&N9 zFU(2I;PB@uw#=zGZhm#>hr9iHj~*;k1-rxQU#GyefLmbcsxUk{uK6H0SXOep_=wEM zHK%J&5Arp3SR^AF7D%1HP}llL;@-EazbeqTjdNmR1BsajA$=yoS}q<|D0+)7$56q# zr_D%=8?ryc|sp zSapRg&4JhJLw~=Pioux0&C)y@F|D=TTWMlZI~Pz`JS>-=iQBsJmGzXf=i`A$6G&s( zZB48LOUB-EMzp}QGi~w+e99hYGa~fHWO-WlTE} zU3-N1VOkyOTJq*JfM(MsgzVeoj3I>ceHJnruB_|q!wy&eSMQ&`Ybx2j#+K@<>fL-` zWxl$el7I^tRmK;8c1J#dY3~2l4j85HZXTQAA}C=cktDrbqc)cqUQeHS-LD3EB$u@L zB8PTQ?&pRPVX#G)Uv2d>WYur#I-7qGB6Nwqd(}NC5%4?QacX= zv#iaoo|~lVT2%15OWY{4UyPHPR|dWJ{#BWWuu|A{T&MXlVmw5)ga|7!*tUnmh=8UV>z@;LCdf$q#!_553L=LV=DrP!d`hsly!H(gT>XC`xca{DLddX3 zaw41(ls9P~N`W2DmN($p2>ku24`eCXG?N>u(`@B85t!jm8IQUk99;~uw{#ySM|jmI zI4ChqLpl>b0K>g;6qvbdDMdEW!8Pk)Id?$){8G;wd)U4m12yyitWisvJ&O{C(qybw zmdXt(IQ`-`gc0K#2Px}$G|8^4z|nHrNbP!rAreak4t z-@7AUHAKDdHCVF@UMI(S zE{#`#+o78G7+DyVCxQQ0UgWg@u2pB_WFV_n+mW5yOB)--$r_<#$~}8~M7{U5SCCB* ztb1}pAz0fv2`jqVdZSZou${4szZ6dk@-LG<9w3J#-cpd3OoewAk~6ybuOq;S<(T%J zNw9RX&)H%OxUKl;wLb;p*KHR&Ui?_R7=Gl}#miCLxw&x#;t3EGRID3Xb^@wmnD{83 z22(vV(3nGk*{^;jkOE2}a7&)20MojU2m0kc6#ktrau1jAkVDB}0Ju z>-`as-SAYynRNIh8j=ZPkb%vI+d%vxL@dOiQ$ZrnE6$@T@w0Z+kn!}0xP2BZSgIpT`#FG1Toa!pbh3JF-34%0;2U)A z12Um%y^wuu+;Be7-m#3SC3ze_G_l^EEQd$G4)Kr18AxfP;)Txwa%3&54*#JE{UCM< zxV3XgWzA63N9slU!GYy4)OF{BB!|Ck$t`YTI>93P%;(|foj>@-!x(R&*$XmSk|T1;U$??5I!H) zRu04P6Z9sLFz`;!t<{9ArY`X+x8j+AS>%!;+Y#u4R-EAMynmcdW&FG|mZ`-sOz}GE zHGbh}!KokD1KOEKWQ>5>#1#gZ&u`;g)1(IZ+URFBSbQyyq<-Q4U_R5tPUuh*yxA1}ds7r&tEXUM|IJ{@t7Zyy+VRgIJQ(u|cy`bYX& zmemS#?&`DEMVcf%v2_hE75pL8kR9@Op>FfF+Iv)8BD^sRPZoxL1r?h($%^?F%u^ypEdWyoW*p3+PNe=mGCs z6?I#1^l!l;f8`zE6)`JS;0h|dm9mgmfZHTi*_21=IQsrs>{|wxl-Vzw85r%wp|F*HDx5^Iw!TmsMmOo+R_5{RIm?sQ%c)^MCB&Ry7kC z-`(_!fG8;bESHr{2=$tdylw}3e?_;Xjx85pC6mI9jC_u7-H(j9G#@@a&{lg&{(M<< zE=F)IF(G@=im{M9M2&o@<$WnIh16Lm^xd?8DsyZtFfn4_JQq zQV(}P_N*VEXMJ96pMRxBlZ1#1$lrPMAzZxLwC0sCU9;c~&tD?PXg*%My`?$6gUq8l z11j3!G*p9Z#bf(njCS6s2Hxboe5=gpfhVDQEsp`}$(Gy|IDJ(I7hpqCUn(C{`aC8d=$3f%14t6eU>N`bUUFcZ9>dV*T!@?E<7IH2*U^M+_oqEEUY>dLz z;wzUjn3@YmcXo|EXym!Jbc`^JBvlu9Ux<_H*`&f`s9v~o3EqIAbf75yjdbL{<9F>o zO;YR%AWjCHuq@af4)(}RCWzUFMm>Z}#rcv!6k%*IL?WBW=iqm1@;92mKNlICgWfVX z3N%5t>e6E7?Ohha%teOv?Zi~%)KDozV-v$uJ$yMSG%MuRwZoTSa)hiCJpWoJgebrK?dTl``?|tIxZ) zSuPkF3ZVjMn8q(HK!495#v3RHsB7Bd1rd= z^)AE}C)uzLQ^JnXS=)Y?_`WibzXlbqBQ?^L2`I=qCk(DU02Kz>d(q2JM)P*A1`(17 zI<$x-=37>v#^J>${@}^3+imS7x8t>8lYWon3I1dX7Q_-Mewhjab;?_biKe>I4}@4+ zvA9V3R%W0Tl}VxnMme4dDwLREB5rny5g287468s`=t9Gd6 z8FhO*ijrdh9q-}A*g1gsL#+eDXdpDgeJvp$g>A6 zV7FN>=Kpzrt1$;ou~G*;DJ8KiA+Q=Z!aBd|{Y{7tH`z?w$S&Cu*?it#pq-*D zeKW-;n`mL;MS7U=wnppfx}^W7iOb08E7kZN|C*w%yFWjUKlIz{AM!ZUPmsehP})tJ zoH*H-bB%CrGs)yx)VdJCBMU3;tY^NVI=rtccB3X_&*Dw*lqZ~FZut6{>3UePsEnL% zM6<@C|CFu)p zy~}^s-q6B((o}i%CDZ)Wl&RU?nU%`et<$3e0hW6UwKHc_7uOeu_^TaLgfBk1*V!XA zlka<{idZPs5m(udEnuB>pEN5exV&{?Akt&&Y6`y*ETq05DjeDUwmzn{mlqnBTz7M( zy1nxms%O1!+ZnIF4YJ5FMMk+*v)M+@HOudUE1e@Y8r?a+P%rSi>m~;T3o z=jFVQ&s1i{bw=m2YN!osN)f*7NsYKQDOc?5$7uIm;r^;Sy?1*>WEUHQBT9^N?mjuU z(LN)t&V6@Vn{V?}4@7_Y`t(JzEeb*+%;oRZQuOmHm zpVHomu+h}dIb>7}G2$a~ab}aNwCOZnT_WU@hM$rcP0198L#8=f)+6;%g zVsT{L(5foeS=>@k!y&uGeJp(W7*c=!kPr?2&I|j@ow5+zAe>?Fcucf-?`3iGwT~jz zS0S;Umbi3o<{Mt@=%|Ktr+T58WcHJlgSqhHvUPP+LDnoqsK8-ME_TnBWt`VIvaehn zH+Oc@hp>qpC?P|wf4s+(7Vv!X80$aaSYARW>X+D1(?@N(;UGBx&OZ+|F*l4>AGu&P#eVvQhxkuFz_l zuBq^$>er5KDSJ)G5YTyjUIgpUkv|kdid{+mogm=8r+?&QjvScy&bL@83!w$&eeQjo z>>%H8Q7V)gloQZzr#}KvrW)fNQLd3NL9v!b1!r7o4-~_yh8I;H(MBBYxS0oM@Q`Fm z*bQ|jZpEEH{W1W0PKLW`7c*d5rT0uneE%_7Ft~fRcUS7Cd+@$CQox|Y45pb&@sTyi zp)Yajd$TY4GCRM7NrwGNQcnb6?&7Bcbxp*$ zsCTiqBZ7RH;p>FA>{mwdvas41=jTwLtJTfHs5WH{w)@L#*Dj^eVE1`>>ThFThq%|6 zFXNIVK9C`0>n()qf?!0GOqE_*tKZgAaDe3%0{s^uK@IVM0e)e3@f{Y`a(V z1d4yak7_(k`(AgX(izVMvn>NmT?;D0q_A8mgQZ2Q1-Hjq-aP&MbbIJ)S!&UCn3 zzBZvPqA=)ZQja&ut7P;{nY4;O%$Z#IO5WPKL`L}hV-0;2kk;YUFE3z@`urQNy9lse z-x?lG3seqb(W6eUdE*q1!jmF<5`H0T*B~uFdI#sX^IAphME=$M@cD7OgNvbXIe#B# zAu1T~Esozp{2n)l9KXR-1u*FGFIUy!H zPviSOa6Q?@I8hN&kt%J({5uq_j}LB=MUmf?vVP|qDHc8_L<`*Pr(ZpQF-j`6Qk;i7 zl=WF%m>r0oxUL+3^!-q32f4$%Gw$qkNQUyxOpKlI&gHghEju@#a^f}ErvJN$jv)TX zx9a?KK7bL1sGKs_P-#x1Q4-ascGL+tNZx1xI}2{l_jsUVs4?j2Z{7Q;G3x3AF+rrO zD?RHU(TmQdMi<1&#Em~1NAC(RKDm+ zC5*+oHnYx}P{~o$&t2u+de%DDPMj9!5>RiPdVF+ah{uDyg_t4Z5}n7Z-dI6WO|syI zMBCMM?Tzv>MFo?CM26Jz_K(T7UuE)f`gwJ_|B8@d^@>JV7+G%X~+PpMR_=9 zFizSOoy8+yMY`KWEg%FG;>_N1#TBP?U!`2CY#Y8f6(lBj`$6QH|NcsD*lc028%bZT zE_fi6yZggO!FWa!xVQJmw z!#jtB$%_~lvC^BMBFZVxc^@e6_qfdu$xHeoKl)HzC-d7(p$4Ria68WxV%sQ;w`8Aj z>Upf|57n+G{7;@Ql#eq6iO9uq-qX!))fWGjt7f=$t;dfKYVjrxpN$w7&t5BF03*sN zG3IB0nPDZW4BiW7%D)!F1~GND;1CK$FrHUBB2Q*YaJO}ZtfVibqteKn61K6_u(BSe z2=kfbLc1;WbN0VnFeE2p(}j~dU|2afbYnjy=E=EDX@U3J&YvFUYQXE2hKXDP9q{ZgeR~8}JA0lCy*>Q(CyfyLdP@lsd{sXZew{P|l$w)emVTpYYC+V^L&N`i5VipsLf zFyo;*mK}f?H>}L*Z-u|Ljm0-0#``O>Nsl^@U>q&Mp;OQ}m|e|ZFr>y*&kghC9sn-) zS>u&yK*e{ZTWtprAPTs9;r!(>RS$6CI8BF8MKGxqk(;}#}U>~q(Y(G5zu{|oaDfv3f=_gNarrTbNvap z3aGk-nTyJc@OJsB!IbBi*^UZ?p%k=Y?~n5CJ|q4d*T>VF3EwhxL*&>o;1XVZ3;I~I zV#@2{3Si`*ilh}Bw?&z#^XV{v5EqwkIt++$6}8k~`BvN!UQ}s&r?$d`>Eus+lO|ND z2D$qrO|;vhTY!~HtlTT$#+hC2ssSo|m2w>40XOruaz`^zVZNK~UIyHfW{s2~9t1b_ zjHBp0sOivoApu-7w*!c0LNKV90mu%S6>0yW&o-vzF1s zcM!zqgJXe6${ZUQ}UgV%lC0e8Zu!ibh;sq86(qj2#B;W*qMEOOpctJf2-RL)K zFdi*m*f^t2i{UQdO*|pbR~q#^s*JVFLaf;GtgM=ywp@CXP}J?m_++OV$arSwOh;yh zPENy^JA6C`xcKMg1QY3enoBcsZ@_1GOyxQQCzGgi8a0(5#*bZc{S-!y1PyzlU@_73 zmVk7NXiQS{_5L49vp%t%ig)St(VPm>j4CYn&M7>6j?{&n#ICo~{^Lu;!NOxA&V&Yx zup4#VfC;MY?E*2!H64;iW)K<<~HnimwVKqiort;D<-uA0kG9CV{bh7-7NO69Kz|ST9Lw0Ozm{Hy|gqJ+aZfoA@r|e6+)2CfLAMO2& z#t}IP=HgqmOZ-TPW&UFuVCnd6WQQ5t1&ulhXG7rDqtHF_9pZo2G$Ub2PP&!7BUv4G zZKO<$NFf(^@U8cIfRm?3!BzUC)Sc|s^Gzjd&Yq77$TB<6xU7%d<1ejx#PR(B+hy8BW3_>@Wb1eSJKbYd~_j`&?&S#4rD>&kugH3cnj*ExvTQEMRdII2=EnMwMbn`*?4E|*Fx?L`XHk?d|d&QYUJ4sku? z`|mv|3q>KFb?BMBKPechsZP*Z8C^1YdPP7EHsk~|_HfuiNT0&~<*Hs7_eDr2lpi4% ze;g)YMV9YgTAVutCSfKfy@Q@yLW`GAd5rM#5U^IZznej1g#4{*$eF?napLV6)1YRt z*@}p#r++JBK8IyYBLxE91D?*RdXF6yknZ5=NP>U}voQ$=JKz>s^MP2Y@e`(5#D|l` zE}&reot3vc;g$>EG69NEmsVY82{lIkbK4cseZb|l=`m>tg1If~Kzsm`%2nyQ5VOlZ z8FEECoe!e?_{@_zzzA~jh%q}bJ13ld1lkEvVG}WSP>;Kd&bmwqi)C}>JfOl;R162_ zgq7UQbAq?wZs%ow2GBeZ#ijDAvwsK=>4mHO3TL_}0~>^i5%&+~rfzCS=82*4?}s+h*1B#jSVl8*>A{hb-^>X` zwBl*?RgZU!%bKq-GXM4Y0yYn4A~4$TZ_%)!6256YS2XGmT4LAy7JrO?Q~23V#Ia^= zrkzvB5uvRF;wP<_JHgHBw%SoFbRM|{M6-)?*u5`BI6vFW3nANs?rmpI8vNx!U!>Ca z($>?cbu%$I2ZYo`C?2m?CtWbGpCTImN}}rPPKM*0m?QqH=9~ zk<-VnLjZe-V#a&3R+T^RXuyJy4i6|udb#ki?X2EdQ|pIC}# z=0l28n1B5E>bsb5c8o$s%?8GS;<~F&d{9&DdoWG^+dYQrScNtgoe=?=&3= z_eHw(K%+80Iv8Ku9>*vO7GE?r*;+>6^reiVS%@Ly7LeM*aG;ibQ^rJYJ4XB?kEwZC z0?`rc*(yB9X=plDD!$c4@gzafKuQ#^`?3%1euXyy#-ws1Vfdz@T3wPi1dB*58bHPd zYh+DVYYE9RhM>?DPB_|+GHa=>UF&V#i}W=?g*iDA+OWBW_r*QKIR)jl${>-yxO7xp z&hRdGRAH&<-hQNZ^s{QpM0>F>N&3kv7kW;-0QCR(IoHK<^C(c(S~zVir!X1K@?6Q! z7!?`Fh6Rsy`JJBXBzh-&PPwNEG(N2{YJ83w3?WcP@1B*cIM-if=TvHEP$O z5vsm|DkWON0ZVFvC7WaInX4Ptafmwh2=CZ;>8W`iHc!iI+xb>COx>tD`N`<<$jRbO z{|IxDts*D0mf~7}J(?-gxq*@z$D?~ML#XFmPAd<_8m{X>JOxP+SqvvXpE^76dft&m zm6ZCuhxBaCbuawJXD$Kviyv{PdlDZfvMy}A(fzZ!yhtHSVQAO{wGL{abNr5HocWTa zNO3jVeLDeo2I}Pgbplp%go58M zeWD*l#qVm?`>uHNGGfE8R902W$j(}y&?-JR$0;uT8Zp>b7H%@SBcgjeF{{dCZdm8L zbj$83bP&EV8~a^6r|#NRP`QBhcW#upv&dBFFw#-xJ94TjZfNX8G0w)yrGfO!!Mz;+ z4uz=rYH?ILF57qg#wbvI>UbSb;m-dB3~2loM6|2-VmplG%@qR+Oi-2S;RQ6 zmPPVczieCI`7qt@zHPku!U7fYL_#C}6(} zr;_L||8zV(Ta&k)qAq2xe69kNn7e84REXEbEcjmv8o;%$I;J})y`#EneY_*B*$)ML$w z983(=W-&`$eT~=%ZYq-QUv3pB-n(1qUAZT){LcF0-pqy};T~4!C{4mkDgNww(zE^D zs-yn8Z>By|xamc6*bnXZo|fqG4u9JGSJS+`?|eHTfA{ zW!=|}M94UDNf{-quj|>waYa&(%Lm!;S0Opa!r})$swHSgRIv)}GMj8NZb>!CZOz3> zKOL4PaZ5_s9m7cLS^UtLZ^^9Q0~Zzl;ugNKE?NRGb3rUq_SgMtt62?>jTzPVWFdo_kKr&-bm{I4hn|t|+)8LD*|^ zV(_3?Iuzu-kr?7qC@al?5$jFVD997XOO$S_w0B!0k%OFsKwJMX6Yjd`JXmtjD2(fM z53SRiI3nHjNLl?hd-K1Qh?~dZFgy9cARI@`pt%%UL2f5@hOw=<>I^*C-pzZjAOm&Q zfodLHw7$+hjHkZ*+?H|@Np0Hf1E2^fXX2Bc65Vm0o{nfU{hUCY#|Dh1&<*X&0@_oljOruBQG)O!p3x zt*;tap?nB6Ll?)rrh4Z%JQ&>Z%OCw9uWRRF1D3R!YPH^fc&E{L>#>>eRx#e!shSq> zd#0^lmE+{HeEpeH-1MR@*iEsPr(CHy@u8oq!=p)8ZIFWxQE$q)wVN+*72Ej6*cG$}zm>SSc}mqfJV@#kV`7 z2&w&hyjyAbZ=~myFKL0Y3Bw*=u?mv4WjBSWL(s&k+xGkG0t*=@`_O&<8gMY7#;2xi zD;smMV(%J#5+%V~yd7eY*}Xn0O01;jDQX`ruNBLrOjy*mo#GEv8)lD=p|%+oigtC} zW+DjLt{^>IMI$RcW83k4=T_y#*+1LH?eI76im&AC*gu{eu8P#TEA})Ya?NpPT2?G# zS@y3+!~ciTXdIQSHYF(%OwZO>d-~0brk#IMT4`kWetX1P?g(H%zd}5RLftzA$GS-b2&l zhK`H2fbpJxjPG^Q1M49wDn>@|pt17c75aokhG5qdg}GOZe~KXfEYJV>^Z#H6>i5QO(moBU|EK>Q cSo;Zp6_l#t-UUcF0RL0HtaT~>g4O;11^acTsQ>@~ literal 63637 zcmeFZXIPWl);2mrF9IS>rKzY02nb4%t|%-;K}C91no0+0(!x??2?8S0q>F;m2~}z= zfDj-kQbHG`2%$r$fioX)x!2nJTkm^)f6k9{wwEa+d1f7R%zND9p3kEzn(9mp`xyWL zOc#DTcMSkaEC3XhbTsgj17|v-;0wz2n)+Fg+rsk${^4n*f5H0lWgraS(*Y{fen5@< z1U{5d+`rzdp^gE{?awIy2)YfZe*Q)iz9Rpgzz1^8&MRdK>gTWFXDJka{+be-Liy)= zib~`%s_xk)_(JdWn}I6;oJWuc>cX|dv+zTn+vl{d!&g`#@(*PSpN{RkBJcf6<%c=o z-zwn3xii;2QN$|7vco!FGl~c3JZm)o$9=U~I+{o7hZwFtITz~V`7zCt-Er?D38inZ z$K?6XSk*N*ohY=KK}G%sC{Y0_SVo5ZNA}FUzkKFgM97KXjcu%1V$jA9al6Rmfz&Ka zd3u(|vZ3SBbnaUFLS@C|rY^a&qQBVBTSpHcU;lvO82bOk|0m`d6!i2~+zINI-VM?b z5~(V$vC@WJB_EUcr$6}&vv(Eoav9-W#wu*rgREwrRhdWo5{$K|lV0^;6fg!cJ>G`i zMg~cQOq@h^W(-Bga@Tp%8N#GxJkC1)lSrY^b^H{*!=C(>*oWaFm7Slz$l~1ffa0?5 z;DNpkGDg>2?~b4RJ~oC}3ayBo$UuobEdzJtC8Vwea82g=A1m}+iO%j>+?BHtaQtyx zvEim=X`+Fi5%uOp4^n>9(4dsbw9AVs(Z`Wa{hMcS*UhN=Q;gyx09PiAi{b+^h>t5&sU3^yy$<;?0Gq`TOGar*9M1P|hwS9%f zxyg7m@zz%e zm$|3xN%%;oLwOJGoCv2lcEVBbw)vy)IFq9M8LA$O&oSyMC})~aZ^)xAwtW<=rJct zc}`M$M(C)1Z!E$8rn0!joe~Os$CQymSDN*=qBoq`3u_;otWG$hE$Yd>`C){6BD2(e zNl~k|45hcRwr2IKFNn9|6eaD~6@}LWh#ZpXqe8PneVE#Jsqb70PP}kCY;8HsCOHd-s^nt_U4yIn2qQ5&c`Cj`zBUMoD40AHy?Leki+9cGvKHXQPs6VMgTfWd*Sc zZIa|ZZCCdE>iQ3uWZW)G%%jSuLhmw!@*g!-3plI}`!~LSRJkYfodQD&mWEpMib7vJCGoXkQO3!cQtTZ)VI9`$;4;I|K4F_W93 z%EyT>D7{{V9Lqi%kS^jBOO^k!!12*;o8nSO6HH?JF>?l=bJosx^B=#7Lpn#c>ECpo zAKqg?EYJ-}tPz3JwI+0h23y$oBd7aYG{OC*wG4hAx~Xvuc2|?jSJn5qElfy{Gf>0+Y*>>ea#Uk=mhKcaHTtNd_bJm`sXWmUdl= z`5|g(Q?T$ztVdr*i~1&NW#Dj7ZLp#g7P=^6qJSQbDENgm;T-=xif`zYW!u4WEgU^* zWkLJUOkCw2A)cUAtgJ|Wh*VyAHYwq>DL;+W zj8L{sK^()zeTSZ*Z+M1MM{x;^Ahlh*uXqR?;6(~^?pg^@vQ-q+#%$<$&RXDfmE4JM z5>4SX6jq=z)S+3fNcjoJ@Ii0GA1~)>e5X^+p+pvD8jlNB7F#AeNqHT)o@TJ%pV?C^ zTd+CFS=cM*WyKlL^_b$a4mM>(i6BfkM3A?XK4ixm;UMtAu=%SBwdou0Y7J}gH>at8W zjf4v;7mNrqIOv?wiZ?8+{6mTS8ck~=-_DuRx8JJU;Qt}b|HL3W;m{IWj8H%aPnUeuIe5B-@dDM1uQwmr#>ru`QD(y1yk)Vpr>3-@S~9y`eA zGgH6BrejPjNs6r*xY#QxF%;jUOegY1wb97B6=X;O|DXPkEfaS7$f{mRTu9#9*oV=k zEud!POpyMxNtBPRcKZ^df7^k;vZwwdz4I5X%H4t=FDN_TT;DD7@uG6U*@RPKnk^?t z`}7=!%M;mSV`F6v+@J2j($W?s?9~9LPbr@3=ki2xAp^5gMVG3r0B%3c!#gP9z;_*K;4+A}LyYv(1;qmk*U~U4F>1LYR=>-QJ}RVSSWjAqF0{VIS!;jM52Bbjsv^KE2T~<(3x>O ztC9_rU38mta{y(gBL?k#0IMTpRI@;VT@qE9omX?yGfnyJ)g>1 zb+ABRIt{(jj3%XoRrq2pXqMh>-jBh(zFlJIJfHlr0lQ@TwXxvKO6DP<-IJ+S1&h-sFAd@6CPE! zj~fY^a0qttx_8|W&u&w679VlWo8SD120kj>PAp>IWW6aDpFg$F=F_3>20n1{WDK|H z?4D8@cP0)Tr)C%6e{xxBGWTuI8ID2L@iQE@)0>Tgg5&)8j*ht$y3ZkLRUwGJ_D?U zDKt%=9n%bQVSvW@B6|^<*~O8Z_6F3TA;(y@3>ymT-m+k&^(lB@LD6(_SJ;4n#eP9* zXeYusa}~P4bEDBtEO#$RVr;K(69fuLBhthy8gx+3%E}rgy1tZnGgn~`x-=$l-7?EE z#B$~d;g8vJQif7&-9>0B*}=9%F;2i&aVS2Lkp?|>j#O}$0fbu>Fp*!N22(YZN|;fD z1)}Az8N;c}7m91_UNx!toUBk;z(-1i##4aVvZyXk6LFwmIwGZ~#|ZFI^TT6sA=gO8 zhls%P&MwU@(t~iDx3#8j6d)caYDL<+=!Z#!4kQygklZ6Oe4R`nT>W(Ok`8nqCKSWN z{D3bR^BgAv-M}^S+&uhN&+C<`{UMN1KDKi8DqLexPhXF@0qoLoy_pIMbQMR=%qkdM zi_RHKL}8QebgUZ#rz%{jrw4Gl8u3t!63ZmIa&0$?_~lCqtvn=akS{5W2C+C z^7^vbhdw{R>=Wu_3lA{M!-aiaMvGQ|b$G&y7dR>6+ShY|x#RgsZzWJxZ8hm-1M)MT zFDY>WxFR%59klQP|S1lsKJB5igmeQP(rNopqU&{ zuzWYx#S0YbsZR(`qXw@EJ-TNKJrdq!sagbd8GT+$Vgb31gnRw_0P&4=6`mS&R``T? z&;l-w+vAd;xAk}aFZPsJ)jju`;6k=AMXOdqeZt@suErp3i0{AC@!#qA z|HJC2b6kB}{=F2Zbf`z8b)qWZtU+ohT^SUnv552jBD0cAy4P)VAZ(h(k~s zDnSj>eXd*CjjT?s7{4b(KLe3`5viI)yA*i&Z({CzSK#F;@Aj9=Bda^S%pS;|Eu!J0 z05bWl0*?DY7`wwI7U;!`2JaH&8~L909bSLgq~;$UrFc|cOS+W`upH)+XL$`hX^J^h zA1`pY^-jH48t@!6q+~&%x%I~*N_PQu2AT9Ah-eI);wLcT(K#_ynNE!Lw+Lzvl&|X# zxUzz2Ar@{n4uEE(w)^xAww$5+n>5OtmX+Iy0hFNviFZRle&iDim;J!=5<{j_T*Vy% zgie7=CAS9XOX^>U7YF(Yf-i1!{0kM;0Pyl9EqT)>EY%FQ8>z~Rm+uV6&@2^=J+Sh@?_Fcb`7()T_W1cQ4u^{ew zsZt(vX*aJWF>brn0q9n9#&0Dd*@d3E+}f9ZJEv$W zZ>prAM~>25iaq(dih{@PHs=9*nG=+}GJmj;c(X65UC#>_(XEz!(Wypc)}P4|uE+b4 z3dOG^^cuFWo^}*ASUOBnB4zF zkDpzh`tf}WubZ@pb?36VO{kgMUhNy4Hgb8iLtVhWa8hM{_3+vJB;a4XsIJ%7mnZsm zHdsAob9QWbsbcHBHhwL~hb&weXtp-SLFVHw9Ei|XH;Y-t;A_pcT6iVKevHK)88a)A zTeMmr^Kez*huW&=ds+t~>J#2yH5@DuL?Jw$|?Y+J^GD-8cM4)Dth1XDQv(c-R$z?-jeY0Lm zx?`SJFMHoO59RmH^ESQ<9r?ttjUi{5>m#@p`MKr#{@rUvJ{>Y5Z7vPV;%01X7%!vF z8M5f=I}Y2J&GE+d^}d1WBa1f6-7^Ie>jnmao7u-LTG~1#g5R~qG>hwGliY}4E;bQA zp+AnFFfYjo*1{c3RmMq>*9>k-xP0RXU#zGZse`{YVxC%GK`j;a@~;(^qzaq4o7(oA z_3t3*jB44tk566@6*n-6Ql5-_u$hgQ{3GuOm+9upQ+_iyt(toMWRXQ1UyNUPC_#L& z_>9KVY1jn3M28+T*}$wkdHCkC1ScJNpUB6gtmNUxZqg@MKqV_n*jg~<-2fUaZH)2j zD%8Ep4JEl*9G*1TAfECU#kKQNIl4O1ifzyNO|h7`j`gg0t1*)jOtI^@)+YW<or8I0?5wRs+~)s{7%;X1G%j%tpPQEE+^s=s!Y;kphS`>e9wlZ!G{vd~%@<>Y{dMcl+UU|ER~GZ^ffw??;Y{?lhh|ee-2pG<`|G%umo_kva~ORI z8!p9DI;(|B7sl~x$C0iY!oe04<Dw1PQq}n1z57GsD}X5lljWxHo3Mj>u7+`{7?Dh2@i2&1*2)isn?Zl0odlk*wyO zWtLQ3B4YbcB%;g-3S&E>0pC9AlFq1JL8Bu^hrNTE)E-PJJM^hNEH3wf<#V3`vL+uY z)2M;BwB=(U@0QP=j5HO#9o0}nD=r)nz-qb~uRdipR~Frea{v02b8Ny_S21I=?VxY$Am+j_*eF0n-H~vW_3d86o*UMq%xlWN zvyKPQIp6i@zZPR1ex^s`kb7{|B_OMK6@~q=p8^}Uzl56+{Ivu?gVbSm>e$Mnj{x&_R=x_#I;$o;lef{iVXW(@21-wp*3e78JC&LNy zv(iDnwjdR757pTInYo}S%DhvK86X`sR(}#&CHUX&{C9T#Yi$2rJO6bB|8>;JzS9W0 z!jknr-_xxjt-iu-+JAH2D)OjV*D~(8cgHgnXKgrxPpy|ID|8hzB6Oc#%+TySO^}|^ z0$maWJcM2&)(gUUZv9r#iCWGQ`_{CL`JUKk4QV^S^@bo$EAM@HqV`y|6h!BSr6p(m z)q^(Eb&E+^jWLNHF6qTK-CciU~QCLkcLkUk0eFtgB$xLDS#PtWQ$wMwPnLY%s zDAj%*Sgv2eS^u5wQqxelzcbJcI~tQ^pO?w^n#J9HT+9B01A?41b8hqQUDFOT(0^5f z07u@S*qKU+PAs|(H)q%&J%Bumq2Pwg0TDqm zf>iF%gP^L_hj>ct+=1r-3<3~CSQ~cxKMK+LvcJuz!s1YoYi8RAy8OuWFA&Fwi%Q+u z+d;{#lby-jJu% z=yf}yCslV|KMLz-I8RrU98Ho6&JVHPvc&ZSD=nO>S*OJMjnF_y0ue=r8<1^!&6G_0 z6MWq0zkouc29>yBK)O=`gdT>-Ls*Q3uA+isv!SwY>f{)6zOn!|?D;&edCfhjX);Lp zwg9n6ErLawxOKr^FkLtdz6OnZ#-E#SfiQ}L8j3&5CJs^wC39HhTzZnwmq8w)~}#} zZZ_fD==f=xU!e5BW57bi_SV5o{I1nc~_H)FDOP5F=qX%mtB6EJcgfGD{A8S9|ZmPAD7 z$Wt=>GZYrDF=SUFd)&c>s!IxjZ}(u05N$XGT=8&>;w9C)lG%XcE2Cb^Cp|@5YwX+y z@FP|tM)E05~pkDJ#}gT|#1_dM7A| zNKb-tv_FhlpjKu-uxv%Y^gdVeo3#K|Jeqvb{e@izJqXKd1x}UjwP6`W3A^s=!06DK zA8(}?m%r_ymKFRx#S-HOP^8HRvvfr;8q)Bih2c=U$IgP=HWkEbAo$*1(Tc4P@%0q5 z-UI9XA&2|YFwKP;2%LNZY0$&PBGR)E@<&6+pAn>IKw}x47Wz?OA%n& z=LO#>m|Qf@@vR^VV5%%B$(S&b&Hn2F24LkxBEEVuo}gE_FjG*^*XdBbI$HC2zJnm= zTYZ_7Z?|r4(rKWE9%iEhJb5MsY)9d6<+VrvBCS2*!jVUo5!`dC6%>g)1jaofQ;}nm z(D6G0xPG$_f|@f+_tZKVh-aE>v~{I zwc&E_x{f1NnNxmCVgo$MDqzraDwvl6hLdpgs^scHK7SG7vJq!H!3ExH?g2aloCK|t z4-LDuWH@{7!AX^^&JG^AauWEZ4Ykss?44$-FnW!<9A=*6#7v2cXv*ISbZ)zh(Q33? zT-GO8U=}Pd=?Lv+#I6$y@#4~bciSrNn)rXMmcBpm!AkcD-Y!ps4F2rB#3}_g7gi2t zv(YJX^&aTNp>wN`5tsX>?7RH-=C*A|KD1p|alti|b~EQCoqVsN{M_3xq0^&UpG!)) zWeA<>Okrm2rZK)eY5U~sOvRe62T~LOy8%?cb-cZ1tJJ>Pelc$q>#Zfvob9Da%K~Ig zuUZrj zk9}{rcJiL&jjnH10P>Y9%tYpPS9n1+A0`x(L z^O)wPOT=89XK+(Bv8wMt4C0uM!!}gh9Ey&Healm&MNAPo`9up?G29<^9^31c3Qc<^ z&TqNzl6*JYQDq^XSuxS&{UgPnzlA2n3MbsJ)u-kGvW-%JhXqFFmG0n#0Je7Txa-@M zhm=m7@79S+-{(EfS}oTJv{KfqhGPaPhfzmG}fOy2wc;HAs;X&Wk8_8yx}ZMo2Z>D0hB-}EZKo^idoxVx+ch)SgWrbLtrcX zb~l)F*JHE&xw}Sl{O|Nk@m%U>0N5WVsCPCqYeSJ>35U?z)qN7I-KQbJf}z~@6On2X z?|p8Z;2&kLrsUzz@S%m{f8uD5J&R+2`yD(qGh1Ux3LfdbS}irE{Qf<)!2;#A0%qwP zq{!bqKA9T#z8;CRq$!hkCs=2tTa{Ghd592Dmne^!gX8k&2gb-DXD-znzan!nyId-p zdCDlhm2va_;M>aaqC6k5MH#nY6TN#$$_kx}Q!E4f)(oA#NANS1dgHZBz1qA|YmRUk zyC;-}&-#Sm?zLdu> zN*PB^Rkr2MoQM2vu|0gdo;hy=iC;)+LnPgpymSGQ!8UIiJ84AQ#~8>4$=MhEJ2G~` zH-*Cfkm>b>Os}vRcM&_|gUzGMY3Qd1-q1^~}aBw+_wf zi%3m*vC5J+wtA*!Q8jOj_{u~UmsTG=I*(v`v8u)A{6U*xYaM}RSziX;i*HTFob`|F z?DezP*-Urz9#2B(a5HUQptZTUrU9dkM2~j_oxb=)kI%Pl+`h&&WI0xp3;VZ~=2eNq z*-197+MLVWxNPb-Y?WG5J0QE&gp4a!^4ya4S$~|LGfqcmRaFSDr&T4$+ zyi5!inaR~_eyoOUptCGpHD3@EynJ&Kj^y&5HKV&7GFmy?Q><4*7Dwpe%ngHGkX!D* zS-edT`y=!)9RHCgt;r*?@JokXzV@xxP8SLLN3W~;cSs{i0b6^caeR06#D-#l5<<5B zjUMh!d9`Mo3R!v`gdT=(Ty;nAYmKSmlNx#>w)dlN2DA=*3GvtIQ#R9KIm*df{IXf$ zKA0`6H4y)Cvro;9seve8p@-vpHg!ZKp1GBVa`3)}d%lcHo)DpK;yN`uLeKBI$HyB} zMSZVTRfY(G_z=IrX8~VE)z4Gvgse+fNNMw_%HF-NCH)~RUL7CHx$%}zc{3>a%r$|% ztTnD{d$Mny)~&J&XHviQH6~YXS4m9Ek7X2$?~gkIV*e>U^0vc~T`UlbIPPpiK*J?Sh-x z?R+CUoL%4XHT6!$L~cM5u6Rh^bxlGu3j(m=b=GZHbhBTl8g6-W9KNo+YbFE%Oex9h z`9kpk8)j(PC%jYc{_ygr*vu=?&1&&%hYNdX&}s5(Zy!#ze*LhDzIL^r^j^iLqqhG_xnE; zF!_q-KigaCXT=$_L%7dIi?HrV4^ZZy4Bt}D*F13Y((fcsYd&?~Bnvbd)_ECaUhnf} z;05y}x>+P$k9l_|?*L$=x5X48kEgiiGIMqM8aa@gs(LemYHF5HjA| z?v>pF7>wIqC9rdtZ1&2{b!TXuSvdHbKn5{dehFL6~!ZdrPc1 z${geK9c;$dqylLijq3B#T+UeK;p*y&I=32amLL801hV=%})x3eS8t}y41d33{P zvk#}mz=m`2Z4t|@wAK=GQZznN@qqUw5*wiflZybvHUuEfyQi2qX6P0Z15d2JEK?{i z3-5#gRL?<}4aUTsu#zytdEP;VL`h1Raq!*FnXpm9Q%khWPQegr~BxX%}7iH(ZAIKfV(ZNQrHOeuW;?kHG|wX+*P`PC zF|buVozvd8+swpHvZ?MA<6yRJ7QEYbt8le0+-?iPvoy8c%RYo9j9Ej!*rXf^J6AvneL+kqLZK_tDRr4uA#d=r@l1;F^L%Ix&ZqZ-jru!mV#4~R zGN)ruPF*i6)fgwODuP4`Va`vPHnE77eam3~+`s0QSarN#*NsF|NFfKXM(hwoBVo08D8WUH1uF z)5w4Co<@fiZ?CJ_<#7vdmW#)`8#oSp81g{(?2aBwSArp5%{`eR<@-hVC&H?Xr?(o@ zEv>+YgMEAiuP`NgJzM?$SA=%+-sWrM7pwv zGZcyvwEnDv!SkWB33d4ow-yK+Yzt}EE6t#S*|4QiX4FiNP`#8l2;gt#Gj#_qG}MlKsuDo z8zK?{WqUrFlt{qeQO}ApUmv@=GXK_LDT5mr`5B7h{O;@mBs`A08!~NqEhubl$CHt6 zcqH-9fg9fT2<}h8;KcJI&7k0o<2c3Fs~(MwN4-;j_l*(h8Bof5W-rKn3(1!LYd72r9DX=Y zi!(p_l;{EXao7DwJm1g!SQ+%7KWa0QoJF@@R5_%f7-8=nwgYcBW}wStwLh4G)b}*V zswRSvCYkqaUvK}x!mT~iFq9^dBZDku8kB?zKMz<~g*ROEw>0S~*Zehiktg8X!PB8m z$r4Y-LiyIYn}R}<`Lg;d5G4c(P42$W3Mrpm$(Yq4I;T=HG2;`AX2Z+(8;t>I8??Y9 zt2{gFY{1F8*C;!=I5ex{qwTLRX9X^i?oV*xc7>Vgbh$r{o{DAR=vX#}E@h{${j(^f zM&84G0n>5ak3XY3ikiV?iuyZtIS!W|@z4mK7 z;0_&d9&s@|jwll%!=5@(Yiaj((Yd$$gr=R}+isFlSje3%*h5(qIwS%&pU=^CiMg}U z@0!!b&rtcsx^I0ol7rr1q$AQa439$ltL~{;%7+-a$gBhEUKy6J2{5QU=LF~kE5v*7tO|V z3iiN=*%$h(pZ);al!C3`sm?pmnnn91)zCJdUz>>*o6SugTPT{|M1}FcHiq1YnWjW6 z3%4rdL5iu-AAXxpq(!q0xm=zk=AT-`f9}g{Y<4$=U*aB!hu`{) z2X}C?v9Sg1U4P&gx2!$5B-cLRUNH2B!{=dK(R;r=KbQ$2A>742Pn&>ey;zT3dr?zK zO$X;1l=|MWRhZjhTztxZ_;hSZ}+%a-N&|=5UN|;AS)o2^)(NHkxrFjL&oB& z7d|f`al5|g^jNW-+wnykx7Nwtz7`7@)|Z|;o!;XoHu;QO)$Bu3Y00}0rHh*f&Fzgm zwf+=y;YM@*8q&ukcK)wH*+|qFQ}(9 z-vQH&^IZ(&K7ObZTg}Y`rOU{X`q*L{{&uA0l)zSo-iX%Ns66&d?}dR-NWeu;YsfDHpzML%3&5gp zltUgy-IDIlVA{3rzHf4m5KTp`WVniYw06NI_5~R6zkF3RV)JC9$Zn4FR;hbstq1x; z$8Co(nV9t%c<{Qa7_V{KY+do7h#!90Gv}nNUwHNmLox>t%R5C-K_f+(06%>BGC-IjerzTC5pk#|<-=C=NYJU7A*QxPeUP~kY_j}zr z)6DrW(IzMwB@R<#U#`vJcJgfUcc520&BE-BQ*^lndU2+GBQHpua^8o<6{aafmGf}b zih8j0M9Xbh3eReJ|4su_gHj3GW1~U|U|C*l@EOwCc2HMV>fXDi2EXHq2TodtdE!Hj zCN54%jFTZ7u>!^l>RzvLfFC`mf z`@@rqEnqVz9>A#BEfE^e&{Kr(|BJ}%mSOg{0JuN>Rb=+~e-X1ueeW7KLg3l|g_!OC zRL}n=X8VsG?P&Ab*g=10I91ho{`Fn!K3$M~Mx=L%P?_*=Lb}wYLv>hI zkdX8mnTCZH=^9ERi9&EEBBh}oyd1R|9+4A4(E5GDn52#wT14fn#1Wkd%U0{3Mxj=5 z*usWzX|nkSN;A*FR|4-C#`~58YlBqG;7aVwo&jjh+Q!dIHek$eH-GZC8{ z6Oj~-G9B9v0i0tKZcpt?cMPce6#=lLxqfszM3H3(g;s*N=_o}QL2sFyoV4;6=+Sg9 zA}SF&FsG43T>=flC1r;rqSio;GtORjo%x~ivn#Ln`cY`_+*B~(eH3OCzitZ!ICcV^ zk6;@}2C>o(;=UI7DBLnF`Rt=nVw68E+ibSyc#lP^^v#U|^S*>81it4mf|*q5ApxCO zpQ@U@2O3|AEckTWm`r&1uM27;lH;2CIwCEoufK8Cv9=L)gYYIyi*wl-Qfj=Dd@zJy z0fQ$PPx@E77l~6mJ`G=WPTQ=`7&71s$+CVo|Gpc_@3q`H~3JMG*DTo;(U!Qjb+_v=JV- zw1c-j#bC&hhW!&P+jScaNI--1^-9Q=QauOQJpCUAOw;_yFsLsgPQ=K|eBa+R%cIaR16fCaP z{Qz8Z?vJ65>KkGMeD@Z@K3w`mO<0F6y1-uFVEuT4qF3%X z?oMrn(fB}abZzypQIP@_Q(L*=P*nt zm#$Eu$12}CPE*4eXb1T_wnDf4Fpw3}L0`3S*Sjt%oFDV^3LN8K`TA%0KQaX%>B4LY z`NS~jQz{^rso=EGgfd0=gq>1sUwTn>?`U6YZK41%s->?5vOV?8JK-thv(OQ@p)eSs zbvU8E*{HDj5sePQD{otXfdCWiIpGvYGVbecuRf_Ccsb93fajI6hF)j#;QzT0CyR29 zG>OGnL)TXoJ=9fBM%A6!&0{D-Zl*&7G-!U&Len1hEO9hGko^M2Xi zPVMkx-+M`g+%Qi(d4mEd=Y&%XTwL$s{-7Z^@+Hbk$^QP!PE67R+0%FJ#9u7Pd6X{9 za*nUa9-lz;4-H08I5mgfo)deTrAC z57^ZRBwnt`i&M8senL>HXt1`_#)KaIm%rhM#NXQBh7D`_lgg5uIK7 zDLR96WdQ{UiopH7n<%UpFGZU+uiUx`A*?~p>um>X;z!f^iC*=f7UEp3>3W6(C0e!E z7lKp4m(f~;Ik{5uv~#`XWFtw-#Bq6#oVM|F;=LBrdKNlta!0YrUen}J|HDQ++3WeE zdGyit?h(Wn@5`A&%B6wqp;95uy{NF(oR?ydc{VILdekufppW&Z0dE%d%W z8XhDf#|NlkopIYdlw9TZCPdE(G##*#qU}#mSk>nAC1>l_*xHEY44Aao(tBNLTIfyg z9C~<~yID?Jzcgpmo?SLUDKC)!fe6MciVN_d_=7dzaj?>-8&L7Jt&;KjSEy-uIuid7 z;i5ipBe{$IKcK?EDLIr^0NXBQhL-Wy09M-mS&q0@&6r3Bz)7OIx37p?}6A?tGHB=aLwnj32H1N%XeZ(mb& z_mP{s{PLnie_(RT8mn1u4WOzolw5F5bD<1ZS^gAa^_C4WBr)hO{@k`8s=FDab}GI%QGAvJo`Jq1B#Ib$HSmCVhNILn=ds2;1vGteXOR#JS^q zmO+mX(tI}HPv{Ec z;{yG!8*WWAKpgvHC-bm9R(7+8)X*$f(rZjf51Q1zGDmR;QZlYPSl#;Oh~Zq$8NYH5B1@lALZBmh*1@s@gG1k4SD<$*bTQ{+j zy?>ybt}=KBw2~#gzn+dKbv7{&E?_DwJ#d;41cA0tcxvY-tZj1pQ;4N)Ye?dF?sM%Y zB!jls$P8LOMDP2xa6+jOEKR>=!WZBdD7jW0FlF%cTWR|mw-w2{&q?kaBTFL`9|had z5{^i63psrK8zT5OUUxRQbqW27(ABaduC`EZKh%y%vZ6~T1SAxzI+c(BZDgc-y7iuz zR!b3yIFf8Xhai&edB~0Bhdk5O?42Ahrlm@HQHr<<#kdvTeHx_;NNSHBF0~JuyH^(U zej!A!`-*LbS0B6B8^t(!&yf7Z8b2r`+jOs2^X>NzGFlm1$QZm3)`N zxWRjyZT_a4z}y)u4{uIW+OVls@|g-a9&YH$zCuj6a>Kaag#GO1bZ+YaJ#q}PA7QK@ zz?nkr$iOm2*x@n@3T0Rregjj$JAGY%Cjnss@*J2wWF>KbbnB>h3DJ^JCFw2VBF+0c zF358IlXN73E|hHCYGla^Pf;JN*B3>=*w4gJ_trR)L;Uk`9UgGB<7p=~AyU>6RlTAT z6)=LGIpwdLZ&x@F#cQB1!ve&F zC6#_9(Eb*K{e=GY8D>{1;9Wd^nHQA3DT@lgE#=zp-Z!3nw|lTGLFj*1Ui(~GK);0G z*uX53O^FWq{qbkGv6!)-w$t=5flm2&Cy$Nfn&C}=URzu#)%Z)Ph|#J6Cy6TGvm$;1 zJ(6AdRS?Y;MhvnvhQ*j1SXVTt{|GY(JQl?O)OV`>N?`+mo$v~Di7LTcoJ{QhI(ZW+ z3SQD7s6^@u;vbKI4K=HLU&@|>!)a4_OUs`&%kq6`MUzDzCf({58&sFr+Tt9%rT#l9!<#1=23tfnl=WnWNG ziyvQuTEvGRQ-+=gjBmh01y>{HV4U{PZC+VqyyNle-`Y$E{Id2WkcknBn;S2%NpDu| z)>xXmH1aTR`1XxJjO$-*@SohEXLdQwQn~)$-If&<3^9q;%HG$D1b)w6_G#X#X!2WM z9wm**EZwf*?v+4cd0ig2Q~Xbck!gD+FXTTAWA;G9)V}Uj9ZW_PFBOOpI=MFaKlmDj zHF7|=>A^qO-;S@r+yqHdf^bAHp2Eog=~!Ue_1_)5r)33dspiDrdj^k(Zf%&f^TOcp zpGKrCQ#WCu1>O$lZypYk2vXz%)kiR|?ekA_FLwKZfl1Y0^btr6hx zaNmv+?eDveu%z|L7ASoAhm~!+3)}Oi)G3cxk6D$Z{08r+IyPl*)@CD15NKs-%#9>i zeBII3{;gE=89PG4!awf4`2Cc#dhHhZ^|2mLeKmDyux6do+&_HdvSmd(804o#YnhJA zZwoB`h8=kKSgLA4Dc3)>lmY9g*ZB^+H0#dwf(vY2T<`7e&s&+ZF}yLh8b3r6&5O`U zf8VN^=`pDp|Ll3BsLZ`n+wCRSnP;r0#Ln#lj+s-^7dJkT{A$BvYy(lV16(rs#FYOq zJon$8Fey_1<646XeXXpXd{fTq%1n44&{jX1vW&*^%SN|f*>5?NhGuJA|Fx0+Np=Vx zt*7CKapOPqy`BnfmN$)sX;W3kz6U178)d|@_iM-T~G;05?mioYyHsK&ZRo42-sC~y=Yk}Onw#H(?Jj!~CZOZcP zxH0XI!xb(em5{DOH^572W$5vNpDE2})xdQD0WsQl(ahG!obuhm52#-|i9qTa2L#EU z;k1%lM)RJPTsfUEO1kQP@E?{yx17bjf+}~?C>Otb0yO9eFE0jYX^z?7`SH%^ccW)+ zD%?JQt;atk;rT2?PIYv&?-2tz4*%$?`JNShN_4DPAFxpLnV&&q#Py#~Wp)<1Jzf zli$ZvYBjL(k7xzSP)yHqP~D{R{i69!4dy45C$gf#g7i@-(tNUKOZn1#H11h}+HW%Q zCAU_Xylibg4I;V$Id`#ybXLCY4_Tcqt+y4Jjzke6k-1aS%&3o^aB?Oe6zmQ#E)nnXd z-0m%r$I{uQ@_mFZGH}%*)KhCI+~)1Hl|2&e==Cl;_6j>#^4%UlI4lAxltEpdUk6ZR zLXO`_9}jF@dsCz+>H87Sk=yGvO5y&UcjbkFKBfU`V1EY%UjXNg_hAqwv*W62#ytY( zmyG_|(SA9@dZ~i4XBJKT3p(({;t0EuA3N_>(`GaPK`Tzx(6s`7GH6GHuwMo9>K-1; z-u*p^0ii<#$MT|jam~av{nMIXEBz2_m2vz_9$G`3E?uSBY_wTw>vH~RMQG1ld+k=x z3Od#!hngGfE_hP@MAkkAgV#-6ijKDO4Xnww&uXXamKM0JW&u};Ax*w>MQ2_@3ec*z z2rVGfW&y=D<+Vr#DAp5z=C)5LJm=6Lkk2@m*3j&idDqs&$BRA)8o^*pEm&+3Uj91r zt;QW!{cYp$gs-n-3L+YyrCysuui#%-kDTE;)FY$aoF4H7OEE-(_hDwLM#pp$15GgWNya6A5e&ijDa4^Qe%3#M94Z3yWr?erk%7DA z<9mHNL~qd=9@ly%hhu)D^@?)HKz%g{z11eqHi?W%euj}`_qMH-}nsd_3| zHEZROYG%Nb!TRpKAVZdb1^$vS>b^!YWDu2%iVE@Io?lk$o13_ln7U&0+wJ25N?N`Cam z{vX(YNzd`xcs;Oazx=^PoKS9j!9V_DhqRvfh{u2UK|7U-J80>AK7}5%ZB#RA&M}|7 zIj5D&71VJ58pY|871-{AxsbnHFymsLNV?u{H_~j03N_}f7dss)gt{<)DE9vLxWr3v zHh>j=iR~S}PK&z|jd3Lp@xp{=5M|Z6`2IOr>~G8m^L1Z5Hvl!ie968yKWsa)n7bWwgT9FLxm#|6`*LRRcG! zi&a52*VaL<7$RD9BKJIYeROL8m%H#k*a*YOVB50)xC&X}g_JJ*6-}m6zXJPwPN*WS z%pQ9@E0C=hC#Pz}_t(@1faH7W-G@re;kg@@8&-;zp|LBFR30Wrx~8TU<&sh*U# zDC`xTvIk9;tYS3>N%Nm;NZ`pr6FFYuH2Lo@85cck{a!+Au^35i%GyT{&sdp!S02oL zWg_|Ih7t&f$AXB)|5q#Ex{59{j94u&z<>Ri(Xr^p7r~>Y-OJ*w+ETtg6*d%>Z_EC$ zxXWu<>hEAaI$6?!2|&GHr3Q4B^x{oN%1Jwm<$S)r!|l;u{1dzY!}Lu$?M84IIQ~pb zqBFY8wMnEzuBZ;uCU*Jz``0s{=9!B_Su;!Wce~7B%E?her?qB^raL$?*~rSEqpVD0 zDaTQTJlx}_V8o%w>*hv-O*G9})7M@#%eazv*O381@?#)y*9zK|CZ9yAOY~NVgK-J< zma(qyP9l{=O7EDjtJ$<^xbP!VYUuUX-oc@Y@-$i}lg#vQG?WpbO08SRU8+)qVv}BV zbtL6AHna&dAURg9852 zINwws+8^t(Z6ynne}tu_&PtTs!>xS9WRGOnz8~)qzng*YTy`SGzY3-YBI40bEeX_248zDd~+|L%Y;C;(lZ_x2lP9DJG{l;Pa;qUZ%&hY zn>{BTMGt&->aGyg&hE3N$<9jfD`H4>^XH<=GtG-&CwgZ_U1(q8P6oYjV?~~{U8wgW zRdUi$SLSLO7zW`ylLh8XM3oPO%$=Moa3?ncAQh4240^tbhu)ehAeFMp=0sCL{Y-ZJ zDVNmvv%FPZbBaZK@6MjC?2(Ao@gR0hxP8lm+GcwS->35Aq@}2GPlA<37;e5{1wq?@ zy45iN@|2KXttGU_#H`Zcl_F=i-cRdl4b|_=wG|ICGaQ#27rb$cw@K)kl@4JorS?Lrn1r-iO0GM@^WV z8a-^^lH9!f%|%ftwL4t`2KEP1Ok*b9F=GKhUmQ{-mB;QHpa{MRNB|JRxa{=$7e2;zGftBYH~ z&$eYC-+!EcS*`f#%g1t+S5-In#6b@4#plQ;vlHQY)o%#WXQUSpH}A`D`qg3oJ+yuw zFvYC_F0`1oR@Pf@E7|BGqH%uFrqHBBFaoH85btXwuhJmj&vJt3hgkqMd23%v@8x9t zbD)OxJ-(r{7-4+ux3kl4q3OyO_bUr&{DegNI^y#KS`F}ZG9o&z^PooxRN8)44D#tC zlR$U#7f`sdn*kl`$F$=yjCa560R`?&#$;XbVt17-s~^ly`(+H%zrxZaNdhC%|DwX! z3N41wVN(JC#`-18HQ55?-aG%#!oiQhuTt)?|A2FN5IamCfWDHyhFjMgFQ&H`0_oOY zIp)^au<5;JE&QN2F0skD%XMqJv3t(qz7s#!X_LzcRy)j_0~qK(;VWgPKFkT8o}ijdLa8QRW;p(291v-!`kXLAXMku*lC`zTJ0cpm96@a2ogiy8u>bqwD)!Vc@ zA_ok95o?f^1F}SC52$aaaV}A@X=cl`W7sTFxFh$` zxx(aOt$MUo)&x@}HOW>nzrd1D&*}@b)P~(gV(?ZF8(wfvc@_4->I`D6W0*$~V8TAT z)a=Z?G}8+Nic(sQ>@1M60Zunyx2%A~U&uW0P-OaLxY`G}oqz;l9&2c~&_hIdI??x4 zU{=(9JZ<0tkuZlXtx)!fxxw!fiFc5147PjNheraj>1E@4&uLkPDGrE|blW;<)0@=E z9fPWw(w<|!5y*--Pun=qe&G|)rW*6kxhg0GgOXYaeJf8AEux9@6{*TNSunaX*`=%5 zln3HI*|>UeTLTQDYE($x8AIyBYg^(n&gb-!^Wy?#hC*jCJ-iEPc+h0)9`)MF+E&@n z;kBARZ;b66zw>LcDI|MFa6N z)w3=Zz;upOM(&z(FT0JuMOdK6_MCyvM?8!CvhH7$>H998tOiUSvzfXNw|ci$;CZN< zcjs2=bGZPpR{eIT$cXU?YbDt*f{^U-;3JT@_sG?p{sH6_9#P3i{*J{{bJyPFjM%sx zH4*4}*nA#R`{PA?id1YL;KNh>xJ^wS!s#*I;(Yf}!Xh zl9FxjB@3!CS4*ExD;aafH^$ zJ0TB>azk6_9SUxnJ7{{a{Fhei{Y@oS@(!yMxdc-En+hER9$?N(w3ocGAArU;&G0-v%_;K=~3E#aPQ5h z)xf{kOR;aCcsM)s@m)`BJqJg|bd}ND3A;IR`E4O-v;d^Kiq3aFR&=yp?QBMbIp>|Y zmIvj@@G3{zP%z(>#Pu#2`!^dob-f_l&(->3_1qk6PEVp8@aY3inXvQucxFj3U;c7N z4@tM{)Nd3nCnJz1s&MA>-Uscemlx-5

    =_&^e%6vjHDraw0I!ZQa?|3-0>)*r2L^ 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 I3*xzd0#^}(iU0rr diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum2_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum2_iOS_375_0_667_0@2x.png index 678b86f67bea2ab2c9c4f743ee217fe7af1122a5..5df868b0c6fccdbed7427585704320df3e7636f7 100644 GIT binary patch literal 48076 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 KrBajI5B?K!))qJb diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum2_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum2_tvOS_1920_0_1080_0@1x.png index 22e3d6681ab61ec0c656015bb076e5b1f63a2485..14f15dfa9bb0db9ea7983a3adce0d06789fc1cff 100644 GIT binary patch literal 13892 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 literal 14001 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 diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum_iOS_375_0_667_0@2x.png index f9c1a2915fe379c17d43b7ebb77047af097fafcd..a8e384f1014eb118a42fd0ea4e26ac2af38d3c70 100644 GIT binary patch literal 59195 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 gZA)dR$h=*# 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 literal 62108 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 @e0(@X7#z(j(TNV3A)F=IBOXxurCjK| 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 bOlzA8d*utyCgkEE@aOs!wabMUP4E8?6)vT= diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum_tvOS_1920_0_1080_0@1x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testNegativeValuesWithCustomAxisMinimum_tvOS_1920_0_1080_0@1x.png index d58e9f0e19052c006b681e81877298b36dafe323..a6048cc792e4f8130116a75a409aab7fc1de36f0 100644 GIT binary patch literal 20244 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 Y1Fw8|r>I{Bo;b(g>FVdQ&MBb@076DcGynhq literal 21050 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¥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 literal 60688 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 literal 21827 zcmbrm2{@E(8$W!{7<&lWvW1YcX5W({vQ)~xCLw$FeGsyjJ!_??Y$LKSV~Ok`42sDv z`@ZvCqn`JD-tG9l@Be>}W1bl^_kCUG`a6H;dEa+ow=|T=NY0W#5JaYOhS zn1}#;V|1qD8F+&^-%-8_6?8Gpfj_QU=&C$aSBEZw&qNR`)EYwI4gs&T-~~Z=FJTZK zc!%M>dkO#RR~Yss-akGY;|}C`xs4Crn5?g9-UaV)+;`x=Lh!oq=N)|JeayY0NDJQO zRIVx9^?)s;la?6W^If7?KFxxUA7F}aKgA}<%g+3WCO=S{pMnN;L)pf9`HFJBZpCdI z11||lZZ=7ZTTh;xjy-)<@SM`EXO^pCVpA4@Ay?tz`XY{+kGsB}l~xVq{8Bkq)|KYn zRbgzI@2k-@Y4c)q9q?Roq+$TQF2cdn4!fbpFB#~*5i zaN(l8#vFHQ{YQ)5_ieV;ZI=^=E8maNFUgCp_VKDM%e|{N%gs$z9B0j_Gzi?SMge^Qb?|Th@9Op{=^J&cAea zB;0nBP!TmoCLwF?W|67IHG7q3{0XHiS+@8bLXR0N7zH|rvnt;-qOxM@6C00c+}Jv@ zrCQq9pE?RG_+j$3Pfxl=(`XXVNPh67-SXo2toTJ!XiCcR5VO1eO%EzwX1#i(h@ncx zUy;83FsGp@+MOdZE3@)^w6Pz2pS^={rS98xWaQxi)2~|7Uz%5IyW)ZH%2$F~qR4Go zyV1HWcV~1Nw60_p!5!*nWHV?pufAZu`J+#jXvGb)Z&qhyE=12t*f8D5i>$hRbiN}y z^tQyX#`F(Bzs49-SjA^AFB>OivDHVklDw zUYmA@f0NYCV`+PZu0YMpa7v6<^rRNpJhy~v*B_m2?z>JacVXc2E;Jnz*C$Jp_}V91 z+$iZag{fO<9rAWgUGVC1gn0e0#4R*=VL*|I*`2(|IW%jYcnnR|nM+DU7Dh(PNFqd( zI^8S5L5*(`GdDugiK#V<h+cR;y;jiI_a zm|fWt-mg$`8(H@?11Sq}c*Hj!wMAks z1HvjoH@Z9xdDYs;!$X=#%kaF#=*wD0=2IRE`x^B76uHF5<2W-%^1ST60?T0e=})by z0dqUoy1)J1Fo8S-aU|f)bJ>k+Zj*}rE%H7mr;5+O?V{L$>!Saj4F8fD|M`c$NkB$M zhL#y?f(qVe4uORpz2BxQX+!LdTbNgqQcLW#_$=b}SW z2PU^xmS)1Y49Tqdh1OOqt~je#*nRAE5V?3-0qT+8!s~Y?cIo@;v{uj1VQ}ZnfxJ(RO{1*l@^WPpG zJ&>D8u~~jQmR9JqI67JVdM@KAz@e{jd++l$9bZz~V4vkDLu2FiDUEiy__(p5GMA}l z$(s(oyn16*O;%y9Tr)K4&Y8_6OkX0~WlSE?+Yqa-C$@fAt`~~<)FjlAlBqKoL?3o| zTDaB1D=FWrWIH=SGv^m&#A@wNjF3{?`g%6Qei7^N)zQm(o3=LKlQGUTEG3H`V_yeO zR#GszD!;|2x4u5CNwLSjS0vEB)}9-&P3Gs^<37z7muH!&Cco9w>Uq8I!If$`!B

    *t_pEwpXrUTX%EUi0(S!?0stO6eh((SA8aML4mW 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 r#vl8pGk?m1d-I_3@tfGPEF29 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 O0UWn+I8thbx%wv(G7xzH diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedLeftAxis_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedLeftAxis_iOS_375_0_667_0@2x.png index 90426d8829dc3fc00e363c0dec8ad0b970acd63e..8852d3d07dfc60a2d6d751c0fe4c17c8d8067ef0 100644 GIT binary patch literal 58401 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 bL3dT-K6%UIZ{ybKz>l`N-qk{c&7HpirJZe= literal 58290 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 LtqBkCu9yD>DqKp` literal 22667 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 B488yW diff --git a/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithNegativeValues_iOS_375_0_667_0@2x.png b/Tests/ReferenceImages_64/ChartsTests.BarChartTests/testInvertedRightAxisWithNegativeValues_iOS_375_0_667_0@2x.png index bdb9e2e3934981d4d400dd846b04a09e3fbe86a5..0c1ad46ada1b2471edf32f4b70646a15314f81bc 100644 GIT binary patch literal 61235 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

  • kD*wzO|c7{BX2uK-w> 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Μ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 le#M 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 Z&pvODT#w*e6=en>@O1TaS?83{1OV~mK=}Xw literal 98459 zcmce;by!r<*FSn@=mwEaQ9-3aIu)hEpmPwUq`MhJN>WK_q`Nz200EKiW`=U;?wUKk z-`{)h``q8}pZm|9=Q-?i4re%fuf5jVYkfXz6aGeBfrOBr5C8xYCB;|o000XP0N_@9 zT+AKT7gGtC2ITTi;U!Q$#JGvM@cgK&WTB=8Jj0yh1K1#X0O#K$m_r)G@PD7ngPs6b z|8*Y>0HM|Z_WycD9n=2%#A1$r-}z6Al?D1=Ph;+7f&cqyEO-{yf1iU}|9uU6?qC4Z z5I8F8xc~t5<9`Q8>D{9P%uPn?R~nj_7W2Y?ACNKT$CLlG|IQcg(Ylp=1OQn;>D3EO zPtZ;}UfRO1#XEkXM~`BULTW{@UtV43$1>k3DFz+n170r3d3Vc9zj9Ov=v+dCc;t2vpgNm78sCB>aHPYD3g%}xcKlzR zk34m>^z^WQM)ne0?V$$nhrB}UuukX*Y&g3_ba>jZl$bnhh&Ir=4O_3i|+9>WU{pw zm|lsy0H`G0-|(}Zm-ofr27Y*hv^8Jhp7EZ6B%jfK9b*}K-&c-O z3zOR~be72yRKtkQNV%ARnp*-7DSp(FQk&_unKpMTYM5<%tbGChntz9*vc+^|idfLW z)?wi5m;D>d-$(P6Nv4aY2wLFy#9rx}!E0C*x!{STO zl;r-Gl!z+B3dZi3V`uB|{BdU+8m~Hl{7f&7c&=^Bgx#ZFg#Cr5GS1f*foOU5HQXbS zh=JcC0s>sk9V_(don=s8PM%ZwrCjG6umw&o>f^l~&lv^CJDpPbxXRl=z6J67j`|q6 zx++p{1-)ClbDQDi(%c{tvG#c8Ha)Yn@eBXZl<3IbP3E3bJ$xx1YY{Uz4qUP#*{UZ8 zu-{<|k9NGh@;p2hs>~BFf2V@|$iGi8cwzCTwsMJadi|2oWYyw*72ygDoQ2lCu7FNu zm=}xK2AmWh&M1Q}pDXOW72r>-uWB2OM=mLYyi7SWcb@;?scz#Z=zRa|4KZQlEA};Z zrwlaqj>)r57LwaCj|a_PfIJG)7C-t^Fch}{UGr9L&_tvfP6KJ za%E8?x_X(?hwg;AC77Y?Xy*8cD6%3P z|M+cau#3$sC1WpJhk}nHIVsJ!L;6aGucCINj7gZ^2eQ3I8n4OO-?yA!v$VNBWtlN7 za1o{QWSmX>(RJF@|0#M`9DLu_f$LTF z`y;)NoUSwY*BV4p7|joR$?=Tb6{q|aF1EJ$lak3Ze8%-FYi*iMc^t0$8z7M)!FB5C zjr-F7^+z)gCh-cy)O8%jf;-MQ(#5;|)IMqK)%4}Nrw>aAgM&vd$A2Gt&oIvfpkf2+ zMa05-GT(q?o;dQ~`$np5j=N#!ulQt~oEE1&CSEzcnTPMG#mhxaR;J&Tw@&XbA))Ez zOS%1Y^O>$&_xJ0Jf2S;Xm|xU*;g=+SsuxMQw-5mqXc!cj0nId38Vc8oG!^zB-hf!1 z9JuAau%{mz|FonY8uXm_^e>SlSsOSY7#z^>Hk)zpU4gP)`M8+jel`#KgL(%5l%cIt|8M)e}rzX)dY$k<>T z@`)G1T|hrn)b=Fvzzwn(JA?@Wi+V6Q*#d zQ1$+@9#yP0%$L>_Y#8Xkik>&!hxc^(6K#`}1QFas2Rr3}e_~$tZQC~B6^^~df9Bev zuG8zz&fG^vbx-WP%f5k6uS*MtF_039Av3x*b~g*0f#RXC)Co#EGoPHN9a2e6~val+3EW>jXnyc6sA9rCG4tIB~?mXn)$3omlG%ae^|B1 z-{9ET*hH6c^P**4*bWavUaiy&9$x%V`}RADn*E+hMoe28$D)(bO*k5AkJ@**|6y4t2XMY4 zE_+s2=|5E2i3K`X(k_kB#>7}SI0A&3O1b~rsK2}ptk>NccRRd@0uT*H*s#6_r?huY4?-LxyUxkTmbtaL+k>sByL!5_YO@aA z4q1Zzzuy1PFyo6lX!EixrnkZk8+O>J@BP}LZtv=a&E~<<4;YbrMWrlXJ4Z%m269A; z+d@>4a3U$euS%Le9T#pC(F2jNmD!QH!Ri+wnUiT@giZUa-IR8mZkvl=u&yUq=l#!- z;1_^7Rg~4S(@34fcf9&yjctxkzHOB~em{|~AYb@6h_e>8qUu9ODiwyn4z0=HpO)6n zGTj)7JH)jmhPVeo?cP(fpt1Zv{schl(~unFZhb51p=WXO|1)?Zcg6u=G!VTUT*(#- zu`Qrdmr98+g4ms!t#5nCyL=5 zQV**-3h4U%EoQj1(32A2YHR+%5cu5xQ6!y|k9~^xhhJvePNUq{&O;3rm&GEN>NH)P zzKfNdSW|T9#3-X5mmTS+A*bx~-oM4W#N+JJDbP(5sU-^0zH5E$emY|5yL#RM2;UQ{ z{fZO7;{;6RJVg{~{P$s)!}?^7{Hn_pyPr}NG?8((WI_V<;7!Y#GSo@9Jl}OfdRSr!vz16%#wjS7p# zVU2W_j#RR3MGS%##3)JvdkXIiXUS>9&-H(&Y}tCgXmW_WW~1asMCA-+c3(`LtN9+6 z1XlRNHZvbitQ2QV4G*z5%Hxf8G+Vje{7FfntWn~^MSL2HzaSfzrscA-YFUz1$M6Bg^CZdKqcEUZ-n;TL}^&MS~jA z+Se)U2H=CGd?lNHN;9NGp||xBa8v%S?u6|XW|9{`~^?n zOMveV)VsoRoHZ$9$suw>>EL5w+beUISkU`H0NS`N<6eMZjxy7X?Jr0kQwMnR$4+>7 zu_61lJc-Hp@a}itm;MF;J7r7Vlgl7?5?xE$iWTFrg?#@>x?BO@!*APVN9rODR8Me$M7NVIj1otA`zpviIugk8 zz)PeSg^EvGx7lzx9q=richs+h)L`HB)Sqk|W-b*o-^`52JK?(?M2wCzW(_&w*A{%G zQ7|tQVFVj7zTVX1aRwp(divhWAX*A>lkDet5>d1+qE#dnrH~{hAaicv)81nGQ{Sf_ zGP&?@lp^#O$1rCYtilpZ_U_vlX|nM}yR9k30Oph*-$EQ@%}Ua`hE zm~QZi|81dukO4Hny4D`r9OldtGX~IF)TM)a^^^bVobAJLyQ-I3!H_&nk&`e#Y=<`Y z4fG~vW@*QJN3KhRfH9(0Usskc8MkIffOFpF`kZF5k?Kt#6w9$;z0Es4I()wTwULjU zJ)2&c4pU6Oxr2{sKd1{!OKVaIhwH2CYc+sW)9I3}3L9c_Uk-Wi1wd-}jY_iP-)ue? zC!u^t#}0j6QR)3)%80wYJ)mGVqt4Q#;Ck_ta^h#v?PQv+bpgu!mka(dtJvYoj_xxP zurm&16aNPurN0loMcsO5C)`o3vX#CdW09C%=TN8+b&)-P54-k0247^#L}Lja!$d zCV>}7M19R6H%$35z34`1n;B4tf|T6ya79hvUZj&;;Fx=OYd-)`bpmT(_+!Nmo@7_U zd@Q8xu7c=M%$=UWuUEz+UV3N-S3;Ljgq`Aei#9*(Vw{s$u z(+&cv`kmgY`(b8uU_YRq@C=l^I>-qmT2CJid#2JcQ9&ow2P1 zf5cb~SCjVXAA(znNtrg8U0RVs4=2Htt_E7)YI$q9WzKZ2GbYoL$W`_7yTMg@? zUa$AFB<_Tw*F~`0?CHpy9v)yr<36E#Rt?45glyhw z#i#?Hv!?~Ppavi+{CmJEOHt|ob988y{KRbJ!MtI{n@{C*$&BABKkZ$tRr&_~lPK zf1KWHejhZ2p$}Q_JkTNFv@GK!$yjrXZmst@=Pg}bATh0YnSPW>1Q>7!nfpsyZ5ost z2ORt<&4?1Y*(IEu>#g1S*2IzA&+7K9i$~O)2!2HounCA7eJ{N@2sp%AmT56w5;vUx z#`C73e3m4zK4SmAp(hr5TbFliB9A?tpfs69ogZB^8+=fkW_O_#8^T5Qux5oG>1xVV zY;hV>yz8<9I~S5GU%V9l!e8TXp9t!4N8L!;|6tZy*2CdGMm7xz@o9t?ZOo^Wqm?M( zh0=N%86K}1@e%hr@6~VLqNhs|L%AnrK}+#34?a8q@G1rf(?5V6vsK^$hy5xSJ^efq zc$DNu(ZUUV*7MQdJ_$H27aBDV(>DZ0ZTsPs-Bs*5!YG5ODnA}P8LLPZvyr1aK6+@a;r9( z+bSlOXj`&v$u`Ty!>-+FnPQjYH9iI)G5a^#Mq?vWwMZgo@fH-<;_mHyeTovohf#-wq`~#&KG={?MjJL20BFWIwbG~v zRJtOVsL|P+gRWak8ynen68r_va_u z@^m-N`)ksZKx*fVt?QfoHk(hbQKXSJqG1%ILgScJrgn(Ls74d60;u{nk~(l{n88GvS8 z(Mav-`T@ogi<9tYn`-q$EZZ4MG2#v2XXN*RjJNNO_!pk+)s(1MoY%KYO-!L8Pu*cB zU>V8Idg+ud_~lZMqPZ$4qPO8KCDhO0dAk}dXr|%ys&(f7m*{=k1smo_|GHU zXOvQJN%zQV82JOlZlsPc-c8fdN#_)oO#V6inZ@=Fguc*A(rm{&s26QR35ex)}iuf0x7eg6=!J zaXry(E@K;`9wt)WCnouk^lrm-e6#&cjs2&Gt38VrH2x&zi@x1dWZaS6OQT!r&3-Ok zhGjib%82Wd$zdtoXvn74nS_-# zqEB`tr*0_bZ#qW3(QR&XVH5$^9x#9I)9_zDS7%dOjZIwTYwr^im+0EFB?(7EQHeZt9kQZ8P`>?rT!0v zr%Ah-H;T!FedHUezJ*5UJhhk1)-l`9Q@6{-BtS^x-SD{O;odx@@Y3_^l)=;EWu6ab z4Ndl&T*0Au!NQscQ(Sg3H@qHK46+IgcbD$Ei=HR;WnIt2@0RNVZd9+QI&`sSeu73@ zq?Q`?g$u0nV5QribDD#^&jhwoIoJ6>r`!3Q<+_&#P!L0AQQ?e{f%X|G>lrz_keH+l zz0`9K<^a^JahrSpX=-`1&H6=^8TYoNJ*mo_u+>P3`?i*dX?01rmeiy(v4+0iF6-%* zR8k33O&Nz1<&&kW6VbZ6`s}U8vej@$0~ys3iyGt8&#zXH+&YGb_qI(6u9CD2*QP!5xQ6mtp#~HG%ak8dK6}$LB{sdh2!U4wCx2Xi zZEHlmJC;Aw)bQYa>!PAU)o!Na(&C|`p}?a>B(GB#g%%NSvMoFzt-uofWV&%K`0Ux) zqO|YDmhF)|Y;!-aQ@!&|qGQ7B=u<#qxhsMq{lKJ2t(L?QVc{~Ug;E8$YCQVJj4=*OJ{#xk~JS z9CXd#gt{n(wv+w+FAv)b9+d42mN#1M$nkk=!`#sXZJlL?ecM*PQeR!6V7bm>yncoE zIk;3uszBcE1{IdWXY1=!Qz7=Pa7&Sx>^mVQkD<1j3NHN@y>N}_J=HeMu*?X!3+0>D z@F?iYpjqx-V@Q6XV_d)gk^yG30*xHLzk7~PM|!)q^7X6WSCtokdy2rG>@B{*q`l#6(K_s3;P6!@U({P^D%c)ySp^)5;YWnONsYMZz* z?g_V;-`=#4d`J?1sdjRB+}KapD1|-ul!cIz5Kz&m@RDF6#e-mwXXCU2ETqW;(0-={ zT-`Y~*=1P)xX_C;vG#q;xcOiRdo(0-<;9Cm7ba-JyG5J+ei@ubMTuJ1-E_GcTx4AX znUYUUrvlo6_sP>sGPxeFl_u~dHl)c3ve<*jajK|cc$pij+rR2*m?)wjhL?vPwI}9Y zUq{G$+Ige7r6_Hfyq%7lj8B)Yl(zEvut-j+(G2@Pd&LVFicrCureCljWZgX93-RHv z-^GfV=itT}FE1T1wQi)9IP~sDr{3eQ`(SJGII|QV=x<0!Wo9bU_x`wtV^8M7Y22>u z@~)JTumsu&Td}+C!rh#%={M*x_mIz7IV|vDAiB4L#}Y)kz64t0^gqgBALLljUP#DU?y5 zFNn`uNhVt4dUd3-;5L83kZdf?p`&ZeYLi5MMyBV`J;+3oRmjjd+kK#cdCOLdW4wt# z5q7ylJ1LyCVCX;wYDcGgEMqaVf<%!xy3jRBC=qM3#?N>>zkv&1vAM%Yxy-!uq$R}k zyiY)#yAKUJ%b%Y#y378x_@?QrlmyAdWK}#BTR5)GRgh9_?c}#$}IO zA$B{x#JILG`O?(AklAEdXn^y4cCiHijbaNypFb}-0%NQAu%AZ#4Q0~)$NWcGa57WsQEAGkb%NB;Mei0xa%8%yyr zoiciSBBnZ{AjoBgl)LQNe}LHQaub31HI z6xDj~Vyp6qEyt67G{Zv@Z-%KK#m(81>y1ez2{&<;E{01qRWw4|;G-L)Co4wWhb@U> zxH~F1MGOoV z?-r|`xE5cH{m_+b*q{{;kK0%C3``;Z3)v(NgIW*ocw`7&si1i%8mK4tmipg@T&T*A z3G>C%pznzNxk-_>7FoWnencFv8W(fM-`*Gp>8)A&G}Luf{EoyHHF?q9kB?`y>t&W^h-dYtc8n58a?5@5w& zwu|~`0F{^P<2|_!V(? zm0ORI&$=Bu{RM8B@A%#!yvAaVwT|W?)|%a2Mss-IaV>0gsrIMwa(-NWs9uO1@2|)R zeT~4lTOQR)ffk3J(_(~N+g*gl*M5;cR^U4S2{?`%>I_%lSV8m8g9JO=O8f0~$3gok@gsfW*A$5jY|eFY=-KR)}PBYq*}|DH(sC zG4jO^pFk(Mw?9_CiJ*C-cg^rkSdu0WG02XV3e^;#ZW438$}Y^N;}>!2fsOpYt#^L( z8gSPzkO_^Xcn*_exc=InZdb(hetVDht44mLOQ>$$xcY+mY|Cy`6f+R7 zdRQZ^`p=(ILXR``Ly|3V@Znz66XQri9Qb!7FN5GyuYj-nOvYn~%4XL{(_tXlW!->K zBiP)Wj_NlR6qHA^%8k0Ga0*7;mH!Y|+_m1non*FhU)@EgY!^q8ac!DTOgXs3eDU7A z3e>~+T5gs2XcP{0mf?Zu$(&q+>4wa`T~$uIgqR}K@3gx9uiEB zWY~03K8$mTusZ)@cm{?^{EgA!U6j@pT1|!cNqX*ivhebWedd6k=5s2s10Jv2;OInv zagB}Z5fEWNM!7&Ao)#R6ZgCW>N@tpL%&7usel#kww{~)kTVCCE1wheGz=;OZ?zACx zAMyP0y#Vg%p7RyTs#nmQ<|h z+PIfa;KQ8JvJBDJ7eU?Gk6e~DLEy^wd0)p^K%&1f6dPbaU7qS&8`IDr)2p^du>iN_ zcpwl|dC{%5zkF3)omtlv%_lZsoU!Gi*lzYlSK{{fK@%q^1$IMGW6yni)55Gp-x3 zx%-0%nGXrSAkErwNZelyTF7Yp<_@l8D5myE#zwC2n6xY`GtV)d87ugde`-OQ4aItC z5uDDMJ)DrP?bSZVmuPr&^MRl>Pei+DHW{Dd;dJTTQ5S%`-W`)aU(tjDhH2|td^*^W z(3h8EsTzQ2Q55i#%dG}rImRNz1K-^R-hP00ke=+dbFlZWB({bSaQroKpPgP4@!vaD zQ@?ursnu=YpLxum3HT&*7FudQW+8GIx^JS>aZ6w7a3OdS=Fe3a8~+e6`P#}mwLJ#5 z@>@U4?&~XC0=v#h)rvaFR9@KB(ZrdT!R&OM^GD1j!5s=Lj$A&0^H-;DT1F_d$O1S* zbYY$@TFz}-dO`PW2C=$`x3ySwpTD;Aw~3sTdp}l&A8?lqs*xMz#27>L*$ta-i~EgHtMC4CKN^og^7rqmb=#2$0PZuA%4Pb8exiSm zz7&J2uum5zK5qWo?>)Jmw-ub7?7Pm=6}PRWLe^PNw<_K_jl%1_ej~$vdHGoV0lEPn z9;_*o>_iC-(z7>G6OvB26k-+K^`#)1^$Ba+FK^Y*~Wb^K0=CR z`OjP<54+6%3ltdsdmDShg7zLPi+EcGp_zB~oZ0B_6UqgP=KqjAMC?KxYufsB%ck<} zo8Am$n(022e^zal8;xxU+Hq3FSo1ArOLe$eC36&B4bmmPQE@1HcN}6cgsIj-hz{#5 zIn@?Uk1YJ7G8{e?ITRJ|kp; zFp_z}oib;Fi9058dFT^Nw*rE9w=_wi2l7Bo+-Wg`IrY1XI^7EWb~=Lxyh?9+FLo;i zW#~aO^0eaf&t!r6g#1F@+JDjWM*8xmynfx;Q=RR7rbH@WKTX1zo5@oDOcDL^dSih? z<$_M-tqyPhfEO{GLy!Gu%_^RR#Ar7TW^6oRTY9nB$Qu=I#D?(c#sdVu3=-e}qh2~D zaM?a5(JARU7d(084z8F`J7-eOazo#E-h6s-$u4RFaHTK?BgY=K?)9AOSyZ|?w-X_D z>p}h><%i8<9F*tRRPcW};gd`LEUJBOLD0dDw*K>HE3e0NA}WD)1?@uWr;e6U1k@|Y zD%`c9z=B>JUt?iP$|`?mC-1?ESB;TRs})3}?$Bfk0kG)0)_uREA2=t|li$zV#?z}? zRapEv>fu=7`P?d}y7LXk!jKs==;EPb$pBkBvxRZb@wTH6;Tfqd$&PZeS6tFYj%f+R zlS?(^7&hbLqJi=DK6A}10w7T|{j`a59|uSyE*%p+x_``@`#Kx3p5KCVohRDR;+4AK zVVb=6D~mW2gOh^tR}bY8eAxQqvaFu&wJrLtMgfoG;*(kQ$I|x=`Hbs~<~7>Lac<_I zr2_+z8DBsew}&w-J>NBHawJWrR`yozSm7R^#GNbSSnq>lbmj`zD{!S?`UdAe`^kGf z6HTqaW{GU~l$mqrS0YX#-p;EZq_=D|*|BTWxBH=0X539Y>HrA|Xv+NEN-`()N}Jqs zeW|}}zyGL7mFtX9{`gl{zRsdt2i)2i|<#~b`m@iIu9#3Z6JN?!w{oh zTuXMHO}sU{M0JH(mRWAl|ujJA)|z z?)j8{dG}d?f?E9fQ5PCx&wJV-7i~to2k%tfXPjU-7xsSH`elBOjryWL3%r|s!c%4? zej5LZ98S%kOHW%n0E|`l9a{9;4u325*E5~RdhqG|G9wa=k((*j7l2_zgQ+DXx)xK- z(jtSy;Fk|(P^NS4yrjk>>T~B6A7nb$gjrBj>>?R|FD;2<+%D)a%`23G!!A zJSX|ioS1vAoz)K+bPYv$T$7 zWgBahtdaz@yu=u2jc?W_z6`U&r)QiJChvc)C7VSX(8mNgn@Zl{wYqu|Zl77))JxE5 zKljEaQ>ylzUOc`R&QeiQ{5@O!NINO@pEn|X^^+zD6YvBvW=j-pFWm}SIXJ+HCe(96 zsm%mR)P^HL7t!yx(N4iOwDT%b5#L^6P`kLyDF~gsP|1maP>Y5tcUzvaoj1L|Weg^u zt=a%di_3JsDc< zP#avtOnb#yf%3!CRzKr$#_ss8Fq!xCL|#%fn83XvYtn4>I=D@h@FzHA_a%hzIm)+987@3#FylRi~IV7?QB6;Y(#UHrb znk}W-_1k#s($nMgrNl+bKL0VOb2!Oe$K|R=b9`p0xZY#oqVr@UVo^g?62FD}qXvQ<}pGTl<5ylFNPtZpTWyvmq=OHua}^Z9j!FpTW_G5hy!9OyAMe zlb9X6aTD6XXk>~%;H?f1id=pmU$H+n>Nk;S*=vCVH#pD^z_2?GW!alABxNUO)NDRW zXo%3cM=zag)SISTLXQIaMcQcH&*e_Y(d1ISh%!#jYk4!TOPbG>#%?tLqInp^CJT=PvV1%DMo3H{pRom@%i>%&ma><&-XUA)CzHMA)tkGNCiCO`T7N8 z8cPVt7e7LGDO<9g=gE`WB)xfj*7t|%kC62SM^P?ZXQg)`&qi7bO~~qYik0h%n_>DA zb;@nt(|mP@*(DQasNN#K!8q;?yMX?+wbQ5o80L4VH#hdN`g-FUeX-VoD0WI>teK1s zl1mPIR2AnkCP2Ao@}A9!;<-`jv{pdt(H6+Ya`!@Ad@m@ZTKmA?7nRqhJ8~xRSF^GNV4;fK(RDC@x3&RWUG3m*(7=m)(=6VsyM3ysze$%!L@|M*gN6 z>(3iYU{6}skc5;VdtQVTK4U)vZ;8AtYO+mk z;Qo!o!tlZ9=VWhC>Wu)M|E}>~ zGqZC!5J{jWP1*<}Ama-;h1T6vv{_d!zy7SMdo;KDaAIM3ed}=So|camS>1B@H{B(+ zJeca|>a&mzd6M^1Th%wCQ5#YhR?{wno}?_pw%+^2KO`Plsg3cyO(S4DWPJ*zXpGl_=K2x{nGQijck%|1yY-u?Kc!OE4$e&&2v^JHX)ODm=WF%kF9QW4^7$Tim%wpRf6)-3@HCZ=E~W z!;=ZFN7Pjr(@V2rx~bDnC16hQ5C|=WAIBPj9hqNo{bW6OGomJ~V6FP7cyx+a{<@vg zr=O-c#3!)zKGi|@mrzfFYeIRiKHvKRYa+1Mnqtk#RAhjzxTkSY)aP{I8mua>M*4YE zBybUBdbHBcuyZe&IPgv^GF1Yj9E+oqsc$gKaYbwclz7aC#+ht0IZ6_1TRO*?!VF9W zRGYJa$k|Lh$V{oJ1u{6iP+zjDVouV`_TE@&)>Kg{u#`F+qt(xGuA`PL+wYhoE&lM( zJWjY>e3uaDKd<-PmeyTDG8{$W{fD3+jf*$b%D`R}Ta>8S<@|&TV`XJ*(;SqGab&W% zOGETuq`UhxrXEV2%BpLxXBNu=XBv9gj~`f$`6Zu_64AmUlFD10?!^C|>PC*rj`Po&rl~M_85q9^8^i*r>4t*KpnZzHw|qbD ztFY?8`W!bnAOh9SG^+Bd>`6|)GX5WN_z}WcUhU;^oX@jU-4hMaL%9n?Ps7bOYHWjX zAOO96ZU{l;!IbV`R6=p$VS>%^v6*uSWb*~}gUY%O1Z()h%F94ph0(a=_+$fZBBF%k5HbEHUUukqagAx?!&sGqcNY zgCOY^oYI6H-yXHvd-M3X{x?0Al8uKw6O1O&@=uh?`kYB*kx}JPzYi zBtIabOey7+k6GFTi;TkXN!kZ$ZJCw7@#k-CZCzg2wObg}(}TJDnbr6nzY6hK$aRT( z9P{Y5TJ^idmM5?`u25G|8WHyJi(xw#x4gN}%OmQcQV}wTyxZhM-TRLj zOAZdtym`G9dLJO#7ykkEVi=&_UqLQZy(^o$u4=e8<9=aT2-XZ~sB7RbPd15Ngc#$Ww4}pT|UWCpll8Eby0y?bF zyk-!(-%zkWyo(Z;Pp|L$0&r~Y$T)HVH$pQ`d>SI~={%rDXO~qK>E`dHS$5YyQVQta zOs{ytSmD!ozBEkLvpQ6p5!4C0WRVeSd;$SkO179-veKb^lF+xu!`VYMtL9vUtQ!Mz_+3C z9@E9A9e%Biz36%u^NF!T!yPPY2#m+6dS2p|Fn$%I%h`&c`hB3y1N(OzqQ8nLFn)8 zN?&W_e&jt+nI_hhK*fm2?(Ov`*^JkiO_sz&y>a-ExFMw$7tj2~W00XjTa6Av0v}y# z=y2KMzY&Lt^#xdga3O89+Q5$MpbbGNWAdV@*-_8*sgJ7t{ zCI1bSBO5bmj9Zv4kvbn@P-_G4Xi!5JaG8TCe+THNFu1D*kx&pW`wbTg0to`b*3cl5~D`_Ofe zlDDg1nO+%zGB6eI*vJ7$-2b{Hj>+*n6gz^32vq~ecCLIrm5)BIVfKP`~@LMW?<}f3e?f{)7xe6%eT1> zzY%iKZSs~LGa8I|^?m#LkH7qyfDp?b@1lgN9WHA`8GL`hG`rxEb>-5-Nb;`j2E~Sc zK>ZYmc;nDHKpFdEx^xQrG4M%Q6r;6Fgs&Z#Fq0&aiwt}lNT0SBcq^0K`kWaz?vm;I zCo~}tu+C|6`EUpk*!L(+pz3c7M1TUdj@gj}&%)R&tHO*rKBjQp36n*tXe3U&sIc__ zw%^S>kZR;93@d3ac{XwL06iNY{luCoGS!sEBMhxP}B38aJUA$M56|^zGH%h8%|kZ2$sJT z9EO_-?EGBVmFgfM*2#zoFFuY|f~JII={9Ug8~q+*$@lN8TYvfk zzAPanK+Pp1K`mrbjfwq_+`y)XG*Nq4vKUu}nrFZu2-xeXCN(KM;DgPuZLt~9OiQID zWF_COVOh5QR$!iS5bOL-3zN?yst-T?!H4^E)0yOM4=Z*DRiaD<2ohy?31|M-!vBq+ zsvXqAEX?4}xpQ3E01>#K!a%iwaV-lEUel8O(|5P$7dxP{LLg71@iFx^H{^^*mlA$P zHABh>i@JRGAu6SAKX;FB+dx325F?ILWmY zT`!XbJUI{N?Q61^AnQGH*4h(UD3tw=eRO*Mb8|&G9lYc~iG5r{@%UnOk--GVtv*k2 z{@;skDk{r~-Vd;nUXf1d{L_ugwj3Vn7Cd_oz`G#K=Sch}JOK9hajI(*HXOxDQk}7i za<#sE9!=J9r-I6txxrUAr(GC6iIzMo_^(C$j*A|VPv{l`?97inwd!Pkxx>xZr0`p$ zBMI)_ncI6#JCWKv?6>FA=5#^2L$eaHOH{eeM<+e_|MGazn0OkH{1|jqXuxu#()hli z=sd`fr#sm_323CL)&G>8L~PAqz09LNSt%wwy|E*RkrD;ePn+FegLI1+G_xP9nS7$O zUlB?EJt@DM`M^e(fUAiBXdnwrR0>)O!Y~fzbhzB`0deS~-2eVx0ROKpsAHtIiNm?e z1FCGz3t%{VkWSA6Ka`&F6BpS%$PtYVrKkJb!wq0uCDt27X%#lmj3v$rYz-gZBSp^` z5B_~64q_5Y)s4^9NB-Xy1tR?Rk2u+i*91FqC~Y9WgLyy);fnTBrKId#v%hRiBOrbI z&6qm(03VSF@VeYJOj0(z_a z>`sFcG=u)Q)^H!Q!%3ShBR>?_DO&J~js(&yU(ltMVY*kTYIW+De0N<+>DW%d-fytc zP$c>z&jVS7#>6|q-<_=+{br$cTTE{rHbC2Dsbf47QLhG;ge7Ej`>J}SJo{Yqpc&y_IhfLmgV5eXVUtJ$_`IHlu8xQOxeSe}Tjt|HACZ+KW z)6Yk_$B=yZwtO;I*TKD=B)(&IK?dHSKK=R@)AO!eOTm%U2%vQH=rv8%u)RJ3kJ?lC~)Lx7SAz|ahz=(ETP;Gk!v>Pn9R zkMFKklkXNPeDk#XcsFU?kDr z>^9SwF-k}>xp~xoo;3UC1T)cx+D8!VSA>>GI3O7zII4 zGR089)wXL{t_c#qABxz>fDcIoW>xdc1;92tEm0#QsP^S_9}v1>8@@{H0RRJlxc|Nnhz>rLNBrM|O|S9S&brPkfVqWz166WTc7k9QPG z;P!tH9hdNLhb~^dtFy~%7-k{kvnchQXaf4)}qOecf zK8|qBqv++#5wIKNik?yRz#UP;cQH}oNVmCdMZkF%6E4082w2fsP zw6j82v=kPIfbEk#Uq3YXJajLc1Pw0sEV3Z>CD5-^R&*ob<)0Bq8PM$o&o_R;dCT}w znCJ|9=l5Bo50eig>ma!|jLnOx2J=m)5SWEL#S={gv(*$Nv`uD+z>5<0`a=hGR20 z)_BK4u+B^e2v0nV5kn3d=)s*otYH^zTcaHz^;=u${d@Y#*#GPF=?}F^qb~TFb8q-? zm+)bTs)~GJ48RPk$GL)g6868-fP+ z;zf5>1lS|@UPQ-%^B=>#hSOkuGV+;L8%&3)#-A`0AuZAn^MES&ow%Ta049helt88c z^h;Md-iH7bdq)%RRKQGsah?slD0^n|4~}T?fTxTpQur{tpiFQ}jOMRSzWq0y^k)Mz zStYc+xd+3GFAG3T04P3~l)Ym3+wEM}hahl51QO(>|L2eVHR1oC#nl~nT&X+Op;n#O zrB}|DM~BmW!ixG=;yp6|p~Slbx$T?ibL`4t={~h~>eZ{XN$JQhfT|xDy6V}M$hd4Shz;z09C9j5D(MOx%c zXyW%|0=%=!RZPJZ?g}G{ClO%G%Sjc%gGH6$!O-BHWJ^1dz>Xr*l{^>*m96pC=n)(f z6&6w&2w;svQ@N$MFkcZ2Pg9WKV_QMN zfA(<%mi>p0J$prlbm#|}?d_}~#vLfRyaKgdbO$4U`^ponuy)JbgfA2cjP?kQWKO9D zS9Br;b;hOAbPw^k6d0;D8PKz%T#o1NUrL5z0YcmBCKAZ>3yB zGng|oBr(l_x0#(*Z;gu`{Yb6@OR60~D{r9c^0$kU8F-+sfk~6qA;76$dWZ)`b%W@t4(EDr%&UF&+`1comO5)ZP?U5E0(O3P_0Nc^%fA)H{ zon?PXZltm>X=Z{97UoLMg<+as`J-C)@$~%bnW+{&%rDIlslQFtckbir+8X}M0>r!| z2{rPHo{4bYM5>%Q>hW{?j^DeSE-H=)You&T;z#hp`5rhIIk9|*crY^gI4Zq( z8>=4~)ga6L{5}mi_EW>Qai}qIYe7{*S%x~2LEWqB>JNhxbZ-K5Yu&0gryXYI zsJUx)Wu*T(0H)fpDy$rGa|K{7o}s=wc=3&y81O@G_C~azI%1_^oju3xYgkRY?Zfl%6+_08w`jJ;E0rkK zyAIr(UJ*!0Hy{mf{ft zBCc1YCIm*i4tV(u5D(%ra5mffGV||?LAP@L;hLO-N+&& zm>189lG>lq-(+ceY^ulET!Tn@6NsqKMFpxui=WHlMj9+u#UCB*PrTLaEm^g#sy$#8 zg)=4lx$yM|FEOUfuJY{fSmK4|DtFOU`L`muaD@6|xUug%kPO6u1;O2__mZcV?A&33 z6YKI^fpf2i99Rgb_EUkkxcMK%Lmr}&D@L=#vTWml!^G)>36{~OweG(RL1)@yTOG!Y z+=vH5OQX+|#tn-|xfykV_}Y}J*0q*D-V4R8?17CS8lBn%j5rjPWQe_gNwpCD3t8`! zs9bK4bk~on1l+%6sy6hWU#t7h4Vios-ynbwi+Ya#&(ZxAE68r*on=!0p;yXwk2i)_)=Qc*~b zJ^!9JA@ngMuV=i}DjJ{WlVn^*G z_MPs#b(Fd%hle%J!a;mnN*hNwHY3{PHYSB=TYZ=n{Q5S~ABB}wFNV#JxGSCKY@3U< z&#ta$Hd`vznw1rF5%ud&SQ!W2*^jGv60x0?W$?J|h;nK4rc=jILtO6j3d@E?^2-UmZ;_&hHw7^m)8emo6;ppvsLU8skLWuF z-?}V$`~CQhR5i%Bh6C3(()9Xpni7fQuLN=+h*5VTz%^oRHXBHBkYUD3Q)G8ZXRYyO z*Y()<6M7R{YvMN*Y@snO?QxQKM~5@{mh7{O7F5OBH7?F#!<*_PKRBSc6Y)ju{N^nY zDRZMITS>0P+avskEwUQ5qzkSbc2l`AFs<#2 z4dYkaHN$Fbc4s8n8ndc(c&%Yxm*bf>y|JdFO+=;-Lsj)_k($MG{=qujmGXroBbsbf zdYQ@IlL&{Oz^(Hyn9Y2{ajR3jj)cnBajRpd(WEnew=p@}pa)aCNKfynYou%C<}2-y z9T=vxPe0TSk?)-eEN<(Y;SrEaZ00hQbB{)6TIwbbDd4+l8|ZQ{A1_O-VkRGzox2Im zs8edpP-{K9pvMm23lDoV4DP}0an@P5^Vvnzb^P{no+ILw&&YyS=PlHbE>slesZvwN z2(!S1$^kcxbrzRQgmLt*O?r{uqr2mpn`A`D0!TuvPxNbimTTAW!4+S(C&(VyHNSta zV|o(p%3r-d&^>8A3$hzNzd}E;2Y&4(>leClB>p%XS5oXhYoKmRKj#n<`lB6aaC-+g z@xj3qn4jQzwOg3+?QFDVElN{2gDM4Sd9AD_)4hh7=$d$0v@1Z_y(PwR`rP&g+rBxS zQ-47CI;r*i=IyxGXQxFCTx|q*yjK=M;||XiDuC^BFIkEVNbJbEIu{ja{y0{GVKTVHj(CQJ~sCL{-esW&&Y2|d^Ie^>94=bQgBJ+*5jq%6%jkWEN z77PCL^nmX4De*tMDejK?C&7%D!06q{a`KN+$U9ogjmJVl0cb47@C~A8n z&2bWzr%7G=W*1s{H$Pz=bI^aeqJBGRkXIyQf}l?w(OAt%m4N+x*M?RwPTLtjLizdqPi=kQ){XMktBx(59wiq~7uwxJa&X-RAb7U1% zV}&h1jjvCQ^2Fnp2A!{D#@5z5Elx!pkK5&W7jo7$F{opW3X4Ea9cCT-7Y}%tfi+l? z|7X8i>F@#o4v4Vi3(wdf5e83dHh}uG)zW7@4VGJJm zCBSE+@Smtk1vryB@i?le3c>LAZii}|O;>7i0pKyWEBRJo|2g7;&64$Xorg~kxFFD{ zX#K}E<6(iaSmHlJb5fb(r;m+TRx1(5iY^Jj@5l0Qepz|CZ;Sya z(eX7iw%(-1Z5~03)QCU}kXJtW zXILdx3nT!%L2v4^Yk9q)+)IlFGEENP+4#?lQGR6Mep&3jfzIo$mE?uJjm%M(**q;) z-3hb~n}So|4hlf$bld)d_vLCRR6+ioLHPKqrj4#AATGs@7GVVL7;�usf}8D`;; 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