@e-group/material-lab
Version:
EGroup Team Lab - Incubator for EGroup Team experimental React components.
119 lines (106 loc) • 4.29 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _core = require("@material-ui/core");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
const startBorderStyle = {
borderRadius: '50% 0 0 50%'
};
const endBorderStyle = {
borderRadius: '0 50% 50% 0'
};
const styles = theme => (0, _core.createStyles)({
inRange: {
backgroundColor: theme.palette.primary.light,
'&:first-child': startBorderStyle,
'&:last-child': endBorderStyle
},
startBorder: startBorderStyle,
endBorder: endBorderStyle,
buttonContainer: {
display: 'flex',
borderStyle: 'dashed',
borderWidth: 2,
borderColor: 'transparent'
},
button: {
height: 36,
width: 36,
transform: 'scale(1.1)'
},
buttonText: {
lineHeight: 1.6
},
outlined: {
border: "1px solid ".concat(theme.palette.primary.dark)
},
filled: {
'&:hover': {
backgroundColor: theme.palette.primary.dark
},
backgroundColor: theme.palette.primary.dark
},
hovered: {
borderTopColor: theme.palette.action.focus,
borderBottomColor: theme.palette.action.focus,
'&:first-child': _objectSpread(_objectSpread({}, startBorderStyle), {}, {
borderLeftColor: theme.palette.action.focus
}),
'&:last-child': _objectSpread(_objectSpread({}, endBorderStyle), {}, {
borderRightColor: theme.palette.action.focus
})
},
hoveredStart: _objectSpread(_objectSpread({}, startBorderStyle), {}, {
borderLeftColor: theme.palette.action.focus
}),
hoveredEnd: _objectSpread(_objectSpread({}, endBorderStyle), {}, {
borderRightColor: theme.palette.action.focus
}),
contrast: {
color: theme.palette.primary.contrastText
},
invisible: {
visibility: 'hidden'
}
});
const Day = ({
classes,
startOfDateRange,
endOfDateRange,
disabled,
isInDateRange,
onClick,
onHover,
filled,
isInHoveredRange,
value,
outlined,
invisible,
endOfHoveredRange,
startOfHoveredRange
}) => {
const enable = !disabled && !invisible;
return /*#__PURE__*/_react.default.createElement("div", {
className: (0, _clsx.default)(classes.buttonContainer, invisible && classes.invisible, startOfDateRange && classes.startBorder, endOfDateRange && classes.endBorder, enable && isInDateRange && classes.inRange, enable && isInHoveredRange && classes.hovered, enable && isInHoveredRange && endOfHoveredRange && classes.hoveredEnd, enable && isInHoveredRange && startOfHoveredRange && classes.hoveredStart)
}, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
className: (0, _clsx.default)(classes.button, !disabled && outlined && classes.outlined, !disabled && filled && classes.filled),
disabled: disabled,
onClick: onClick,
onMouseOver: onHover
}, /*#__PURE__*/_react.default.createElement(_core.Typography, {
color: disabled ? 'textSecondary' : 'textPrimary',
className: (0, _clsx.default)(classes.buttonText, !disabled && filled && classes.contrast),
variant: "body2"
}, value)));
};
var _default = (0, _core.withStyles)(styles, {
name: 'EgDay'
})(Day);
exports.default = _default;