UNPKG

5.01 kBJavaScriptView Raw
1import React from "react";
2import { Rect, Text } from "react-native-svg";
3var CIRCLE_WIDTH = 16;
4var PADDING_LEFT = 4;
5var CHARACTER_WIDTH = 6;
6export var LegendItem = function (props) {
7 var baseLegendItemX = props.baseLegendItemX, index = props.index;
8 /* half the height of the legend Rect, minus half the height of the circle to align the
9 circle from its center, rather than its top. */
10 var centerAlignedCircle = props.legendOffset / 2 - CIRCLE_WIDTH / 2;
11 // 65% of the legend container height centers the text in relation to the circles
12 var centerAlignedText = props.legendOffset * 0.65;
13 // to center the legendItem on the baseLegendItemX
14 var textLengthOffset = (props.legendText.length * CHARACTER_WIDTH) / 2;
15 var legendItemNumber = index + 1;
16 return (<>
17 <Rect width={CIRCLE_WIDTH} height={CIRCLE_WIDTH} fill={props.iconColor} rx={8} ry={8} x={baseLegendItemX * legendItemNumber - (CIRCLE_WIDTH + textLengthOffset)} y={centerAlignedCircle}/>
18 <Text x={baseLegendItemX * legendItemNumber + (PADDING_LEFT - textLengthOffset)} y={centerAlignedText} {...props.labelProps}>
19 {props.legendText}
20 </Text>
21 </>);
22};
23//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVnZW5kSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saW5lLWNoYXJ0L0xlZ2VuZEl0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQVMsSUFBSSxFQUFFLElBQUksRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUN4QixJQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsSUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBVzFCLE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBRyxVQUFDLEtBQXNCO0lBQ3ZDLElBQUEsZUFBZSxHQUFZLEtBQUssZ0JBQWpCLEVBQUUsS0FBSyxHQUFLLEtBQUssTUFBVixDQUFXO0lBQ3pDO3NEQUNrRDtJQUNsRCxJQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDdEUsaUZBQWlGO0lBQ2pGLElBQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDcEQsa0RBQWtEO0lBQ2xELElBQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekUsSUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLE9BQU8sQ0FDTCxFQUNFO01BQUEsQ0FBQyxJQUFJLENBQ0gsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQ3BCLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUNyQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQ3RCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNOLENBQUMsQ0FBQyxDQUNBLGVBQWUsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxDQUN2RSxDQUNELENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBRXpCO01BQUEsQ0FBQyxJQUFJLENBQ0gsQ0FBQyxDQUFDLENBQ0EsZUFBZSxHQUFHLGdCQUFnQixHQUFHLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDLENBQ3ZFLENBQ0QsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FDckIsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBRXJCO1FBQUEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUNuQjtNQUFBLEVBQUUsSUFBSSxDQUNSO0lBQUEsR0FBRyxDQUNKLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDb2xvciwgUmVjdCwgVGV4dCwgVGV4dFByb3BzIH0gZnJvbSBcInJlYWN0LW5hdGl2ZS1zdmdcIjtcblxuY29uc3QgQ0lSQ0xFX1dJRFRIID0gMTY7XG5jb25zdCBQQURESU5HX0xFRlQgPSA0O1xuY29uc3QgQ0hBUkFDVEVSX1dJRFRIID0gNjtcblxuZXhwb3J0IHR5cGUgTGVnZW5kSXRlbVByb3BzID0ge1xuICBiYXNlTGVnZW5kSXRlbVg6IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbiAgbGVnZW5kT2Zmc2V0OiBudW1iZXI7XG4gIGxlZ2VuZFRleHQ6IHN0cmluZztcbiAgaWNvbkNvbG9yOiBDb2xvcjtcbiAgbGFiZWxQcm9wczogVGV4dFByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IExlZ2VuZEl0ZW0gPSAocHJvcHM6IExlZ2VuZEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCB7IGJhc2VMZWdlbmRJdGVtWCwgaW5kZXggfSA9IHByb3BzO1xuICAvKiBoYWxmIHRoZSBoZWlnaHQgb2YgdGhlIGxlZ2VuZCBSZWN0LCBtaW51cyBoYWxmIHRoZSBoZWlnaHQgb2YgdGhlIGNpcmNsZSB0byBhbGlnbiB0aGVcbiAgICAgY2lyY2xlIGZyb20gaXRzIGNlbnRlciwgcmF0aGVyIHRoYW4gaXRzIHRvcC4gKi9cbiAgY29uc3QgY2VudGVyQWxpZ25lZENpcmNsZSA9IHByb3BzLmxlZ2VuZE9mZnNldCAvIDIgLSBDSVJDTEVfV0lEVEggLyAyO1xuICAvLyA2NSUgb2YgdGhlIGxlZ2VuZCBjb250YWluZXIgaGVpZ2h0IGNlbnRlcnMgdGhlIHRleHQgaW4gcmVsYXRpb24gdG8gdGhlIGNpcmNsZXNcbiAgY29uc3QgY2VudGVyQWxpZ25lZFRleHQgPSBwcm9wcy5sZWdlbmRPZmZzZXQgKiAwLjY1O1xuICAvLyB0byBjZW50ZXIgdGhlIGxlZ2VuZEl0ZW0gb24gdGhlIGJhc2VMZWdlbmRJdGVtWFxuICBjb25zdCB0ZXh0TGVuZ3RoT2Zmc2V0ID0gKHByb3BzLmxlZ2VuZFRleHQubGVuZ3RoICogQ0hBUkFDVEVSX1dJRFRIKSAvIDI7XG4gIGNvbnN0IGxlZ2VuZEl0ZW1OdW1iZXIgPSBpbmRleCArIDE7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFJlY3RcbiAgICAgICAgd2lkdGg9e0NJUkNMRV9XSURUSH1cbiAgICAgICAgaGVpZ2h0PXtDSVJDTEVfV0lEVEh9XG4gICAgICAgIGZpbGw9e3Byb3BzLmljb25Db2xvcn1cbiAgICAgICAgcng9ezh9XG4gICAgICAgIHJ5PXs4fVxuICAgICAgICB4PXtcbiAgICAgICAgICBiYXNlTGVnZW5kSXRlbVggKiBsZWdlbmRJdGVtTnVtYmVyIC0gKENJUkNMRV9XSURUSCArIHRleHRMZW5ndGhPZmZzZXQpXG4gICAgICAgIH1cbiAgICAgICAgeT17Y2VudGVyQWxpZ25lZENpcmNsZX1cbiAgICAgIC8+XG4gICAgICA8VGV4dFxuICAgICAgICB4PXtcbiAgICAgICAgICBiYXNlTGVnZW5kSXRlbVggKiBsZWdlbmRJdGVtTnVtYmVyICsgKFBBRERJTkdfTEVGVCAtIHRleHRMZW5ndGhPZmZzZXQpXG4gICAgICAgIH1cbiAgICAgICAgeT17Y2VudGVyQWxpZ25lZFRleHR9XG4gICAgICAgIHsuLi5wcm9wcy5sYWJlbFByb3BzfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMubGVnZW5kVGV4dH1cbiAgICAgIDwvVGV4dD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0=
\No newline at end of file