storybook-addon-material-ui
Version:
Storybook Addon for Material UI Library
297 lines (264 loc) • 8.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Button = Button;
exports.Link = Link;
exports.CheckBox = CheckBox;
exports.Toggle = Toggle;
exports.Dropdown = Dropdown;
exports.Paper = Paper;
exports.Tag = Tag;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
// import images from './svg_package';
var images = {};
var iconStyle = {
width: 18,
opacity: 0.6,
marginRight: 8
};
var buttonStyle = {
backgroundColor: 'rgba(0, 0, 0, 0)',
border: 'none',
outline: 'none',
padding: 0,
margin: 4,
display: 'flex',
alignItems: 'center',
fontFamily: '-apple-system, ".SFNSText-Regular", "San Francisco", Roboto, "Segoe UI", "Helvetica Neue", "Lucida Grande", sans-serif',
// eslint-disable-line
cursor: 'pointer',
fontSize: 12,
textDecoration: 'none',
color: 'black'
};
var selectStyle = _objectSpread({}, buttonStyle, {
border: '#d9d9d9 1px solid',
borderRadius: 2,
backgroundColor: '#e8e8e8',
padding: 2,
boxShadow: '0px 0px 2px 0px rgba(0, 0, 0, 0.5)',
fontSize: 14,
width: '100%'
});
var optionsStyle = {
backgroundColor: '#fcfcfc',
height: 50 // border: '#2e63ac 4px solid',
};
function Button(_ref) {
var icon = _ref.icon,
label = _ref.label,
title = _ref.title,
onClick = _ref.onClick,
compact = _ref.compact,
disabled = _ref.disabled;
// const iconStyleAply = iconStyle;
var iconOverride = !label || compact ? {
margin: 0
} : {}; // if (!label || compact) iconStyleAply.margin = 0;
return _react.default.createElement("button", {
style: _objectSpread({}, buttonStyle, disabled && {
opacity: 0.5
}),
title: title,
onClick: onClick
}, _react.default.createElement("img", {
src: images[icon],
alt: images[icon],
style: _objectSpread({}, iconStyle, iconOverride)
}), !compact && label || '');
}
Button.propTypes = {
icon: _propTypes.default.string,
label: _propTypes.default.string,
title: _propTypes.default.string,
onClick: _propTypes.default.func
};
function Link(_ref2) {
var icon = _ref2.icon,
label = _ref2.label,
title = _ref2.title,
href = _ref2.href;
return _react.default.createElement("a", {
href: href,
style: buttonStyle,
title: title,
target: "_blank",
rel: "noopener noreferrer"
}, _react.default.createElement("img", {
src: images[icon],
alt: images[icon],
style: iconStyle
}), label);
}
Link.propTypes = {
icon: _propTypes.default.string,
label: _propTypes.default.string,
title: _propTypes.default.string,
href: _propTypes.default.string
};
Button.propTypes = {
icon: _propTypes.default.string,
label: _propTypes.default.string,
title: _propTypes.default.string
};
function CheckBox(_ref3) {
var checked = _ref3.checked,
label = _ref3.label,
title = _ref3.title,
onToggle = _ref3.onToggle;
var toggle = function toggle() {
return onToggle(!checked);
};
var selectTitle = function selectTitle(is) {
return is ? title[1] : title[0];
};
var titleString = typeof title === 'string' ? title : selectTitle(checked);
return _react.default.createElement("button", {
style: buttonStyle,
title: titleString,
onClick: toggle
}, _react.default.createElement("img", {
src: checked ? images.check_box : images.check_box_outline_blank,
alt: "check",
style: iconStyle
}), label);
}
CheckBox.propTypes = {
checked: _propTypes.default.bool,
label: _propTypes.default.string,
title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
onToggle: _propTypes.default.func
};
function Toggle(_ref4) {
var checked = _ref4.checked,
label = _ref4.label,
title = _ref4.title,
onToggle = _ref4.onToggle;
var toggle = function toggle() {
return onToggle(!checked);
};
var selectTitle = function selectTitle(is) {
return is ? title[1] : title[0];
};
var titleString = typeof title === 'string' ? title : selectTitle(checked);
return _react.default.createElement("button", {
style: _objectSpread({}, buttonStyle, {
margin: 0
}),
title: titleString,
onClick: toggle
}, _react.default.createElement("img", {
src: checked ? images.toggle_on : images.toggle_off,
alt: "check",
style: _objectSpread({}, iconStyle, {
width: 26,
marginRight: 4,
opacity: checked ? 0.7 : 0.6
})
}), _react.default.createElement("span", {
style: {
height: 18
}
}, label));
}
Toggle.propTypes = {
checked: _propTypes.default.bool,
label: _propTypes.default.string,
title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
onToggle: _propTypes.default.func
};
function Dropdown(_ref5) {
var selected = _ref5.selected,
list = _ref5.list,
title = _ref5.title,
onSelect = _ref5.onSelect;
var options = list.map(function (val, ind) {
return _react.default.createElement("option", {
value: ind,
key: "".concat(ind, "@").concat(list[ind]),
style: optionsStyle
}, val);
});
var select = function select(event) {
return onSelect(parseInt(event.target.value, 10));
};
return _react.default.createElement("select", {
value: selected,
onChange: select,
style: selectStyle,
title: title
}, options);
}
Dropdown.propTypes = {
selected: _propTypes.default.number,
title: _propTypes.default.string,
list: _propTypes.default.arrayOf(_propTypes.default.string),
onSelect: _propTypes.default.func
};
var paperStyle = {
boxShadow: 'rgba(0, 0, 0, 0.2) 0px 1px 6px',
// padding: '8px 8px 8px 16px',
borderRadius: 2,
boxSizing: 'border-box',
fontFamily: '-apple-system, ".SFNSText-Regular", "San Francisco", Roboto, "Segoe UI", "Helvetica Neue", "Lucida Grande", sans-serif',
// eslint-disable-line
fontSize: 12,
marginBottom: 10
};
function Paper(_ref6) {
var children = _ref6.children,
style = _ref6.style;
return _react.default.createElement("div", {
style: _objectSpread({}, paperStyle, style)
}, children);
}
Paper.propTypes = {
children: _propTypes.default.node,
style: _propTypes.default.shape()
};
var tagStyle = {
backgroundColor: 'rgb(224, 224, 224)',
border: 'black',
borderRadius: 11,
display: 'flex',
alignItems: 'center',
fontSize: 11,
cursor: 'pointer'
};
var avaStyle = {
width: 22,
height: 22,
borderRadius: 11,
backgroundColor: 'rgb(188, 188, 188)',
color: '#efefef',
fontSize: 14,
fontWeight: 600,
textTransform: 'uppercase',
display: 'inline-flex',
alignItems: 'center',
justifyContent: 'center'
};
function Tag(_ref7) {
var label = _ref7.label,
onClick = _ref7.onClick;
return _react.default.createElement("div", {
style: tagStyle,
onClick: onClick
}, _react.default.createElement("div", {
style: avaStyle
}, _react.default.createElement("span", null, label[0] || '!')), _react.default.createElement("span", {
style: {
margin: '0px 12px 0px 6px',
height: 17
}
}, label));
}
Paper.propTypes = {
label: _propTypes.default.string,
onClick: _propTypes.default.func
};