diff --git a/ios/DataCellView.swift b/ios/DataCellView.swift index 965b6c78..be89b6e9 100644 --- a/ios/DataCellView.swift +++ b/ios/DataCellView.swift @@ -112,6 +112,11 @@ class DataCellView: UICollectionViewCell, ExpandedCellProtocol { if representation.type == "miniChart" && !isDataView { if let miniChart = views[index] as? MiniChartView { miniChart.menuTranslations = menuTranslations + if let cellBackground = element.cellBackgroundColor { + miniChart.fillColor = ColorParser.fromCSS(cssString: cellBackground) + } else { + miniChart.fillColor = .clear + } miniChart.cell = element miniChart.setChartData(data: element, representedAs: representation) miniChart.delegate = self diff --git a/ios/MiniBarChart.swift b/ios/MiniBarChart.swift index 5ce8bf5c..5af6b975 100644 --- a/ios/MiniBarChart.swift +++ b/ios/MiniBarChart.swift @@ -12,7 +12,6 @@ class MiniBarChart: MiniChartRenderer { guard let data = data else {return} guard let rows = data.qMatrix else {return} if rect.size.height == 0 {return} - ctx.clear(rect) getBandWidth(rect: rect, data: data) resetScales(rect) var x = padding + horizontalPadding / 2 diff --git a/ios/MiniChartView.swift b/ios/MiniChartView.swift index b607613b..5517f5cd 100644 --- a/ios/MiniChartView.swift +++ b/ios/MiniChartView.swift @@ -12,6 +12,7 @@ class MiniChartView: UIView, ConstraintCellProtocol { var miniChart = MiniChartRenderer() var dynamicWidth = NSLayoutConstraint() let contextMenu = ContextMenu() + var fillColor = UIColor.clear var cell: DataCell? var menuTranslations: MenuTranslations? weak var delegate: ExpandedCellProtocol? @@ -84,6 +85,9 @@ class MiniChartView: UIView, ConstraintCellProtocol { override func draw(_ rect: CGRect) { guard let ctx = UIGraphicsGetCurrentContext() else { return } + ctx.clear(rect) + ctx.setFillColor(fillColor.cgColor) + ctx.fill(rect); miniChart.render(ctx, rect: rect) } diff --git a/ios/MiniDotGraph.swift b/ios/MiniDotGraph.swift index 0d787a28..fb5c37f1 100644 --- a/ios/MiniDotGraph.swift +++ b/ios/MiniDotGraph.swift @@ -22,7 +22,6 @@ class MiniDotGraph: MiniSparkLineChart { horizontalPadding = 16 clearDots() if rect.size.height == 0 {return} - ctx.clear(rect) getBandWidth(rect: rect, data: data) resetScales(rect) diff --git a/ios/MiniSparkLineChart.swift b/ios/MiniSparkLineChart.swift index 44d7865a..ac3f655d 100644 --- a/ios/MiniSparkLineChart.swift +++ b/ios/MiniSparkLineChart.swift @@ -25,7 +25,6 @@ class MiniSparkLineChart: MiniChartRenderer { clearDots() if rect.size.height == 0 {return} - ctx.clear(rect) getBandWidth(rect: rect, data: data) resetScales(rect) diff --git a/ios/PositiveNegativeChart.swift b/ios/PositiveNegativeChart.swift index f023723d..eda28148 100644 --- a/ios/PositiveNegativeChart.swift +++ b/ios/PositiveNegativeChart.swift @@ -12,7 +12,6 @@ class PositiveNegativeChart: MiniSparkLineChart { guard let data = data else {return} guard let rows = data.qMatrix else {return} if rect.size.height == 0 {return} - ctx.clear(rect) getBandWidth(rect: rect, data: data) resetScales(rect) var x = padding + horizontalPadding / 2 diff --git a/ios/ReactNativeMiniChartView.swift b/ios/ReactNativeMiniChartView.swift index dfd498c1..d3106dae 100644 --- a/ios/ReactNativeMiniChartView.swift +++ b/ios/ReactNativeMiniChartView.swift @@ -10,6 +10,7 @@ import Foundation class ReactNativeMiniChartView: UIView { var cell: DataCell? var col: DataColumn? + var fillColor = UIColor.clear var miniChart = MiniChartRenderer() @objc var rowData: NSDictionary = [:] { @@ -18,6 +19,11 @@ class ReactNativeMiniChartView: UIView { let json = try JSONSerialization.data(withJSONObject: rowData) let decodedCellData = try JSONDecoder().decode(DataCell.self, from: json) cell = decodedCellData + if let cellBackground = cell?.cellBackgroundColor { + self.fillColor = ColorParser.fromCSS(cssString: cellBackground) + } else { + self.fillColor = .clear + } } catch { print(error) } @@ -64,6 +70,8 @@ class ReactNativeMiniChartView: UIView { override func draw(_ rect: CGRect) { guard let ctx = UIGraphicsGetCurrentContext() else { return } + ctx.setFillColor(fillColor.cgColor) + ctx.fill(rect) miniChart.render(ctx, rect: rect) } diff --git a/src/components/SimpleGrid.tsx b/src/components/SimpleGrid.tsx index e8a8eb1c..4f5554c3 100644 --- a/src/components/SimpleGrid.tsx +++ b/src/components/SimpleGrid.tsx @@ -56,10 +56,8 @@ export type SimpleGridProps = { const transformTotals = (layout: any, table: any) => { let totals; let rowIndex = 0; - let firstCol = true; - let values = table?.columns?.map((col: any) => { - if (col.isDim && firstCol) { - firstCol = false; + let values = table?.columns?.map((col: any, index: number) => { + if (col.isDim && index === 0) { return layout.totals.label || 'Totals'; } if (!col.isDim && rowIndex < layout.qHyperCube.qGrandTotalRow.length) {