@yandex/ui
Version:
Yandex UI components
25 lines (24 loc) • 1.61 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.withNativeControl = exports.toGroupOptions = exports.isGroup = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var Select_1 = require("../Select");
var isGroup = function (value) {
return value.items !== undefined;
};
exports.isGroup = isGroup;
var toGroupOptions = function (option) {
if (exports.isGroup(option)) {
return (react_1.default.createElement("optgroup", { key: option.title, label: option.title }, option.items.map(exports.toGroupOptions)));
}
return (react_1.default.createElement("option", { key: option.value, value: option.value, disabled: option.disabled }, option.content));
};
exports.toGroupOptions = toGroupOptions;
var withNativeControl = function (Select) { return function (_a) {
var addonAfter = _a.addonAfter, name = _a.name, onChange = _a.onChange, options = _a.options, value = _a.value, onClick = _a.onClick, props = tslib_1.__rest(_a, ["addonAfter", "name", "onChange", "options", "value", "onClick"]);
return (react_1.default.createElement(Select, tslib_1.__assign({}, props, { value: value, options: options, addonAfter: react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("select", { onClick: onClick, className: Select_1.cnSelect('Control'), multiple: Array.isArray(value), name: name, onChange: onChange, tabIndex: -1, value: value }, options.map(exports.toGroupOptions)),
addonAfter) })));
}; };
exports.withNativeControl = withNativeControl;