/* eslint no-nested-ternary: off */ /* eslint react/no-unknown-property: off */ /* eslint consistent-return: off */ import Utils from '../utils/utils'; export default { props: { id: [String, Number], className: String, // phenome-react-line style: Object, // phenome-react-line type: { type: String, default: 'circle', }, value: { type: [Number, String], default: 0, }, size: { type: [Number, String], default: 200, }, bgColor: { type: String, default: 'transparent', }, borderBgColor: { type: String, default: '#eeeeee', }, borderColor: { type: String, default: '#000000', }, borderWidth: { type: [Number, String], default: 10, }, valueText: [Number, String], valueTextColor: { type: String, default: '#000000', }, valueFontSize: { type: [Number, String], default: 31, }, valueFontWeight: { type: [Number, String], default: 500, }, labelText: String, labelTextColor: { type: String, default: '#888888', }, labelFontSize: { type: [Number, String], default: 14, }, labelFontWeight: { type: [Number, String], default: 400, }, }, name: 'f7-gauge', render() { const props = this.props; const { className, id, style, type, value, size, bgColor, borderBgColor, borderColor, borderWidth, valueText, valueTextColor, valueFontSize, valueFontWeight, labelText, labelTextColor, labelFontSize, labelFontWeight, } = props; const classes = Utils.classNames( className, 'gauge', ); const semiCircle = type === 'semicircle'; const radius = (size / 2) - (borderWidth / 2); const length = 2 * Math.PI * radius; const progress = Math.max(Math.min(value, 1), 0); return (
{semiCircle && ( )} {semiCircle && ( )} {!semiCircle && borderBgColor && ( )} {!semiCircle && ( )} {valueText && ( {valueText} )} {labelText && ( {labelText} )}
); }, };