UNPKG

sunmao-sdk

Version:

榫卯-开箱即用赋能-sdk

58 lines (48 loc) 2.73 kB
function _extends() { _extends = Object.assign || 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); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { 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; } /** * Created by Tw93 on 2019-12-07. * 高阶选择组件 */ import React from "react"; import { getArray } from "../base/utils"; export default (function (SelectComponent) { return function (p) { var Option = SelectComponent.Option; var onChange = function onChange(value) { return p.onChange(p.name, value); }; var style = p.invalid ? { borderColor: "#ff4d4f", boxShadow: "0 0 0 2px rgba(255,77,79,.2)" } : {}; var _ref = p.schema || {}, enums = _ref.enum, enumNames = _ref.enumNames; return /*#__PURE__*/React.createElement(SelectComponent, _extends({ style: _objectSpread({ width: "100%" }, style) }, p.options, { disabled: p.disabled || p.readOnly, value: p.value, onChange: onChange }), getArray(enums).map(function (val, index) { var option = enumNames && Array.isArray(enumNames) ? enumNames[index] : val; var isHtml = typeof option === "string" && option[0] === "<"; if (isHtml) { option = /*#__PURE__*/React.createElement("span", { dangerouslySetInnerHTML: { __html: option } }); } return /*#__PURE__*/React.createElement(Option, { value: val, key: index }, option); })); }; });