UNPKG

@zohodesk/components

Version:

In this Package, we Provide Some Basic Components to Build Web App

160 lines (138 loc) • 8.58 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _defaultProps = require("./props/defaultProps"); var _propTypes = require("./props/propTypes"); var _icons = require("@zohodesk/icons"); var _Avatar = _interopRequireDefault(require("../Avatar/Avatar")); var _Layout = require("../Layout"); var _Button = _interopRequireDefault(require("../semantic/Button/Button")); var _IdProvider = require("../../Provider/IdProvider"); var _TagModule = _interopRequireDefault(require("../../Tag/Tag.module.css")); function _interopRequireDefault(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 _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(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 = {}; 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; } function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); } /* * eslint css-modules/no-unused-class: [2, { markAsUsed: ['small', 'medium', * 'closedanger', 'closeprimary', 'default', 'danger', 'secondary', * 'pureDotted', 'primaryDotted'] }] */ /* * eslint css-modules/no-unused-class: [2, { markAsUsed: ['small', 'medium', * 'closedanger', 'closeprimary', 'default', 'danger', 'secondary', * 'pureDotted', 'primaryDotted'] }] */ function Tag(props) { var imageURL = props.imageURL, hasAvatar = props.hasAvatar, text = props.text, onRemove = props.onRemove, initial = props.initial, active = props.active, size = props.size, rounded = props.rounded, palette = props.palette, disabled = props.disabled, closePalette = props.closePalette, onSelectTag = props.onSelectTag, closeTitle = props.closeTitle, dataId = props.dataId, dataSelectorId = props.dataSelectorId, iconName = props.iconName, iconSize = props.iconSize, tooltip = props.tooltip, avatarPalette = props.avatarPalette, customClass = props.customClass, customAttributes = props.customAttributes, a11y = props.a11y, needEffect = props.needEffect, isReadOnly = props.isReadOnly, id = props.id; var handleSelect = function handleSelect(e) { e && e.preventDefault(); e.stopPropagation && e.stopPropagation(); e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation(); onSelectTag && onSelectTag(id, e); }; var handleRemove = function handleRemove(e) { e && e.preventDefault(); e.stopPropagation && e.stopPropagation(); e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation(); onRemove && onRemove(id); }; var getRef = function getRef(el) { var getRef = props.getRef; getRef && getRef(el, id); }; var _customClass$customTa = customClass.customTag, customTag = _customClass$customTa === void 0 ? '' : _customClass$customTa, _customClass$customTa2 = customClass.customTagClose, customTagClose = _customClass$customTa2 === void 0 ? '' : _customClass$customTa2, _customClass$customTa3 = customClass.customTagIcon, customTagIcon = _customClass$customTa3 === void 0 ? '' : _customClass$customTa3, _customClass$customAv = customClass.customAvatar, customAvatar = _customClass$customAv === void 0 ? '' : _customClass$customAv; var textSizes = size === 'small' ? _TagModule["default"].smalltext : _TagModule["default"].mediumtext; var getNextAriaId = (0, _IdProvider.useUniqueId)(); var getAriaId = getNextAriaId(); var _a11y$clearLabel = a11y.clearLabel, clearLabel = _a11y$clearLabel === void 0 ? 'Delete' : _a11y$clearLabel; var isDarkPalette = palette === 'dark'; return /*#__PURE__*/_react["default"].createElement("div", _extends({ className: "".concat(_TagModule["default"].container, " ").concat(needEffect && !isReadOnly ? _TagModule["default"].effect : _TagModule["default"].readonly, " ").concat(active ? "".concat(_TagModule["default"].selected, " ").concat(_TagModule["default"]["active".concat(palette)]) : '', " ").concat(onRemove ? active ? "".concat(_TagModule["default"]["active".concat(size, "Effect")]) : '' : '', " ").concat(_TagModule["default"][size], " ").concat(rounded ? _TagModule["default"].lgRadius : _TagModule["default"].smRadius, " ").concat(_TagModule["default"][palette], " ").concat(disabled ? _TagModule["default"].disabled : '', " ").concat(onSelectTag ? _TagModule["default"].pointer : '', " ").concat(customTag), "data-id": active ? "".concat(dataId, "_TagSelected") : "".concat(dataId, "_Tag"), "data-test-id": active ? "".concat(dataId, "_TagSelected") : "".concat(dataId, "_Tag"), onClick: handleSelect, ref: getRef, "data-title": tooltip ? tooltip : text, tabIndex: disabled ? '-1' : '0', "aria-labelledby": getAriaId, "data-selector-id": dataSelectorId }, customAttributes), hasAvatar ? /*#__PURE__*/_react["default"].createElement("div", { className: _TagModule["default"].avatar }, /*#__PURE__*/_react["default"].createElement(_Avatar["default"], { palette: isDarkPalette ? 'info' : avatarPalette, name: initial, size: "small", src: imageURL, textPalette: isDarkPalette ? 'white' : '', customClass: customAvatar })) : null, iconName ? /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(_TagModule["default"].icon, " ").concat(customTagIcon), "aria-hidden": true }, /*#__PURE__*/_react["default"].createElement(_icons.Icon, { name: iconName, size: iconSize })) : null, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(_TagModule["default"].text, " ").concat(textSizes), "aria-hidden": true, id: getAriaId }, text), onRemove && /*#__PURE__*/_react["default"].createElement(_Button["default"], { customClass: "".concat(_TagModule["default"].close, " ").concat(active ? _TagModule["default"]["active".concat(closePalette, "Close")] : '', "\n ").concat(rounded ? _TagModule["default"].lgRadiusClose : _TagModule["default"].smRadiusClose, " ").concat(isDarkPalette ? _TagModule["default"].darkTagClose : '', "\n ").concat(customTagClose, " ").concat(_TagModule["default"]["close".concat(closePalette)]), dataId: "".concat(dataId, "_RemoveTag"), title: closeTitle, onClick: handleRemove, a11y: { ariaLabel: clearLabel } }, /*#__PURE__*/_react["default"].createElement(_Layout.Container, { align: "both" }, /*#__PURE__*/_react["default"].createElement(_icons.Icon, { isBold: true, name: "ZD-close2", size: "8" })))); } Tag.defaultProps = _defaultProps.defaultProps; Tag.propTypes = _propTypes.propTypes; var MemoizedTag = /*#__PURE__*/(0, _react.memo)(Tag); MemoizedTag.propTypes = _propTypes.propTypes; MemoizedTag.defaultProps = _defaultProps.defaultProps; MemoizedTag.displayName = 'Tag'; var _default = MemoizedTag; exports["default"] = _default;