UNPKG

@avalane/storybook-addon-status

Version:
90 lines (89 loc) 5.23 kB
"use strict"; 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); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _theming = require("@storybook/theming"); var _startCase = _interopRequireDefault(require("lodash/startCase")); var _defaults = require("../defaults"); var _jsxRuntime = require("react/jsx-runtime"); var _templateObject, _templateObject2, _templateObject3; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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 : 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); } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var tagStyles = (0, _theming.css)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n align-self: center;\n border-radius: 0.25em;\n padding: 0 0.5em;\n text-decoration: none;\n user-select: none;\n font-size: 11px;\n text-transform: uppercase;\n line-height: 20px;\n font-weight: 700;\n padding: 0 0.5em;\n"]))); var LinkTag = _theming.styled.a(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n"])), tagStyles); var TextTag = _theming.styled.span(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n ", "\n"])), tagStyles); var StatusTag = function StatusTag(_ref) { var _statusConfigs; var parameters = _ref.parameters; if (parameters === null) { return null; } var type = parameters.type, url = parameters.url, statuses = parameters.statuses; if (!type) { return null; } var statusConfigMap = _objectSpread(_objectSpread({}, _defaults.defaultStatuses), statuses || {}); var statusConfigs; if (Array.isArray(type)) { statusConfigs = type.map(function (t) { if (typeof t === 'string') { return { label: t, status: statusConfigMap[t], url: url }; } return { label: t.name, status: statusConfigMap[t.name], url: t.url }; }); } else { statusConfigs = [{ label: type, status: statusConfigMap[type], url: url }]; } statusConfigs = statusConfigs.filter(function (x) { return x.status != null; }); if (!((_statusConfigs = statusConfigs) !== null && _statusConfigs !== void 0 && _statusConfigs.length)) { return null; } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, { children: statusConfigs.map(function (statusConfig) { var _statusConfig$status = statusConfig.status, background = _statusConfig$status.background, color = _statusConfig$status.color, description = _statusConfig$status.description; var statusUrl = statusConfig.url; var label = (0, _startCase["default"])(statusConfig.label); var style = { color: color !== null && color !== void 0 ? color : _defaults.defaultStatuses[label] ? _defaults.defaultStatuses[label].color : _defaults.defaultColor, backgroundColor: background !== null && background !== void 0 ? background : _defaults.defaultStatuses[label] ? _defaults.defaultStatuses[label].background : _defaults.defaultBackground }; return statusUrl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkTag, { style: style, title: description, href: statusUrl, children: label }, statusConfig.label) : /*#__PURE__*/(0, _jsxRuntime.jsx)(TextTag, { style: style, title: description, children: label }, statusConfig.label); }) }); }; var _default = exports["default"] = StatusTag;