styledot
Version:
23andMe Design System
131 lines (122 loc) • 18.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _uid = _interopRequireDefault(require("./utilities/uid"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var notificationsMap = {
error: 'Error',
'error-lite': 'Error',
info: 'Info',
'info-lite': 'Info',
success: 'Success',
'success-lite': 'Success',
warning: 'Warning',
'warning-lite': 'Warning'
};
var Notification = function Notification(props) {
var for_styledot = props.for_styledot,
closeNotification = props.closeNotification,
notification_type = props.notification_type,
notification_style = props.notification_style,
extra_classes = props.extra_classes,
message_icon = props.message_icon,
action_link_text = props.action_link_text,
action_link_href = props.action_link_href,
action_button_icon = props.action_button_icon,
action_button_label = props.action_button_label,
actionButtonFunction = props.actionButtonFunction,
non_dismissable = props.non_dismissable;
var showCloseAction = !non_dismissable && !action_link_text && !action_link_href && !action_button_label && !action_button_icon;
var showActionLink = action_link_text && action_link_href && !actionButtonFunction && !action_button_label && !action_button_icon;
var showActionButton = !action_link_text && !action_link_href && action_button_icon && action_button_label; // TODO: remove this hardcoded path (and for_styledot prop) and implement a more elegant solution (STYLE-94)
var iconsPath = for_styledot ? '/icons/icons' : '/static/img/components/icons';
var notification_uid = (0, _uid["default"])('notification');
return /*#__PURE__*/_react["default"].createElement("div", {
className: "sd-notification".concat(notification_type ? " ".concat(notification_type) : '').concat(extra_classes ? " ".concat(extra_classes) : ''),
role: "alert"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "sd-notification-outer-container".concat(notification_style ? " ".concat(notification_style) : '')
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "sd-notification-container"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "sd-notification-message-container"
}, message_icon && /*#__PURE__*/_react["default"].createElement("svg", {
role: "img",
focusable: "false",
"aria-labelledby": notification_uid,
className: "sd-notification-message-icon",
height: "24",
width: "24"
}, /*#__PURE__*/_react["default"].createElement("title", {
id: notification_uid
}, notificationsMap[notification_type]), /*#__PURE__*/_react["default"].createElement("use", {
xlinkHref: "".concat(iconsPath, "/24px/").concat(message_icon, ".svg#icon")
})), /*#__PURE__*/_react["default"].createElement("div", {
className: "sd-notification-message"
}, props.children, "\xA0")), showCloseAction && /*#__PURE__*/_react["default"].createElement("button", {
className: "sd-unbutton sd-notification-close-icon",
onClick: closeNotification,
"aria-label": "Close"
}, /*#__PURE__*/_react["default"].createElement("svg", {
role: "img",
focusable: "false",
"aria-labelledby": notification_uid,
height: "32",
width: "32"
}, /*#__PURE__*/_react["default"].createElement("title", {
id: notification_uid
}, "Close"), /*#__PURE__*/_react["default"].createElement("use", {
xlinkHref: "".concat(iconsPath, "/32px/ic_close.svg#icon")
})))), showActionLink && /*#__PURE__*/_react["default"].createElement("a", {
className: "sd-notification-link sd-notification-action-link",
href: action_link_href
}, action_link_text), showActionButton && /*#__PURE__*/_react["default"].createElement("button", {
className: 'sd-unbutton sd-notification-action-icon' + "".concat(!actionButtonFunction ? ' sd-notification-action-icon-disabled' : ''),
onClick: actionButtonFunction ? actionButtonFunction : function () {
/* no-op */
},
"aria-label": action_button_label
}, /*#__PURE__*/_react["default"].createElement("svg", {
role: "img",
focusable: "false",
"aria-labelledby": notification_uid,
height: "24",
width: "24"
}, /*#__PURE__*/_react["default"].createElement("title", {
id: notification_uid
}, action_button_label), /*#__PURE__*/_react["default"].createElement("use", {
xlinkHref: "".concat(iconsPath, "/24px/").concat(action_button_icon, ".svg#icon")
})))));
};
Notification.defaultProps = {
for_styledot: false,
notification_style: '',
message_icon: '',
action_link_text: '',
action_link_href: '',
action_button_icon: '',
action_button_label: '',
actionButtonFunction: null,
non_dismissable: false
};
Notification.propTypes = {
closeNotification: _propTypes["default"].func.isRequired,
notification_type: _propTypes["default"].oneOf(Object.keys(notificationsMap)).isRequired,
for_styledot: _propTypes["default"].bool,
notification_style: _propTypes["default"].string,
extra_classes: _propTypes["default"].string,
message_icon: _propTypes["default"].string,
action_link_text: _propTypes["default"].string,
action_link_href: _propTypes["default"].string,
action_button_icon: _propTypes["default"].string,
action_button_label: _propTypes["default"].string,
actionButtonFunction: _propTypes["default"].func,
non_dismissable: _propTypes["default"].bool
};
var _default = Notification;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3RpZmljYXRpb25zTWFwIiwiZXJyb3IiLCJpbmZvIiwic3VjY2VzcyIsIndhcm5pbmciLCJOb3RpZmljYXRpb24iLCJwcm9wcyIsImZvcl9zdHlsZWRvdCIsImNsb3NlTm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uX3R5cGUiLCJub3RpZmljYXRpb25fc3R5bGUiLCJleHRyYV9jbGFzc2VzIiwibWVzc2FnZV9pY29uIiwiYWN0aW9uX2xpbmtfdGV4dCIsImFjdGlvbl9saW5rX2hyZWYiLCJhY3Rpb25fYnV0dG9uX2ljb24iLCJhY3Rpb25fYnV0dG9uX2xhYmVsIiwiYWN0aW9uQnV0dG9uRnVuY3Rpb24iLCJub25fZGlzbWlzc2FibGUiLCJzaG93Q2xvc2VBY3Rpb24iLCJzaG93QWN0aW9uTGluayIsInNob3dBY3Rpb25CdXR0b24iLCJpY29uc1BhdGgiLCJub3RpZmljYXRpb25fdWlkIiwidWlkIiwiY2hpbGRyZW4iLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJmdW5jIiwiaXNSZXF1aXJlZCIsIm9uZU9mIiwiT2JqZWN0Iiwia2V5cyIsImJvb2wiLCJzdHJpbmciXSwic291cmNlcyI6WyIuLi9zcmMvbGliL25vdGlmaWNhdGlvbi5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB1aWQgZnJvbSAnLi91dGlsaXRpZXMvdWlkJztcblxuY29uc3Qgbm90aWZpY2F0aW9uc01hcCA9IHtcbiAgICBlcnJvcjogJ0Vycm9yJyxcbiAgICAnZXJyb3ItbGl0ZSc6ICdFcnJvcicsXG4gICAgaW5mbzogJ0luZm8nLFxuICAgICdpbmZvLWxpdGUnOiAnSW5mbycsXG4gICAgc3VjY2VzczogJ1N1Y2Nlc3MnLFxuICAgICdzdWNjZXNzLWxpdGUnOiAnU3VjY2VzcycsXG4gICAgd2FybmluZzogJ1dhcm5pbmcnLFxuICAgICd3YXJuaW5nLWxpdGUnOiAnV2FybmluZycsXG59O1xuXG5jb25zdCBOb3RpZmljYXRpb24gPSBwcm9wcyA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBmb3Jfc3R5bGVkb3QsXG4gICAgICAgIGNsb3NlTm90aWZpY2F0aW9uLFxuICAgICAgICBub3RpZmljYXRpb25fdHlwZSxcbiAgICAgICAgbm90aWZpY2F0aW9uX3N0eWxlLFxuICAgICAgICBleHRyYV9jbGFzc2VzLFxuICAgICAgICBtZXNzYWdlX2ljb24sXG4gICAgICAgIGFjdGlvbl9saW5rX3RleHQsXG4gICAgICAgIGFjdGlvbl9saW5rX2hyZWYsXG4gICAgICAgIGFjdGlvbl9idXR0b25faWNvbixcbiAgICAgICAgYWN0aW9uX2J1dHRvbl9sYWJlbCxcbiAgICAgICAgYWN0aW9uQnV0dG9uRnVuY3Rpb24sXG4gICAgICAgIG5vbl9kaXNtaXNzYWJsZSxcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBzaG93Q2xvc2VBY3Rpb24gPVxuICAgICAgICAhbm9uX2Rpc21pc3NhYmxlICYmICFhY3Rpb25fbGlua190ZXh0ICYmICFhY3Rpb25fbGlua19ocmVmICYmICFhY3Rpb25fYnV0dG9uX2xhYmVsICYmICFhY3Rpb25fYnV0dG9uX2ljb247XG4gICAgY29uc3Qgc2hvd0FjdGlvbkxpbmsgPVxuICAgICAgICBhY3Rpb25fbGlua190ZXh0ICYmIGFjdGlvbl9saW5rX2hyZWYgJiYgIWFjdGlvbkJ1dHRvbkZ1bmN0aW9uICYmICFhY3Rpb25fYnV0dG9uX2xhYmVsICYmICFhY3Rpb25fYnV0dG9uX2ljb247XG4gICAgY29uc3Qgc2hvd0FjdGlvbkJ1dHRvbiA9ICFhY3Rpb25fbGlua190ZXh0ICYmICFhY3Rpb25fbGlua19ocmVmICYmIGFjdGlvbl9idXR0b25faWNvbiAmJiBhY3Rpb25fYnV0dG9uX2xhYmVsO1xuXG4gICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgaGFyZGNvZGVkIHBhdGggKGFuZCBmb3Jfc3R5bGVkb3QgcHJvcCkgYW5kIGltcGxlbWVudCBhIG1vcmUgZWxlZ2FudCBzb2x1dGlvbiAoU1RZTEUtOTQpXG4gICAgY29uc3QgaWNvbnNQYXRoID0gZm9yX3N0eWxlZG90ID8gJy9pY29ucy9pY29ucycgOiAnL3N0YXRpYy9pbWcvY29tcG9uZW50cy9pY29ucyc7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uX3VpZCA9IHVpZCgnbm90aWZpY2F0aW9uJyk7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgc2Qtbm90aWZpY2F0aW9uJHtub3RpZmljYXRpb25fdHlwZSA/IGAgJHtub3RpZmljYXRpb25fdHlwZX1gIDogJyd9JHtcbiAgICAgICAgICAgICAgICBleHRyYV9jbGFzc2VzID8gYCAke2V4dHJhX2NsYXNzZXN9YCA6ICcnXG4gICAgICAgICAgICB9YH1cbiAgICAgICAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgc2Qtbm90aWZpY2F0aW9uLW91dGVyLWNvbnRhaW5lciR7bm90aWZpY2F0aW9uX3N0eWxlID8gYCAke25vdGlmaWNhdGlvbl9zdHlsZX1gIDogJyd9YH0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZC1ub3RpZmljYXRpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2Qtbm90aWZpY2F0aW9uLW1lc3NhZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVzc2FnZV9pY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17bm90aWZpY2F0aW9uX3VpZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2Qtbm90aWZpY2F0aW9uLW1lc3NhZ2UtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGl0bGUgaWQ9e25vdGlmaWNhdGlvbl91aWR9Pntub3RpZmljYXRpb25zTWFwW25vdGlmaWNhdGlvbl90eXBlXX08L3RpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj17YCR7aWNvbnNQYXRofS8yNHB4LyR7bWVzc2FnZV9pY29ufS5zdmcjaWNvbmB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZC1ub3RpZmljYXRpb24tbWVzc2FnZVwiPntwcm9wcy5jaGlsZHJlbn0mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIHtzaG93Q2xvc2VBY3Rpb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNkLXVuYnV0dG9uIHNkLW5vdGlmaWNhdGlvbi1jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbG9zZU5vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgcm9sZT1cImltZ1wiIGZvY3VzYWJsZT1cImZhbHNlXCIgYXJpYS1sYWJlbGxlZGJ5PXtub3RpZmljYXRpb25fdWlkfSBoZWlnaHQ9XCIzMlwiIHdpZHRoPVwiMzJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRpdGxlIGlkPXtub3RpZmljYXRpb25fdWlkfT5DbG9zZTwvdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPXtgJHtpY29uc1BhdGh9LzMycHgvaWNfY2xvc2Uuc3ZnI2ljb25gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAge3Nob3dBY3Rpb25MaW5rICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwic2Qtbm90aWZpY2F0aW9uLWxpbmsgc2Qtbm90aWZpY2F0aW9uLWFjdGlvbi1saW5rXCIgaHJlZj17YWN0aW9uX2xpbmtfaHJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YWN0aW9uX2xpbmtfdGV4dH1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3Nob3dBY3Rpb25CdXR0b24gJiYgKFxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZC11bmJ1dHRvbiBzZC1ub3RpZmljYXRpb24tYWN0aW9uLWljb24nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHshYWN0aW9uQnV0dG9uRnVuY3Rpb24gPyAnIHNkLW5vdGlmaWNhdGlvbi1hY3Rpb24taWNvbi1kaXNhYmxlZCcgOiAnJ31gXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b25GdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGFjdGlvbkJ1dHRvbkZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuby1vcCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FjdGlvbl9idXR0b25fbGFiZWx9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgcm9sZT1cImltZ1wiIGZvY3VzYWJsZT1cImZhbHNlXCIgYXJpYS1sYWJlbGxlZGJ5PXtub3RpZmljYXRpb25fdWlkfSBoZWlnaHQ9XCIyNFwiIHdpZHRoPVwiMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGl0bGUgaWQ9e25vdGlmaWNhdGlvbl91aWR9PnthY3Rpb25fYnV0dG9uX2xhYmVsfTwvdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9e2Ake2ljb25zUGF0aH0vMjRweC8ke2FjdGlvbl9idXR0b25faWNvbn0uc3ZnI2ljb25gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbk5vdGlmaWNhdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gICAgZm9yX3N0eWxlZG90OiBmYWxzZSxcbiAgICBub3RpZmljYXRpb25fc3R5bGU6ICcnLFxuICAgIG1lc3NhZ2VfaWNvbjogJycsXG4gICAgYWN0aW9uX2xpbmtfdGV4dDogJycsXG4gICAgYWN0aW9uX2xpbmtfaHJlZjogJycsXG4gICAgYWN0aW9uX2J1dHRvbl9pY29uOiAnJyxcbiAgICBhY3Rpb25fYnV0dG9uX2xhYmVsOiAnJyxcbiAgICBhY3Rpb25CdXR0b25GdW5jdGlvbjogbnVsbCxcbiAgICBub25fZGlzbWlzc2FibGU6IGZhbHNlLFxufTtcblxuTm90aWZpY2F0aW9uLnByb3BUeXBlcyA9IHtcbiAgICBjbG9zZU5vdGlmaWNhdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBub3RpZmljYXRpb25fdHlwZTogUHJvcFR5cGVzLm9uZU9mKE9iamVjdC5rZXlzKG5vdGlmaWNhdGlvbnNNYXApKS5pc1JlcXVpcmVkLFxuICAgIGZvcl9zdHlsZWRvdDogUHJvcFR5cGVzLmJvb2wsXG4gICAgbm90aWZpY2F0aW9uX3N0eWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGV4dHJhX2NsYXNzZXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWVzc2FnZV9pY29uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGFjdGlvbl9saW5rX3RleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWN0aW9uX2xpbmtfaHJlZjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhY3Rpb25fYnV0dG9uX2ljb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWN0aW9uX2J1dHRvbl9sYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhY3Rpb25CdXR0b25GdW5jdGlvbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbm9uX2Rpc21pc3NhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlmaWNhdGlvbjtcbiJdLCJt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