UNPKG

@yandex/ui

Version:

Yandex UI components

25 lines (24 loc) 1.61 kB
"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;