UNPKG

@wix/design-system

Version:

@wix/design-system

146 lines (145 loc) 5.45 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _TagSt = require("./Tag.st.css.js"); var _CloseButton = _interopRequireDefault(require("../CloseButton")); var _Text = _interopRequireDefault(require("../Text")); var _generateDataAttr = require("../utils/generateDataAttr"); var _Tag = require("./Tag.constants"); var _deprecationLog = _interopRequireDefault(require("../utils/deprecationLog")); var _excluded = ["id", "onClick", "onRemove", "maxWidth", "dataHook", "size", "theme", "removable", "disabled", "thumb", "ellipsisProps", "className", "children"]; var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/Tag/Tag.tsx"; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var formatPx = maxWidth => typeof maxWidth === 'string' ? maxWidth : "".concat(maxWidth, "px"); var Tag = _ref => { var { id, onClick, onRemove, maxWidth, dataHook, size = _Tag.SIZE.small, theme = _Tag.SKIN.standard, // TODO: add default value for skin once theme is removed removable = true, disabled, thumb, ellipsisProps, className, children } = _ref, props = (0, _objectWithoutProperties2.default)(_ref, _excluded); var skin = props.skin || theme; (0, _react.useEffect)(() => { if (theme) { (0, _deprecationLog.default)('<Tag/> - theme prop is deprecated and will be removed in next major version, please use skin instead'); } }, [theme]); var handleRemove = event => { event.preventDefault(); event.stopPropagation(); onRemove == null || onRemove(id); }; var handleOnClick = event => { onClick == null || onClick(id, event); }; var handleRemoveKeyDown = event => { if (_Tag.validRemoveKeys.includes(event.key)) { handleRemove(event); } }; var clickable = !!onClick; var hoverable = !disabled && !!onClick; return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({ className: (0, _TagSt.st)(_TagSt.classes.root, { withRemoveButton: removable, withThumb: !!thumb, disabled, clickable, hoverable, size, skin }, className) }, (0, _generateDataAttr.generateDataAttr)({ size, disabled, skin, hoverable, clickable }, ['size', 'disabled', 'skin', 'hoverable', 'clickable']), { "data-hook": dataHook, id: id, onClick: handleOnClick, style: { maxWidth: formatPx(maxWidth) }, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 74, columnNumber: 5 } }), thumb && /*#__PURE__*/_react.default.createElement("span", { "data-hook": _Tag.dataHooks.thumb, className: _TagSt.classes.thumb, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 101, columnNumber: 9 } }, thumb), /*#__PURE__*/_react.default.createElement(_Text.default, { skin: disabled ? 'disabled' : 'standard', light: skin === 'dark', secondary: skin !== 'dark', ellipsis: true, tooltipProps: ellipsisProps, size: _Tag.tagToTextSize[size], weight: "thin", className: _TagSt.classes.text, dataHook: _Tag.dataHooks.text, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 106, columnNumber: 7 } }, children), removable && /*#__PURE__*/_react.default.createElement(_CloseButton.default, { size: size === 'large' ? 'medium' : 'small', skin: skin === 'dark' ? 'light' : 'dark', disabled: disabled, dataHook: _Tag.dataHooks.removeButton, className: _TagSt.classes.removeButton, onClick: handleRemove, onKeyDown: handleRemoveKeyDown, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 121, columnNumber: 9 } })); }; Tag.propTypes = { dataHook: _propTypes.default.any, children: _propTypes.default.any, disabled: _propTypes.default.any, ellipsisProps: _propTypes.default.any, id: _propTypes.default.any, onClick: _propTypes.default.any, onRemove: _propTypes.default.any, removable: _propTypes.default.any, size: _propTypes.default.any, skin: _propTypes.default.any, theme: _propTypes.default.any, thumb: _propTypes.default.any, maxWidth: _propTypes.default.any, className: _propTypes.default.any }; var _default = exports.default = /*#__PURE__*/(0, _react.memo)(Tag); //# sourceMappingURL=Tag.js.map