payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
159 lines (158 loc) • 15.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
const _reactrouterdom = require("react-router-dom");
const _Chevron = /*#__PURE__*/ _interop_require_default(require("../../icons/Chevron"));
const _Edit = /*#__PURE__*/ _interop_require_default(require("../../icons/Edit"));
const _Link = /*#__PURE__*/ _interop_require_default(require("../../icons/Link"));
const _Plus = /*#__PURE__*/ _interop_require_default(require("../../icons/Plus"));
const _Swap = /*#__PURE__*/ _interop_require_default(require("../../icons/Swap"));
const _X = /*#__PURE__*/ _interop_require_default(require("../../icons/X"));
const _Tooltip = /*#__PURE__*/ _interop_require_default(require("../Tooltip"));
require("./index.scss");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
const icons = {
chevron: _Chevron.default,
edit: _Edit.default,
link: _Link.default,
plus: _Plus.default,
swap: _Swap.default,
x: _X.default
};
const baseClass = 'btn';
const ButtonContents = ({ children, icon, showTooltip, tooltip })=>{
const BuiltInIcon = icons[icon];
return /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, tooltip && /*#__PURE__*/ _react.default.createElement(_Tooltip.default, {
className: `${baseClass}__tooltip`,
show: showTooltip
}, tooltip), /*#__PURE__*/ _react.default.createElement("span", {
className: `${baseClass}__content`
}, children && /*#__PURE__*/ _react.default.createElement("span", {
className: `${baseClass}__label`
}, children), icon && /*#__PURE__*/ _react.default.createElement("span", {
className: `${baseClass}__icon`
}, /*#__PURE__*/ (0, _react.isValidElement)(icon) && icon, BuiltInIcon && /*#__PURE__*/ _react.default.createElement(BuiltInIcon, null))));
};
const Button = /*#__PURE__*/ (0, _react.forwardRef)((props, ref)=>{
const { id, 'aria-label': ariaLabel, buttonStyle = 'primary', children, className, disabled, el = 'button', icon, iconPosition = 'right', iconStyle = 'without-border', newTab, onClick, round, size = 'medium', to, tooltip, type = 'button', url } = props;
const [showTooltip, setShowTooltip] = _react.default.useState(false);
const classes = [
baseClass,
className && className,
buttonStyle && `${baseClass}--style-${buttonStyle}`,
icon && `${baseClass}--icon`,
iconStyle && `${baseClass}--icon-style-${iconStyle}`,
icon && !children && `${baseClass}--icon-only`,
disabled && `${baseClass}--disabled`,
round && `${baseClass}--round`,
size && `${baseClass}--size-${size}`,
iconPosition && `${baseClass}--icon-position-${iconPosition}`,
tooltip && `${baseClass}--has-tooltip`
].filter(Boolean).join(' ');
function handleClick(event) {
setShowTooltip(false);
if (type !== 'submit' && onClick) event.preventDefault();
if (onClick) onClick(event);
}
const buttonProps = {
id,
'aria-disabled': disabled,
'aria-label': ariaLabel,
className: classes,
disabled,
onClick: !disabled ? handleClick : undefined,
onMouseEnter: tooltip ? ()=>setShowTooltip(true) : undefined,
onMouseLeave: tooltip ? ()=>setShowTooltip(false) : undefined,
rel: newTab ? 'noopener noreferrer' : undefined,
target: newTab ? '_blank' : undefined,
type
};
switch(el){
case 'link':
return /*#__PURE__*/ _react.default.createElement(_reactrouterdom.Link, {
...buttonProps,
to: to || url
}, /*#__PURE__*/ _react.default.createElement(ButtonContents, {
icon: icon,
showTooltip: showTooltip,
tooltip: tooltip
}, children));
case 'anchor':
return /*#__PURE__*/ _react.default.createElement("a", {
...buttonProps,
href: url,
ref: ref
}, /*#__PURE__*/ _react.default.createElement(ButtonContents, {
icon: icon,
showTooltip: showTooltip,
tooltip: tooltip
}, children));
default:
const Tag = el // eslint-disable-line no-case-declarations
;
return /*#__PURE__*/ _react.default.createElement(Tag, {
ref: ref,
type: "submit",
...buttonProps
}, /*#__PURE__*/ _react.default.createElement(ButtonContents, {
icon: icon,
showTooltip: showTooltip,
tooltip: tooltip
}, children));
}
});
const _default = Button;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0J1dHRvbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50LCBmb3J3YXJkUmVmLCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgY2hldnJvbiBmcm9tICcuLi8uLi9pY29ucy9DaGV2cm9uJ1xuaW1wb3J0IGVkaXQgZnJvbSAnLi4vLi4vaWNvbnMvRWRpdCdcbmltcG9ydCBsaW5rSWNvbiBmcm9tICcuLi8uLi9pY29ucy9MaW5rJ1xuaW1wb3J0IHBsdXMgZnJvbSAnLi4vLi4vaWNvbnMvUGx1cydcbmltcG9ydCBzd2FwIGZyb20gJy4uLy4uL2ljb25zL1N3YXAnXG5pbXBvcnQgeCBmcm9tICcuLi8uLi9pY29ucy9YJ1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnLi4vVG9vbHRpcCdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBpY29ucyA9IHtcbiAgY2hldnJvbixcbiAgZWRpdCxcbiAgbGluazogbGlua0ljb24sXG4gIHBsdXMsXG4gIHN3YXAsXG4gIHgsXG59XG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdidG4nXG5cbmNvbnN0IEJ1dHRvbkNvbnRlbnRzID0gKHsgY2hpbGRyZW4sIGljb24sIHNob3dUb29sdGlwLCB0b29sdGlwIH0pID0+IHtcbiAgY29uc3QgQnVpbHRJbkljb24gPSBpY29uc1tpY29uXVxuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge3Rvb2x0aXAgJiYgKFxuICAgICAgICA8VG9vbHRpcCBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Rvb2x0aXBgfSBzaG93PXtzaG93VG9vbHRpcH0+XG4gICAgICAgICAge3Rvb2x0aXB9XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NvbnRlbnRgfT5cbiAgICAgICAge2NoaWxkcmVuICYmIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGFiZWxgfT57Y2hpbGRyZW59PC9zcGFuPn1cbiAgICAgICAge2ljb24gJiYgKFxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faWNvbmB9PlxuICAgICAgICAgICAge2lzVmFsaWRFbGVtZW50KGljb24pICYmIGljb259XG4gICAgICAgICAgICB7QnVpbHRJbkljb24gJiYgPEJ1aWx0SW5JY29uIC8+fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L0ZyYWdtZW50PlxuICApXG59XG5cbmNvbnN0IEJ1dHRvbiA9IGZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MQnV0dG9uRWxlbWVudCwgUHJvcHM+KChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICBidXR0b25TdHlsZSA9ICdwcmltYXJ5JyxcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZGlzYWJsZWQsXG4gICAgZWwgPSAnYnV0dG9uJyxcbiAgICBpY29uLFxuICAgIGljb25Qb3NpdGlvbiA9ICdyaWdodCcsXG4gICAgaWNvblN0eWxlID0gJ3dpdGhvdXQtYm9yZGVyJyxcbiAgICBuZXdUYWIsXG4gICAgb25DbGljayxcbiAgICByb3VuZCxcbiAgICBzaXplID0gJ21lZGl1bScsXG4gICAgdG8sXG4gICAgdG9vbHRpcCxcbiAgICB0eXBlID0gJ2J1dHRvbicsXG4gICAgdXJsLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBbc2hvd1Rvb2x0aXAsIHNldFNob3dUb29sdGlwXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGNsYXNzZXMgPSBbXG4gICAgYmFzZUNsYXNzLFxuICAgIGNsYXNzTmFtZSAmJiBjbGFzc05hbWUsXG4gICAgYnV0dG9uU3R5bGUgJiYgYCR7YmFzZUNsYXNzfS0tc3R5bGUtJHtidXR0b25TdHlsZX1gLFxuICAgIGljb24gJiYgYCR7YmFzZUNsYXNzfS0taWNvbmAsXG4gICAgaWNvblN0eWxlICYmIGAke2Jhc2VDbGFzc30tLWljb24tc3R5bGUtJHtpY29uU3R5bGV9YCxcbiAgICBpY29uICYmICFjaGlsZHJlbiAmJiBgJHtiYXNlQ2xhc3N9LS1pY29uLW9ubHlgLFxuICAgIGRpc2FibGVkICYmIGAke2Jhc2VDbGFzc30tLWRpc2FibGVkYCxcbiAgICByb3VuZCAmJiBgJHtiYXNlQ2xhc3N9LS1yb3VuZGAsXG4gICAgc2l6ZSAmJiBgJHtiYXNlQ2xhc3N9LS1zaXplLSR7c2l6ZX1gLFxuICAgIGljb25Qb3NpdGlvbiAmJiBgJHtiYXNlQ2xhc3N9LS1pY29uLXBvc2l0aW9uLSR7aWNvblBvc2l0aW9ufWAsXG4gICAgdG9vbHRpcCAmJiBgJHtiYXNlQ2xhc3N9LS1oYXMtdG9vbHRpcGAsXG4gIF1cbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oJyAnKVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUNsaWNrKGV2ZW50KSB7XG4gICAgc2V0U2hvd1Rvb2x0aXAoZmFsc2UpXG4gICAgaWYgKHR5cGUgIT09ICdzdWJtaXQnICYmIG9uQ2xpY2spIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBpZiAob25DbGljaykgb25DbGljayhldmVudClcbiAgfVxuXG4gIGNvbnN0IGJ1dHRvblByb3BzID0ge1xuICAgIGlkLFxuICAgICdhcmlhLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgY2xhc3NOYW1lOiBjbGFzc2VzLFxuICAgIGRpc2FibGVkLFxuICAgIG9uQ2xpY2s6ICFkaXNhYmxlZCA/IGhhbmRsZUNsaWNrIDogdW5kZWZpbmVkLFxuICAgIG9uTW91c2VFbnRlcjogdG9vbHRpcCA/ICgpID0+IHNldFNob3dUb29sdGlwKHRydWUpIDogdW5kZWZpbmVkLFxuICAgIG9uTW91c2VMZWF2ZTogdG9vbHRpcCA/ICgpID0+IHNldFNob3dUb29sdGlwKGZhbHNlKSA6IHVuZGVmaW5lZCxcbiAgICByZWw6IG5ld1RhYiA/ICdub29wZW5lciBub3JlZmVycmVyJyA6IHVuZGVmaW5lZCxcbiAgICB0YXJnZXQ6IG5ld1RhYiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkLFxuICAgIHR5cGUsXG4gIH1cblxuICBzd2l0Y2ggKGVsKSB7XG4gICAgY2FzZSAnbGluayc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TGluayB7Li4uYnV0dG9uUHJvcHN9IHRvPXt0byB8fCB1cmx9PlxuICAgICAgICAgIDxCdXR0b25Db250ZW50cyBpY29uPXtpY29ufSBzaG93VG9vbHRpcD17c2hvd1Rvb2x0aXB9IHRvb2x0aXA9e3Rvb2x0aXB9PlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDwvQnV0dG9uQ29udGVudHM+XG4gICAgICAgIDwvTGluaz5cbiAgICAgIClcblxuICAgIGNhc2UgJ2FuY2hvcic6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YSB7Li4uYnV0dG9uUHJvcHN9IGhyZWY9e3VybH0gcmVmPXtyZWYgYXMgUmVhY3QuTGVnYWN5UmVmPEhUTUxBbmNob3JFbGVtZW50Pn0+XG4gICAgICAgICAgPEJ1dHRvbkNvbnRlbnRzIGljb249e2ljb259IHNob3dUb29sdGlwPXtzaG93VG9vbHRpcH0gdG9vbHRpcD17dG9vbHRpcH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9CdXR0b25Db250ZW50cz5cbiAgICAgICAgPC9hPlxuICAgICAgKVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbnN0IFRhZyA9IGVsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRhZyByZWY9e3JlZn0gdHlwZT1cInN1Ym1pdFwiIHsuLi5idXR0b25Qcm9wc30+XG4gICAgICAgICAgPEJ1dHRvbkNvbnRlbnRzIGljb249e2ljb259IHNob3dUb29sdGlwPXtzaG93VG9vbHRpcH0gdG9vbHRpcD17dG9vbHRpcH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9CdXR0b25Db250ZW50cz5cbiAgICAgICAgPC9UYWc+XG4gICAgICApXG4gIH1cbn0pXG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvblxuIl0sIm5hbWVzIjpbImljb25zIiwiY2hldnJvbiIsImVkaXQiLCJsaW5rIiwibGlua0ljb24iLCJwbHVzIiwic3dhcCIsIngiLCJiYXNlQ2xhc3MiLCJCdXR0b25Db250ZW50cyIsImNoaWxkcmVuIiwiaWNvbiIsInNob3dUb29sdGlwIiwidG9vbHRpcCIsIkJ1aWx0SW5JY29uIiwiRnJhZ21lbnQiLCJUb29sdGlwIiwiY2xhc3NOYW1lIiwic2hvdyIsInNwYW4iLCJpc1ZhbGlkRWxlbWVudCIsIkJ1dHRvbiIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsImlkIiwiYXJpYUxhYmVsIiwiYnV0dG9uU3R5bGUiLCJkaXNhYmxlZCIsImVsIiwiaWNvblBvc2l0aW9uIiwiaWNvblN0eWxlIiwibmV3VGFiIiwib25DbGljayIsInJvdW5kIiwic2l6ZSIsInRvIiwidHlwZSIsInVybCIsInNldFNob3dUb29sdGlwIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsImNsYXNzZXMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImhhbmRsZUNsaWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImJ1dHRvblByb3BzIiwidW5kZWZpbmVkIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwicmVsIiwidGFyZ2V0IiwiTGluayIsImEiLCJocmVmIiwiVGFnIl0sIm1hcHBpbmdzIjoiOzs7OytCQTRJQTs7O2VBQUE7OzsrREE1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