backpack-ui
Version:
Lonely Planet's Components
198 lines (159 loc) • 4.07 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _radium = require("radium");
var _radium2 = _interopRequireDefault(_radium);
var _settings = require("../../../settings.json");
var _font = require("../../utils/font");
var _font2 = _interopRequireDefault(_font);
var _color = require("../../utils/color");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var styles = {
container: {
base: {
backfaceVisibility: "hidden",
color: _settings.color.titleGray,
display: "inline-block",
fontFamily: (0, _font2.default)("miller"),
fontSize: "1em",
height: 36 / 20 + "em",
lineHeight: 36 / 20 + "em",
position: "relative",
textAlign: "center",
width: 36 / 20 + "em",
zIndex: _settings.zIndex.default
},
size: {
xSmall: {
height: "24px",
width: "24px",
lineHeight: "24px",
fontSize: "12px"
},
small: {
fontSize: "14px"
},
large: {
fontSize: "20px"
}
},
place: {
left: "6.7rem",
position: "absolute",
top: "50%",
transform: "translateY(-50%)"
},
transparent: {
color: _settings.color.white
}
},
diamond: {
base: {
backgroundColor: _settings.color.white,
borderRadius: 4 / 20 + "em",
boxShadow: "2px 2px 2px rgba(" + (0, _color.rgb)(_settings.color.black) + ", .18)",
display: "block",
height: "100%",
marginTop: "-" + 36 / 20 + "em",
position: "relative",
transform: "rotate(45deg)",
width: "100%",
zIndex: _settings.zIndex.below
},
size: {
xSmall: {
marginTop: "-" + 36 / 20 + "em",
borderRadius: "5px"
},
small: {
borderRadius: 4 / 14 + "em"
},
large: {
borderRadius: 6 / 20 + "em"
}
},
outlined: {
boxShadow: "0 0 0 1px #e1eaf0" },
transparent: {
backgroundColor: "transparent",
border: "1px solid " + _settings.color.white,
opacity: "0.5"
}
}
};
function NumberMarker(_ref) {
var number = _ref.number;
var size = _ref.size;
var outlined = _ref.outlined;
var place = _ref.place;
var transparent = _ref.transparent;
var style = {
container: [styles.container.base],
diamond: [styles.diamond.base]
};
if (size) {
style.container.push(styles.container.size[size]);
style.diamond.push(styles.diamond.size[size]);
}
if (outlined) {
style.diamond.push(styles.diamond.outlined);
}
if (place) {
style.container.push(styles.container.place);
}
if (transparent) {
style.diamond.push(styles.diamond.transparent);
style.container.push(styles.container.transparent);
}
return _react2.default.createElement(
"div",
{
className: "NumberMarker",
style: style.container
},
number,
_react2.default.createElement("span", {
className: "NumberMarker-diamond",
style: style.diamond
})
);
}
NumberMarker.propTypes = {
/**
* Number to show
*/
number: _react2.default.PropTypes.number.isRequired,
/**
* How big the marker should be; if size is
* undefined, the size will be inherited from
* the parent
*/
size: _react2.default.PropTypes.oneOf(["", "xSmall", "small", "large"]),
/**
* Changes the box shadow style to look more
* like an outline/border
*/
outlined: _react2.default.PropTypes.bool,
/**
* If the marker used within a place list;
* positions the marker over an 80px wide photo
*/
place: _react2.default.PropTypes.bool,
/**
* Show a transparent version of the marker;
*
*/
transparent: _react2.default.PropTypes.bool
};
NumberMarker.defaultProps = {
number: "",
size: "",
outlined: false,
place: false,
transparent: false
};
NumberMarker.styles = styles;
exports.default = (0, _radium2.default)(NumberMarker);