UNPKG

@kaspersky/components

Version:

Kaspersky Design System UI Kit

73 lines (72 loc) 3.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TreeSelectComponent = exports.TreeSelect = void 0; var _react = _interopRequireDefault(require("react")); var _antd = require("antd"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _ = require("@kaspersky/icons/8"); var _treeSelectCss = require("./treeSelectCss.js"); var _useThemedTreeSelect = require("./useThemedTreeSelect.js"); var _classnames = _interopRequireDefault(require("classnames")); var _Select = require("../select/Select.js"); var _Tree = require("../tree/Tree.js"); var _WithGlobalStyles = require("../../helpers/hocs/WithGlobalStyles.js"); var _useTestAttribute = require("../../helpers/hooks/useTestAttribute.js"); var _tag = require("../tag/index.js"); 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 addCustomCheckIcon(treeData) { return treeData.map(x => ({ ...x, children: x.children && addCustomCheckIcon(x.children), icon: props => { return /*#__PURE__*/_react.default.createElement(_Tree.TreeNodeCheckIcon, _extends({}, props, { multiple: true })); } })); } const StyledTreeSelectView = (0, _styledComponents.default)(_antd.TreeSelect).withConfig({ shouldForwardProp: prop => !['cssConfig'].includes(prop) }).withConfig({ displayName: "TreeSelect__StyledTreeSelectView", componentId: "sc-1tc225u-0" })(["", ""], _treeSelectCss.treeSelectCss); const TreeSelectComponent = _ref => { let { disabled, dropdownClassName, getPopupContainer, treeCheckable, treeData, ...rest } = _ref; const themedProps = (0, _useThemedTreeSelect.useThemedTreeSelect)(rest); const { testAttributes, ...props } = (0, _useTestAttribute.useTestAttribute)(themedProps); const newTreeData = _react.default.useMemo(() => treeCheckable && treeData ? addCustomCheckIcon(treeData) : treeData, [treeCheckable, treeData]); return /*#__PURE__*/_react.default.createElement(StyledTreeSelectView, _extends({ clearIcon: /*#__PURE__*/_react.default.createElement(_Select.ClearIcon, null), disabled: disabled, dropdownClassName: (0, _classnames.default)('dropdown-custom', { 'dropdown-loading': props.loading }, dropdownClassName), getPopupContainer: getPopupContainer !== null && getPopupContainer !== void 0 ? getPopupContainer : triggerNode => triggerNode.parentElement, maxTagPlaceholder: _Select.maxTagPlaceholder, notFoundContent: /*#__PURE__*/_react.default.createElement(_Select.EmptyData, null), suffixIcon: props.showSearch ? /*#__PURE__*/_react.default.createElement(_Select.SearchIcon, null) : /*#__PURE__*/_react.default.createElement(_Select.ChevronIcon, null), switcherIcon: /*#__PURE__*/_react.default.createElement(_.ArrowDownSolid, null), tagRender: props => /*#__PURE__*/_react.default.createElement(_tag.Tag, _extends({}, props, { disabled: disabled })), treeCheckable: treeCheckable, treeData: newTreeData, treeIcon: true }, testAttributes, props)); }; exports.TreeSelectComponent = TreeSelectComponent; const TreeSelect = exports.TreeSelect = (0, _WithGlobalStyles.WithGlobalStyles)(TreeSelectComponent);