UNPKG

@flexis/ui

Version:

Styleless React Components

165 lines (142 loc) 10.4 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 _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty"; import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray"; 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 _context; _forEachInstanceProperty(_context = ownKeys(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, 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, getAriaLabelProps } from '../../helpers'; import { style, classes } from './Expand.st.css'; export * from './ExpandTitle'; export * from './ExpandContent'; var Expand = /** @class */ function () { var Expand = /*#__PURE__*/function (_PureComponent) { _inherits(Expand, _PureComponent); function Expand(props) { var _this; _classCallCheck(this, Expand); _this = _possibleConstructorReturn(this, _getPrototypeOf(Expand).call(this, props)); var defaultActive = props.defaultActive; _this.state = { active: defaultActive }; return _this; } _createClass(Expand, [{ key: "render", value: function render() { var _this$props = this.props, className = _this$props.className, disabled = _this$props.disabled, children = _this$props.children, props = _objectWithoutProperties(_this$props, ["className", "disabled", "children"]); var active = this.state.active; var _Children$toArray = Children.toArray(children), _Children$toArray2 = _slicedToArray(_Children$toArray, 2), title = _Children$toArray2[0], content = _Children$toArray2[1]; return _createElement("div", _extends({}, omit(props, ['defaultActive', 'active', 'onToggle']), { className: style(classes.root, { active: active, disabled: disabled }, className), "aria-disabled": disabled }), cloneElement(title, { 'onClick': this.onToggle, 'aria-haspopup': true, 'aria-expanded': active, 'aria-disabled': disabled, 'disabled': disabled }), cloneElement(content, _objectSpread({}, getAriaLabelProps({ role: 'region', labelledBy: title.props.id }, content.props), { 'aria-hidden': !active }))); } }, { key: "onToggle", value: function onToggle(event) { this.toggleActiveState(null, event); } }, { key: "toggleActiveState", value: function toggleActiveState(forceState) { var event = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var _this$props2 = this.props, activeProp = _this$props2.active, onToggle = _this$props2.onToggle, disabled = _this$props2.disabled; if (disabled) { return; } var active = this.state.active; var nextActive = typeof forceState === 'boolean' ? forceState : !active; if (nextActive === active) { return; } if (typeof activeProp !== 'boolean') { this.setState(function () { return { active: nextActive }; }); } if (typeof onToggle === 'function') { onToggle(nextActive, event); } } }], [{ key: "getDerivedStateFromProps", value: function getDerivedStateFromProps(_ref, _ref2) { var active = _ref.active, disabled = _ref.disabled; var prevActive = _ref2.active; var nextActive = !disabled && (typeof active === 'boolean' ? active : prevActive); if (nextActive === prevActive) { return null; } return { active: nextActive }; } }]); return Expand; }(PureComponent); process.env.NODE_ENV !== "production" ? Expand.propTypes = { onToggle: PropTypes.func, defaultActive: PropTypes.bool, active: PropTypes.bool, disabled: PropTypes.bool, children: PropTypes.arrayOf(PropTypes.element).isRequired } : void 0; Expand.defaultProps = { defaultActive: false, disabled: false }; __decorate([Bind()], Expand.prototype, "onToggle", null); return Expand; }(); export default Expand; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0V4cGFuZC9FeHBhbmQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFQLE1BUU8sT0FSUDs7Ozs7QUFTQSxPQUFPLFNBQVAsTUFBc0IsWUFBdEI7QUFDQSxTQUVDLElBRkQsRUFHQyxJQUhELEVBSUMsaUJBSkQsUUFLTyxlQUxQO0FBTUEsU0FDQyxLQURELEVBRUMsT0FGRCxRQUdPLGlCQUhQO0FBS0EsY0FBYyxlQUFkO0FBQ0EsY0FBYyxpQkFBZDs7QUFtQkEsSUFBQSxNQUFBO0FBQUE7QUFBQSxZQUFBO0FBQUEsTUFBcUIsTUFBckI7QUFBQTs7QUF3Q0Msb0JBQVksS0FBWixFQUFpQjtBQUFBOztBQUFBOztBQUVoQixrRkFBTSxLQUFOO0FBRmdCLFVBS2YsYUFMZSxHQU1aLEtBTlksQ0FLZixhQUxlO0FBUWhCLFlBQUssS0FBTCxHQUFhO0FBQ1osUUFBQSxNQUFNLEVBQUU7QUFESSxPQUFiO0FBUmdCO0FBV2hCOztBQW5ERjtBQUFBO0FBQUEsK0JBcURPO0FBQUEsMEJBT0QsS0FBSyxLQVBKO0FBQUEsWUFHSixTQUhJLGVBR0osU0FISTtBQUFBLFlBSUosUUFKSSxlQUlKLFFBSkk7QUFBQSxZQUtKLFFBTEksZUFLSixRQUxJO0FBQUEsWUFNRCxLQU5DOztBQUFBLFlBU0osTUFUSSxHQVVELEtBQUssS0FWSixDQVNKLE1BVEk7O0FBQUEsZ0NBY0QsUUFBUSxDQUFDLE9BQVQsQ0FBaUIsUUFBakIsQ0FkQztBQUFBO0FBQUEsWUFZSixLQVpJO0FBQUEsWUFhSixPQWJJOztBQWdCTCxlQUNDLG1DQUNLLElBQUksQ0FBQyxLQUFELEVBQVEsQ0FDZixlQURlLEVBRWYsUUFGZSxFQUdmLFVBSGUsQ0FBUixDQURUO0FBTUMsVUFBQSxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFULEVBQWU7QUFDOUIsWUFBQSxNQUFNLEVBQU4sTUFEOEI7QUFFOUIsWUFBQSxRQUFRLEVBQVI7QUFGOEIsV0FBZixFQUdiLFNBSGEsQ0FOakI7QUFVQywyQkFBZTtBQVZoQixZQVlFLFlBQVksQ0FBQyxLQUFELEVBQVE7QUFDcEIscUJBQWlCLEtBQUssUUFERjtBQUVwQiwyQkFBaUIsSUFGRztBQUdwQiwyQkFBaUIsTUFIRztBQUlwQiwyQkFBaUIsUUFKRztBQUtwQixzQkFBaUI7QUFMRyxTQUFSLENBWmQsRUFtQkUsWUFBWSxDQUFDLE9BQUQsb0JBQ1QsaUJBQWlCLENBQUM7QUFDcEIsVUFBQSxJQUFJLEVBQVEsUUFEUTtBQUVwQixVQUFBLFVBQVUsRUFBRSxLQUFLLENBQUMsS0FBTixDQUFZO0FBRkosU0FBRCxFQUdqQixPQUFPLENBQUMsS0FIUyxDQURSO0FBS1oseUJBQWdCLENBQUM7QUFMTCxXQW5CZCxDQUREO0FBNkJBO0FBbEdGO0FBQUE7QUFBQSwrQkFxR2tCLEtBckdsQixFQXFHbUM7QUFDakMsYUFBSyxpQkFBTCxDQUF1QixJQUF2QixFQUE2QixLQUE3QjtBQUNBO0FBdkdGO0FBQUE7QUFBQSx3Q0F5R21CLFVBekduQixFQXlHMkU7QUFBQSxZQUFsQyxLQUFrQyx1RUFBSixJQUFJO0FBQUEsMkJBTXJFLEtBQUssS0FOZ0U7QUFBQSxZQUdoRSxVQUhnRSxnQkFHeEUsTUFId0U7QUFBQSxZQUl4RSxRQUp3RSxnQkFJeEUsUUFKd0U7QUFBQSxZQUt4RSxRQUx3RSxnQkFLeEUsUUFMd0U7O0FBUXpFLFlBQUksUUFBSixFQUFjO0FBQ2I7QUFDQTs7QUFWd0UsWUFheEUsTUFid0UsR0FjckUsS0FBSyxLQWRnRSxDQWF4RSxNQWJ3RTtBQWV6RSxZQUFNLFVBQVUsR0FBRyxPQUFPLFVBQVAsS0FBc0IsU0FBdEIsR0FDaEIsVUFEZ0IsR0FFaEIsQ0FBQyxNQUZKOztBQUlBLFlBQUksVUFBVSxLQUFLLE1BQW5CLEVBQTJCO0FBQzFCO0FBQ0E7O0FBRUQsWUFBSSxPQUFPLFVBQVAsS0FBc0IsU0FBMUIsRUFBcUM7QUFDcEMsZUFBSyxRQUFMLENBQWM7QUFBQSxtQkFBTztBQUNwQixjQUFBLE1BQU0sRUFBRTtBQURZLGFBQVA7QUFBQSxXQUFkO0FBR0E7O0FBRUQsWUFBSSxPQUFPLFFBQVAsS0FBb0IsVUFBeEIsRUFBb0M7QUFDbkMsVUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLEtBQWIsQ0FBUjtBQUNBO0FBQ0Q7QUF6SUY7QUFBQTtBQUFBLDREQXNCZ0M7QUFBQSxZQUg3QixNQUc2QixRQUg3QixNQUc2QjtBQUFBLFlBRjdCLFFBRTZCLFFBRjdCLFFBRTZCO0FBQUEsWUFBcEIsVUFBb0IsU0FBNUIsTUFBNEI7QUFHOUIsWUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFELEtBQ2xCLE9BQU8sTUFBUCxLQUFrQixTQUFsQixHQUNHLE1BREgsR0FFRyxVQUhlLENBQW5COztBQU1BLFlBQUksVUFBVSxLQUFLLFVBQW5CLEVBQStCO0FBQzlCLGlCQUFPLElBQVA7QUFDQTs7QUFFRCxlQUFPO0FBQ04sVUFBQSxNQUFNLEVBQUU7QUFERixTQUFQO0FBR0E7QUF0Q0Y7O0FBQUE7QUFBQSxJQUFvQyxhQUFwQzs7QUFFUSwwQ0FBQSxNQUFBLENBQUEsU0FBQSxHQUFZO0FBQ2xCLElBQUEsUUFBUSxFQUFPLFNBQVMsQ0FBQyxJQURQO0FBRWxCLElBQUEsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUZQO0FBR2xCLElBQUEsTUFBTSxFQUFTLFNBQVMsQ0FBQyxJQUhQO0FBSWxCLElBQUEsUUFBUSxFQUFPLFNBQVMsQ0FBQyxJQUpQO0FBS2xCLElBQUEsUUFBUSxFQUFPLFNBQVMsQ0FBQyxPQUFWLENBQ2QsU0FBUyxDQUFDLE9BREksRUFFYjtBQVBnQixHQUFaO0FBVUEsRUFBQSxNQUFBLENBQUEsWUFBQSxHQUFlO0FBQ3JCLElBQUEsYUFBYSxFQUFFLEtBRE07QUFFckIsSUFBQSxRQUFRLEVBQU87QUFGTSxHQUFmOztBQXlGUCxFQUFBLFVBQUEsQ0FBQSxDQURDLElBQUksRUFDTCxDQUFBLEUsZ0JBQUEsRSxVQUFBLEVBRUMsSUFGRCxDQUFBOztBQXFDRCxTQUFBLE1BQUE7QUFBQyxDQTFJRCxFQUFBOztlQUFxQixNIiwic291cmNlUm9vdCI6IiJ9