UNPKG

@flexis/ui

Version:

Styleless React Components

192 lines (161 loc) 12.3 kB
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property"; import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties"; import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors"; import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each"; import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor"; import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter"; import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"; import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys"; import _extends from "@babel/runtime-corejs3/helpers/extends"; import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat"; import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty"; import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map"; import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/objectWithoutProperties"; import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck"; import _createClass from "@babel/runtime-corejs3/helpers/createClass"; import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime-corejs3/helpers/getPrototypeOf"; import _inherits from "@babel/runtime-corejs3/helpers/inherits"; function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, 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) { var _context2; _forEachInstanceProperty(_context2 = ownKeys(Object(source), true)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context3; _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; } import { __decorate } from "tslib"; import React from 'react'; var _createElement = React.createElement; var PureComponent = React.PureComponent, Children = React.Children, cloneElement = React.cloneElement; import PropTypes from 'prop-types'; import { Bind, omit } from '../../helpers'; import { SelectValuePropType } from '../common/types'; import isCurrentValue from '../common/isCurrentValue'; import getNextValue from '../common/getNextValue'; import { style, classes } from './CustomFlatSelect.st.css'; export * from './CustomFlatSelectOption'; var CustomFlatSelect = /** @class */ function () { var CustomFlatSelect = /*#__PURE__*/function (_PureComponent) { _inherits(CustomFlatSelect, _PureComponent); function CustomFlatSelect(props) { var _this; _classCallCheck(this, CustomFlatSelect); _this = _possibleConstructorReturn(this, _getPrototypeOf(CustomFlatSelect).call(this, props)); var defaultValue = props.defaultValue; _this.state = { value: defaultValue }; return _this; } _createClass(CustomFlatSelect, [{ key: "render", value: function render() { var _this2 = this; var _this$props = this.props, className = _this$props.className, id = _this$props.id, name = _this$props.name, multiple = _this$props.multiple, disabled = _this$props.disabled, children = _this$props.children, props = _objectWithoutProperties(_this$props, ["className", "id", "name", "multiple", "disabled", "children"]); var value = this.state.value; var activeDescendant = null; var options = _mapInstanceProperty(Children).call(Children, children, function (child) { if (!child) { return null; } var _child$props = child.props, optionValue = _child$props.value, optionLabel = _child$props.children, childProps = _objectWithoutProperties(_child$props, ["value", "children"]); var option = typeof optionValue === 'undefined' ? optionLabel : optionValue; var checked = isCurrentValue(multiple, value, option); var props = _objectSpread({}, childProps, { type: multiple ? 'checkbox' : 'radio', value: option, onChange: _this2.onChange, checked: checked, disabled: disabled, name: name }); if (typeof id === 'string') { var _context; props.optionId = _concatInstanceProperty(_context = "".concat(id, "-option-")).call(_context, option); if (checked && !multiple) { activeDescendant = props.optionId; } } return cloneElement(child, props); }); return _createElement("ul", _extends({ role: "listbox" }, omit(props, ['onChange', 'defaultValue', 'value']), { className: style(classes.root, className), id: id, "aria-activedescendant": activeDescendant, "aria-multiselectable": multiple, "aria-disabled": disabled }), options); } }, { key: "onChange", value: function onChange(inputNextValue, event) { var _this$props2 = this.props, valueProp = _this$props2.value, onChange = _this$props2.onChange, multiple = _this$props2.multiple, disabled = _this$props2.disabled; if (disabled) { return; } var value = this.state.value; var nextValue = getNextValue(multiple, value, inputNextValue); if (nextValue === value) { return; } if (typeof valueProp === 'undefined') { this.setState(function () { return { value: nextValue }; }); } if (typeof onChange === 'function') { onChange(nextValue, event); } } }], [{ key: "getDerivedStateFromProps", value: function getDerivedStateFromProps(_ref, _ref2) { var value = _ref.value; var prevValue = _ref2.value; var nextValue = typeof value === 'undefined' ? prevValue : value; if (nextValue === prevValue) { return null; } return { value: nextValue }; } }]); return CustomFlatSelect; }(PureComponent); process.env.NODE_ENV !== "production" ? CustomFlatSelect.propTypes = { id: PropTypes.string, name: PropTypes.string, onChange: PropTypes.func, defaultValue: SelectValuePropType, value: SelectValuePropType, multiple: PropTypes.bool, disabled: PropTypes.bool, children: PropTypes.node.isRequired } : void 0; CustomFlatSelect.defaultProps = { multiple: false, disabled: false }; __decorate([Bind()], CustomFlatSelect.prototype, "onChange", null); return CustomFlatSelect; }(); export default CustomFlatSelect; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0N1c3RvbUZsYXRTZWxlY3QvQ3VzdG9tRmxhdFNlbGVjdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFQLE1BUU8sT0FSUDs7Ozs7QUFTQSxPQUFPLFNBQVAsTUFBc0IsWUFBdEI7QUFDQSxTQUVDLElBRkQsRUFHQyxJQUhELFFBSU8sZUFKUDtBQUtBLFNBRUMsbUJBRkQsUUFHTyxpQkFIUDtBQUlBLE9BQU8sY0FBUCxNQUEyQiwwQkFBM0I7QUFDQSxPQUFPLFlBQVAsTUFBeUIsd0JBQXpCO0FBQ0EsU0FDQyxLQURELEVBRUMsT0FGRCxRQUdPLDJCQUhQO0FBS0EsY0FBYywwQkFBZDs7QUFpQ0EsSUFBQSxnQkFBQTtBQUFBO0FBQUEsWUFBQTtBQUFBLE1BQXFCLGdCQUFyQjtBQUFBOztBQW9DQyw4QkFBWSxLQUFaLEVBQWlCO0FBQUE7O0FBQUE7O0FBRWhCLDRGQUFNLEtBQU47QUFGZ0IsVUFLZixZQUxlLEdBTVosS0FOWSxDQUtmLFlBTGU7QUFRaEIsWUFBSyxLQUFMLEdBQWE7QUFDWixRQUFBLEtBQUssRUFBRTtBQURLLE9BQWI7QUFSZ0I7QUFXaEI7O0FBL0NGO0FBQUE7QUFBQSwrQkFpRE87QUFBQTs7QUFBQSwwQkFVRCxLQUFLLEtBVko7QUFBQSxZQUdKLFNBSEksZUFHSixTQUhJO0FBQUEsWUFJSixFQUpJLGVBSUosRUFKSTtBQUFBLFlBS0osSUFMSSxlQUtKLElBTEk7QUFBQSxZQU1KLFFBTkksZUFNSixRQU5JO0FBQUEsWUFPSixRQVBJLGVBT0osUUFQSTtBQUFBLFlBUUosUUFSSSxlQVFKLFFBUkk7QUFBQSxZQVNELEtBVEM7O0FBQUEsWUFZSixLQVpJLEdBYUQsS0FBSyxLQWJKLENBWUosS0FaSTtBQWNMLFlBQUksZ0JBQWdCLEdBQVcsSUFBL0I7O0FBQ0EsWUFBTSxPQUFPLEdBQUcscUJBQUEsUUFBUSxNQUFSLENBQUEsUUFB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