UNPKG

@zohodesk/components

Version:

Dot UI is a customizable React component library built to deliver a clean, accessible, and developer-friendly UI experience. It offers a growing set of reusable components designed to align with modern design systems and streamline application development

110 lines (84 loc) 6.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _Select = _interopRequireDefault(require("../Select/Select")); var _propTypes = require("./props/propTypes"); var _defaultProps = require("./props/defaultProps"); var _renderHelpers = require("./_shared/helpers/renderHelpers"); var _Box = _interopRequireDefault(require("../Layout/Box")); var _Container = _interopRequireDefault(require("../Layout/Container")); var _ArrowIcon = _interopRequireDefault(require("../shared/ArrowIcon/ArrowIcon")); var _Typography = _interopRequireDefault(require("../Typography/Typography")); var _ArrowIconModule = _interopRequireDefault(require("../shared/ArrowIcon/ArrowIcon.module.css")); var _ColorSelectModule = _interopRequireDefault(require("./ColorSelect.module.css")); var _excluded = ["options", "renderCustomColorIndicator", "renderCustomSelectedValue", "customClass", "customProps", "borderColor", "dataId", "renderRightPlaceholderNode", "placeholder", "renderCustomToggleIndicator"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 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 fontSizes = { xmedium: '14', medium: '14', small: '12', xsmall: '13' }; function ColorSingleSelect(props) { var options = props.options, renderCustomColorIndicator = props.renderCustomColorIndicator, renderCustomSelectedValue = props.renderCustomSelectedValue, customClass = props.customClass, customProps = props.customProps, borderColor = props.borderColor, dataId = props.dataId, renderRightPlaceholderNode = props.renderRightPlaceholderNode, placeholder = props.placeholder, renderCustomToggleIndicator = props.renderCustomToggleIndicator, rest = _objectWithoutProperties(props, _excluded); var selectClass = customClass.select; function renderSelectedValue(data) { var isPopupOpen = data.isPopupOpen, selectedId = data.selectedId, isDisabled = data.isDisabled, isReadOnly = data.isReadOnly; var size = props.size; var fontSize = fontSizes[size] || 14; return /*#__PURE__*/_react["default"].createElement(_Container["default"], { alignBox: "row" }, /*#__PURE__*/_react["default"].createElement(_Box["default"], { flexible: true }, selectedId ? renderCustomSelectedValue ? renderCustomSelectedValue(data) : (0, _renderHelpers.renderColoredTag)(data) : /*#__PURE__*/_react["default"].createElement(_Typography["default"], { $ui_size: fontSize, $ui_className: "".concat(_ColorSelectModule["default"].placeholder), $flag_dotted: true }, placeholder)), /*#__PURE__*/_react["default"].createElement(_ArrowIcon["default"], { isRotated: isPopupOpen, isDisabled: isDisabled, isReadOnly: isReadOnly, renderCustomToggleIndicator: renderCustomToggleIndicator }), renderRightPlaceholderNode ? renderRightPlaceholderNode : null); } var colorIndicator = renderCustomColorIndicator || _renderHelpers.renderColorIndicator; return /*#__PURE__*/_react["default"].createElement(_Select["default"], _extends({}, rest, { placeHolder: placeholder, dataId: dataId, borderColor: borderColor, className: "".concat(borderColor === 'transparent' ? _ArrowIconModule["default"].transparentContainer : '', " ").concat(_ArrowIconModule["default"].arrowContainer, " ").concat(selectClass ? selectClass : ''), options: options, renderCustomSelectedValue: renderSelectedValue, customProps: _objectSpread(_objectSpread({}, customProps), {}, { SuggestionsProps: _objectSpread(_objectSpread({}, customProps.SuggestionsProps), {}, { renderBeforeChildren: colorIndicator }) }) })); } ColorSingleSelect.propTypes = _propTypes.ColorSingleSelect_propTypes; ColorSingleSelect.defaultProps = _defaultProps.ColorSingleSelect_defaultProps; var _default = ColorSingleSelect; exports["default"] = _default;