@kaspersky/components
Version:
Kaspersky Design System UI Kit
73 lines (72 loc) • 3.59 kB
JavaScript
;
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);