Chart fixes

This commit is contained in:
Ilya Laktyushin
2020-03-25 22:35:26 +04:00
parent d774ecc5d5
commit b9b5cb1b73
17 changed files with 44 additions and 38 deletions

View File

@@ -172,7 +172,7 @@ public class BaseChartController: ChartThemeContainer {
public var setDetailsViewPositionClosure: ((CGFloat) -> Void)?
public var setDetailsChartVisibleClosure: ((Bool, Bool) -> Void)?
public var setDetailsViewModel: ((ChartDetailsViewModel, Bool) -> Void)?
public var setDetailsViewModel: ((ChartDetailsViewModel, Bool, Bool) -> Void)?
public var getDetailsData: ((Date, @escaping (ChartsCollection?) -> Void) -> Void)?
public var setChartTitleClosure: ((String, Bool) -> Void)?
public var setBackButtonVisibilityClosure: ((Bool, Bool) -> Void)?

View File

@@ -196,7 +196,7 @@ class GeneralChartComponentController: ChartThemeContainer {
var detailsVisible = false
func showDetailsView(at chartPosition: CGFloat, detailsViewPosition: CGFloat, dataIndex: Int, date: Date, animted: Bool) {
setDetailsViewModel?(chartDetailsViewModel(closestDate: date, pointIndex: dataIndex), animted)
setDetailsViewModel?(chartDetailsViewModel(closestDate: date, pointIndex: dataIndex), animted, false)
setDetailsChartVisibleClosure?(true, true)
setDetailsViewPositionClosure?(detailsViewPosition)
detailsVisible = true
@@ -226,7 +226,7 @@ class GeneralChartComponentController: ChartThemeContainer {
var setChartTitleClosure: ((String, Bool) -> Void)?
var setDetailsViewPositionClosure: ((CGFloat) -> Void)?
var setDetailsChartVisibleClosure: ((Bool, Bool) -> Void)?
var setDetailsViewModel: ((ChartDetailsViewModel, Bool) -> Void)?
var setDetailsViewModel: ((ChartDetailsViewModel, Bool, Bool) -> Void)?
var chartRangePagingClosure: ((Bool, CGFloat) -> Void)? // isEnabled, PageSize
func apply(theme: ChartTheme, animated: Bool) {

View File

@@ -134,7 +134,7 @@ public class BaseLinesChartController: BaseChartController {
public override func didTapZoomIn(date: Date, pointIndex: Int) {
guard isZoomed == false else { return }
setDetailsViewModel?(chartDetailsViewModel(closestDate: date, pointIndex: pointIndex, loading: true), false)
setDetailsViewModel?(chartDetailsViewModel(closestDate: date, pointIndex: pointIndex, loading: true), false, false)
self.getDetailsData?(date, { updatedCollection in
if let updatedCollection = updatedCollection {

View File

@@ -147,7 +147,7 @@ public class GeneralLinesChartController: BaseLinesChartController {
let chartValue: CGFloat = CGFloat(closestDate.timeIntervalSince1970)
let detailsViewPosition = (chartValue - horizontalRange.lowerBound) / horizontalRange.distance * chartFrame.width + chartFrame.minX
self.setDetailsViewModel?(chartDetailsViewModel(closestDate: closestDate, pointIndex: minIndex, loading: false), chartInteractionWasBegin)
self.setDetailsViewModel?(chartDetailsViewModel(closestDate: closestDate, pointIndex: minIndex, loading: false), chartInteractionWasBegin, !chartInteractionWasBegin)
self.setDetailsChartVisibleClosure?(true, true)
self.setDetailsViewPositionClosure?(detailsViewPosition)
self.verticalLineRenderer.values = [chartValue]

View File

@@ -176,7 +176,7 @@ public class TwoAxisLinesChartController: BaseLinesChartController {
let chartValue: CGFloat = CGFloat(closestDate.timeIntervalSince1970)
let detailsViewPosition = (chartValue - horizontalRange.lowerBound) / horizontalRange.distance * chartFrame.width + chartFrame.minX
self.setDetailsViewModel?(chartDetailsViewModel(closestDate: closestDate, pointIndex: minIndex, loading: false), chartInteractionWasBegin)
self.setDetailsViewModel?(chartDetailsViewModel(closestDate: closestDate, pointIndex: minIndex, loading: false), chartInteractionWasBegin, !chartInteractionWasBegin)
self.setDetailsChartVisibleClosure?(true, true)
self.setDetailsViewPositionClosure?(detailsViewPosition)
self.verticalLineRenderer.values = [chartValue]

View File

@@ -59,8 +59,8 @@ public class PercentPieChartController: BaseChartController {
controller.setDetailsChartVisibleClosure = { [unowned self] (visible, animated) in
self.setDetailsChartVisibleClosure?(visible, animated)
}
controller.setDetailsViewModel = { [unowned self] (viewModel, animated) in
self.setDetailsViewModel?(viewModel, animated)
controller.setDetailsViewModel = { [unowned self] (viewModel, animated, feedback) in
self.setDetailsViewModel?(viewModel, animated, feedback)
}
controller.updatePreviewRangeClosure = { [unowned self] (fraction, animated) in
self.chartRangeUpdatedClosure?(fraction, animated)

View File

@@ -136,7 +136,7 @@ class PieChartComponentController: GeneralChartComponentController {
func updateSelectedDataLabelIfNeeded() {
if let segment = pieChartRenderer.selectedSegment {
self.setDetailsChartVisibleClosure?(true, true)
self.setDetailsViewModel?(chartDetailsViewModel(segmentInde: segment), false)
self.setDetailsViewModel?(chartDetailsViewModel(segmentInde: segment), false, false)
self.setDetailsViewPositionClosure?(chartFrame().width / 4)
} else {
self.setDetailsChartVisibleClosure?(false, true)

View File

@@ -193,7 +193,7 @@ class BarsComponentController: GeneralChartComponentController {
color: .white,
visible: visibleChartValues.count > 1)
} else {
viewModel.title = ""
viewModel.title = "\(Int(closestDate.timeIntervalSince1970)):00"
}
return viewModel
}

View File

@@ -51,8 +51,8 @@ public class DailyBarsChartController: BaseChartController {
controller.setDetailsChartVisibleClosure = { [unowned self] (visible, animated) in
self.setDetailsChartVisibleClosure?(visible, animated)
}
controller.setDetailsViewModel = { [unowned self] (viewModel, animated) in
self.setDetailsViewModel?(viewModel, animated)
controller.setDetailsViewModel = { [unowned self] (viewModel, animated, feedback) in
self.setDetailsViewModel?(viewModel, animated, feedback)
}
controller.updatePreviewRangeClosure = { [unowned self] (fraction, animated) in
self.chartRangeUpdatedClosure?(fraction, animated)

View File

@@ -54,8 +54,8 @@ public class StackedBarsChartController: BaseChartController {
controller.setDetailsChartVisibleClosure = { [unowned self] (visible, animated) in
self.setDetailsChartVisibleClosure?(visible, animated)
}
controller.setDetailsViewModel = { [unowned self] (viewModel, animated) in
self.setDetailsViewModel?(viewModel, animated)
controller.setDetailsViewModel = { [unowned self] (viewModel, animated, feedback) in
self.setDetailsViewModel?(viewModel, animated, feedback)
}
controller.updatePreviewRangeClosure = { [unowned self] (fraction, animated) in
self.chartRangeUpdatedClosure?(fraction, animated)

View File

@@ -54,8 +54,8 @@ public class StepBarsChartController: BaseChartController {
controller.setDetailsChartVisibleClosure = { [unowned self] (visible, animated) in
self.setDetailsChartVisibleClosure?(visible, animated)
}
controller.setDetailsViewModel = { [unowned self] (viewModel, animated) in
self.setDetailsViewModel?(viewModel, animated)
controller.setDetailsViewModel = { [unowned self] (viewModel, animated, feedback) in
self.setDetailsViewModel?(viewModel, animated, feedback)
}
controller.updatePreviewRangeClosure = { [unowned self] (fraction, animated) in
self.chartRangeUpdatedClosure?(fraction, animated)

View File

@@ -193,7 +193,7 @@ public class TwoAxisStepBarsChartController: BaseLinesChartController {
let chartValue: CGFloat = CGFloat(closestDate.timeIntervalSince1970)
let detailsViewPosition = (chartValue - horizontalRange.lowerBound) / horizontalRange.distance * chartFrame.width + chartFrame.minX + barOffset
self.setDetailsViewModel?(chartDetailsViewModel(closestDate: closestDate, pointIndex: minIndex, loading: false), chartInteractionWasBegin)
self.setDetailsViewModel?(chartDetailsViewModel(closestDate: closestDate, pointIndex: minIndex, loading: false), chartInteractionWasBegin, !chartInteractionWasBegin)
self.setDetailsChartVisibleClosure?(true, true)
self.setDetailsViewPositionClosure?(detailsViewPosition)
self.verticalLineRenderer.values = [chartValue]