UNPKG

calcite-react

Version:
126 lines (97 loc) 4.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _AlertStyled = require("./Alert-styled"); var _XIcon = _interopRequireDefault(require("calcite-ui-icons-react/XIcon")); var _LightbulbIcon = _interopRequireDefault(require("calcite-ui-icons-react/LightbulbIcon")); var _CheckCircleIcon = _interopRequireDefault(require("calcite-ui-icons-react/CheckCircleIcon")); var _ExclamationMarkTriangleIcon = _interopRequireDefault(require("calcite-ui-icons-react/ExclamationMarkTriangleIcon")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var Alert = function Alert(_ref) { var children = _ref.children, showIcon = _ref.showIcon, icon = _ref.icon, showCloseLabel = _ref.showCloseLabel, closeLabel = _ref.closeLabel, onClose = _ref.onClose, blue = _ref.blue, green = _ref.green, yellow = _ref.yellow, red = _ref.red, other = _objectWithoutProperties(_ref, ["children", "showIcon", "icon", "showCloseLabel", "closeLabel", "onClose", "blue", "green", "yellow", "red"]); var getAlertIcon = function getAlertIcon() { var defaultIcon; if (green) { defaultIcon = _react.default.createElement(_CheckCircleIcon.default, { filled: true, size: 16 }); } else if (yellow) { defaultIcon = _react.default.createElement(_ExclamationMarkTriangleIcon.default, { filled: true, size: 16 }); } else if (red) { defaultIcon = _react.default.createElement(_ExclamationMarkTriangleIcon.default, { filled: true, size: 16 }); } else { defaultIcon = _react.default.createElement(_LightbulbIcon.default, { filled: true, size: 16 }); } return _react.default.createElement(_AlertStyled.StyledAlertIcon, null, icon || defaultIcon); }; var getAlertClose = function getAlertClose() { return _react.default.createElement(_AlertStyled.StyledAlertClose, { onClick: onClose }, closeLabel || _react.default.createElement(_XIcon.default, { size: 16 })); }; return _react.default.createElement(_AlertStyled.StyledAlert, _extends({ blue: blue, green: green, yellow: yellow, red: red }, other), (showIcon || icon) && getAlertIcon(), _react.default.createElement(_AlertStyled.StyledAlertContent, null, children), (showCloseLabel || closeLabel) && getAlertClose()); }; Alert.propTypes = { /** Components to be rendered within the Alert. */ children: _propTypes.default.node, /** Toggles visibility of the icon */ showIcon: _propTypes.default.bool, /** Manually set an icon rather than use the default */ icon: _propTypes.default.node, /** Color modifier for the Alert. */ blue: _propTypes.default.bool, /** Color modifier for the Alert. */ green: _propTypes.default.bool, /** Color modifier for the Alert. */ yellow: _propTypes.default.bool, /** Color modifier for the Alert. */ red: _propTypes.default.bool, /** Full-width modifier for the Alert. */ full: _propTypes.default.bool, /** */ showCloseLabel: _propTypes.default.bool, /** Display label used to close the Alert. */ closeLabel: _propTypes.default.node, /** Callback function fired when the close link is clicked. */ onClose: _propTypes.default.func }; Alert.defaultProps = { onClose: function onClose() {} }; Alert.displayName = 'Alert'; var _default = Alert; exports.default = _default;