UNPKG

react-native-chart-kit

Version:

Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.

23 lines 5.04 kB
import React from "react"; import { Rect, Text } from "react-native-svg"; var CIRCLE_WIDTH = 16; var PADDING_LEFT = 4; var CHARACTER_WIDTH = 6; export var LegendItem = function (props) { var baseLegendItemX = props.baseLegendItemX, index = props.index; /* half the height of the legend Rect, minus half the height of the circle to align the circle from its center, rather than its top. */ var centerAlignedCircle = props.legendOffset / 2 - CIRCLE_WIDTH / 2; // 65% of the legend container height centers the text in relation to the circles var centerAlignedText = props.legendOffset * 0.65; // to center the legendItem on the baseLegendItemX var textLengthOffset = (props.legendText.length * CHARACTER_WIDTH) / 2; var legendItemNumber = index + 1; return (<> <Rect width={CIRCLE_WIDTH} height={CIRCLE_WIDTH} fill={props.iconColor} rx={8} ry={8} x={baseLegendItemX * legendItemNumber - (CIRCLE_WIDTH + textLengthOffset)} y={centerAlignedCircle}/> <Text x={baseLegendItemX * legendItemNumber + (PADDING_LEFT - textLengthOffset)} y={centerAlignedText} {...props.labelProps}> {props.legendText} </Text> </>); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVnZW5kSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaGFydHMvbGluZS9MZWdlbmRJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLElBQUksRUFBYSxJQUFJLEVBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRSxJQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDeEIsSUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQVcxQixNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsVUFBQyxLQUFzQjtJQUN2QyxJQUFBLGVBQWUsR0FBWSxLQUFLLGdCQUFqQixFQUFFLEtBQUssR0FBSyxLQUFLLE1BQVYsQ0FBVztJQUN6QztzREFDa0Q7SUFDbEQsSUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3RFLGlGQUFpRjtJQUNqRixJQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BELGtEQUFrRDtJQUNsRCxJQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLElBQU0sZ0JBQWdCLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVuQyxPQUFPLENBQ0wsRUFDRTtNQUFBLENBQUMsSUFBSSxDQUNILEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUNwQixNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FDckIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUN0QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDTixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDTixDQUFDLENBQUMsQ0FDQSxlQUFlLEdBQUcsZ0JBQWdCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQ3ZFLENBQUMsQ0FDRCxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUV6QjtNQUFBLENBQUMsSUFBSSxDQUNILENBQUMsQ0FBQyxDQUNBLGVBQWUsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FDdkUsQ0FBQyxDQUNELENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQ3JCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUVyQjtRQUFBLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDbkI7TUFBQSxFQUFFLElBQUksQ0FDUjtJQUFBLEdBQUcsQ0FDSixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgUmVjdCwgUmVjdFByb3BzLCBUZXh0LCBUZXh0UHJvcHMgfSBmcm9tIFwicmVhY3QtbmF0aXZlLXN2Z1wiO1xuXG5jb25zdCBDSVJDTEVfV0lEVEggPSAxNjtcbmNvbnN0IFBBRERJTkdfTEVGVCA9IDQ7XG5jb25zdCBDSEFSQUNURVJfV0lEVEggPSA2O1xuXG5leHBvcnQgdHlwZSBMZWdlbmRJdGVtUHJvcHMgPSB7XG4gIGJhc2VMZWdlbmRJdGVtWDogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xuICBsZWdlbmRPZmZzZXQ6IG51bWJlcjtcbiAgbGVnZW5kVGV4dDogc3RyaW5nO1xuICBpY29uQ29sb3I6IFJlY3RQcm9wc1tcImZpbGxcIl07XG4gIGxhYmVsUHJvcHM6IFRleHRQcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCBMZWdlbmRJdGVtID0gKHByb3BzOiBMZWdlbmRJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgeyBiYXNlTGVnZW5kSXRlbVgsIGluZGV4IH0gPSBwcm9wcztcbiAgLyogaGFsZiB0aGUgaGVpZ2h0IG9mIHRoZSBsZWdlbmQgUmVjdCwgbWludXMgaGFsZiB0aGUgaGVpZ2h0IG9mIHRoZSBjaXJjbGUgdG8gYWxpZ24gdGhlXG4gICAgIGNpcmNsZSBmcm9tIGl0cyBjZW50ZXIsIHJhdGhlciB0aGFuIGl0cyB0b3AuICovXG4gIGNvbnN0IGNlbnRlckFsaWduZWRDaXJjbGUgPSBwcm9wcy5sZWdlbmRPZmZzZXQgLyAyIC0gQ0lSQ0xFX1dJRFRIIC8gMjtcbiAgLy8gNjUlIG9mIHRoZSBsZWdlbmQgY29udGFpbmVyIGhlaWdodCBjZW50ZXJzIHRoZSB0ZXh0IGluIHJlbGF0aW9uIHRvIHRoZSBjaXJjbGVzXG4gIGNvbnN0IGNlbnRlckFsaWduZWRUZXh0ID0gcHJvcHMubGVnZW5kT2Zmc2V0ICogMC42NTtcbiAgLy8gdG8gY2VudGVyIHRoZSBsZWdlbmRJdGVtIG9uIHRoZSBiYXNlTGVnZW5kSXRlbVhcbiAgY29uc3QgdGV4dExlbmd0aE9mZnNldCA9IChwcm9wcy5sZWdlbmRUZXh0Lmxlbmd0aCAqIENIQVJBQ1RFUl9XSURUSCkgLyAyO1xuICBjb25zdCBsZWdlbmRJdGVtTnVtYmVyID0gaW5kZXggKyAxO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxSZWN0XG4gICAgICAgIHdpZHRoPXtDSVJDTEVfV0lEVEh9XG4gICAgICAgIGhlaWdodD17Q0lSQ0xFX1dJRFRIfVxuICAgICAgICBmaWxsPXtwcm9wcy5pY29uQ29sb3J9XG4gICAgICAgIHJ4PXs4fVxuICAgICAgICByeT17OH1cbiAgICAgICAgeD17XG4gICAgICAgICAgYmFzZUxlZ2VuZEl0ZW1YICogbGVnZW5kSXRlbU51bWJlciAtIChDSVJDTEVfV0lEVEggKyB0ZXh0TGVuZ3RoT2Zmc2V0KVxuICAgICAgICB9XG4gICAgICAgIHk9e2NlbnRlckFsaWduZWRDaXJjbGV9XG4gICAgICAvPlxuICAgICAgPFRleHRcbiAgICAgICAgeD17XG4gICAgICAgICAgYmFzZUxlZ2VuZEl0ZW1YICogbGVnZW5kSXRlbU51bWJlciArIChQQURESU5HX0xFRlQgLSB0ZXh0TGVuZ3RoT2Zmc2V0KVxuICAgICAgICB9XG4gICAgICAgIHk9e2NlbnRlckFsaWduZWRUZXh0fVxuICAgICAgICB7Li4ucHJvcHMubGFiZWxQcm9wc31cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmxlZ2VuZFRleHR9XG4gICAgICA8L1RleHQ+XG4gICAgPC8+XG4gICk7XG59O1xuIl19