@flexis/ui
Version:
Styleless React Components
192 lines (161 loc) • 12.3 kB
JavaScript
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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