storybook-addon-material-ui5-react18
Version:
Storybook Addon for Material UI 5 Library with React 18 Support
273 lines (270 loc) • 9.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Button = Button;
exports.CheckBox = CheckBox;
exports.Dropdown = Dropdown;
exports.Link = Link;
exports.Paper = Paper;
exports.Tag = Tag;
exports.Toggle = Toggle;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
// 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(_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 /*#__PURE__*/_react["default"].createElement("button", {
style: _objectSpread(_objectSpread({}, buttonStyle), disabled && {
opacity: 0.5
}),
title: title,
onClick: onClick
}, /*#__PURE__*/_react["default"].createElement("img", {
src: images[icon],
alt: images[icon],
style: _objectSpread(_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 /*#__PURE__*/_react["default"].createElement("a", {
href: href,
style: buttonStyle,
title: title,
target: "_blank",
rel: "noopener noreferrer"
}, /*#__PURE__*/_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 /*#__PURE__*/_react["default"].createElement("button", {
style: buttonStyle,
title: titleString,
onClick: toggle
}, /*#__PURE__*/_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 /*#__PURE__*/_react["default"].createElement("button", {
style: _objectSpread(_objectSpread({}, buttonStyle), {}, {
margin: 0
}),
title: titleString,
onClick: toggle
}, /*#__PURE__*/_react["default"].createElement("img", {
src: checked ? images.toggle_on : images.toggle_off,
alt: "check",
style: _objectSpread(_objectSpread({}, iconStyle), {}, {
width: 26,
marginRight: 4,
opacity: checked ? 0.7 : 0.6
})
}), /*#__PURE__*/_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 /*#__PURE__*/_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 /*#__PURE__*/_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 /*#__PURE__*/_react["default"].createElement("div", {
style: _objectSpread(_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 /*#__PURE__*/_react["default"].createElement("div", {
style: tagStyle,
onClick: onClick
}, /*#__PURE__*/_react["default"].createElement("div", {
style: avaStyle
}, /*#__PURE__*/_react["default"].createElement("span", null, label[0] || '!')), /*#__PURE__*/_react["default"].createElement("span", {
style: {
margin: '0px 12px 0px 6px',
height: 17
}
}, label));
}
Paper.propTypes = {
label: _propTypes["default"].string,
onClick: _propTypes["default"].func
};