UNPKG

twreporter-react

Version:

React-Redux site for The Reporter Foundation in Taiwan

78 lines (60 loc) 2.7 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var Marks = function Marks(_ref) { var className = _ref.className; var vertical = _ref.vertical; var marks = _ref.marks; var included = _ref.included; var upperBound = _ref.upperBound; var lowerBound = _ref.lowerBound; var max = _ref.max; var min = _ref.min; var marksKeys = Object.keys(marks); var marksCount = marksKeys.length; var unit = 100 / (marksCount - 1); var markWidth = unit * 0.9; var range = max - min; var elements = marksKeys.map(parseFloat).sort(function (a, b) { return a - b; }).map(function (point) { var _classNames; var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound; var markClassName = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, className + '-text', true), _defineProperty(_classNames, className + '-text-active', isActived), _classNames)); var bottomStyle = { // height: markWidth + '%', marginBottom: '-200' + '%', bottom: (point - min) / range * 100 + '%' }; var leftStyle = { width: markWidth + '%', marginLeft: -markWidth / 2 + '%', left: (point - min) / range * 100 + '%' }; var style = vertical ? bottomStyle : leftStyle; var markPoint = marks[point]; var markPointIsObject = typeof markPoint === 'object' && !_react2['default'].isValidElement(markPoint); var markLabel = markPointIsObject ? markPoint.label : markPoint; var markStyle = markPointIsObject ? _extends({}, style, markPoint.style) : style; return _react2['default'].createElement( 'span', { className: markClassName, style: markStyle, key: point }, markLabel ); }); return _react2['default'].createElement( 'div', { className: className }, elements ); }; exports['default'] = Marks; module.exports = exports['default'];